Я ищу способ переназначения определенных ключей в Ubuntu.
т.е.
Я хотел бы изменить PgUpна Homeили PgDownна End.
Существует ли встроенная команда или инструмент переназначения ключей в Ubuntu / GNOME?
Я ищу способ переназначения определенных ключей в Ubuntu.
т.е.
Я хотел бы изменить PgUpна Homeили PgDownна End.
Существует ли встроенная команда или инструмент переназначения ключей в Ubuntu / GNOME?
xmodmap
депортируется! чтобы получить общесистемную настройку, которую вы должны использоватьxkb
. Поэтому отредактируйте языковой файл,/usr/share/X11/xkb/symbols/
чтобы добавить туда свои изменения. См. Askubuntu.com/a/898462/34298Ответы:
Примечание: с 2013 года Ubuntu и его производные больше не используют
xmodmap
, а используютxkb
. Для получения дополнительной информации см. Этот ответ . Ответ ниже больше не актуален для текущих выпусков.Для переназначения определенных ключей вам понадобятся два инструмента. Первый xev (инструмент командной строки) и второй xmodmap (также инструмент командной строки). Оба должны быть доступны в Ubuntu без дополнительной их установки.
Запустите окно терминала и запустите
xev
. Теперь он активен и ждет, когда вы нажмете клавишу. Затем нажмите клавишу, поведение которой вы хотите изменить. то есть PgUp.xev
выведет некоторую информацию о нажатой клавише. Третья строка важна. Это должно выглядеть примерно так:в этом примере
Prior
это имя поведения, которому в данный момент назначен ключ, цифровой код ключа - это внутренний идентификатор для распознавания ключа. Теперь сделайте это с другим ключом, т.е. PgDownдайте этот выводЗдесь снова интересная часть для нас
keycode 115
иNext
- название поведения.Теперь, когда вы хотите поменять местами два ключа, используйте
xmodmap
.Это меняет клавишу с кодом 110 на клавиатуре на действие
Next
. Это довольно просто.Обратите внимание, что если отображаемая клавиша имеет другое значение при использовании с Shiftклавишей (например, для английских раскладок клавиатуры, Shift+ 2ставит кавычки), то вы можете просто перечислить вторичную команду после первой. Например, если вы хотите, чтобы ключ с кодом 53 отображался как обычная обратная косая черта, но при использовании символа shift, вы можете сделать так:
Дополнительная информация: Последовательность этих отображений Key, Shift+Key, mode_switch+Key, mode_switch+Shift+Key, AltGr+Key, AltGr+Shift+Key. Чтобы пропустить столбец используйте
NoSymbol
. Кроме того, здесь представлен полный список всех ключевых символов.Примечание. Эти изменения относятся только к активному сеансу X и будут потеряны после перезагрузки. Если вы хотите сохранить изменения навсегда, вы должны выполнить следующие команды после указанных выше:
(он создает файл с именем
.Xmodmap
в вашем домашнем каталоге (~
))Затем вы должны создать файл с именем
.xinitrc
в вашем домашнем каталоге, куда вы помещаете командуxmodmap .Xmodmap
.Теперь вы можете изменить
.Xmodmap
и запуститьxmodmap .Xmodmap
из консоли, чтобы увидеть изменения немедленно. Изменения в.Xmodmap
сохранятся.Источник: Ubuntu Foruns
Бонусные вещи:
Если переназначаемая клавиша имеет различное поведение в зависимости от состояния (например, как клавиши на цифровой клавиатуре зависят от NumLock), вам просто нужно сделать,
xmodmap -pm
чтобы получить список модификаторов, а затем сделать:xmodmap -e "KEYCODE MODIFIER = behaviour behaviour_with_modifier"
Предположим, например, что вы хотите получить точку вместо запятой на цифровой клавиатуре (полезно для большинства программистов), но вы хотите сохранить поведение «delete», когда NumLock выключен.
mod2
, потому чтоxmodmap -pm
говорит нам, чтоmod2
естьNum_Lock
, другие имена получены путем нажатия клавиш вxev
.источник
xev
не может отловитьFn
нажатия клавиш-event
флаг в Ubuntu 12.04. Выдает ошибку и не упоминает «событие» вman xev
.Если вы пытаетесь переместить клавишу Shift, есть несколько дополнительных шагов:
источник
У меня только что была запоздалая мысль ... Я думаю, что вы можете иметь в виду "переотображение" что-то совершенно другое ... но я оставлю свой ответ как есть ... (Я не знаю, как переназначить один ключ для вести себя как другой)
ОБНОВЛЕНИЕ : моя «запоздалая мысль» была подтверждена; (Я ответил на неправильный вопрос:) ... пожалуйста, посмотрите ответ вики сообщества NES (принятый выше).
Существует два основных способа
переназначитьпривязку ключа.(ключ может использоваться для разных вещей в разных приложениях / окнах)
(ключ имеет одинаковую функцию во всех окнах)
Для методов «локально для программы» иногда есть способ изменить привязки клавиш, предлагаемые самим приложением ... например.
Firefox
имеет аддон под названием keyconfig ... для получения дополнительной информации см. этот пост MozillZineБольшинство программ Ubuntu основаны на Gnome, и есть специальная утилита для изменения привязки клавиш для любого пункта меню этих приложений Gnome ... Это называется
Editable Menu Accelerator
... Это очень «обидчивый» инструмент, но довольно мощный. Вы можете включить запустив егоgconf-editor
(через терминал или Alt + F2) ... перейдите кdesktop
-gnome
-interface
и выберитеcan_change_accels
.... Вы можете затем изменить виртуальные элементы на все, что вам нравится (для программы / окна) ... Я предлагаю вам отключить это как только вы сделали то, что вам нужно ..В противном случае вы можете настроить глобальные горячие клавиши. Я использую программу под названием xbindkeys , и есть также опция, доступная через Главное меню - Настройки, называемая
Keyboard Shortcuts
Если вы используете xbindkeys, вам нужно будет добавить его в «Startup Applications» (Главное меню - «Настройки») ... Также (по предложению Стефано Палаццо) я ранее написал более подробное описание xbindkeys в ответе на этот вопрос. страница аскубунту
источник
xdotool
, посмотрите страницу руководства, я использовал ее для решения этой проблемы .Вот как я пытался переключить отображение ENTERключа на SHIFTключ (и наоборот):
ДОКЛАДЫ:
ДОКЛАДЫ:
ДОКЛАДЫ:
(игнорировать следующие пятьдесят строк или около того)
Важна третья строка каждого нажатия клавиши:
ОБРАТИТЕ КАРТУ:
СОХРАНИТЕ РЕЗУЛЬТАТЫ:
ДОБАВЛЯТЬ
Основная проблема состояла в том, что обращение НЕ работало. ENTERКлюч был отображен на SHIFT_Rключ; но SHIFT_Rключ не был сопоставлен с ENTERключом. Пойди разберись.
источник
Чтобы сделать глобальные переопределения независимо от X, вы можете вместо этого использовать console-setup (5) .
В моем случае я хотел переназначить Caps Lockключ D, так как мой Dключ не работает :)
Сначала я использовал dumpkeys (1), чтобы получить шаблон для отображения, в случае с Dключом, интересным битом является отображение для кода клавиши 32 (на моей клавиатуре); Обратите внимание, что в шаблоне grep есть два пробела!
Для того, чтобы изменить карту, чтобы применить к Caps Lock(код клавиши 58 на моей клавиатуре) вместо
Теперь это читает
Чтобы добавить этот переназначение на карту по умолчанию, его просто нужно добавить в включаемый файл переназначения для настройки консоли
и настройка консоли должна быть перенастроена (пропуская вопросы с низким приоритетом с помощью
-phigh
)Теперь переназначение должно быть завершено и автоматически загружаться при загрузке.
источник
Я провел целый день, пытаясь создать ярлык для
Ctrl+Pageup
.Я сначала попробовал,
xmodmap
но это не может генерировать события модификатора. Поэтому невозможно создать ярлык, который генерирует, например,Control
событие.Я тогда попробовал
xbindkeys
сxmacro
. Это работает, ноxbindkeys
не может захватить некоторые комбинации клавиш в моей системе, такие какAlt + ___
.Поэтому я, наконец, использовал собственные сочетания клавиш Unity -> Custom Shortcuts для настройки своего сочетания клавиш.
И вместо этого
xmacro
я теперь использовалxvkbd
программу для генерации событий клавиатуры, но это всего лишь личное предпочтение. Обаxmacro
иxvkbd
работают практически одинаково. Еще один совет - добавить параметр задержкиxmacro
илиxvkbd
гарантировать, что события не будут потеряны.источник
Для меня AutoKey из Software Center работал лучше всего. Он имеет интуитивно понятный графический интерфейс, чтобы добавить новую привязку, нажмите New -> Phrase и
<left>
(список специальных клавиш здесь ).источник
Super+C
иSuper+V
дляCtrl+C
иCtrl+V
. Просто идеальное решение при использовании Ubuntu через VirtualBox на MacSuper+V
«показ списка уведомлений», зайдите в Настройки -> Устройства -> Клавиатура и отключите его тамЕсли вам нужно переназначить ключ только для конкретной программы, я только что добавил эту функцию в hax11.
Чтобы сделать это с помощью hax11, откройте файл конфигурации профиля программы в разделе
~/.config/hax11/profiles
(например~/.config/hax11/profiles/usr\lib\firefox\firefox
) и добавьте:источник