wmctrl
プログラムはまさにあなたが探しているものです (sudo apt-get install wmctrl
)。 wmctrl -a "AppTitle"
を使用できます アプリを前面に表示するコマンド。 wmctrl -l
使用可能なすべてのウィンドウが一覧表示されるため、プログラムが実行されているかどうかを確認し、起動するか前面に表示するシェル スクリプトを簡単に作成できます。次に、それをキーボード ショートカットにバインドするだけです。
最初に次のスクリプトをどこかに保存します。ここでは /home/jtb/code/bringToFront
を使用します .これには 2 つの引数が必要です。1 つ目は、プログラムを起動するためにターミナルで入力するもので、2 つ目はプログラム ウィンドウのタイトルの部分文字列です。タイトルに一定の一意の文字列がない場合は、プログラムのウィンドウを見つけるためにもう少し作業を行う必要があります。
#!/bin/bash
if [ `wmctrl -l | grep -c "$2"` != 0 ]
then
wmctrl -a "$2"
else
$1 &
fi
-
現在のディレクトリにあるスクリプトを使用して、
chmod +x bringToFront
を実行します。 スクリプトを実行可能にします。次に、動作することを確認します。 Firefox を起動/フォーカスするには、./bringToFront firefox "Mozilla Firefox"
を実行します。 . -
次に、ショートカット キーをバインドする必要があります。
gconf-editor
を実行 フォルダー構造を左に移動して/apps/metacity/keybinding_commands
に移動します . -
最初の
command
をダブルクリックします 空白の値、おそらくcommand_1
.スクリプトへのフル パスを入力し、2 つのパラメータを指定します。/home/jtb/code/bringToFront firefox Firefox
. -
左側のパネルから
global_keybindings
を選択します 、次のフォルダ。run
を見つける 定義したばかりのコマンドに一致するエントリ、おそらくrun_command_1
.それをダブルクリックして、使用するキーボード ショートカットを入力します。修飾子を山かっこで囲みます。<Ctrl><Alt>F
.
今コントロール + Alt + F Firefox ウィンドウを前面に表示するか、まだ実行されていない場合は起動します。
xdotools
でそれを行う別の方法を次に示します。 .ポップアップするプロセスは、それを実行するために発行されたコマンド ラインによって認識されます (pid ファイルや一意のウィンドウ タイトルは必要ありません)。
#!/bin/bash
cmd="[email protected]"
# command line to be run. Note that the resulting
# process will hold this in /proc/PID/cmdline
pid=`pgrep -nf "^$cmd$"`
# most recent process having "$cmd" in /proc/PID/cmdline
if [ -z "$pid" ]; then # no pid
exec $cmd
# run command
else
winid=`xdotool search --all --pid $pid --onlyvisible | head -1`
# first visible window owned by pid
xdotool windowactivate $winid
# give window focus
fi