Bei der Logitech K290-Tastatur über USB sind die F.-Tasten standardmäßig nicht verfügbar, und ich muss sie Fnvor der Verwendung drücken , was nicht wirklich verwendbar ist.
Der FnSchlüssel allein löst kein Ereignis in aus xev
.
Wenn Sie F1ohne Drücken Fnzwei Tastenereignisse auslösen, den Schlüsselcode 50 ( Shift_L
) und den Schlüsselcode 133 ( Super_L
), wird auf meinem Kubuntu die Meldung "Touchpad deaktiviert" angezeigt (dieselbe Meldung für alle Tasten F1durch F4).
Obwohl die meisten Medientasten funktionieren, hätte ich lieber direkten Zugriff auf F.-Tasten. Kennen Sie eine Möglichkeit, das FnVerhalten umzuschalten ?
Hier ist die Ausgabe, wenn ich F1ohne drücke Fn:
KeyPress event, serial 40, synthetic NO, window 0x1a00001,
root 0x2c6, subw 0x0, time 64638420, (-352,274), root:(1462,621),
state 0x10, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 40, synthetic NO, window 0x1a00001,
root 0x2c6, subw 0x0, time 64638420, (-352,274), root:(1462,621),
state 0x11, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
FocusOut event, serial 40, synthetic NO, window 0x1a00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 40, synthetic NO, window 0x1a00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 40, synthetic NO, window 0x0,
keys: 4294967238 0 0 0 0 0 4 0 0 0 0 0 0 0 0 0
32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
KeyRelease event, serial 40, synthetic NO, window 0x1a00001,
root 0x2c6, subw 0x0, time 64638436, (-352,274), root:(1462,621),
state 0x51, keycode 50 (keysym 0xffe1, Shift_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 40, synthetic NO, window 0x1a00001,
root 0x2c6, subw 0x0, time 64638436, (-352,274), root:(1462,621),
state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
MappingNotify event, serial 40, synthetic NO, window 0x0,
request MappingPointer, first_keycode 0, count 0
Und für F2(immer noch nein Fn):
KeyPress event, serial 40, synthetic NO, window 0x1a00001,
root 0x2c6, subw 0x0, time 64782724, (-202,438), root:(1491,799),
state 0x10, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyPress event, serial 40, synthetic NO, window 0x1a00001,
root 0x2c6, subw 0x0, time 64782724, (-202,438), root:(1491,799),
state 0x18, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
FocusOut event, serial 40, synthetic NO, window 0x1a00001,
mode NotifyGrab, detail NotifyAncestor
FocusIn event, serial 40, synthetic NO, window 0x1a00001,
mode NotifyUngrab, detail NotifyAncestor
KeymapNotify event, serial 40, synthetic NO, window 0x0,
keys: 4294967238 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0
32 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
KeyRelease event, serial 40, synthetic NO, window 0x1a00001,
root 0x2c6, subw 0x0, time 64782780, (-202,438), root:(1491,799),
state 0x58, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 40, synthetic NO, window 0x1a00001,
root 0x2c6, subw 0x0, time 64782780, (-202,438), root:(1491,799),
state 0x50, keycode 133 (keysym 0xffeb, Super_L), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
F1mit Fngibt erwartetes Ergebnis:
KeyPress event, serial 40, synthetic NO, window 0x1a00001,
root 0x2c6, subw 0x0, time 64820204, (-856,-213), root:(1097,247),
state 0x10, keycode 67 (keysym 0xffbe, F1), same_screen YES,
XLookupString gives 0 bytes:
XmbLookupString gives 0 bytes:
XFilterEvent returns: False
KeyRelease event, serial 40, synthetic NO, window 0x1a00001,
root 0x2c6, subw 0x0, time 64820284, (-856,-213), root:(1097,247),
state 0x10, keycode 67 (keysym 0xffbe, F1), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
xev
einmal ausführen und die Ausgabe für zwei verschiedene F-Tasten einfügen?Antworten:
Ich habe das gleiche Ergebnis erzielt, indem ich die Schlüsselcodes zwischen
Fn+Fx
undFx
wo x ist getauscht habe1,2,...12
.xmodmap -pke
diese Option, um eine Liste der aktuellen Schlüsselcodes und Schlüsselsymbole abzurufen.xev
und drückenF1
durchF12
Kenntnis ihrer keycode zu halten.~/.Xmodmap
Datei.Zum Beispiel in meinem System das Ergebnis von (1):
Dann habe ich es eingetauscht
~/.Xmodmap
:Dann zum Affektlauf nehmen
xmodmap ~/.Xmodmap
.quelle
xev
Ereignisse, die von der Desktop-Umgebung erfasst werden, können nicht angezeigt werden. Eine bessere Möglichkeit zum Testen von Schlüsseln ist die Verwendung einesshowkey
Befehls (an der Linux-Konsole, nicht in X11). Ich vermute, dass das Betriebssystem tatsächlich eine Shift + Super + -Kombination mit einigen Tasten erhält.Obwohl Sie diese Kombination möglicherweise nur einer F-Taste zuordnen könnten, wäre dies wahrscheinlich problematisch: Sie müssten die Umschalttaste "loslassen" (da die Tastatur das Drücken simuliert), und die Umschalttaste + F1-Funktion wäre noch komplizierter , da es eine Verfolgung erfordern würde, wenn die Umschalttaste zuvor gedrückt gehalten wurde.
Dieses Problem tritt häufig bei Laptops auf, die häufig entweder eine Tastenkombination zum Umschalten von Multimedia-Hotkeys oder eine Option in ihrem BIOS / ihrer Firmware haben. Aber wie Sie erwähnt haben, dass es sich um ein bestimmtes Modell einer externen Tastatur handelt, habe ich online gesucht: Ich habe dieses Projekt gefunden:
https://github.com/milgner/k290-fnkeyctl
In der Projektbeschreibung heißt es, dass "die Funktionsweise der Funktionstasten auf Logitech K290-Tastaturen neu konfiguriert wird", sodass es sich möglicherweise lohnt, einen Versuch zu unternehmen.
quelle