Temukan pemilik ambil pointer X.org

17

Saya memiliki aplikasi yang tampaknya telah meraih mouse (saya bisa memindahkannya tetapi tidak bisa mengklik di mana saja), apakah ada cara untuk menemukan aplikasi mana yang memiliki ambil mouse X.org?

Pintasan yang diberikan di sini untuk melepaskan mouse tampaknya tidak berfungsi, jadi saya tertarik pada sesuatu yang dapat memberi saya informasi lebih lanjut.

Tobu
sumber
Apakah Anda yakin itulah masalahnya? Ini akan menjadi agak aneh untuk aplikasi yang tidak Anda gunakan untuk melakukan ini (jika itu terjadi, saya akan berhenti menggunakan aplikasi itu), jadi kemungkinannya - jika ini benar-benar penyebabnya - itu adalah apa pun yang baru saja Anda gunakan.
goldilocks
Saya telah menemukan yang dengan coba-coba, membunuh beberapa hal sampai sesuatu (aplikasi anggur) merilis ambil.
Tobu

Jawaban:

16

Anda dapat melakukan ini dengan menekan XF86LogGrabInfotombol, yang diperkenalkan di komit ini .

Secara default, keyym ini tidak terikat pada kunci fisik atau kombinasi tombol apa pun. Tetapi Anda masih dapat mengaktifkannya menggunakan xdotool:

xdotool key "XF86LogGrabInfo"

Setelah menjalankan perintah itu, daftar pengambilan aktif akan dicatat ke log X. Setidaknya di Ubuntu, ini /var/log/Xorg.0.log. Itu akan berada di suatu tempat di dekat akhir file log, tetapi mungkin ada beberapa pesan log yang tidak relevan di bawahnya. Jika tidak ada hasil, ia menulis:

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

Jika ada ambil (di sini, saya membuka menu di Firefox), itu mencatat sesuatu seperti:

[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
Siput mekanik
sumber
2

Saya baru saja mengalami masalah yang sama, dan mempersempitnya ke bug yang entah bagaimana membuat X11 berpikir tombol tengah ditekan dan tidak dirilis. Memutuskan hubungan secara fisik mouse tidak membantu, sampai ada acara mouseup.

Masalah ini dapat direproduksi menggunakan xdotool mousedown 2- tidak mungkin untuk mengalihkan fokus antara windows,

xdotool key XF86LogGrabInfo menunjukkan jendela proses fokus saat ini, tetapi ketika satu membunuhnya, jendela lain menerima fokus dan skenario yang sama berlanjut.

Penanganan masalah: masalah xdotool mouseup 2.

Pembaruan: tombol tengah ditekan dan tidak dilepaskan adalah yang paling tidak terlihat, karena sebagian besar aplikasi tidak merespons, dan beberapa tikus tidak memiliki tombol ini untuk mencoba dan mengklik untuk melihat apakah masalah hilang.

ArticIceJuice
sumber
0

Entri dalam log Xorg bisa sangat tidak dapat diuraikan. Saya menulis sebuah program yang mem-parsing mereka dan menyajikannya dalam bentuk yang bisa ditelusuri manusia:

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

Untuk menggunakan, jalankan pertama xdotool key XF86LogGrabInfo, seperti yang dijelaskan dalam jawaban siput mekanik. Kemudian, jalankan program yang ditautkan di atas. Jika file log Xorg Anda tidak terletak di /var/log/Xorg.0.log, Anda dapat menentukan lokasinya menggunakan --xorg-logopsi. Lihat --helpdetailnya.

Vladimir Panteleev
sumber