Ubuntu 17.04 XFCE4
Когда я вхожу на компьютер, Control + R работает во всех программах. Однако через некоторое время (обычно после некоторого бездействия, даже если компьютер никогда не спит, мониторы просто отключены), он перестает работать во всех программах (например, ни Chrome, ни PHPStorm не будут реагировать на него, а соответствующие действия, которые он обычно запускает в эти программы работают при активации из меню). Все остальные ярлыки работают нормально, это влияет только на Control + R.
В настройках системы «Клавиатура» нет никаких ярлыков приложений, привязанных к этой комбинации.
Я запустил xev и проверил, что результат тот же, когда комбо работает, а когда нет.
Все, что я должен сделать, чтобы исправить проблему, - это выйти из системы и вернуться обратно - перезагрузка системы не требуется.
Поскольку система распознает нажатие клавиши, но приложения не реагируют на нее, я предполагаю, что какой-то запущенный процесс является захватом этой комбинации, но я не знаю, как узнать, какое приложение оно есть.
Ответ от Unix.SE от don_crissti. Для отправки комбинации Ctrl + r используйте "ctrl+r", например. xdotool key "ctrl+r".
Чтобы узнать, какое приложение / программа захватили ваш ключ, используйте debug keysym XF86LogGrabInfo. Используйте xdotool для одновременного нажатия клавиш + XF86LogGrabInfo, например. в терминальном прогоне
KEY=XF86AudioPlay
xdotool keydown ${KEY}; xdotool key XF86LogGrabInfo; xdotool keyup ${KEY}
Затем проверьте вывод с помощью tail /var/log/Xorg.0.log. Обратите внимание, что с gnome 3/gdm и systemd это больше не регистрируется в Xorg.0.log (вместо этого он регистрируется в Ответ от Unix.SE от don_crissti. Для отправки комбинации Ctrl + r используйте "ctrl+r", например xdotool key "ctrl+r". ). В этом случае вы можете запустить
journalctl -f
, а затем в другом терминале выполнить команды xdotool. Перейдите на первый терминал, и вы увидите что-то вроде
/usr/lib/gdm/gdm-x-session[629]: Active grab 0x40c0a58e (xi2) on device 'Virtual core keyboard' (3):
/usr/lib/gdm/gdm-x-session[629]: client pid 708 /usr/bin/gnome-shell
/usr/lib/gdm/gdm-x-session[629]: at 32595124 (from passive grab) (device frozen, state 6)
/usr/lib/gdm/gdm-x-session[629]: xi2 event mask for device 3: 0xc000
/usr/lib/gdm/gdm-x-session[629]: passive grab type 2, detail 0xac, activating key 172
. В приведенном выше примере программа (клиент), которая захватила ключ, - gnome-shell.
Ответ от Unix.SE от don_crissti. Для отправки комбинации Ctrl + r используйте "ctrl+r", например. xdotool key "ctrl+r".
Чтобы узнать, какое приложение / программа захватили ваш ключ, используйте debug keysym XF86LogGrabInfo. Используйте xdotool для одновременного нажатия клавиш + XF86LogGrabInfo, например. в терминальном прогоне
KEY=XF86AudioPlay
xdotool keydown ${KEY}; xdotool key XF86LogGrabInfo; xdotool keyup ${KEY}
Затем проверьте вывод с помощью tail /var/log/Xorg.0.log. Обратите внимание, что с gnome 3/gdm и systemd это больше не регистрируется в Xorg.0.log (вместо этого он регистрируется в Ответ от Unix.SE от don_crissti. Для отправки комбинации Ctrl + r используйте "ctrl+r", например xdotool key "ctrl+r". ). В этом случае вы можете запустить
journalctl -f
, а затем в другом терминале выполнить команды xdotool. Перейдите на первый терминал, и вы увидите что-то вроде
/usr/lib/gdm/gdm-x-session[629]: Active grab 0x40c0a58e (xi2) on device 'Virtual core keyboard' (3):
/usr/lib/gdm/gdm-x-session[629]: client pid 708 /usr/bin/gnome-shell
/usr/lib/gdm/gdm-x-session[629]: at 32595124 (from passive grab) (device frozen, state 6)
/usr/lib/gdm/gdm-x-session[629]: xi2 event mask for device 3: 0xc000
/usr/lib/gdm/gdm-x-session[629]: passive grab type 2, detail 0xac, activating key 172
. В приведенном выше примере программа (клиент), которая захватила ключ, - gnome-shell.