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 автоматично повертається назад до карти прив'язки ключа за замовчуванням після кожної команди.