Существует несколько инструментов, которые могут это сделать, например КМонад, Инструменты перехвата, и ключ.
Я добился полного успеха с ключ
под Wayland, так что я описываю, что я сделал с этим. предлагаю прочитать короткометражку README для вдохновения. Демон может делать гораздо больше, чем то, что используется здесь.
Настоящее решение делает то, что я хочу, но обходит использование AltGr
объезд. Это лечит CapsLock
как Контроль
везде, кроме ч , дж , к , л
, который меняется на клавиши со стрелками.
1. УСТАНОВКА
я строю ключ
из источника, так как это было легко. Следующие строки сначала устанавливают зависимости (включая компилятор C), загружают исходный код, собирают и устанавливают его, включают его как службу, запускают и запускают при запуске.
Когда это будет сделано, он сообщит вам, где он установлен, чтобы вы могли удалить его для удаления. Вы можете удалить исходный код после установки.
sudo apt установить cmake libudev-dev
git клон https://github.com/rvaiya/keyd
компакт-диск
сделать && sudo сделать установить
sudo systemctl включить keyd && sudo systemctl start keyd
2. НАЙДИТЕ НАЗВАНИЕ КЛАВИАТУРЫ, КОТОРУЮ ХОТИТЕ ПЕРЕНАПИСАТЬ
Вы должны найти название своей клавиатуры, чтобы мы могли сделать переназначение именно для этого. Бег
судо ключ -м
и нажмите несколько клавиш. Он покажет название клавиатуры и нажатые клавиши. Запишите имя. Мой был Клавиатура AT Translate Set 2
.
3. СОЗДАЙТЕ ФАЙЛ КОНФИГУРАЦИИ
Где угодно, создайте файл конфигурации с любым именем. Мы перенесем его позже. Допустим, вы используете ~/my_keyboard.conf
.
В нем поместите следующее. # - это комментарии, которые объясняют определенное поведение (обновлено для версии 2.1.1. Надеюсь, я не допустил ошибок):
[идентификаторы]
*
[главный]
### ОСНОВНОЙ СЛОЙ
# Заставить Capslock активировать второй слой:
Capslock = слой (движение_слой)
### ВТОРОЙ СЛОЙ (называемый "movement_layer")
# Определяем новый слой, который пока активен
# по умолчанию каждая клавиша обрабатывается так, как если бы был нажат Control,
# (":C" означает, что слой должен наследовать слой управления),
# и отменяет это значение по умолчанию только для h, j, k и l, что
# сопоставляются с направлениями.
[уровень_движения:С]
ч = слева
J = вниз
к = вверх
л = справа
# В общем, в основном слое по умолчанию все стандартно, кроме
# при нажатии CapsLock активируется второй слой.
# Когда активен второй слой, все, кроме h, j, k, l
# действует так, как будто управление удерживается --- например, c копирует и v вставляет,
# чего мы хотим, удерживая CapsLock.)
4. КОПИРОВАТЬ И ПЕРЕИМЕНОВАТЬ ФАЙЛ КОНФИГУРАЦИИ И ПЕРЕЗАПУСТИТЬ KEYD
Затем мы копируем конфигурацию в нужное место и назовем ее правильно, а именно в соответствии с клавиатурой, которую мы хотим переназначить.
sudo cp ~/my_keyboard.conf /etc/keyd/AT\ Translated\ Set\ 2\ keyboard.conf
Затем мы перезапускаем ключ
поэтому он загружает новую конфигурацию:
sudo systemctl перезапустить ключ
Теперь ты в деле :)
5. СОВЕТ: СОЗДАЙТЕ Псевдоним, чтобы скопировать конфигурацию и перезапустить ключ.
В итоге я много играл с конфигурационными файлами. Я отредактировал их в подкаталоге моей домашней папки, затем скопировал их и перезапустил.
Чтобы сделать это менее хлопотным, в ~/.bash_aliases
, Я добавил
псевдоним rekeyd='sudo cp ~/my_keyboard.conf /etc/keyd/AT\ Translated\ Set\ 2\ keyboard.conf && sudo systemctl restart keyd'