/usr/share/X11/xkb/symbols/pc에서 키보드 기호를 편집합니다. Firefox는 이를 무시합니다.

/usr/share/X11/xkb/symbols/pc에서 키보드 기호를 편집합니다. Firefox는 이를 무시합니다.

키보드에서 오디오를 재생/일시 중지하고 싶지만 안타깝게도 내 노트북 ​​키보드에 미디어/기능 키가 없습니다. 여기에는 필요하지 않은 몇 가지 기능(트랙패드 비활성화 등)만 있지만 이러한 기능 키는 다시 매핑할 수 없으며 키보드에서 운영 체제로 직접 이동한다는 사실을 발견했습니다.

그래서 XF86AudioPlay를 내보내려면 AltGr+를 선택합니다. End그에 따라 수정합니다 /usr/share/X11/xkb/symbols/pc.

Ubuntu에서는 비디오에서는 잘 작동하지만 Firefox에서는 작동하지 않습니다. (리듬박스에서도 안되는데 어차피 소리가 안 들려요..)

키 입력이 프로그램에 어떻게 전파되는지에 대한 나의 이해가 완전히 파괴되었습니다. 나는 윈도우 시스템(이상하게도 키보드 시스템이 아님)이 애플리케이션에 대한 기호를 제공한다고 생각합니다. AltGr+를 EndXF86AudioStop으로 처리 하도록 윈도우 시스템을 설정했습니다 .

그러나 Firefox(및 전부는 아니지만 일부 다른 프로그램)에서는 내가 "종료" 버튼을 눌렀다고 추론합니다. ?

이러한 창/키보드 시스템의 목적은 모든 프로그램에서 동일한 기호를 정의할 필요가 없는 것 아닌가요? 키보드와 프로그램 사이의 중개자가 되십니까? 그런 식으로 행동하지 않는 것 같습니다!

➜  ~ xev -event keyboard
Outer window is 0x5000001, inner window is 0x5000002

KeymapNotify event, serial 24, synthetic NO, window 0x0,
    keys:  4294967234 0   0   0   16  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   

KeyRelease event, serial 25, synthetic NO, window 0x5000001,
    root 0x193, subw 0x0, time 56238457, (588,657), root:(738,872),
    state 0x10, keycode 36 (keysym 0xff0d, Return), same_screen YES,
"   XLookupString gives 1 bytes: (0d) "
    XFilterEvent returns: False

KeyPress event, serial 28, synthetic NO, window 0x5000001,
    root 0x193, subw 0x0, time 56247439, (588,657), root:(738,872),
    state 0x10, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 92
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 28, synthetic NO, window 0x5000001,
    root 0x193, subw 0x0, time 56248610, (588,657), root:(738,872),
    state 0x90, keycode 115 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
    XKeysymToKeycode returns keycode: 172
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x5000001,
    root 0x193, subw 0x0, time 56248724, (588,657), root:(738,872),
    state 0x90, keycode 115 (keysym 0x1008ff14, XF86AudioPlay), same_screen YES,
    XKeysymToKeycode returns keycode: 172
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 28, synthetic NO, window 0x5000001,
    root 0x193, subw 0x0, time 56249265, (588,657), root:(738,872),
    state 0x90, keycode 108 (keysym 0xfe03, ISO_Level3_Shift), same_screen YES,
    XKeysymToKeycode returns keycode: 92
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

ClientMessage event, serial 28, synthetic YES, window 0x5000001,
    message_type 0x145 (WM_PROTOCOLS), format 32, message 0x143 (WM_DELETE_WINDOW)

관련 정보