Linux « Переназначение клавиш

Дистрибутив Debian Squeeze. Появилось желание переназначить клавиши таким образом:
  1. Control на Caps Lock, а Caps Lock соответственно на Control
  2. Mod4 на Return, а Return соответственно на Mod4

Подскажите пожалуйста как это реализовать. Может быть через правку ~/.xmodmaprc? Если да, то что прописать?

1 ответов


Можно перепаять кнопки местами, руководствуясь этой схемой :)


Здравствуйте.

Перепаять - возможно и хорошо, но это не "unix way". Для переназначения можно воспользоваться утилитой xmodmap. Данная утилита входит в стандартный дистрибутив практически любой операционной системы, основанной на ядре Linux. Например, для того, чтобы поменять местами левый Ctrl и Caps Lock нужно в домашней директории создать файл .Xmodmap и добавить в него строки:


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_L
 
применить изменения можно командой

xmodmap ~/.Xmodmap
 
Изменения вступят в силу автоматически после перезагрузки X сервера. В случае, если изменения не вступили в силу - нужно подредактировать сценарий загрузки X сервера. Например, можно добавить строку

{ sleep 5; xmodmap ~/.Xmodmap; } &
 
в сценарий загрузки X. Она будет работать, но я не уверен в грамотности этого решения. Сценарий загрузки X сервера, как правило, расположен в файле

/etc/X11/xinitrc

Вы также можете создать свой локальный файл, содержащий сценарий загрузки в файле

~/.xinitrc

Локальный файл со сценарием загрузки - это более правильный способ.