いくつかの説明が必要です:
ターミナルでxev
を起動し、使用するとき Super、次の出力が得られます。これの意味は何ですか?
KeymapNotify event, serial 36, synthetic NO, window 0x0,
keys: 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
FocusIn event, serial 36, synthetic NO, window 0x2000001,
mode NotifyUngrab, detail NotifyNonlinear
KeymapNotify event, serial 36, synthetic NO, window 0x0,
keys: 93 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
しばらくの間オンラインで調査した後、出力の意味についての私の理解があります:
m
などの文字キーからのKeyPressイベントとKeyReleaseイベントを見てください。
KeyRelease event, serial 28, synthetic NO, window 0x6e00001,
root 0x2c9, subw 0x0, time 17599679, (-746,426), root:(337,478),
state 0x10, keycode 58 (keysym 0x6d, m), same_screen YES,
XLookupString gives 1 bytes: (6d) "m"
XFilterEvent returns: False
キーコードがあり、キーが押されたウィンドウIDを報告します。
ファンクションキー、など Fn+F6、実際には輝度低下キーであるため、そのような情報は出力されません。ウィンドウの0x0 idを報告し、keykodeは報告しません。したがって、これらのキーは再割り当てできず、Xサーバーやコンソールなどのソフトウェアによって制御されます。それらは実行する環境に依存します。また、特定のデスクトップ環境内でスーパーキーが機能する場合と機能しない場合がある理由もいくらか説明します。そのキーの機能をデスクトップ環境に含めるのは開発者の責任です。
MappingNotify event, serial 28, synthetic NO, window 0x0,
request MappingKeyboard, first_keycode 8, count 248
KeymapNotify event, serial 29, synthetic NO, window 0x0,
keys: 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0