Изменение назначения клавиш модификаторов. Не лезем в ядро

После установки бинарного дистрибулива, стало просто лень заниматься перекомпиляцией ядра с патчем, указанным в предыдущем поcте. Особенно, если на задворках сознания маячит мысль о том, что можно обойтись 20 строчными файликами конфигов. Схема переназначения сохраняется:

Caps Lock -> Shift 
Shift -> Caps Lock

LCtrl -> LWin 
LWin -> LAlt 
LAlt -> LCtrl

RCtrl -> RWin 
RWin -> RAlt 
RAlt -> RCtrl

Для X'ов создаётся файл в корне домашней директории ~/.xmodmaprc. После внимательного чтения man xmodmap получается нечто вроде этого:

remove Lock      = Caps_Lock
remove Shift     = Shift_L

keysym Caps_Lock = Shift_L
keysym Shift_L   = Caps_Lock

add Lock         = Caps_Lock
add Shift        = Shift_L

remove Control   = Control_L
remove Mod4      = Super_L
remove Mod1      = Alt_L

keysym Control_L = Super_L
keysym Super_L   = Alt_L
keysym Alt_L     = Control_L

add Control      = Control_L
add Mod4         = Super_L
add Mod1         = Alt_L

remove Control   = Control_R
remove Mod4      = Super_R
remove Mod1      = Alt_R

keysym Control_R = Super_R
keysym Super_R   = Alt_R
keysym Alt_R     = Control_R

add Control      = Control_R
add Mod4         = Super_R
add Mod1         = Alt_R

Если работать в терминале, без X сервера, то нужно добавить ещё один конфигурационный файл ~/.config/swap.kmap. После прочтения http://superuser.com/questions/290115/how-to-change-console-keymap-in-linux удалось составить следующий конфиг:

keymaps 0-2,4-6,8-9,12

keycode 42  = Caps_Lock
keycode 58  = Shift

keycode 29  = 
keycode 125 = Alt
keycode 56  = Control

keycode 100 = Control
keycode 126 = AltGr
keycode 127 = 
keycode 97  = 

Пост перенесён из старого блога.

Comments

comments powered by Disqus