Registrieren  •  Login 
  
 
im Forum




Blog-Übersicht -> Zusätzliche Notebook Hotkeys unter Linux zuweisen netcup Weihnachtspäckchen :: E-Mail Versand am Entwicklungsserver testen
Zusätzliche Notebook Hotkeys unter Linux zuweisen
Verfasst am: 10.04.2019, 19:59   Autor: killerbees19
Mein alter Dimotion Laptop (basierend auf einem Compal HL90) hat drei zusätzliche Hotkeys oberhalb der Tastatur. Diese erzeugen unter Linux unbekannte Keycodes, werden aber jeweils als eigenständige Taste erkannt. Im Kernellog sieht das so aus:

Code:
atkbd serio0: Unknown key pressed (translated set 2, code 0xf5 on isa0060/serio0).
atkbd serio0: Use 'setkeycodes e075 <keycode>' to make it known.
atkbd serio0: Unknown key released (translated set 2, code 0xf5 on isa0060/serio0).
atkbd serio0: Use 'setkeycodes e075 <keycode>' to make it known.

atkbd serio0: Unknown key pressed (translated set 2, code 0xf6 on isa0060/serio0).
atkbd serio0: Use 'setkeycodes e076 <keycode>' to make it known.
atkbd serio0: Unknown key released (translated set 2, code 0xf6 on isa0060/serio0).
atkbd serio0: Use 'setkeycodes e076 <keycode>' to make it known.

atkbd serio0: Unknown key pressed (translated set 2, code 0xf8 on isa0060/serio0).
atkbd serio0: Use 'setkeycodes e078 <keycode>' to make it known.
atkbd serio0: Unknown key released (translated set 2, code 0xf8 on isa0060/serio0).
atkbd serio0: Use 'setkeycodes e078 <keycode>' to make it known.


Sie sind nicht zum längeren Drücken gedacht, auch wenn die LED-Beleuchtung beim Drücken etwas Anderes suggeriert, da sie beim Drücken nach dem "Press" Event sofort das "Release" Event mitsenden. Um sie unter Linux in einer grafischen Benutzeroberfläche nutzen zu können, reichen nachfolgende Schritte. Getestet unter Xubuntu 18.04.

  1. Mit Rootrechten legt man das neue Systemd-Servicefile /etc/systemd/system/setkeycodes.service an:

    Code:
    [Unit]
    Description=setkeycodes
    Before=graphical.target

    [Service]
    Type=oneshot
    # /etc/X11/Xsession.d/80-custom-xmodmap
    ExecStart=/usr/bin/setkeycodes e075 211
    ExecStart=/usr/bin/setkeycodes e076 212
    ExecStart=/usr/bin/setkeycodes e078 213

    [Install]
    WantedBy=multi-user.target


    Dadurch weist man den Tasten beim Systemstart einen internen Keycode zu, der noch nicht verwendet wird. In meinem Fall habe ich mich für 211-213 entschieden, wobei auf 212 normalerweise ein Hotkey liegen würde, den ich nicht habe. Nicht vergessen den neuen Service zu aktivieren:

    Code:
    sudo systemctl enable setkeycodes.service


  2. Zusätzlich müssen die Tasten dem X-Server bekannt gemacht werden. Das könnte man über die Datei ~/.xinitrc für jeden User separat machen, oder man macht es gleich für alle User, indem man mit Rootrechten die Datei /etc/X11/Xsession.d/80-custom-xmodmap anlegt:

    Code:
    # This file is sourced by Xsession(5), not executed.

    if [ -z "$IGNORE_CUSTOM_XMODMAP" ]
    then
       # /etc/systemd/system/setkeycodes.service
       /usr/bin/xmodmap -e 'keycode 219 = R1'
       /usr/bin/xmodmap -e 'keycode 220 = R2'
       /usr/bin/xmodmap -e 'keycode 221 = R3'
    fi


    Zu den vorher definierten dezimalen Keycodes muss jeweils die Zahl 8 addiert werden! In meinem Beispiel werden die Hotkeys als F21, F22 und F23 bekannt gemacht. Falls man andere Tasten zuweisen möchte, gibt es auf wiki.linuxquestions.org eine nette Übersicht über verfügbare Tasten und deren Bezeichnungen. Wie bereits zu Beginn erwähnt, eignen sich die Tasten nicht als Modifikatortasten (z.B. Ctrl/Shift/Alt/...), da sie beim gedrückt Halten sofort ein Loslassen-Event übermitteln!

  3. Nun sollte das System einmal neugestartet werden...

  4. Als letzten Schritt kann man die neuen F-Tasten in Xfce oder Programmen zuweisen. Dieser Schritt muss logischerweise von jedem User separat vorgenommen werden. Um sie innerhalb Xfce zum Starten von Befehlen zu nutzen, reicht ein neuer Eintrag unter Einstellungen » Tastatur » Tastenkürzel. Weitere nützliche Funktionen kann man unter Einstellungen » Fensterverwaltung » Tastatur festlegen. Alternativ kann innerhalb von einzelnen Anwendungen eine Zuweisung für bestimmte Funktionen vorgenommen werden.


Credits: unix.stackexchange.com

Dieser Beitrag wurde insgesamt 5 mal geändert. Zuletzt am 11.04.2019, 05:13.


Autor Nachricht
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



Geschlecht: Männlich
Anmeldedatum: 09.05.2006
Wohnort: Wien (Mariahilf)

Beiträge: 19699
Danke: 1308


BeitragVerfasst am: 10.04.2019, 21:54    Titel: toggle-touchpad & toggle-wifi

Abschließend noch einige praktische Scripte, die man als Hotkey nutzen kann:

 
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline
killerbees19
Administrator & Rennleitung
Administrator & Rennleitung



Geschlecht: Männlich
Anmeldedatum: 09.05.2006
Wohnort: Wien (Mariahilf)

Beiträge: 19699
Danke: 1308


BeitragVerfasst am: 18.12.2023, 20:05    Titel:

Der ursprüngliche Blogbeitrag war für Xubuntu 18.04 (und später 20.04) gedacht. Ob er unter 22.04 noch funktioniert, weiß ich nicht.

Unter Debian 12 funktioniert das jedenfalls nicht! Aus einem mir unbekannten Grund wird die Datei 80-custom-xmodmap nie aufgerufen. Sad

Mein aktueller Workaround sieht nun so aus, dass ich einfach andere (nicht vorhandene) Tasten direkt zuweise:

Code:
[Unit]
Description=setkeycodes
Before=graphical.target

[Service]
Type=oneshot
ExecStart=/usr/bin/setkeycodes e075 156
ExecStart=/usr/bin/setkeycodes e076 157
ExecStart=/usr/bin/setkeycodes e078 192

[Install]
WantedBy=multi-user.target


Die Datei /etc/X11/Xsession.d/80-custom-xmodmap wird dabei nicht mehr benötigt und kann (sofern vorhanden) gelöscht werden!

Das wären nun die Tasten XF86Favorites, XF86MyComputer und XF86TouchpadOn. Smile
 
Nach oben
Benutzer-Profile anzeigen killerbees19 ist derzeit offline


 

Verwendete Zeitzone: CET (Europe/Berlin)
Aktuelles Datum & Uhrzeit: 11.12.2024, 02:12
Nach oben
Valid HTML 4.01 Transitional
Valid CSS!

Hosted by netcup
 
 
[ happytec.at | blog.happytec.at | forum.happytec.at | esports.happytec.at ]