Условная смена клавиш на клавиатуре (Debian, X11, KDE Plasma)

Условная смена клавиш на клавиатуре (Debian, X11, KDE Plasma)

У меня на Dell Latitude такая раскладка клавиатуры

Раскладка клавиатуры

Это действительно изматывает мое снаряжение, что Homeи Endклавиши сопоставлены с составным Fnключом. Так что мне удалось поменяться PageUpс Homeи PageDownс End, добавив это к /usr/share/X11/xkb/symbols/de(на самом деле, это немецкий вариант)

xkb_symbols "basic" {
  ...
  key <HOME> {    [  Prior        ]   };
  key <PGUP> {    [  Home         ]   };
  key  <END> {    [  Next         ]   };
  key <PGDN> {    [  End          ]   };
  ...
}

Работает как и ожидалось. Однако довольно часто я переключаюсь между своим ноутбуком как таковым и рабочим столом с док-станцией и полноценной клавиатурой, и этот хак раздражает.

Манипуляции с файлами символов xkb требуют перезагрузки (или, по крайней мере, перезапуска среды рабочего стола). Есть ли возможность переключить поведение во время выполнения? Может быть, даже автоматизировано, как хук udev, видящий док-станцию ​​USB-C?

решение1

Вы можете переключаться между раскладками с помощью setxkbmap. Например, я использую раскладку Дворака, применил ваши изменения к своей локальной /usr/share/X11/xkb/symbols/deи переключился на немецкую раскладку:

setxkbmap de

Я проверил, работает ли PGUP как Home, работает. Затем я переключился обратно на dvorak:

setxkbmap dvorak

Если вы хотите переключиться между исходным макетом и вашим пользовательским макетом, я думаю, лучший способ — удалить 4 строки, которые вы показали в своем вопросе, из исходного deфайла макета и создать новый файл пользовательского макета, скажем, /usr/share/X11/xkb/symbols/de-modified с добавленными изменениями. Для переключения между 2 макетами не потребуется перезагрузка и перезапуск X:

setxkbmap de # PGUP wouldn't work as home
setxkbmap de-modified # PGUP would work as home

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