i3 насправді не підтримує такі ключові послідовності, як vim . Будь-яке прив'язка клавіш складається з одного ключа, якому передує необов'язковий перелік різних (так що ні Shift+Shift) модифікаторів. І всі модифікатори повинні бути натиснуті під час натискання основної клавіші.
При цьому, є два основні способи мати багато робочих просторів, не прив'язуючи їх до довгих списків модифікаторів:
1. Динамічно створюйте робочі місця та отримуйте доступ до них із зовнішніми програмами
Не потрібно визначати ярлик для кожної робочої області, ви можете просто створити їх на льоту, надіславши workspace NEW_WSдо i3 , наприклад, з i3-msgпрограмою:
i3-msg workspace NEW_WS
i3-msg move container to workspace NEW_WS
i3 також поставляється з i3-inputкомандою, яка відкриває невелике поле введення, а потім виконує команду з заданим входом як параметр
i3-input -F 'workspace %s' -P 'go to workspace: '
i3-input -F 'move container to workspace %s' -P 'move to workspace: '
Прив’яжіть ці дві команди до ярликів, і ви можете отримати доступ до довільної кількості робочих просторів, просто натиснувши ярлик, а потім ввівши ім'я (або номер) потрібної робочої області. (Якщо ви працюєте лише з нумерованими робочими просторами, ви можете використовувати workspace number %sзамість просто workspace %s)
2. Статично прив'язуйте робочі простори до простих ярликів у ключових режимах прив'язки
Крім того, для статичного підходу ви можете використовувати режими в конфігурації i3 . Ви можете мати окремі режими фокусування та переміщення до робочих просторів:
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
Або у вас можуть бути окремі прив’язки для фокусування та переміщення в одному режимі:
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
В обох прикладах команди workspaceабо moveкоманди пов'язані ланцюжком mode "default", так що i3 автоматично повертається назад до карти прив'язки ключа за замовчуванням після кожної команди.