Control + R перестает работать во всех программах через некоторое время

Ubuntu 17.04 XFCE4

Когда я вхожу на компьютер, Control + R работает во всех программах. Однако через некоторое время (обычно после некоторого бездействия, даже если компьютер никогда не спит, мониторы просто отключены), он перестает работать во всех программах (например, ни Chrome, ни PHPStorm не будут реагировать на него, а соответствующие действия, которые он обычно запускает в эти программы работают при активации из меню). Все остальные ярлыки работают нормально, это влияет только на Control + R.

В настройках системы «Клавиатура» нет никаких ярлыков приложений, привязанных к этой комбинации.

Я запустил xev и проверил, что результат тот же, когда комбо работает, а когда нет.

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

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

2
задан 11 June 2017 в 20:59

2 ответа

Ответ от 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.

2
ответ дан 18 July 2018 в 11:49

Ответ от 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.

2
ответ дан 24 July 2018 в 19:51
  • 1
    Привет, это кажется вполне применимым, но я не могу в жизни понять, как настроить Ctrl-Alt-F9, чтобы вызвать XF86LogGrabInfo keysym. У вас есть какие-то указатели на прогресс отсюда? – oligofren 15 June 2017 в 17:56
  • 2
    @oligofren nvm, я полностью неверно истолковал ваш комментарий. Вы хотите, чтобы сначала отключил & quot; переключить на vty & quot; поведение ", затем глобально привязать xdotool key XF86LogGrabInfo к Ctrl + Alt + F9 способом, определенным для вашего композитора. Обратите внимание, что принятый ответ отключает все горячие клавиши Ctrl + Alt + Fδ, поэтому, если вы хотите переключиться на vty, вам, вероятно, потребуется использовать комбинацию Magic SysRq и «режим сырой клавиатуры». – Hi-Angel 16 June 2017 в 07:55

Другие вопросы по тегам:

Похожие вопросы: