Как найти * почему * я не могу привязать какое-либо сочетание клавиш (или какое приложение его взяло)?
Вкратце: есть ли (под Unity) какой-либо способ узнать, какое приложение воспользовалось каким-то глобальным ярлыком? Я спрашиваю не о "стандартных ярлыках", а о некотором способе получения информации о реальных ярлыках (какое приложение на самом деле хранит данный ключ только сейчас в моей текущей конфигурации)
Более длинная история:
У меня повторяющиеся проблемы с управлением сочетаниями клавиш. В данный момент:
Иногда Synapse (*) не может связать Win-Space как ярлык активации, сообщая "Не удалось зарегистрировать горячую клавишу" активировать "с подписью" пробел "" (что обычно означает, что этот ярлык уже используется)
(*) После одного входа он работает, после другого входа нет. Я подозреваю некоторую гонку между двумя приложениями...
F9 по какой-то причине делает мой экран немного темнее (а F9 не достигает ярлыков на уровне приложения, поэтому, например, мое меню Бёбу не работает)
Я пытался смотреть в разных местах, и:
Я не вижу ни одного из этих ярлыков в настройках клавиатуры / ярлыки
Я не могу найти их в gconf-editor (я пытался найти F9 в значениях, в частности, ничего не найдено)
Я не смог найти их в dconf-editor (нет поиска, поэтому я нажал несколько наиболее очевидных путей)
Итак, мой вопрос: есть ли способ спросить unity/dconf/gconf/d-bus/ что-нибудь о текущем глобальном распределении горячих клавиш (какой процесс сохраняет какой ключ). Или принудительно регистрируйте эти выделения в каком-либо файле журнала. Или grep их откуда-то. Или же………
3 ответа
Рабочий стол Ubuntu на самом деле является compiz, а сам Unity - просто плагином compiz.
Если вместо этого вы устанавливаете и активируете плагин compiz "commands" и устанавливаете сочетания клавиш с помощью ccsm в случае возникновения конфликта, ccsm должен предупредить вас о том, какой плагин вызывает конфликт, а также должен предоставить опции для отключения конфликтующего плагина или конфликтующего связывания клавиш. перед применением ваших настроек.
Лично я также испытывал трудности с установкой сочетаний клавиш в 14.04+, но с тех пор, как я решил начать использовать плагин CCSM вместо настроек сочетаний клавиш в Unity, у меня не возникало никаких проблем вообще, и все мои сочетания работают просто отлично и так настоятельно рекомендуем вам хотя бы проверить это как вариант.
Теперь я понимаю, что вам нужно...
sudo apt-get install evtest
Наслаждайтесь событиями Ubuntu USB HID!
Внимание! Это не работает на клавиатурах PS2/style... (но кто там больше использует?):-)
Из одного из моих старых ответов:
Сначала вы должны установить xdotool
:
sudo apt-get install xdotool
Я составил ряд команд, чтобы показать нам пассивные захваты при нажатии клавиши. Например, чтобы увидеть, что захватывает комбинацию Shift+PrintScreen, вы можете использовать приведенный ниже "скрипт":
xdotool keydown "shift+Print"; xdotool key "XF86LogGrabInfo"; xdotool keyup "Print"; sleep 1; xdotool keyup "shift"; tail /var/log/Xorg.0.log
Это вызовет Shift+PrtSc keyevent, и при установке Ubuntu по умолчанию будет показано, как демон gnome-settings захватывает клавиатуру. По крайней мере, это работало на моей более старой установке 12.04, но похоже на 14.04, я должен был использовать это:
xdotool key "shift+Print"; sleep 1; xdotool key "XF86LogGrabInfo"; xdotool keyup "Print"; sleep 1; xdotool keyup "shift"; tail /var/log/Xorg.0.log
но
xdotool keydown "F12"; xdotool key "XF86LogGrabInfo"; xdotool keyup "F12"; tail /var/log/Xorg.0.log
до сих пор работает, иногда, а не в другие времена. Не знаю почему.
Вы просто должны изменить вышеупомянутый "скрипт", изменив ключи, которые должны быть смоделированы.