Как я могу переназначить клавиши клавиатуры?

Я ищу общие инструкции по переназначению ключей.

Может кто-нибудь сказать мне, как переназначить F9 на PrtScr и F10 на кнопку ScrollLock?

Я просмотрел все темы здесь, и ни одно из предложений не сработало.

Я использую шведскую настройку клавиатуры и Ubuntu 12.04.

3 ответа

Этот ответ был в основном составлен с использованием информации из первых трех шагов этого вопроса Ask Ubuntu и этой ветки форумов Ubuntu, на которую он ссылается / ссылается. Этот другой ответ Ask Ubuntu был очень полезен для. Так что все заслуги перед NES, llazarte, bodhi.zazen и Argusvision.

Чтобы просто поменять две функции клавиш: Из терминала запустить xev а затем нажмите F9, который даст что-то вроде

Окно станции, показывающее событие F9 KeyPress

Делать то же самое для PrtSc не дал никакого вывода в xev для меня (или я не смог найти "событие KeyPress"), поэтому я воспользовался советом Argusvision по использованию пользовательских сочетаний клавиш во всех настройках, но сделал это для того, чтобы отключить PrtSc в качестве кнопки скриншота, переназначив Shift + Alt, затем попытался нажать снова, что дало мне код 107 для PrtSc в xev вот так

Окно терминала, показывающее событие PrtSc KeyPress

Повторение процесса для всех четырех ключей дало мне

  • F9 = код ключа 75
  • PrtSc = код ключа 107, действие Печать
  • F10 = код ключа 76
  • Scroll Lock = код клавиши 127, действие Пауза

Чтобы изменить функцию клавиш, нам нужно знать код клавиши нажатой НОВОЙ клавиши и "действие" СТАРЫХ или существующих клавиш для этой функции.

Теперь, когда у нас есть коды клавиш для определения ключей, мы теперь заставляем систему делать то, что мы хотим, используя xmodmap и, как мы знаем, F9 имеет "код ключа 75", а PrtSc имеет действие "Печать", все что нам нужно сделать, это

xmodmap -e "keycode 75 = Print"

заставить клавишу F9 вести себя так, как будто нажата клавиша PrtSc. т.е. код клавиши остается прежним, но нажатие клавиши F9 приведет к другим результатам.

С помощью xev с помощью Scroll Lock также дал

Окно терминала, показывающее событие Scroll Lock KeyPress

который подтверждает, что "действие" для клавиши Scroll Lock - "Pause", поэтому F10 действует как Scroll Lock, пытаясь

xmodmap -e "keycode 76 = Pause"

должен дать желаемые результаты.

Это происходит до тех пор, пока вы не выйдете из системы или не отключитесь и т.д., так что мы должны сделать после подтверждения команд

xmodmap -e "keycode 75 = Print"
xmodmap -e "keycode 76 = Pause"

Даем желаемый результат, перебираем SysRec, который модифицирует PrtSc и меняем местами другие кнопки, чтобы у нас не было нескольких экземпляров одного и того же действия клавиши. Добавление

xmodmap -e "keycode 107 mod1 = F9 Sys_Req"

следует поменять местами F9, где PrtSc снова хранит измененный SysReq (Alt + PrtSc), который мы можем использовать xev чтобы помочь проверить это.

Менять местами кнопки Scroll Lock и F10 проще

xmodmap -e "keycode 127 = F10"

Убедившись, что при запуске

xmodmap -e "keycode 75 = Print"
xmodmap -e "keycode 107 mod1 = F9 Sys_Req"
xmodmap -e "keycode 76 = Pause"
xmodmap -e "keycode 127 = F10"

действительно делает то, что предназначено, все, что осталось сделать, это заставить это произойти во время запуска. Чтобы сделать это запустить

xmodmap -pke|egrep  -e '(F9|Print)'

который дал мне

еще немного текста

нас интересуют только коды клавиш 75 и 107. Сделайте то же самое для

xmodmap -pke|egrep  -e '(F10|Pause)'

который дал мне

еще больше текста

и нас интересуют только коды клавиш 76 и 127.

Создайте новый текстовый документ с вашим любимым текстовым редактором, скопируйте и вставьте соответствующую информацию

keycode  75 = Print NoSymbol Print
keycode 107 = F9 Sys_Req F9 Sys_Req
keycode  76 = Pause NoSymbol Pause
keycode 127 = F10 NoSymbol F10

называя файл как .Xmodmap и сохранение его в домашнем каталоге позволит вам выполнить изменения, просто войдя в систему после перезагрузки.

Для более новых версий Ubuntu Xmodmap работает, но после перезагрузки вы теряете сопоставления клавиш! Вместо этого я отредактировал файл xbd (/ usr / share / X11 / xkb / symbols / pc).

В этом случае вы бы добавили следующие записи:

key <FK09> { [Print] };
key <FK10> { [Scroll_Lock] };

Затем очистите кэш настроек xkb:

rm -rf /var/lib/xkb/*

После перезагрузки ваши ключи отображаются в основном. Если вам нужна дополнительная помощь, см. Мой пост о переназначении ключей в Ubuntu 15.04.

Идти к System Settings > keyboard > Custom Shortcuts, Здесь вы можете назначить команду для любой клавиши или набора клавиш. Нажмите кнопку добавления (+). В появившемся окне Name = Print Screen; Command = gnome-screenshot, После того, как вы его создали, нажмите на строку справа от имени, где написано "Отключено". Это должно изменить его на "Новый ускоритель". Просто нажмите F9.

Все еще ищу блокировку прокрутки.

Немного посмотрев, я нашел ответ для блокировки прокрутки. Я начал этот ответ с того, что нашел здесь. Вы должны быть в состоянии применить его к любому набору ключей, используя xmodmap из терминала. Изменить: Вы также можете прочитать больше о Xmodmap здесь

Посмотрите на вывод xmodmap -pke | grep F10,
Мой это:

keycode  76 = F10 F10 F10 F10 F10 F10 XF86Switch_VT_10  

Это означает, что мой ключ F10 keycode 76, Ваш может отличаться, так как вы используете другой макет.

Поэтому я должен иметь возможность назначить блокировку прокрутки для F10 с помощью следующей команды:

xmodmap -e "keycode 76 = Scroll_Lock"  

Вам нужно будет вставить "код ключа", который вы нашли для своей клавиши F10.

Вы также можете просматривать man xmodmap а также xmodmap --help для дополнительных опций.
Например, xmodmap -pke перечисляет вашу таблицу раскладок в виде выражений. Таким образом, вы также можете найти выражения, назначенные другим клавишам.

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