Làm cách nào để biết chương trình nào 'sở hữu' một phím nóng?


32

Tôi đang chạy XFCE 4.12 trên Gentoo với kernel 4.2.0. Nút PlayPause của tôi trên bàn phím của tôi được sử dụng để làm phím nóng toàn cầu cho VLC. Bây giờ VLC thậm chí sẽ không nhận ra chìa khóa. Nó không thấy "Tạm dừng Alt + Media Play" nhưng không phải là phím riêng.

Có cách nào để xem liệu và chương trình nào có thể bắt được phím đó không?

Khi tôi chạy xdotool key "XF86LogGrabInfo"các tail /var/log/Xorg.0.logtập tin đọc

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

@don_crissti cảm ơn nhưng dường như không trả lời được gì. Có một cách khác để đăng ký các phím nóng?
Andrew Redd

@don_crissti Chắc chắn nó có liên quan nhưng tôi không nghĩ đó là một bản sao. Liệt kê tất cả các snap và tìm một Grabber cụ thể không giống nhau. Giải pháp hữu ích cho Andrew bị chôn vùi trong một bình luận (vì vấn đề của Andrew không phải là điều tôi đang hỏi).
Gilles 'SO- ngừng trở nên xấu xa'

Có chạy xdotool keydown "XF86AudioPlay"; xdotool key "XF86LogGrabInfo"; xdotool keyup "XF86AudioPlay"; sleep 1; tail /var/log/Xorg.0.logđã làm nó. Đối với một cách nào đó google Chrome đã đăng ký phím nóng.
Andrew Redd

Câu trả lời:


21

Để tìm ra ứng dụng / chương trình nào đã lấy khóa của bạn, hãy sử dụng keyym gỡ lỗi XF86LogGrabInfo. Sử dụng xdotoolđể nhấn phím + XF86LogGrabInfocùng một lúc, ví dụ như trong một lần chạy thiết bị đầu cuối

KEY=XF86AudioPlay
xdotool keydown ${KEY}; xdotool key XF86LogGrabInfo; xdotool keyup ${KEY} 

Sau đó kiểm tra đầu ra với tail /var/log/Xorg.0.log
Lưu ý rằng với gnome 3/gdmsystemdđiều này không còn được đăng nhập Xorg.0.log(thay vào đó là đăng nhập vào tạp chí ). Trong trường hợp đó bạn có thể chạy

journalctl -f

và sau đó trong một thiết bị đầu cuối khác chạy các xdotoollệnh. Chuyển sang thiết bị đầu cuối đầu tiên và bạn sẽ thấy một cái gì đó như

/usr/lib/gdm/gdm-x-session[629]: Active grab 0x40c0a58e (xi2) on device 'Virtual core keyboard' (3):
/usr/lib/gdm/gdm-x-session[629]: client pid 708 /usr/bin/gnome-shell
/usr/lib/gdm/gdm-x-session[629]: at 32595124 (from passive grab) (device frozen, state 6)
/usr/lib/gdm/gdm-x-session[629]: xi2 event mask for device 3: 0xc000
/usr/lib/gdm/gdm-x-session[629]: passive grab type 2, detail 0xac, activating key 172

Trong ví dụ trên, chương trình (máy khách) đã lấy khóa là gnome-shell.


Có một cái gì đó tương tự cho lightdm?
elig

@elig - không chắc ý của bạn là gì ... điều này được thực hiện bởi máy chủ X bất kể trình quản lý hiển thị của bạn.
don_crissti

Sau đó, tôi không thấy nó trong nhật ký hoặc tạp chí của mình
elig
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.