i3wm: mais de 10 espaços de trabalho com chave modificadora dupla?

11

Recentemente, comecei a usar i3wm e me apaixonei por ele. No entanto, uma coisa me incomoda: controlar mais de 10 espaços de trabalho.

Na minha configuração $mod+1 to $mod+9 alterna entre os espaços de trabalho 1 a 9 (e $mod+0 para 10), mas às vezes 10 espaços de trabalho não são suficientes.

No momento, chego à área de trabalho 11 a 20 com $mod+mod1+1 a $mod+mod1+0 , ou seja, exibindo mod+alt+number . É claro que isso funciona sem problemas, mas é um incômodo mudar de espaço de trabalho, já que as teclas não são acessadas com facilidade. Além disso, a movimentação de aplicativos entre os espaços de trabalho 11 a 20 exige mod+shift+alt+number - > feio.

Em minhas ligações Vim (tenho muitos plugins), comecei a usar atalhos de modificadores duplos, como modkey + r para o Plugin 1 e modkey + modkey + r para o Plugin 2. Dessa forma, posso vincular cada chave duas vezes e atingir o a tecla mod duas vezes é fácil e rápida.

Posso fazer algo semelhante em i3wm ?

Como você usa mais de 10 espaços de trabalho em i3wm ? Alguma outra solução?

    
por daniel451 18.01.2017 / 04:46

1 resposta

11

i3 não suporta sequências de teclas como vim . Qualquer ligação de chave consiste em uma única chave precedida por uma lista opcional de modificadores distintos (portanto, não Shift+Shift ). E todos os modificadores precisam ser pressionados no momento em que a tecla principal é pressionada.

Dito isso, há duas maneiras principais de ter muitos espaços de trabalho sem precisar vinculá-los a longas listas de modificadores:

1. Crie e acesse dinamicamente espaços de trabalho com programas externos

Você não precisa definir um atalho para cada espaço de trabalho, basta criá-los rapidamente enviando um workspace NEW_WS para i3 , por exemplo com o programa i3-msg :

i3-msg workspace NEW_WS
i3-msg move container to workspace NEW_WS

i3 também vem com o comando i3-input , que abre um pequeno campo de entrada e executa um comando com a entrada fornecida como parâmetro

i3-input -F 'workspace %s' -P 'go to workspace: '
i3-input -F 'move container to workspace %s' -P 'move to workspace: '

Vincule esses dois comandos a atalhos e você pode acessar um número arbitrário de espaços de trabalho apenas pressionando o atalho e digitando o nome (ou número) da área de trabalho desejada. (Se você trabalha apenas com espaços de trabalho numerados, talvez queira usar workspace number %s em vez de apenas workspace %s )

2. Vincule espaços de trabalho estaticamente a atalhos simples nos modos de ligação de chave

Como alternativa, para uma abordagem mais estática, você poderia usar os modos em sua configuração i3 . Você pode ter modos separados para focar e mover para espaços de trabalho:

set $mode_workspace "goto_ws"
mode $mode_workspace {
    bindsym 1 workspace 1; mode "default"
    bindsym 2 workspace 2; mode "default"
    # […]
    bindsym a workspace a; mode "default"
    bindsym b workspace b; mode "default"
    # […]
    bindsym Escape mode "default"
}
bindsym $mod+w mode $mode_workspace

set $mode_move_to_workspace "moveto_ws"
mode $mode_move_to_workspace {
    bindsym 1 move container to workspace 1; mode "default"
    bindsym 2 move container to workspace 2; mode "default"
    # […]
    bindsym a move container to workspace a; mode "default"
    bindsym b move container to workspace b; mode "default"
    # […]
    bindsym Escape mode "default"
}
bindsym $mod+shift+w mode $mode_move_to_workspace

Ou você pode ter ligações separadas para focar e mover em um único modo:

set $mode_ws "workspaces"
mode $mode_ws {
    bindsym 1 workspace 1; mode "default"
    bindsym Shift+1 move container to workspace 1; mode "default"
    bindsym 2 workspace 2; mode "default"
    bindsym Shift+2 move container to workspace 2; mode "default"
    # […]
    bindsym a workspace a; mode "default"
    bindsym Shift+a move container to workspace a; mode "default"
    bindsym b workspace b; mode "default"
    bindsym Shift+b move container to workspace b; mode "default"
    # […]
    bindsym Escape mode "default"
}
bindsym $mod+shift+w mode $mode_move_to_workspace

Em ambos os exemplos, os comandos workspace ou move estão encadeados com mode "default" , de forma que i3 retorna automaticamente ao mapa de ligação de chaves padrão após cada comando.

    
por 25.01.2017 / 09:59