Как я могу изменить то, что набирается при нажатии клавиши? [dубликат]

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

7
задан 2 May 2012 в 20:37

2 ответа

Чтобы внести существенные изменения в клавиатуру, включая переназначение символов и изменение модификаторов, вам нужно использовать утилиту 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

Удалите пробел [ ! d14]

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

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

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

keysym Alt_R = space

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

keycode 0x6c = space

Удачи!

8
ответ дан 17 July 2018 в 19:15

Чтобы внести существенные изменения в клавиатуру, включая переназначение символов и изменение модификаторов, вам нужно использовать утилиту 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

Удалите пробел [ ! d14]

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

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

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

keysym Alt_R = space

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

keycode 0x6c = space

Удачи!

8
ответ дан 23 July 2018 в 20:00

Другие вопросы по тегам:

Похожие вопросы: