Как принудительно использовать общие сочетания клавиш / макросов для всей системы?

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

Я хочу в основном переназначить свою клавиатуру по всей системе, а не только в конкретном окне приложения. То есть, когда я переназначаю alt + j = Down , я хочу, чтобы alt + j был таким же, как нажатие клавиши «вниз», насколько это касается среды рабочего стола.

Ярлыки, которые я использую, оптимизированы для того, чтобы держать руки в естественном положении близко к домашнему ряду в любое время:

 # Note how # system-wide remapping of *single* keys is possible with xmodmap. Caps Lock --> Escape Escape --> Caps Lock # Switch caps lock with # the more useful escape key. # As far as *all* applications # are concerned, pressing caps lock # is actually pressing Escape. # However, I've not found a good way do the same for multiple keys: alt + space --> Right Arrow alt + Escape --> Enter shift + alt + h --> Backspace alt + x --> Delete shift + alt + l --> Delete ctrl + alt --> Alt # Default alt functionalities # remapped to ctrl + alt 

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

Первая почти успешная попытка решения:

Использование xbindkeys для вызова xvkbd (x виртуальная клавиатура). Это образец из моего .xbindkeysrc :

 # hjkl Movement ################### "xvkbd -xsendevent -text "\[Down]"" alt + j "xvkbd -xsendevent -text "\[Up]"" alt + k "xvkbd -xsendevent -text "\[Left]"" alt + h "xvkbd -xsendevent -text "\[Right]"" alt + l 

Проблемы:

alt ключ обычно является ключом по умолчанию для вызова меню приложения (например, alt + F выдает раскрывающееся меню * F * ile в большинстве приложений).

Кроме того, это, похоже, работает с некоторыми приложениями, в то время как другие, похоже, игнорируют его.

xbindkeys на самом деле не переназначает клавиатуру, а просто сообщает xvkbd для отправки сигнала, который иногда может создавать конфликты с активным приложением (в отличие от xmodmap, который по-настоящему переназначает клавиатуру).

Цель

Общесистемное переназначение моей клавиатуры, реализованное таким образом, что оно легко переносится (файл rc или что-то подобное).

alt – оптимальный ключ выбора, поскольку ctrl активно используется в приложениях, а клавиша mod – моим менеджером окон (Xmonad).

Моя настройка

Я запускаю Ubuntu 12.10 с рабочей средой Xmonad.


Это выполнимо? Я еще не знаю много о материалах на уровне ОС и способах ввода данных.

  • KUbuntu 10.04 / Диспетчер файлов Dolphin: есть ли способ сделать файлы .desktop отображать имя файла так же, как NAME = в метаданных?
  • Настольная среда, которая стекирует программы в панели задач
  • Почему установка разных настольных систем нарушает работу?
  • Linux Deepin Language Switcher - делает его более плавным, как в Ubuntu
  • Как полностью удалить KDE из Mint 17?
  • Как установить Gnome в качестве стандартного DE, если я уже использую Cinnamon?
  • PHPStorm Работает только с Gnome или KDE
  • Использование Wayland в моей обновленной системе Debian
  • One Solution collect form web for “Как принудительно использовать общие сочетания клавиш / макросов для всей системы?”

    Единственный шанс, который я вижу, – это настроить xkb для сопоставления ваших ключей соответственно. Несколько приложений, таких как игры, могут напрямую прослушивать нажатые фактические клавиши, но обычно все остальное использует только сопоставление xkb.

    Существует два разных инструментария для настройки: setxkbmap и xmodmap . Теоретически xmodmap устарел и должен быть заменен на setxkbmap, но иногда полезно и старое xmodmap.

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

     The first keysym is used when no modifier key is pressed in conjunction with this key, the second with Shift, the third when the Mode_switch key is used with this key and the fourth when both the Mode_switch and Shift keys are used. 

    Может быть, это хорошая идея, чтобы больше узнать о деталях системы. Я бы предложил прочитать здесь или здесь, чтобы узнать, что возможно.

    Linux и Unix - лучшая ОС в мире.