Wie sich herausstellte, hat der Kernel es zwar aufgenommen, sich aber immer wieder beschwert, dass es nicht erkannt wird.
Wenn Sie dieses Problem haben oder einen Schlüssel zuordnen möchten, der nicht vom Betriebssystem gelesen wird, lesen Sie weiter.
Öffnen Sie ein Terminal und führen Sie es aus dmesg | grep -A 1 -i setkeycodes
. Dadurch erhalten Sie mehrere Einträge wie folgt:
[ 9.307463] atkbd serio0: Unknown key pressed (translated set 2, code 0xbe on isa0060/serio0).
[ 9.307476] atkbd serio0: Use 'setkeycodes e03e <keycode>' to make it known.
Was uns interessiert, ist der Hexadezimalwert nach "setkeycodes", in diesem Fall ist dies e03e
. Wenn Sie mehrere davon haben, können Sie ausführen tail -f /var/log/kern.log
. Sobald Sie dies getan haben, können Sie auf die Schaltfläche tippen, nach der Sie suchen. Dadurch erhalten Sie dieselbe Zeile wie oben. Auch hier benötigen wir nur den Hexadezimalwert. Notieren Sie sich dies.
Führen xmodmap -pke | less
Sie nun die entsprechende Zuordnung aus und suchen Sie sie. In meinem Fall musste ich dies zuordnen, um mein Touchpad umzuschalten, was bedeutet, dass ich an der folgenden Zeile interessiert war:
keycode 199 = XF86TouchpadToggle NoSymbol XF86TouchpadToggle
Wenn Sie nicht finden können, woran Sie interessiert sind, lesen Sie auch die Antwort von @Gilles, da Sie auch benutzerdefinierte Zuordnungen definieren können, und lesen Sie dann weiter (wenn der Kernel sie liest, müssen Sie sie nicht zu xorg.conf hinzufügen. d)
Jetzt habe ich den folgenden Befehl ausgeführt: sudo setkeycodes [hexadecimal] [keycode]
In meinem Fall wurde das : setkeycodes e03e 199
.
Jetzt können Sie die folgende Zeile verwenden, um zu testen, ob es funktioniert hat und / oder ob Sie die richtige Zuordnung haben:
xev | grep -A2 --line-buffered '^KeyRelease' | sed -n '/keycode /s/^.*keycode \([0-9]*\).* (.*, \(.*\)).*$/\1 \2/p'
Wenn Sie diesen Befehl ausführen, müssen Sie sich auf das neu geöffnete Fenster ( xev
) konzentrieren und die Konsolenausgabe überprüfen. In meinem Fall lautete es wie folgt:
207 NoSymbol
Dies war offensichtlich falsch, da ich den Schlüsselcode angefordert habe 199
, also ist er zugeordnet XF86TouchpadToggle
. Ich habe es xmodmap -pke
erneut überprüft und festgestellt, dass keycode 207
es tatsächlich zugeordnet ist NoSymbol
, und ich habe festgestellt, dass es einen Versatzunterschied von 8 gibt. Deshalb habe ich den setkeycodes
Befehl erneut versucht , aber der Schlüssel ist zugeordnet keycode 191
.
sudo setkeycodes e03e 191
Das hat perfekt funktioniert.
BEARBEITEN - die Lösung, die ich bereitgestellt habe, um am Start arbeiten zu müssen, funktioniert nicht. Ich werde das morgen herausfinden und diese Antwort aktualisieren. Im Moment können Sie dies vermutlich beim Start manuell ausführen.
Wie es aussieht, ist das Gerät eine Tastatur (in der Software als von der „Kerntastatur“ getrennt erkannt), aber der X-Server hört nicht darauf.
Versuchen Sie , einen Eingabebereich unter hinzuzufügen
/etc/X11/xorg.conf.d
. Erstellen Sie also ein Verzeichnis,/etc/X11/xorg.conf.d
falls es noch nicht vorhanden ist, und erstellen Sie eine Dateiextra-keyboard-buttons
in diesem Verzeichnis, die Folgendes enthältIch bin mir bei dieser
MatchProduct
Zeile nicht sicher . Wenn es nicht funktioniert, versuchen Sie, mit denMatchXXX
Anweisungen herumzuspielen .Sobald diese Datei korrekt eingerichtet ist, sollte sie beim Starten des X-Servers Ereignisse über diese Tastatur verarbeiten und Ereignisse in
xev
und an anderer Stelle anzeigen. Notieren Sie sich den Schlüsselcode (ich bin nicht sicher, ob der X11-Schlüsselcode in diesem Fall mit dem Hardware-Schlüsselcode übereinstimmt) und ordnen Sie ihm einen Schlüssel zu. Sie können dies über eine Datei tun, die.Xmodmap
in Ihrem Home-Verzeichnis aufgerufen wird und Folgendes enthältMit diesen Tasten können Sie jetzt Tastaturkürzel definieren .
Verwenden Sie den Befehl, um das Touchpad umzuschalten
xinput
. Führenxinput list
Sie den Befehl aus, um festzustellen, welche Eingabegeräte verfügbar sind, und notieren Sie sich den Namen Ihres Touchpads (ich werde ihnTouchpad
unten nennen). Ausführen,xinput list-props Touchpad
um die Eigenschaften aufzulisten. Einer von ihnen sollte "Gerät aktiviert" mit einer Nummer daneben heißen (z. B. 135). Das folgende Skript schaltet das Touchpad um:Speichern Sie dies in einer Datei
~/bin/toggle-touchpad
und machen Sie es ausführbar (chmod +x ~/bin/toggle-touchpad
). Um es an einen Schlüssel zu binden, installieren Sie xbindkeys und konfigurieren Sie es so, dass Ihr Skript ausgeführt wird, indem Sie die folgenden Zeilen einfügen~/.xbindkeysrc
:quelle