É (um pouco) possível emular esse "recurso" (para mim, o comportamento do espaço de trabalho de i3
é um dos principais recursos, por isso não recomendo fazer isso, a menos que você realmente não consiga trabalhar sem espaços de trabalho abrangendo todos os monitores enquanto ainda deseja usar i3
).
Você pode vincular vários comandos a atalhos, para poder simplesmente alternar espaços de trabalho em ambos os monitores de uma só vez. Por exemplo:
# Default modifier key
set $mod Mod4
# variables for left and right monitor
# (assuming names DP-1 and DP-3 with DP-1 being left of DP-3)
set $monL DP-1
set $monR DP-3
# variables for workpacenames;
set $ws1L 1:A
set $ws1R 11:A
set $ws2L 2:B
set $ws2R 12:B
set $ws3L 3:C
set $ws3R 13:C
# assign workspaces to specific outputs
workspace $ws1L output $monL
workspace $ws1R output $monR
workspace $ws2L output $monL
workspace $ws2R output $monR
workspace $ws3L output $monL
workspace $ws3R output $monR
# do not toggle automatically between the current and previous
# workspace on repeated calls to 'workspace NAME' (with identical NAME)
workspace_auto_back_and_forth no
# Toggle between both monitors
# (focus output left wraps from the leftmost to the rightmost output)
bindsym $mod+Tab focus output left
# switch two workspaces at once (the need to be on different outputs)
bindsym $mod+1 workspace $ws1L, workspace $ws1R
bindsym $mod+2 workspace $ws2L, workspace $ws2R
bindsym $mod+3 workspace $ws3L, workspace $ws3R
# move a window to a specific workpace;
# $mod+Shift for left side, $mod+Control for right side
bindsym $mod+Shift+1 move workspace $ws1L
bindsym $mod+Control+1 move workspace $ws1R
bindsym $mod+Shift+2 move workspace $ws2L
bindsym $mod+Control+2 move workspace $ws2R
bindsym $mod+Shift+3 move workspace $ws3L
bindsym $mod+Control+3 move workspace $ws3R
bar {
# [...]
# Do not show workspace numbers (optional)
strip_workspace_numbers yes
}
Isso usa variáveis para manter os nomes da área de trabalho e da saída consistentes. Os nomes do espaço de trabalho para o monitor esquerdo e direito precisam ser diferentes. Nesse caso, escolhi usar números diferentes porque eles podem ser ocultados, se desejado. Quando estas configurações Super + 1 mudam para a área de trabalho 1:A
no monitor da esquerda e 11:A
no monitor da direita. workspace_auto_back_and_forth
deve ser desativado para evitar um comportamento possivelmente confuso e indesejado.
Advertências:
- Isso funciona apenas para os atalhos de teclado, se você clicar em um botão de espaço de trabalho no i3bar, somente a área de trabalho em um monitor será alterada e não sua complementar.
- Qualquer comando que focalize uma janela em uma área de trabalho não visível no momento (
[criteria] focus
) só focalizará essa área de trabalho sem a da outra saída - Ao alternar dois espaços de trabalho com uma ligação, o segundo espaço de trabalho será sempre o focalizado (no exemplo acima, o direito).
- A focagem e o movimento nas bordas da exibição podem exigir diferentes comandos / atalhos de teclado em alguns casos. (Embora esse também seja o caso dos espaços de trabalho não sincronizados, talvez seja mais perceptível / interrompido quando se espera um grande espaço de trabalho)
Algumas, se não todas as advertências, provavelmente poderiam ser resolvidas utilizando a interface IPC, por exemplo, para alternar automaticamente para a área de trabalho complementar também.
Pessoalmente, sugiro, pelo menos, adotar uma abordagem híbrida: Use espaços de trabalho sincronizados onde você absolutamente precisa deles para o seu fluxo de trabalho, mas use a abordagem de exibição única padrão (para i3
) em qualquer outro lugar. Caso contrário, se você realmente precisar / quiser áreas de trabalho sincronizadas o tempo todo, pode ser que i3
simplesmente não seja o gerenciador de janelas que você está procurando.