Как найти * почему * я не могу привязать какое-либо сочетание клавиш (или какое приложение его взяло)?

14

Вкратце: есть ли (под Unity) какой-нибудь способ узнать, какое приложение воспользовалось каким-то глобальным ярлыком? Я спрашиваю не о «стандартных ярлыках», а о каком-то способе получения информации о реальных ярлыках (какое приложение на самом деле хранит данный ключ только сейчас в моей текущей конфигурации)

Более длинная история:

У меня повторяющиеся проблемы с управлением сочетаниями клавиш. В данный момент:

  • Иногда Synapse (*) не может связать Win-Space как ярлык активации, сообщая «Не удалось зарегистрировать горячую клавишу« активировать »с подписью« пробел »» (что обычно означает, что этот ярлык уже используется)

    (*) После одного входа он работает, после другого входа нет. Я подозреваю некоторую гонку между двумя приложениями ...

  • F9 по какой-то причине делает мой экран немного темнее (а F9 не достигает ярлыков на уровне приложения, поэтому, например, мое меню Бёбу не работает)

Я пытался смотреть в разных местах, и:

  • Я не вижу ни одного из этих ярлыков в настройках клавиатуры / ярлыки

  • Я не могу найти их в gconf-editor (я пытался искать F9 в значениях, в частности, ничего не найдено)

  • Я не смог найти их в dconf-editor (нет поиска, поэтому я нажал несколько наиболее очевидных путей)

Итак, мой вопрос: есть ли способ спросить unity / dconf / gconf / d-bus / что-нибудь о текущем глобальном распределении горячих клавиш (какой процесс сохраняет какой ключ). Или принудительно зарегистрируйте эти выделения в каком-либо файле журнала. Или grep их откуда-то. Или………

Мекк
источник
Не могли бы вы уточнить или определить (для целей этого вопроса), что означает глобальный ярлык ?
Клавиша, которую я нажимаю и которая вызывает что-то не связанное с текущим активным окном. Например, глобальный ярлык Win-S открывает окно просмотра, глобальный ярлык Alt-Tab переключает окна, F12 (в моей настройке) открывает тильда-выпадающий терминал и т. Д. И т. Д. И, как я уже говорил, всякий раз, когда я нажимаю F9, экран тускнеет, и Я понятия не имею, какое приложение делает это и почему. И что-то иногда захватывает Win-пространство. И в прошлом мне довелось увидеть, как F12 забрали у тильды (к счастью, эта проблема ушла). Так что я был бы счастлив, если бы у меня был какой-то способ изучить эти раскладки клавиатуры.
Мекк
Я думаю, что F9 может активировать наложение виджетов, но это было сделано время, так как я был на Unity. Может быть, искать в CCSM ..?
Расмус
Посмотрите на askubuntu.com/questions/101226/… или wiki.ubuntu.com/Keybindings или superuser.com/questions/152367/… - там описаны несколько мест, например, в dconf или gconf, где Unity хранит свои ярлыки. Может быть, вы хотели бы проверить эти страницы для любой новой информации?
Byte Commander

Ответы:

2

В период с 12.10 по 17.04 рабочий стол Ubuntu фактически является Compiz, а сам Unity - просто плагином Compiz.

Если вместо этого вы устанавливаете и активируете плагин Compiz «команды» и устанавливаете сочетания клавиш с помощью CCSS в случае конфликта, CCSM должен предупредить вас о том, какой плагин вызывает конфликт, а также должен предоставить опции для отключения конфликтующего плагина или конфликтной привязки клавиш. перед применением ваших настроек.

Лично я также испытывал трудности с установкой сочетаний клавиш в 14.04+, но с тех пор, как я решил начать использовать плагин CCSM вместо настроек сочетаний клавиш в Unity, я не испытывал никаких проблем вообще, и все мои сочетания работают просто отлично и так настоятельно рекомендуем вам хотя бы проверить это как вариант.

mchid
источник
1

Теперь я понимаю, что вам нужно ...

sudo apt-get install evtest

Наслаждайтесь событиями Ubuntu USB HID!

Внимание! Это не работает на клавиатурах PS2 / style ... (но кто там больше использует?) :-)

Fabby
источник
Не полностью решает мою проблему, но, безусловно, полезно. Тем не менее, мне любопытно, где именно эти активные привязки хранятся и могут ли они быть проанализированы (gsettings - это место, из которого они читаются многими приложениями, но не каждое приложение должно использовать gsettings ...)
Mekk
Если вы дадите мне вывод вышеприведенной команды, я могу вам помочь ... Если вы хотите узнать почему , я советую вам прочитать: wiki.archlinux.org/index.php/Extra_keyboard_keys, и тогда вы по достоинству оцените ее работу. совсем!!! ;-)
Fabby
Эта статья не совсем то, о чем я спрашиваю - я не спрашиваю, как ключи переводятся из физических нажатий клавиш в символы (хотя это также интересно и иногда сбивает с толку). Я спрашиваю более простую вещь: какая программа на самом деле хранит и применяет глобальные сочетания клавиш, и существует ли какой-либо тип утилиты или API, который позволил бы мне анализировать или отслеживать эти назначения.
Mekk
(когда я запускаю Unity, он регистрирует Alt-F2, Alt-F4, Win-S и т. д., когда я запускаю синапс, он регистрирует Win-пробел, когда я запускаю якуаке, он регистрирует F12 и т. д. - два последних в соответствии с моей конфигурацией - но в каком месте они регистрируют эти ключи и как получить доступ к этому месту?)
Mekk
Оооо ... Теперь я вижу ... Есть что-то, что называется, evtestно это только для USB! С другой стороны, это именно то, что вам нужно, если вы используете ноутбук или рабочий стол без клавиатуры PS / 2!
Fabby
1

Из одного из моих старых ответов :

Сначала вы должны установить 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

до сих пор работает, иногда, а не в другие времена. Не знаю почему.

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

сокольничий
источник