i3 tak naprawdę nie obsługuje kluczowych sekwencji, takich jak vim . Każde powiązanie klucza składa się z jednego klucza poprzedzonego opcjonalną listą różnych (więc nie Shift+Shift
) modyfikatorów. I wszystkie modyfikatory należy nacisnąć w momencie naciśnięcia klawisza głównego.
Biorąc to pod uwagę, istnieją dwa główne sposoby posiadania wielu obszarów roboczych bez konieczności wiązania ich z długimi listami modyfikatorów:
1. Dynamicznie twórz i uzyskuj dostęp do obszarów roboczych za pomocą programów zewnętrznych
Nie musisz definiować skrótu dla każdego obszaru roboczego, możesz po prostu utworzyć je w locie, wysyłając workspace NEW_WS
do i3 , na przykład za pomocą i3-msg
programu:
i3-msg workspace NEW_WS
i3-msg move container to workspace NEW_WS
i3 zawiera również i3-input
polecenie, które otwiera małe pole wprowadzania, a następnie uruchamia polecenie z podanym wejściem jako parametrem
i3-input -F 'workspace %s' -P 'go to workspace: '
i3-input -F 'move container to workspace %s' -P 'move to workspace: '
Powiąż te dwa polecenia ze skrótami, aby uzyskać dostęp do dowolnej liczby obszarów roboczych, po prostu naciskając skrót, a następnie wprowadzając nazwę (lub numer) żądanego obszaru roboczego. (Jeśli pracujesz tylko z numerowanymi obszarami roboczymi, możesz chcieć użyć workspace number %s
zamiast po prostu workspace %s
)
2. Wiąż statycznie obszary robocze do prostych skrótów w trybach łączenia klawiszy
Alternatywnie, dla bardziej statycznego podejścia, możesz użyć trybów w konfiguracji i3 . Możesz mieć osobne tryby ustawiania ostrości i przenoszenia do obszarów roboczych:
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
Lub możesz mieć osobne powiązania do ustawiania ostrości i poruszania się w jednym trybie:
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
W obu przykładach polecenia workspace
lub move
są połączone łańcuchem mode "default"
, dzięki czemu i3 automatycznie powraca do domyślnej mapy powiązań klawiszy po każdym poleceniu.