Swaymsgはウィンドウに焦点を合わせません。

Swaymsgはウィンドウに焦点を合わせません。

私はi3からWaylandに切り替えましたが、以前に書いたスクリプトを除いて、すべてがうまくいきます。スクリプトはi3-msgを使用して、クラス名またはID(i3-msgツリー内)でウィンドウに焦点を合わせます。 Swayにはswaymsg -t get_treei3と同じことをするコマンドがあります。このコマンドを使用して、コマンドラインからidapp_idまたはwindowその他のデータを抽出できます。pid

swaymsg -t get_tree | jq -c -r '..|try select(.focused == true) | [.id]' | tr -d "[]"

(プロパティに応じて、.idもちろん正しいクエリに置き換えられます)。

特定のウィンドウに集中するためにコンテナ情報を利用しようとするとき

swaymsg for_window -r [id=10] focus

IDが正しいことを確認しましたが、何も起こりません。その-rオプションのおかげでswaymsg出力も可能です(フラグは何も起こらないという事実には影響しません)。

[
  {
    "success": true
  }
]

だから異常がないようです。私が読んだ他のソースからapp_idウィンドウやコンテナとやり取りするときにWaylandに移動する方法であるように見えるいくつかのパラメータを試しましたが、swaymsg何も起こりません。また、端末やブラウザなどの他のプログラムを使ってコマンドを実行してみましたが、何の変更もありませんでした。マニュアルはswaymsgコマンドの周りに引用符を入れるように言いますが、それも役に立ちません。エラーが発生しないため、デバッグ方法が混乱しています。

関連情報