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

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

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

решение1

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

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

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

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

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

     bindsym Mod4+f fullscreen toggle
    

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

  • Коды ключейпредставляют собой физическую клавишу на клавиатуре и не зависят от раскладки клавиатуры, а только от модели клавиатуры (например pc104, pc105). Для того чтобы привязаться toggle fullscreenк комбинации Winи клавише, котораяпомечен какFна американской клавиатуре (горизонтальная линия, указательный палец левой руки):

     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.


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

Связанный контент