Alat baris perintah apa yang ada untuk membuat daftar dan mengelola server X? (Itu ambil seperti pada ambil kunci dan pointer, yaitu membatasi penggunaan tombol atau tombol mouse tertentu untuk aplikasi tertentu, atau membatasi pointer mouse untuk tetap berada di area layar tertentu.) Saya mencari xgrab
utilitas hipotetis yang akan tunjukkan hal-hal seperti
Key 0x00f00ba5 0x123 0
Button 0x00f00ba5 2
Pointer 0x00abcdef
yang berarti bahwa telah panggilan ke XGrabKey(display, 0x123, 0, 0x00f00ba5, ...)
dan sebagainya dengan XGrabButton
, XGrabPointer
, XGrabKeyboard
, XGrabServer
(jika memungkinkan). Format tampilan tidak masalah, yang saya inginkan adalah beberapa cara untuk melihat siapa yang mengambil apa, dan mungkin beberapa cara untuk mencabut ini (jika mungkin, saya tidak yakin apakah API X11 memungkinkan itu).
sumber
xdotool key XF86LogGrabInfo
memicu hanya dua entri dalam log X: "Mencetak semua perangkat yang saat ini mengambil:" segera diikuti oleh "Daftar akhir dari perangkat yang mengambil yang aktif". Namun manajer jendela saya mengambil banyak kunci. Pernahkah Anda melihat pekerjaan ini untuk mengambil kunci?sleep 2; xdotool key "XF86LogGrabInfo"
dan segera mulai menekan tombol (mis. Tombol "Win") sangat cepat, maka Anda akan melihat beberapa output dalam Xorg.log. Atau gunakanxdotool
untuk menekan tombol +XF86LogGrabInfo
pada saat yang sama, seperti di siniXF86LogGrabInfo
hanya mencetak informasi tentang kunci yang saat ini ditekan? Itu membatasi kegunaannya. Saya ingin membuat daftar semua grab - semua grab pasif, jika saya memahami terminologi dengan benar.xfsettingsd
mencuriWin
+L
shortcut saya .Saya tidak tahu apa-apa dari tangan untuk diperebutkan pasif 1 dari kunci tunggal atau tombol yang mungkin ada, tapi ada beberapa cara untuk daftar diperebutkan aktif seluruh keyboard atau mouse perangkat.
/usr/demo/Xserver/mdb/list_Xserver_devicegrab_client
, seperti yang dijelaskan dalam Grabbing Information dari X Server . Ada juga satu di sini untuk diperebutkan server, yang saat ini tidak mencakup hotkey Xorg 1.11.1 Lihat http://tronche.com/gui/x/xlib/input/pointer-grabbing.html untuk definisi pengambilan aktif vs pasif.
sumber
Ini adalah tambahan untuk jawaban siput Mekanik -
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-log
opsi. Lihat--help
detailnya.sumber
gdc
(kompiler D GNU) danlibx11-dev
kemudian menjalankannyagdc -o xorg-show-grabs xorg-show-grabs.d -lX11
.