Как сопоставить ключ с другим на моей клавиатуре?

7

Моя кнопка пробела больше не работает, поэтому я хочу изменить ее поведение на другой ключ, чтобы имитировать нажатие кнопки пробела, поэтому, как нарисовать клавишу пробела вправо Alt / Windows-ключ ???

    
задан Black Block 02.05.2012 в 15:37
источник

1 ответ

8

Чтобы внести существенные изменения в клавиатуру, включая переназначение символов и изменение модификаторов, вам нужно использовать утилиту xmodmap - см. man xmodmap . Есть несколько способов выполнить изменения:

  • либо из командной строки

    xmodmap -e "your commands"
    
  • или напишите команды в файл, например .xmodmaprc, затем выполните его в своих элементах входа или в вашем .bashrc с помощью

    xmodmap .xmodmaprc
    

    Если вы используете файл ~ / .xmodmap, он будет выполнен автоматически при входе в систему.

Alt и Super (ключ Windows) являются модификаторами и ведут себя специально для системы. Клавиши необходимо будет отключить от их модификатора, прежде чем вы сможете переназначить что-нибудь еще. Пробел считается регулярным ключом.

Unmapping the modifier

Откройте окно терминала ( Ctrl-Alt-T , если вы не знакомы с ним).

Запустите команду xmodmap -pm , чтобы получить список ключей-модификаторов в вашей системе. В выводе самый левый столбец - это список доступных для системы модификаторов. Другие столбцы перечисляют ключи, связанные с этими модификаторами, как пары на keysym (keycode) . Например, одна строка моего вывода

mod1        Alt_L (0x40),  Alt_R (0x6c),  Meta_L (0xcd)

Коды клавиш соответствуют физическим клавишам и могут (гипотетически) различаться между клавиатурами. Клавиша - это «имя» ключа. Если ключ является печатным символом, имя соответствует напечатанному символу.

Теперь у вас есть то, что вам нужно, чтобы отменить ключ из его соответствующего модификатора. Я собираюсь притвориться, что мы работаем с Alt_R.

Запустите команду xmodmap (одним из методов вверху)

remove mod1 = Alt_R

Удалите пробел

Далее нам нужно знать, что такое пробел. Запустите xmodmap -pke в окне терминала. Это будет печатать, на что сопоставляется каждый ключ на клавиатуре. Где-то в том, что четыре или пять экранов - это ссылка на пробел. Нам нужно его имя, чтобы сопоставить ему ключ.

Предупреждение о спойлере: пробел называется space

У нас все еще есть ключ с именем Alt_R, но он ничего не делает. Мы можем использовать его имя для переназначения его в пробел. Запустите эту команду xmodmap:

keysym Alt_R = space

Это может произойти, если вы проверите это, что вы уже изменили имя Alt_R. Возможно, вы случайно перепечатали его на букву «a». Вы не хотите переназначать «что-то», потому что вам все еще нужен один из ключей с этим именем. Если вы закончите в этой ситуации, вы все равно можете ссылаться на Alt_R по его коду. Помните, что на моей клавиатуре это 0x6c. Это может быть иначе для вас. Вы можете использовать эту команду xmodmap для ее изменения:

keycode 0x6c = space

Удачи!

    
ответ дан pconley 16.05.2012 в 07:22