Alat baris perintah apa yang ada untuk mendaftar dan mengelola pengambilan server X? (Itu ambil seperti pada ambilan kunci dan penunjuk, yaitu membatasi penggunaan tombol atau tombol mouse tertentu untuk aplikasi tertentu, atau menyempitkan penunjuk tetikus untuk tetap berada di area layar tertentu.) Saya mencari xgrab
utilitas yang akan menampilkan hal-hal seperti
Key 0x00f00ba5 0x123 0
Button 0x00f00ba5 2
Pointer 0x00abcdef
artinya ada panggilan ke XGrabKey(display, 0x123, 0, 0x00f00ba5, ...)
dan seterusnya dengan XGrabButton
, XGrabPointer
, XGrabKeyboard
, XGrabServer
(jika memungkinkan). Format tampilan tidak masalah, yang saya inginkan adalah cara untuk melihat siapa yang mengambil apa, dan mungkin beberapa cara untuk mencabut pengambilan ini (jika memungkinkan, saya tidak yakin apakah X11 API mengizinkannya).
Jawaban yang Diterima:
Versi terbaru dari X (server X.org ≥1.11) mendukung beberapa keysyms debugging, diperkenalkan dalam komit ini. Saat dipicu, ini melakukan tindakan yang terkait dengan perebutan.
Secara default (setidaknya dalam versi terbaru), ini dinonaktifkan (tidak ada dari keymap default).
Namun, jika Anda memiliki xdotool
terinstal, adalah mungkin untuk memanggil mereka, dengan mengeksekusi pada baris perintah:
xdotool key NameOfKey
di mana NameOfKey
adalah keysym yang ingin Anda aktifkan. Misalnya, untuk mencetak daftar pengambilan aktif ke log server X, gunakan xdotool key XF86LogGrabInfo
.
Keysym yang relevan adalah:
- XF86LogGrabInfo :mencetak daftar pengambilan aktif ke log server X
- XF86Ungrab :merusak semua pengambilan yang aktif, tanpa mematikan aplikasi yang menahan pengambilan
- XF86ClearGrab :mematikan semua proses yang menahan pengambilan aktif
Perhatikan bahwa XF86LogGrabInfo hanya mencantumkan pengambilan aktif, bukan pengambilan pasif seperti pengambilan pada tombol yang saat ini tidak ditekan. Jika Anda ingin mendapatkan informasi tentang ambil pasif, Anda perlu mengaktifkan ambil:jalankan xdotool key XF86LogGrabInfo
sementara akord kunci atau kombinasi tombol mouse yang Anda minati ditekan. Lakukan sesuatu seperti:
- Jalankan
sleep 1; xdotool key XF86LogGrabInfo
- Dalam 1 detik, tekan akord kunci atau kombinasi tombol mouse.
- Setelah 1 detik, lepaskan tombol/tombol.
- Periksa informasi “Aktif ambil …” di log server X (seringkali
/var/log/Xorg.0.log
).