i3のワークスペースを複数のモニターにデプロイ

i3のワークスペースを複数のモニターにデプロイ

私はすでにLinuxノートブックでi3を使用しています。私は通常ラップトップの内部ディスプレイ(モニターeDP1)のみを使用していますが、作業中はセカンダリモニターをコンピューターのHDMIポート(モニターHDMI2)に接続する傾向があります。これまで、i3設定ファイルに次のコマンドを追加してこれを実行しました。

# use workspaces on different monitors
workspace "1: P1" output eDP1
workspace "2: P2" output eDP1
workspace "3: P3" output eDP1
workspace "4: P4" output eDP1
workspace "5: P5" output eDP1
workspace "6: S1" output HDMI2 
workspace "7: S2" output HDMI2
workspace "8: S3" output HDMI2
workspace "9: S4" output HDMI2
workspace "10: S5" output HDMI2

# add HDMI monitor when connected
exec --no-startup-id xrandr --output HDMI2 --right-of eDP1
bindsym $mod+m exec --no-startup-id xrandr --output HDMI2 --auto --right-of eDP1

つまり、HDMIモニターを接続するときにMod+を押すだけで、Mi3はそれを検出してメインモニターの右側に配置し、名前付き5つのワークスペース(6〜10)をここに委任します。

問題はこれである:DP2家にはVGA(モニター)に接続できる他のモニターがあります。上記のコマンドを実行しxrandrて、このモニターをメインモニターの右側に配置することもできますが、デフォルトではこのモニターにワークスペースを割り当てることはできません。変えるHDMIモニターのルールを設定しました。どのモニターを使用しても、両方のワークスペースが同じように機能したいので、これはオプションではありません。

長い話を短く接続されているモニターに応じて2つの異なるモニターにワークスペースを割り当てる方法はありますか(同時に接続されていないと仮定します)。

ベストアンサー1

単一のワークスペースに複数の出力を割り当てることはできません。以下を参照してください。https://github.com/i3/i3/issues/555

したがって、唯一の方法はi3設定を動的に変更することです。 2つのタスクを実行するホットキースクリプトに割り当てることができます。xrandrモニター出力の変更と以下を使用してワークスペースを移動するi3-msg:

xrandr --output DP2 --auto --right-of eDP1
i3-msg "workspace 6, move workspace to output DP2"
...
i3-msg "workspace 10, move workspace to output DP2"

上記のスクリプトを使用すると、6〜10個のワークスペースをDP2に移動し、ワークスペース10で終了します。

2019アップデート: マルチ出力割り当ては v4.16 以降で実装されます。https://i3wm.org/docs/userguide.html#workspace_screen。これで、次のように使用できます。

workspace "6: S1" output HDMI2 VGA

次に、使用可能な最初の出力が使用されます。

おすすめ記事