i3 Windows Manager - ワークスペースにウィンドウを割り当てる

i3 Windows Manager - ワークスペースにウィンドウを割り当てる

どのように構成するi3ウィンドウマネージャ特定のワークスペースの端末で起動された新しいプログラム(ウィンドウ)を開きますか?

答え1

これはあなたが入れなければならないでしょう~/.i3/config文書:

たとえば、あなたが望むEmacs作業室は常に開いています4

assign [class="Emacs"]   4

どうやって得るのクラス情報?

xpropキャプチャするウィンドウを起動してクリックします。たとえば、Emacsの実行中に別の端末を使用してxpropを実行し、Emacsウィンドウをクリックします。出力には次のものがあります。

WM_CLASS(STRING) = "emacs"、"emacs"

最初の文字列ははい二つ目はクラス

最後にi3を再起動します($mod+Shift+r) 変更を行います。

答え2

この質問に対する回答は、i3ユーザーガイドにすでに記載されています。4.16。顧客を特定のワークスペースに自動的に配置。さまざまな基準に基づいてウィンドウを一致させることができます - 詳細に説明されていますここ

たとえば、次の設定は常にワークスペース2でFirefoxを開きます。

assign [class="Firefox"] 2

セレクタに接続した2番目の文書によると、正規表現を使用できるため、class端末のすべての項目が特定のワークスペースで開かれていないと言うことができます。

答え3

起動時に以下を使用します。

assign [class="X-terminal-emulator"] 1'
assign [class="Firefox"] 10'
assign [class="Thunderbird"] 9'
assign [title="cmus v2.9.0"] 8'

コマンドラインでもこれを行うことができます。構文が異なります。

i3-msg '[class="X-terminal-emulator"]  move to workspace 1'
i3-msg '[class="Firefox"]     move to workspace 10'
i3-msg '[class="Thunderbird"] move to workspace 9'
i3-msg '[title="cmus v2.9.0"] move to workspace 8'

関連情報