Знайдіть власника захоплення вказівника X.org


17

У мене є програма, яка, схоже, схопила мишу (я можу її перемістити, але не можу клацнути куди-небудь), чи є спосіб знайти, яке додаток належить миші X.org?

Ярлик, наданий тут, щоб звільнити мишу, начебто не спрацював, тому мене цікавить щось, що могло б дати мені більше інформації.


Ви впевнені, що це питання? Для програми, яку ви не використовуєте, це було би дещо химерно (якщо б це було, я б перестав використовувати цей додаток), тож шанси є - якщо це справді причина - це все, що ви просто використовували.
золотинки

Я виявив, що шляхом спроб і помилок, вбив кілька речей, поки щось (додаток для вина) не випустило захоплення.
Тобу

Відповіді:


16

Це можна зробити, натиснувши XF86LogGrabInfoклавішу, введену в цю комісію .

За замовчуванням ця клавіша не пов'язана ні з фізичною клавішею, ні з комбінацією клавіш. Але ви все одно можете активувати його, використовуючи xdotool:

xdotool key "XF86LogGrabInfo"

Після виконання цієї команди список активних захоплень буде внесений до журналу X. Принаймні, на Ubuntu це /var/log/Xorg.0.log. Це буде десь у кінці файлу журналу, але під ним може бути кілька невідповідних повідомлень журналу. Якщо немає захоплень, він пише:

[1199271.146] (II) Printing all currently active device grabs:
[1199271.146] (II) End list of active device grabs

Якщо є захоплення (тут я відкрив меню у Firefox), він записує щось на зразок:

[1199428.782] (II) Printing all currently active device grabs:
[1199428.782] Active grab 0x4c00000 (core) on device 'Virtual core pointer' (2):
[1199428.782]       client pid 15620 /usr/lib/firefox/firefox 
[1199428.782]       at 1199423728 (from active grab) (device thawed, state 1)
[1199428.782]         core event mask 0x7c
[1199428.782]       owner-events true, kb 1 ptr 1, confine 0, cursor 0x0
[1199428.782] (II) End list of active device grabs

2

Щойно у мене була подібна проблема, і звузили її до помилки, яка чомусь змушує X11 думати, що середня кнопка натиснута і не відпущена. Фізичне відключення миші не допомагає, поки не відбудеться подія миші.

Проблему можна відтворити за допомогою xdotool mousedown 2- неможливо переключити фокус між вікнами,

xdotool key XF86LogGrabInfo показує поточне зосереджене вікно процесу, але коли одне його вбиває, інше вікно отримує фокус і той самий сценарій продовжується.

Вирішення: питання xdotool mouseup 2.

Оновлення: середня кнопка, яку натискають і не відпускають, є найменш помітною, оскільки більшість додатків не реагує на неї, а деякі миші не мають цієї кнопки, щоб спробувати натиснути, щоб побачити, чи проблема не зникає.


0

Записи в журналі Xorg можуть бути досить нерозбірливими. Я написав програму, яка їх розбирає та представляє у людській формі:

https://gist.github.com/CyberShadow/6412d11aea64144f8905cc0b8196f38e

Щоб скористатися, спочатку запустіть xdotool key XF86LogGrabInfo, як описано у відповіді Механічної равлики. Потім запустіть програму, зв'язану вище. Якщо файл журналу Xorg не розташований у /var/log/Xorg.0.log, ви можете вказати його місцезнаходження за допомогою --xorg-logпараметра. Детальніше --helpдив.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.