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+M i3にそれを検出させ、プライマリディスプレイの右側に配置し、5つの名前付きワークスペース(6-10)を委任します。
これが問題です:自宅で、VGA(ディスプレイDP2
)。上記のxrandr
コマンドを実行して、このディスプレイをプライマリディスプレイの右側に配置することもできますが、replaceしない限り、デフォルトでワークスペースをこのディスプレイに割り当てることができません。私が私のHDMIモニターに対して既に持っているルール。どちらのモニターを使用しても、これらの両方のワークスペースを同じように機能させたいので、これはオプションではありません。
TL; DR接続されているディスプレイに応じて、ワークスペースを2つの異なるディスプレイに割り当てる方法はありますか(同時に接続されることはないと仮定して)?
複数の出力を単一のワークスペースに割り当てることはできません。以下を参照してください 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にとどまります。
Update 2019:複数の出力割り当てがv4.16から実装されました https://i3wm.org/docs/userguide.htmlを参照) #workspace_screen 。今、あなたはそれらをそのように使うことができました:
workspace "6: S1" output HDMI2 VGA
次に、最初に利用可能な出力が使用されます。
ユーザーズガイド によると、構文:
workspace 1 output eDP1
...
workspace 6 output HDMI2 VGA
うまくいくはずです。
または、設定されていない場合は、マシンでプライマリ出力を定義できます(xrandr --output <output> --primary
)、次の構文を使用します:
workspace 1 output primary
...
workspace 6 output secondary