回答:
さて、sudo apt-get install wmctrl
-ingの後、次のbashスクリプトで遊ぶことができます:
#! /bin/bash
WINTITLE="Mail/News" # Main Thunderbird window has this in titlebar
PROGNAME="mozilla-thunderbird" # This is the name of the binary for t-bird
# Use wmctrl to list all windows, count how many contain WINTITLE,
# and test if that count is non-zero:
if [ `wmctrl -l | grep -c "$WINTITLE"` != 0 ]
then
wmctrl -a "$WINTITLE" # If it exists, bring t-bird window to front
else
$PROGNAME & # Otherwise, just launch t-bird
fi
exit 0
if ! wmctrl -l | grep -q "$WINTITLE"
wmctrl
持っている-i
その進識別子を持つウィンドウでの作業をサポートしていオプションを、。そして、あなたはこれを行うことができますので、wmctrl -lp|grep 'whatever incomplete name'|cut -d' ' -f1|xargs wmctrl -ai
似たような行うことになる-
を使用する場合xdotool
、1つのコマンドのみを使用して、特定のアプリケーションまたはクラスのすべてのウィンドウを前面に表示することは困難なようです。for
シェルレベルでループにラップすることで、より良い結果が得られます。Bashの使用:
for WINDOW in $(xdotool search --desktop 0 Firefox); do
xdotool windowactivate ${WINDOW}
done
いくつかの発言:
xdotool search
はFirefox
、ウィンドウ名、クラス、およびクラス名でパターン(ここ)を検索します。サーチスペースを制限する場合は、関連する--class
、--name
または--classname
オプションを使用します。--desktop 0
オプションは、検索を最初のデスクトップに制限します。これはXGetWindowProperty[_NET_WM_DESKTOP] failed (code=1)
、いくつかのコメントで言及されていることを回避するための回避策のようです。xdotool
プロジェクトは2015年以降行き詰っています。今でも私の選択のツールです。個人的な理由から、Jordan Sissel(元の著者)は以前ほど活発ではないので、プロジェクトに貢献することをためらわないでください。
xdotool windowraise
ウィンドウを前面に移動しますが、ウィンドウにフォーカスを与えたり、ウィンドウを使用してデスクトップに切り替えたりしません。代わりに、windowactivate
3つすべてを実行します。