Как использовать текущую раскладку клавиатуры для сочетаний клавиш в i3?
Я только что установил i3 с конфигурацией по умолчанию, и существует серьезная проблема с сочетаниями клавиш: даже если моя раскладка клавиатуры не QWERTY, сочетания клавиш отображаются на соответствующие клавиши QWERTY. Поэтому мне нужно нажать Win+ клавишу, помеченную буквой "F" в макете QWERTY, чтобы открыть окно в полноэкранном режиме, хотя нажатие этой клавиши приводит к появлению символа "u" (в макете Dvorak). Как мне обойти это так, чтобы нажатие Win+f работало в любом макете, не требуя отдельной конфигурации для каждого макета?
1 ответ
Короткий ответ:
Если вы хотите использовать конфигурацию по умолчанию, вы можете просто скопировать /etc/i3/config
в ~/.config/i3/config
(или же ~/.i3/config
; заменить то, что уже существует, чтобы избежать путаницы).
Длинный ответ:
i3
поддерживает настройку сочетаний клавиш по символам клавиш, а также по кодам клавиш.
Символы клавиш - это символы, которые отправляются нажатием клавиши и зависят от раскладки клавиатуры. Они связаны с
bindsym
ключевое слово. Например, чтобы связатьtoggle fullscreen
на комбинацию Win и ключа, который отправляет "f", который вы используете:bindsym Mod4+f fullscreen toggle
Этот метод пригоден для использования с мнемоникой (полный экран, просмотр и т. Д.), И вы можете сразу найти нужный ярлык, просто взглянув на конфигурацию. Но если вы переключаетесь между раскладками клавиатуры, клавиша также может перемещаться. Также, если вы переключаетесь между разными алфавитами, не каждый символ будет представлен в обоих макетах.
Коды клавиш представляют физическую клавишу на клавиатуре и не зависят от раскладки клавиатуры, а только от модели клавиатуры (например,
pc104
,pc105
). Для того, чтобы связатьtoggle fullscreen
на комбинацию Win и клавиши, которая помечена как F на клавиатуре США (homerow, левый указательный палец):bindcode Mod4+41 fullscreen toggle
Этот метод сохраняет ярлыки в одном и том же физическом месте на разных раскладках клавиатуры. Это особенно полезно, если вы иногда переключаетесь между макетами, но находите ярлыки в основном по мышечной памяти. С другой стороны конфигурация не очень читаема (
f
против41
).
В зависимости от личных предпочтений вы можете выбрать любой метод. Вы даже можете смешивать их, но вы должны быть осторожны, чтобы не назначать одну и ту же клавишу дважды, например bindsym f …
а также bindcode 41 …
в то же время.
Обычно i3
пакеты поставляются с конфигурацией по умолчанию для каждого метода. /etc/i3/config
за bindsym
а также /etc/i3/config.keycodes
за bindcode
, Если i3
не находит пользовательскую конфигурацию, предлагает создать ее, используя i3-config-wizard
, Это занимает config.keycodes
конфигурация по умолчанию и заменяет все bindcode
конфигурации эквивалентными bindsym
конфигурации на текущей раскладке клавиатуры. Это гарантирует, что все ключи находятся в одном месте, как показано в Руководстве пользователя, и что файл конфигурации легко понять одновременно. Недостаток, конечно, в том, что он ломает некоторые мнемоники, если вы не используете макет QWERTY или QWERTZ.
Моим личным предложением было бы (долго) взглянуть на Руководство пользователя и использовать конфигурацию по умолчанию только в качестве отправной точки для создания собственной конфигурации, которая соответствует вашему рабочему процессу и предпочтениям.