Portál AbcLinuxu, 12. května 2025 15:37
Dobrý den,
vlastním notebook HP ProBook 4530s a řeším problém, že ne všechna extra tlačítka přístupná přes "fn" mají v X přidělen keycode. Konkrétně se to týká tlačítek: "suspend", "AudioNext", "AudioPrevious", "PlayPause". Ostatní extra tlačítka mají přidělen keycode a dokonce i správné XF86*
Aby to v X fungovalo aspoň takto, musel jsem vytvořit udev pravidlo, které načte tuto "keymap":
0x81 fn_esc 0xDF sleep 0x92 brightnessdown 0x97 brightnessup 0xEE switchvideomode 0x8A screenlock 0x89 battery 0xA0 mute 0xAE volumedown 0xB0 volumeup 0x90 previoussong 0xA2 playpause 0x99 nextsong
Zde je výstup xev u tlačítka "s keycode":
KeyPress event, serial 38, synthetic NO, window 0x1800001, root 0xf5, subw 0x0, time 3772728, (655,461), root:(657,483), state 0x10, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES, XLookupString gives 0 bytes: XmbLookupString gives 0 bytes: XFilterEvent returns: False KeyRelease event, serial 38, synthetic NO, window 0x1800001, root 0xf5, subw 0x0, time 3772829, (655,461), root:(657,483), state 0x10, keycode 232 (keysym 0x1008ff03, XF86MonBrightnessDown), same_screen YES, XLookupString gives n 0 bytes: XFilterEvent returns: False
Zde je výstup xev tlačítka "bez keycode":
FocusOut event, serial 38, synthetic NO, window 0x1800001, mode NotifyGrab, detail NotifyAncestor FocusIn event, serial 38, synthetic NO, window 0x1800001, mode NotifyUngrab, detail NotifyAncestor KeymapNotify event, serial 38, synthetic NO, window 0x0, keys: 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 0
Různě jsem se pokoušel "čarovat" v textovém režimu (různě měnil keycodes extra tlačítek), ale toto situaci vždy zhoršilo (špatné XF86* symboly).
Arch Linux, 3.7.5-1-ARCH #1 SMP PREEMPT (x86_64), Xorg: 1.13.2
Hardware: notebook HP ProBook 4530s.
Předem díky za rady/pomoc/nápady!
Zjistil jsem zajímavou věc: i u klávesy, u které xev neukazuje žádný keycode, lze tuto klávesu sespárovat s nějakou akcí. Např. ve "svém" pekwm:
KeyPress = "XF86AudioNext" { Actions = "GotoWorkspace 12" }
Toto skutečně funguje! Chyba xev?
showkey
vidí, bude to fungovat.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.