Xorg

i3wm:兩台顯示器,每台顯示器一個瀏覽器(雙頭資訊亭)

  • September 11, 2017

我的目標是讓 i3 在雙顯示器設置上為每個顯示器啟動一個瀏覽器。

我找不到如何啟動瀏覽器並將其移動到目標監視器。

我已經瀏覽了文件並在 ~/.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"'

但是兩個視窗都出現在第一台顯示器上,而第二台顯示器則為空白。

我錯過了什麼 ?

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

我在雙顯示器設置上使用 i3wm 和 ArchLinux 非常成功。當我啟動 i3 時,我在每台顯示器上都有一個工作區。要在不同的監視器上移動工作區,我已將以下內容添加到我的~/.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

這允許我將工作區移動到不同的輸出。但是要在不同的工作區有兩個瀏覽器(除非另外配置一個工作區只包含一個螢幕),您可以將瀏覽器移動到另一個螢幕上的工作區,或者只是在另一個螢幕上使用 default $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

引用自:https://unix.stackexchange.com/questions/364649