Как использовать текущую раскладку клавиатуры для сочетаний клавиш в i3?

655
l0b0

Я только что установил i3 с конфигурацией по умолчанию, и существует серьезная проблема с сочетаниями клавиш : даже если моя раскладка клавиатуры не QWERTY, сочетания клавиш отображаются на соответствующие клавиши QWERTY. Поэтому я должен нажать Win+ клавишу с пометкой «F» в раскладке QWERTY, чтобы открыть окно в полноэкранном режиме, даже если нажатие этой клавиши выдает символ «u» (в раскладке Dvorak). Как мне обойти это, чтобы нажатие Win+ работало fв любом макете, не требуя отдельной конфигурации для каждого макета?

0

1 ответ на вопрос

1
Adaephon

Короткий ответ:

Если вы хотите использовать настройки по умолчанию, вы можете просто скопировать /etc/i3/configна ~/.config/i3/config(или ~/.i3/configзамените в зависимости от того, уже существует, чтобы избежать путаницы).

Длинный ответ:

i3поддерживает настройку сочетаний клавиш по символам клавиш, а также по кодам клавиш .

  • Символы клавиш - это символы, которые отправляются нажатием клавиши и зависят от раскладки клавиатуры. Они связаны с bindsymключевым словом. Например, для привязки toggle fullscreenк комбинации Winи ключу, который отправляет «f», вы должны использовать:

     bindsym Mod4+f fullscreen toggle 

    Этот метод пригоден для использования мнемотехники ( F ullscreen, повторно S Изи и т.д.), и вы можете сразу найти нужный ярлык, просто глядя на конфигурации. Но если вы переключаетесь между раскладками клавиатуры, клавиша также может перемещаться. Также, если вы переключаетесь между разными алфавитами, не каждый символ будет представлен в обоих макетах.

  • Коды клавиш представляют физическую клавишу на клавиатуре и не зависят от раскладки клавиатуры, а зависят только от модели клавиатуры (например 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.


Моим личным предложением было бы (долго) взглянуть на Руководство пользователя и использовать конфигурацию по умолчанию только в качестве отправной точки для создания собственной конфигурации, которая соответствует вашему рабочему процессу и предпочтениям.

Похожие вопросы