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

1 ответ1

1

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

Если вы хотите использовать конфигурацию по умолчанию, вы можете просто скопировать /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.


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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .