i3 non supporta realmente sequenze di tasti come vim . Qualsiasi associazione di tasti è costituita da un'unica chiave preceduta da un elenco opzionale di modificatori distinti (quindi no Shift+Shift
). E tutti i modificatori devono essere premuti nel momento in cui viene premuto il tasto principale.
Detto questo, ci sono due modi principali per avere molte aree di lavoro senza doverle associare a lunghi elenchi di modificatori:
1. Creare e accedere in modo dinamico alle aree di lavoro con programmi esterni
Non è necessario definire un collegamento per ogni singolo spazio di lavoro, è possibile crearli al volo inviando a workspace NEW_WS
a i3 , ad esempio con il i3-msg
programma:
i3-msg workspace NEW_WS
i3-msg move container to workspace NEW_WS
i3 viene inoltre fornito con il i3-input
comando, che apre un piccolo campo di input, quindi esegue un comando con l'input specificato come parametro
i3-input -F 'workspace %s' -P 'go to workspace: '
i3-input -F 'move container to workspace %s' -P 'move to workspace: '
Associa questi due comandi alle scorciatoie e puoi accedere a un numero arbitrario di aree di lavoro semplicemente premendo il collegamento e immettendo il nome (o il numero) dell'area di lavoro desiderata. (Se lavori solo con aree di lavoro numerate, potresti voler usare workspace number %s
invece di semplicemente workspace %s
)
2. Associare staticamente gli spazi di lavoro a semplici collegamenti all'interno delle modalità di associazione dei tasti
In alternativa, per un approccio più statico, è possibile utilizzare le modalità nella configurazione di i3 . Potresti avere modalità separate per mettere a fuoco e passare alle aree di lavoro:
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
Oppure potresti avere attacchi separati per la messa a fuoco e lo spostamento all'interno di una singola modalità:
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
In entrambi gli esempi i comandi workspace
o move
sono concatenati mode "default"
, in modo che i3 ritorni automaticamente alla mappa di associazione dei tasti predefinita dopo ogni comando.