Моя кнопка пробела больше не работает, поэтому я хочу изменить ее поведение на другую клавишу, чтобы имитировать нажатие клавиши пробела, так как связать пробел с правой клавишей alt / windows ???
Чтобы внести серьезные изменения в клавиатуру, включая переназначение символов и изменение модификаторов, вам нужно использовать утилиту xmodmap - см. man xmodmap
. Есть несколько способов выполнить изменения:
либо из командной строки
xmodmap -e "your commands"
, либо записать команды в файл, например .xmodmaprc, затем выполните его в элементах входа в систему или в .bashrc с помощью
xmodmap .xmodmaprc
Если вы используете файл ~ / .xmodmap, он будет автоматически выполнен при входе в систему.
Alt и Super (ключ Windows) являются модификаторами и ведут себя специально для системы. Ключи должны быть отключены от их модификатора, прежде чем вы сможете переназначить что-либо еще Пробел считается обычным ключом.
Откройте окно терминала (Ctrl-Alt-T
, если вы не знакомы с ним).
Запустите команду xmodmap -pm
, чтобы получить список клавиш-модификаторов в вашей системе. В выводе самый левый столбец - это список модификаторов, доступных для системы. В других столбцах перечислены ключи, связанные с этими модификаторами, в виде пар keysym (keycode)
. Например, одна строка моего вывода -
mod1 Alt_L (0x40), Alt_R (0x6c), Meta_L (0xcd)
. Коды клавиш соответствуют физическим клавишам и могут (гипотетически) различаться между клавиатурами. KeySym - это имя ключа. Если ключ является печатным символом, имя соответствует напечатанному символу.
Теперь у вас есть то, что вам нужно, чтобы удалить ключ из соответствующего модификатора. Я собираюсь притвориться, что мы работаем с 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
Удачи!