У меня есть приложение, которое, кажется, захватило мышь (я могу переместить ее, но нигде не могу щелкнуть), есть ли способ узнать, какому приложению принадлежит захват мыши X.org?
Ярлык, приведенный здесь, чтобы отпустить мышь, похоже, не сработал, поэтому мне интересно кое-что, что может дать мне больше информации.
Ответы:
Вы можете сделать это, нажав XF86LogGrabInfoклавишу, введенную в этом коммите .
По умолчанию этот ключ не привязан ни к какому физическому ключу или комбинации клавиш. Но вы все равно можете активировать его, используя
xdotool
:После выполнения этой команды список активных захватов будет записан в журнал X. На Ubuntu по крайней мере это
/var/log/Xorg.0.log
. Это будет где-то ближе к концу файла журнала, но под ним может быть несколько не относящихся к делу сообщений журнала. Если нет захватов, он пишет:Если есть захваты (здесь я открыл меню в Firefox), он регистрирует что-то вроде:
источник
У меня только что была похожая проблема, и я сузил ее до ошибки, которая каким-то образом заставляет X11 думать, что средняя кнопка нажата и не отпущена. Физическое отключение мыши не помогает, пока не произойдет событие mouseup.
Проблема может быть воспроизведена с помощью
xdotool mousedown 2
- невозможно переключить фокус между окнами,xdotool key XF86LogGrabInfo
показывает текущее сфокусированное окно процесса, но когда один убивает его, другое окно получает фокус, и тот же сценарий продолжается.Обходной путь: проблема
xdotool mouseup 2
.Обновление: средняя кнопка, нажимаемая и не отпускаемая, является просто наименее заметной, потому что большинство приложений не реагируют на нее, и у некоторых мышей нет этой кнопки, чтобы попытаться нажать и посмотреть, исчезнет ли проблема.
источник
Записи в журнале Xorg могут быть довольно непонятными. Я написал программу, которая анализирует их и представляет их в удобной для человека форме:
https://gist.github.com/CyberShadow/6412d11aea64144f8905cc0b8196f38e
Чтобы использовать, сначала запустите
xdotool key XF86LogGrabInfo
, как описано в ответе Механической улитки. Затем запустите программу, указанную выше. Если ваш файл журнала Xorg не находится по адресу/var/log/Xorg.0.log
, вы можете указать его местоположение, используя--xorg-log
опцию. Смотрите--help
подробности.источник