GNU/Linux >> Znalost Linux >  >> Linux

Co tento výstup z Xev znamená?

Mám zájem o přemapování některých kláves na mé klávesnici. Konkrétně chci podržet funkční klávesu, stisknout klávesu F1 a nechat to spustit skript. Vím, že xev je užitečné pro zjištění, jaký kód klávesy je spojen se stisknutím klávesy. Například když stisknu x klíč, dostávám:

KeyPress event, serial 41, synthetic NO, window 0x2600001,
    root 0xae, subw 0x0, time 1597243, (-190,43), root:(910,336),
    state 0x0, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XmbLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

KeyRelease event, serial 41, synthetic NO, window 0x2600001,
    root 0xae, subw 0x0, time 1597363, (-190,43), root:(910,336),
    state 0x0, keycode 53 (keysym 0x78, x), same_screen YES,
    XLookupString gives 1 bytes: (78) "x"
    XFilterEvent returns: False

To mi dává smysl.

Když však stisknu Function-F1, nerozumím tomu, co se stane. Proč se zdá, že se stisknutí Funkce-F1 chová, jako bych také podržel tlačítko Windows a napsal písmeno l ?

xev výstup, když stisknu Function-F1:

KeyPress event, serial 41, synthetic NO, window 0x2600001,
    root 0xae, subw 0x0, time 1735349, (-157,221), root:(943,514),
    state 0x0, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 41, synthetic NO, window 0x2600001,
    root 0xae, subw 0x0, time 1735350, (-157,221), root:(943,514),
    state 0x40, keycode 46 (keysym 0x6c, l), same_screen YES,
    XLookupString gives 1 bytes: (6c) "l"
    XmbLookupString gives 1 bytes: (6c) "l"
    XFilterEvent returns: False

MappingNotify event, serial 41, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyPress event, serial 41, synthetic NO, window 0x2600001,
    root 0xae, subw 0x0, time 1735356, (-157,221), root:(943,514),
    state 0x40, keycode 160 (keysym 0x1008ff2d, XF86ScreenSaver), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 41, synthetic NO, window 0x2600001,
    root 0xae, subw 0x0, time 1735357, (-157,221), root:(943,514),
    state 0x40, keycode 160 (keysym 0x1008ff2d, XF86ScreenSaver), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

MappingNotify event, serial 42, synthetic NO, window 0x0,
    request MappingKeyboard, first_keycode 8, count 248

KeyRelease event, serial 42, synthetic NO, window 0x2600001,
    root 0xae, subw 0x0, time 1735463, (-157,221), root:(943,514),
    state 0x40, keycode 46 (keysym 0x6c, l), same_screen YES,
    XLookupString gives 1 bytes: (6c) "l"
    XFilterEvent returns: False

KeyRelease event, serial 43, synthetic NO, window 0x2600001,
    root 0xae, subw 0x0, time 1735470, (-157,221), root:(943,514),
    state 0x40, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Když stisknu Function-F1 se zaměřeným textovým oknem, napíše se písmeno l .

Základní informace:Spuštění Lubuntu 11.10 na Toshiba r835. Rádi vám poskytneme další podrobnosti, které by mohly být užitečné.

EDIT:

Pro srovnání, když napíšu Function-F12, dostanu:

KeyPress event, serial 41, synthetic NO, window 0x2200001,
    root 0xae, subw 0x0, time 8369184, (-620,473), root:(480,766),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyRelease event, serial 41, synthetic NO, window 0x2200001,
    root 0xae, subw 0x0, time 8369344, (-620,473), root:(480,766),
    state 0x0, keycode 78 (keysym 0xff14, Scroll_Lock), same_screen YES,
    XLookupString gives 0 bytes: 
    XFilterEvent returns: False

Chtěl jsem zkontrolovat, zda je na klávesách F1-F12 něco zvláštního, ale vypadá to, že alespoň některé fungují tak, jak očekávám.

Související:Zvuk „Dumthe Output“ v Ubuntu 14.04?

Přijatá odpověď:

Když říkáte Function-F1, předpokládám, že máte na mysli stisknutí té legrační malé klávesy Fn v rohu notebooku a poté klávesy F1 v levé horní části klávesnice. A že se snažíte namapovat jednu z dalších kláves, jako je Sleep, kterou mají některé klávesnice notebooků. Vypadá to, že tato klávesa doslova mačká několik kláves za vás. Nejprve vidím Win+L jako jednu kombinaci. V systému Windows tato zkratka uzamkne obrazovku, ale nespustí spořič obrazovky. Dále vidím mapování pro XF86ScreenSaver, což může znamenat, že X vidí nějaký druh kódu klíče spánku. Hádám, že tato klávesa na klávesnici vašeho notebooku fyzicky odesílá tyto tři kódy kláves Win + L + Spánek, aby uživatelé Windows mohli rychle uzamknout obrazovku a aktivovat spořič obrazovky. Nejsem si jistý dobrým způsobem, jak je odfiltrovat. Klávesu Fn na klávesnici normálně linuxové jádro nevidí. Místo toho změní, které kódy klávesnice sděluje jádru. Když jsem se pokoušel použít dálkový ovladač USB RF PowerPoint s OOo na Linuxu, zjistil jsem, že tlačítko pro spuštění/zastavení prezentace bylo jen chabé ovládání, které vysílalo střídající se kódy kláves F5 a ESC. Ostatní tlačítka byla stejně chabá, jako když vysíláte b, aby se obrazovka vymazala.


Linux
  1. Co znamená „>/dev/null 2>&1“ v tomto článku Základy Crontab?

  2. Co znamená atribut „s“ v oprávněních k souboru?

  3. Co znamená `chown Root.root $file`?

  1. Co znamená „rm is hash“?

  2. Co znamená hodnota symbolu z příkazu nm?

  3. Co znamená Žádné další proměnné v tomto zobrazení MIB (Linux)?

  1. Co znamená „–“ (dvojitá pomlčka)?

  2. Co se stane, když [[ $? -ne 0]]; znamená v .ksh

  3. Co je výstupem pwd?