ubuntu – 特定のウィンドウにフォーカスするためのBashコマンド

bash gnome ubuntu

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


wmctrlxdotoolを組み合わせて使うと、Firefoxにフォーカスを移してキーボードやマウスの操作をすることができます

この例では

wmctrl -R firefox && \
xdotool key --clearmodifiers ctrl+t ctrl+l && \
xdotool type --delay=250 google && \
xdotool key --clearmodifiers Tab Return

以下の手順を実行します

  1. 最初に一致する Firefox のウィンドウにフォーカスを当てます
  2. 新しいブラウザタブを開きます
  3. アドレスバーにフォーカスを合わせます
  4. Type “google”
  5. 最初のブラウザのオートコンプリート結果にタブを表示します
  6. 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


タイトルとURLをコピーしました