Как перенастроить раскладку клавиатуры в Linux, чтобы:
Caps Lock становится клавишей-модификатором для цифровой раскладки клавиатуры на месте
M<>JKLUION
.;
становится мертвой клавишей, поэтому нажатие на нее, а затем еще одна клавиша производит произвольный символ, который я собираюсь определить.Несколько конкретных ключей переназначены (например,
1 !
перевернут и становится! 1
, например).
Что я пробовал
Я провел весь день, пытаясь настроить раскладку клавиатуры в NixOS. Я прочитал всю справочную страницу по "setxkbmap" и более трех огромных учебных пособий в Интернете, включая этот, этот, этот. Некоторые из этих руководств не только неполные, но и явно ожидают знаний о вещах, которых нет в руководстве и которые не совсем очевидны. Например (от человека xmodmap):
-display This option specifies the host and display to use.
Он ни в коем случае не определяет, что такое "дисплей". Или в этом уроке:
Чтобы приблизиться к этим двум задачам, давайте создадим файл символов в ~/.xkb/symbols/xkbtest и добавим в него две строфы:
Который продолжает цитировать фрагмент с синтаксисом, совершенно чуждым и необъяснимым. Это всего лишь две тонны недостающих информационных материалов.
Затем я решил сделать это хакерским способом. Я скопировал файл XKB /etc/X11/xkb/symbols/us
в свою домашнюю папку и открыл его с помощью VIM. Проблема в том, что это файл длиной более 1500 строк с множеством различных раскладок клавиатуры и синтаксисов / символов, которые неочевидны в отношении того, что они делают. Я даже не знаю, что там активно.
Я пробовал xmodmap, но, как уже говорилось, страницы руководства не объясняют, как делать то, что мне нужно, и учебники, которые я смотрел.
Я не понимаю, почему это должно быть так сложно. Как на OSX, так и на Windows я решил проблему за несколько минут с помощью редакторов UI-клавиатуры, таких как Ukelele.