bashコマンドラインで、実行中のプロセスの特定のウィンドウにフォーカスを当てる方法はありますか?プロセスの名前、番号、その他必要なものがわかっていると思います
例えば、Firefox のインスタンスが一つだけ実行されていて、最小化されている (またはその上に他のウィンドウがある) とします。Firefox ウィンドウをアクティブなウィンドウにして、Firefox ウィンドウにフォーカスを与える bash コマンドが必要です
56 Malabarba 2010-05-19
ベストアンサー
wmctrlコマンドは仕事をしてくれるようです。私の場合はすでにインストールされていましたが、必要な人がいる場合に備えてリポジトリにあります
wmctrl -l
現在開いているウィンドウ(ノームパネルを含む)を一覧表示します
wmctrl -a STRING
タイトルにSTRINGを含むウィンドウにフォーカスを与える。複数のウィンドウがこの条件を満たしているとどうなるのかがよくわからない。 私の場合、コマンドは
wmctrl -a Firefox
83 Malabarba 2010-05-19
wmctrl
とxdotool
を組み合わせて使うと、Firefoxにフォーカスを移してキーボードやマウスの操作をすることができます
この例では
wmctrl -R firefox && \
xdotool key --clearmodifiers ctrl+t ctrl+l && \
xdotool type --delay=250 google && \
xdotool key --clearmodifiers Tab Return
以下の手順を実行します
- 最初に一致する Firefox のウィンドウにフォーカスを当てます
- 新しいブラウザタブを開きます
- アドレスバーにフォーカスを合わせます
- Type “google”
- 最初のブラウザのオートコンプリート結果にタブを表示します
- Return(またはEnter)キーを押します
11 Christopher 2015-08-04
ubuntuのPCで使用している以下のスクリプトはどのようなものでしょうか? 使用例はこのようなものです
$ ./focus_win.sh 1 # focus on a application window that executed at first
$ ./focus_win.sh 2 # second executed application window
キーボードのカスタムショートカットで割り当てて使っています。 ctrl+1, ctrl+2,
cat focus_win.sh
#! /bin/sh
if [ "" = "$1" ] ; then
echo "usage $0 <win index>"
exit 1;
fi
WIN_ID=`wmctrl -l | cut -d ' ' -f1 | head -n $1 | tail -n 1`
if [ "" = "$WIN_ID" ] ; then
echo "fail to get win id of index $1"
exit 1;
fi
wmctrl -i -a $WIN_ID
6 swj 2014-02-07