web-dev-qa-db-ja.com

新しくオープンしたターミナルに焦点を当てる

Archlinux3.17.3-1でgnome-Shell3.14を使用しています。 xfce4ターミナルを開くためのキーボードショートカット(ctrl + alt + T)があります。

私の問題は、このショートカットをトリガーすると、新しく開いたターミナルにフォーカスが設定されないことです。 .zshrcに追加してみました

[[ -n "$DISPLAY" ]] && wmctrl -i -a $(wmctrl -l | grep Terminal | tail -n 1 | cut -d ' ' -f1)

そしてそれはうまくいきました...私がターミナルで複数のタブを開こうとするまで。新しいタブを開くと、.zshrcが実行され、フォーカスが最後のターミナルに移動します。これは、現在作業しているオープンではない可能性があります。

そこで、.zshrcファイルからコマンドを削除し、ショートカットキーボードを実行してコマンドを編集してみました。

xcfe4-terminal&
sleep 0.1
wmctrl -i -a $(wmctrl -l | grep Terminal | tail -n 1 | cut -d ' ' -f1)

スリープ時間を長くしてみましたが、うまくいきません(フォーカスが設定されていません)

したがって、2つの質問があります:

  • どういうわけか、スクリプトでスクリプトを実行しているxfce4ターミナルのウィンドウIDを取得することは可能ですか?

  • Xfce4ターミナルを開くときにコマンドを実行することは可能ですか(コマンドが.zshrcにある場合でも、含まれていない場合など)。 --executeオプションを試しましたが、フォーカスコマンドを実行するだけで役に立たないウィンドウが表示されるため、ニーズに合いません。

2
Amxx

このスレッドはすでに3年前のものですが、最近、プラズマからシナモンに移行したときに同じ問題に悩まされています。これは私が思いついたものです

これを.zshrc(または他のシェル構成ファイル)に追加します

xdotool windowactivate $(xdotool search --onlyvisible --class 'xfce4-terminal' | tail -n1) &>/dev/null
1
Gray K