Webページまたはエディターに移動した後、開いているすべての端末を元の位置に前面に戻す方法はありますか?端末アイコンをクリックしてから、それぞれを個別に戻すのは少し面倒です。
ありがとう!
例:
- 事前ショートカット:
- 近道:
Webページまたはエディターに移動した後、開いているすべての端末を元の位置に前面に戻す方法はありますか?端末アイコンをクリックしてから、それぞれを個別に戻すのは少し面倒です。
ありがとう!
例:
回答:
Alt+ Tabを押してウィンドウを切り替え、Alt+ Shift+ Tabを押してウィンドウを切り替えます。このショートカットは、ほぼすべてのグラフィカルオペレーティングシステムで機能するようになっています。Yowは、同じ目的でSuper+ Wキーと矢印キーを使用することもできます。
1つのターミナルウィンドウを前面に持って来たら、Alt+ ~を押して他のすべてのターミナルウィンドウを前面に1つずつ持ってきます。
開いているすべてのターミナルを自動的に前面に表示するには(前に説明したように1つずつではありません)、次のスクリプトのキーボードショートカットを追加する必要があります(スクリプトはAdobeの回答から取られ、スクリプトのバージョンが機能しないことを考慮して改善されました)私のために):
#!/bin/bash
if [ $# -ne 1 ];then
echo -e "Usage: `basename $0` PROGRAM_NAME\n
For example:\n\t
'`basename $0` gnome-terminal' for Terminal\n\t
'`basename $0` firefox' for Firefox\n\t
'`basename $0` chromium-browser' for Chromium\n\t..."
exit 1
fi
pids=" $(pidof $@) "
if [ "$pids" = " " ]; then # the string " " contain two spaces
echo "There is no program named '$@' opened at the moment."
exit 1
fi
wmctrl -lp | while read identity desktop_number PID window_title; do
if [ "${pids/ $PID }" != "$pids" ]; then
wmctrl -ia $identity
fi
done
スクリプトを実行可能にすることを忘れないでください:
chmod +x /path/to/script/script_name
ターミナルでスクリプトをテストした後、以下を確認する必要があります。
以下は、タイトルがARGに一致するすべてのウィンドウを前面に表示する小さなbashスクリプトです。
bring-all-windows.bash ARG
スクリプト:
#!/bin/bash
Program=$@
wmctrl -l | while read Window; do
if [[ "$Window" == *"$Program"* ]]; then
echo "DEBUG: I bring $Window"
code=`echo "$Window" | cut -f 1 -d " "`
wmctrl -i -a $code
fi
done
バインドできます
bring-all-windows.bash Terminal
ホットキー(ログインシェルPATHにスクリプトを配置することを忘れないでください、またはそれに完全なパスを書いてください)。
スクリプトwmctrl
をインストールする必要があります。
編集:
ターミナルから何かを実行するには、スクリプトを配置したディレクトリに移動してから、
chmod +x bring-all-windows.bash
./bring-all-windows.bash Terminal
ターミナルから確実に機能することを確認したら、それをホットキーにバインドして、フルパスを指定してください。ホットキーとスクリプトへのフルパスで動作することが確実な場合は、そのディレクトリをログインシェルPATHに追加してみて、そのように動作するかどうかを確認してください。
wmctrl
and がありますbash
:それは自然です。
別の方法はを使用することxdotool
です。最初にインストールする必要があるためsudo apt-get install xdotool
、必須です。
xdotool search --class "terminal" windowactivate %@
xdotool search --name "braiam@bt" windowactivate %@
最初に呼び出されるバイナリを探し*terminal*
、2番目にtitleを持つウィンドウを探します*braiam@bt*
。それをbashスクリプトに入れると:
#!/bin/bash
set -e
program=$@
xdotool search --class '$program' windowactivate %@
xdotool search --name '$program' windowactivate %@
これについては、xdotool
マニュアルで詳しく知ることができます。