DONBASS писал(а): ↑17.05.2016 13:27
straf писал(а): ↑17.05.2016 12:37
remove Lock = Caps_Lock
remove Control = Control_L
keysym Control_L = Caps_Lock
keysym Caps_Lock = Control_L
add Lock = Caps_Lock
add Control = Control_
Думаю так будет правильнее:
xmodmap -e "remove Lock = Caps_Lock"
xmodmap -e "remove Control = Control_L "
И тд. Насчет кейкода то там, немного иначе. В терминале набираем xev и потом нажимаем на нужную нам клавишу. Увидим много всего, нас интересует. что выдало в keycode. К примеру выдало: keycode 63 тогда команда будет такая: (не нужно брать за основу пишу по памяти). xmodmap -e "keycode 63 = Caps_Lock"
Ругается:
$ xmodmap -e "remove Lock = Caps_Lock"
xmodmap: commandline:1: bad keysym in remove modifier list 'Caps_Lock', no corresponding keycodes
xmodmap: 1 error encountered, aborting.
с этими командами у меня вовсе ctrl пропал.
на гуглил
с этим вариантом Caps_Lock пропадает.
полчаса варианты подбирал. или ругается или не работает: Caps_Lock
bad keysym in remove modifier list 'Caps_Lock', no corresponding keycodes, keysym просто слово используемое для обозначения типа клавиши. Позволяет программам не оперировать с кодами напрямую, а работать с клавиатурой по названиям клавиш. Давайте более подробно распишу.
И так видим:
nick@calculate ~ $ xmodmap
xmodmap: up to 4 keys per modifier, (keycodes in parentheses):
shift Shift_L (0x32), Shift_R (0x3e)
lock Caps_Lock (0x42)
control Control_L (0x25), Control_R (0x69)
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
mod2 Num_Lock (0x4d)
mod3
mod4 Super_L (0x85), Super_R (0x86), Super_L (0xce), Hyper_L (0xcf)
mod5 ISO_Level3_Shift (0x5c), Mode_switch (0xcb)
nick@calculate ~ $
Допустим нам нужен левый control, узнаем его кейкод:
KeyRelease event, serial 40, synthetic NO, window 0x5800001,
root 0x295, subw 0x0, time 31341198, (-818,476), root:(389,505),
state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
Мой кейкод левой клавиши контрол: 37. И теперь даем команду: xmodmap -e 'keycode 37 = Caps_Lock' Все, теперь если я буду нажимать левый контрол то автоматически будет срабатывать капс лок. Как вариант можно еще использовать команду: xmodmap -e 'clear control' очистит модификатор (дабы избежать ошибок) и уже потом: xmodmap -e 'add control = Caps_Lock' и уже потом можно попробовать добавить в ~/.xmodmap нашу xmodmap -e 'keycode 37 = Caps_Lock' или можно попробовать xmodmap -e 'add control = Caps_Lock' . Добавляем в .xinitrc чтобы все это стартовало вместе с иксами!