Вопрос или проблема
На KDE (а также на GNOME) была опция для замены клавиш Caps Lock и Escape.
Я ожидал увидеть это же окно настроек в i3, но не нашел его. Есть ли подобная настройка в i3?
Вы можете использовать xmodmap
для замены Escape и Caps Lock в любой DE.
Сначала создайте файл со следующим содержимым:
remove Lock = Caps_Lock
keycode 0x42 = Escape
keycode 0x9 = Caps_Lock
add Lock = Caps_Lock
Предположим, он сохранен как swapkeys
.
Выполните следующую команду для замены клавиш:
xmodmap swapkeys -display :0
предполагая, что $DISPLAY
равно :0
.
Вы можете добавить вышеуказанную строку в конфигурацию i3, чтобы выполнить её автоматически при запуске.
Следующее также выполнит то же самое:
файл конфигурации: ~/.config/i3/config или пользовательский
xmodmap -e "clear lock"
#отключить переключение caps lock
xmodmap -e "keysym Caps_Lock = Escape"
задать caps_lock как escape
просто для упрощенной конфигурации в одном месте
Вы можете использовать setxkbmap на большинстве дистрибутивов Linux.
Добавьте следующую строку в ваш файл конфигурации i3, и всё будет в порядке.
exec --no-startup-id setxkbmap -option caps:swapescape
Дайте знать, если у вас возникнут вопросы или если что-то сломается!
Ответ или решение
Для настройки поведения клавиши Caps Lock в оконном менеджере i3, вы можете использовать различные инструменты и методы, такие как xmodmap
или setxkbmap
. Давайте подробно рассмотрим оба подхода, чтобы вы могли выбрать наиболее подходящий для вас.
Теоретическая часть
i3 и настройка клавиш:
i3, являясь оконным менеджером, ориентированным на клавиатурное управление, предоставляет пользователю высокий уровень контроля над конфигурацией клавиатуры. В отличие от полноценных окружений рабочего стола, таких как KDE или GNOME, i3 не предлагает графического интерфейса для настройки клавиш на клавиатуре. Однако за счет своей гибкости i3 позволяет интегрировать инструменты командной строки для достижения нужного поведения клавиш.
Проблематика Caps Lock и Escape:
Переназначение клавиш, таких как Caps Lock и Escape, часто используется разработчиками и пользователями, которые много работают с текстом. Escape часто используется в Vim и других редакторах, а более удобное ее расположение может облегчить работу. Аналогично, Caps Lock может использоваться для облегчения активации функциональных клавиш или ввода верхнего регистра.
Пример: Использование xmodmap
xmodmap
— это утилита, которая позволяет изменять текущую карту клавиатуры на X-сервере. Она полезна для переназначения клавиш на постоянной или временной основе.
-
Создание файла переназначений:
Сначала создайте файл, например,
swapkeys
, и добавьте в него следующий код:remove Lock = Caps_Lock keycode 0x42 = Escape keycode 0x9 = Caps_Lock add Lock = Caps_Lock
Эти строки удаляют действие блокировки с Caps Lock, переназначают его на Escape и наоборот.
-
Применение изменений:
После создания файла, примените переназначения, используя команду:
xmodmap swapkeys -display :0
Здесь предполагается, что ваш дисплей имеет идентификатор
:0
. -
Автоматизация запуска в i3:
Чтобы данное переназначение применялось автоматически при старте i3, добавьте следующую строку в ваш файл конфигурации i3 (
~/.config/i3/config
):exec --no-startup-id xmodmap /путь/к/вашему/swapkeys
Пример: Использование setxkbmap
setxkbmap
— это команда, которая специфическим образом изменяет настройки клавиатуры на уровне X-сервера и часто используется для более глубоких изменений раскладки.
-
Команда для обмена Caps Lock и Escape:
Для выполнения той же задачи через
setxkbmap
, добавьте следующую строку в файл конфигурации i3:exec --no-startup-id setxkbmap -option caps:swapescape
Эта команда изменяет действие клавиш на уровне системы, обеспечивая прямую замену функций Caps Lock и Escape на аппаратном уровне.
-
Автоматизация запуска:
Как и в случае с
xmodmap
, эта команда будет запускаться каждый раз при старте i3, что гарантирует сохранение настроек после перезагрузки системы.
Заключение
Настройка поведения клавиш в i3 требует некоторой работы с конфигурационными файлами и понимания CLI-инструментов, но дает значительные преимущества в гибкости и функциональности. Выбор между xmodmap
и setxkbmap
зависит от ваших предпочтений и сценариев использования. xmodmap
хорош для временных переназначений и более мелких изменений, в то время как setxkbmap
позволит более глубоко и постоянно изменять раскладку клавиатуры.
В случае возникновения проблем всегда можно вернуть изменения, отредактировав или удалив соответствующие строки в конфигурационном файле i3. Советуем делать бэкапы перед внесением значительных изменений в вашу систему, чтобы избежать потери данных или нежелательных последствий.