i3wm: dois monitores, um navegador por monitor (quiosque de cabeça dupla)

8

Meu objetivo é fazer com que o i3 inicie um navegador por monitor em uma configuração de monitor duplo.

Não consigo encontrar como iniciar um navegador e movê-lo para o monitor de destino.

Eu vasculhei o documento e tentei em ~ / .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"'

Mas as duas janelas aparecem no primeiro monitor, deixando a segunda em branco.

O que eu senti falta?

O Xorg é configurado da seguinte forma:

Section "Monitor"
  Identifier "HDMI1"
  Option     "Primary" "true"
EndSection

Section "Monitor"
  Identifier "HDMI2"
  Option     "LeftOf" "HDMI1"
EndSection

EDITAR:

Eu adicionei a ~ / .i3 / config

workspace 1 output HDMI1
workspace 2 output HDMI2

Eu tentei

exec --no-startup-id i3-msg 'workspace 1; exec xeyes'
exec --no-startup-id i3-msg 'workspace 2; exec xclock'

ou

exec --no-startup-id i3-msg 'workspace 1; exec xeyes; workspace 2; exec xeyes'

Sempre o mesmo resultado, os dois aplicativos começam no último espaço de trabalho selecionado.

    
por Nelstaar 12.05.2017 / 15:27

3 respostas

2

Você pode atribuir nomes de classe específicos às suas instâncias do Chromium e vinculá-las a espaços de trabalho. Então, com 2 configurações de monitores:

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

Você precisará iniciar duas instâncias do navegador com valores de classe específicos:

$ chromium-browser --class=chromium-no-1
$ chromium-browser --class=chromium-no-2
    
por 18.05.2017 / 21:15
1

Estou usando o i3wm com o ArchLinux em uma configuração de monitor duplo bem-sucedida. Quando inicio o i3, obtenho uma área de trabalho em cada monitor. Para mover uma área de trabalho em um monitor diferente, adicionei o seguinte ao meu ~/.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

Isso me permite mover espaços de trabalho para uma saída diferente. Mas para ter dois navegadores em espaços de trabalho diferentes (e, a menos que seja configurado de outra forma, uma área de trabalho contém apenas uma tela), basta mover o navegador para a área de trabalho na outra tela ou apenas na outra tela com $mod+Left/Right .

Aqui estão todos os bindsym relacionados ao posicionamento das janelas que eu uso:

# 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
    
por 18.05.2017 / 21:33
1

Esta é a configuração final do meu quiosque para o registro.

Em ~ / .xinitrc eu anexei:

# disable screen saver
xset s off
xset -dpms

# start window-manager
i3

Em ~ / .i3 / config eu anexei:

# 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

E para iniciar os navegadores

./ 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 &
    
por 19.05.2017 / 10:12