私の目標は、i3がデュアルモニターセットアップでモニターごとに1つのブラウザーを起動するようにすることです。
ブラウザを起動してターゲットモニターに移動する方法が見つかりません。
私はドキュメントを掘り下げて、〜/ .i3/configで試しました
exec --no-startup-id i3-msg 'workspace 1 ; move workspace to output HDMI1 ; exec chromium --new-window "http://url/1" ; workspace 2 ; move workspace to output HDMI2 ; exec chromium --new-window "http://url/2"'
ただし、両方のウィンドウが最初のモニターに表示され、2番目のウィンドウは空白のままになります。
私は何を取りこぼしたか ?
Xorgは次のように構成されています。
Section "Monitor"
Identifier "HDMI1"
Option "Primary" "true"
EndSection
Section "Monitor"
Identifier "HDMI2"
Option "LeftOf" "HDMI1"
EndSection
編集:
〜/ .i3/configに追加しました
workspace 1 output HDMI1
workspace 2 output HDMI2
私はもう試した
exec --no-startup-id i3-msg 'workspace 1; exec xeyes'
exec --no-startup-id i3-msg 'workspace 2; exec xclock'
または
exec --no-startup-id i3-msg 'workspace 1; exec xeyes; workspace 2; exec xeyes'
常に同じ結果、両方のアプリは最後に選択されたワークスペースで起動します。
特定のクラス名をChromiumインスタンスに割り当て、それらをワークスペースに関連付けることができます。したがって、2つのモニターの構成では:
workspace 1 output HDMI1
workspace 2 output HDMI2
for_window [class="^chromium-no-1$"] move workspace number 1
for_window [class="^chromium-no-2$"] move workspace number 2
特定のクラス値で2つのブラウザーインスタンスを開始する必要があります。
$ chromium-browser --class=chromium-no-1
$ chromium-browser --class=chromium-no-2
デュアルモニターセットアップでArchLinuxでi3wmを使用しています。 i3を起動すると、各モニターに1つのワークスペースが表示されます。ワークスペースを別のモニターに移動するために、以下を~/.i3/config
に追加しました。
bindsym $mod+Mod1+Up move workspace to output up
bindsym $mod+Mod1+Down move workspace to output down
bindsym $mod+Mod1+Left move workspace to output left
bindsym $mod+Mod1+Right move workspace to output right
これにより、ワークスペースを別の出力に移動できます。ただし、異なるワークスペースに2つのブラウザを配置する場合(特に構成されていない限り、1つのワークスペースに含まれる画面は1つだけです)、ブラウザを他の画面のワークスペースに移動するか、デフォルトの$mod+Left/Right
を使用して他の画面に移動することができます。
私が使用するウィンドウの配置に関連するすべてのbindsymは次のとおりです。
# move focused window
bindsym $mod+Shift+j move left
bindsym $mod+Shift+k move down
bindsym $mod+Shift+l move up
bindsym $mod+Shift+odiaeresis move right
# move focused container to workspace
bindsym $mod+Shift+1 move container to workspace 1
bindsym $mod+Shift+2 move container to workspace 2
bindsym $mod+Shift+3 move container to workspace 3
bindsym $mod+Shift+4 move container to workspace 4
bindsym $mod+Shift+5 move container to workspace 5
bindsym $mod+Shift+6 move container to workspace 6
bindsym $mod+Shift+7 move container to workspace 7
bindsym $mod+Shift+8 move container to workspace 8
bindsym $mod+Shift+9 move container to workspace 9
bindsym $mod+Shift+0 move container to workspace 10
# move workspace to another output/monitor
bindsym $mod+Mod1+Up move workspace to output up
bindsym $mod+Mod1+Down move workspace to output down
bindsym $mod+Mod1+Left move workspace to output left
bindsym $mod+Mod1+Right move workspace to output right
# disable screen saver
xset s off
xset -dpms
# start window-manager
i3
# Setting workspace to monitors
workspace 1 output HDMI1
workspace 2 output HDMI2
# tie each browser to each monitor
for_window [class="^chromium-left$"] move workspace number 1
for_window [class="^chromium-right$"] move workspace number 2
exec ./start-browsers.sh
./ start-browsers.sh
#!/bin/bash
left_url="http://whatever/url/for/left/monitor"
right_url="http://whatever/url/for/right/monitor"
tmpdir1=$(mktemp --directory)
tmpdir2=$(mktemp --directory)
left_target="chromium --new-window $left_url \
--user-data-dir=$tmpdir1 \
--class=chromium-left \
--no-first-run \
--disable-restore-session-state \
--no-default-browser-check \
--disable-Java \
--disable-translate \
--disable-infobars \
--disable-suggestions-service \
--disable-save-password-bubble \
--start-fullscreen"
right_target="chromium --new-window $right_url \
--disable-Java --user-data-dir=$tmpdir2 \
--class=chromium-right \
--no-first-run \
--disable-restore-session-state \
--no-default-browser-check \
--disable-translate \
--disable-infobars \
--disable-suggestions-service \
--disable-save-password-bubble \
--start-fullscreen"
# start app for left screen
i3-msg 'workspace 1'
$left_target &
# start app for right screen
i3-msg 'workspace 2'
$right_target &
# hide mouse pointer
unclutter &