Skip to main content

Shortcuts - FN Tasten

Überprüfen von ACPI-Ereignissen

a. Installiere und starte den ACPI-Dienst:

 

sudo apt-get update
sudo apt-get install acpid
sudo systemctl enable acpid
sudo systemctl start acpid

b. Verwende acpi_listen, um zu sehen, ob die Fn-Tasten ACPI-Ereignisse auslösen:

acpi_listen

    Drücke nun nacheinander die Fn-Tasten F9, F10 und F11.


    Beobachte die Ausgabe im Terminal.

    Wenn beim Drücken der Tasten Ereignisse angezeigt werden (z.B. button/prev, button/play, button/next), kannst du diese Ereignisse nutzen, um Aktionen auszuführen.


    ACPI

    ACPI arbeitet über ein Ereignissystem, das in deinem System so konfiguriert ist, dass es bei bestimmten Hardware-Ereignissen (wie z. B. Fn-Tastendrücken) automatisch Skripte oder Befehle ausführt. Hier eine Erklärung, wie das im Detail funktioniert:

    1. ACPI-Ereignisdateien:
      Im Verzeichnis /etc/acpi/events/ liegen Konfigurationsdateien wie media_prev. Jede dieser Dateien enthält zwei wichtige Teile:

      • event=...
        Hier wird ein Muster definiert, das einem bestimmten ACPI-Ereignis entspricht. Zum Beispiel könnte event=ibm/hotkey LEN0268:00 00000080 00001317 genau dem Signal entsprechen, das gesendet wird, wenn du F9 drückst.
      • action=...
        Hier wird angegeben, welcher Befehl oder welches Skript ausgeführt werden soll, wenn ein Ereignis eintritt, das dem Muster entspricht. Im Fall von media_prev wäre das beispielsweise ein Skript, das den Befehl playerctl previous ausführt, um zum vorherigen Track zu wechseln.
    2. Der ACPI-Daemon (acpid):
      Beim Systemstart lädt der ACPI-Daemon (acpid) alle Dateien aus /etc/acpi/events/ ein. Er „kennt“ dadurch alle Muster und die zugehörigen Aktionen.
      Sobald ein ACPI-Ereignis (z. B. das Drücken von F9) vom Kernel erzeugt wird, vergleicht acpid dieses Ereignis mit den Mustern in den Konfigurationsdateien.

      • Passender Treffer: Findet acpid ein Muster, das zu deinem Tastendruck passt, wird automatisch die in der Datei definierte Aktion ausgeführt.
    3. Kein manuelles „Verlinken“ nötig:
      Es gibt keine separate Konfigurationsdatei, in der du explizit die Fn-Tasten mit den Skripten verknüpfst.
      Stattdessen durchforstet acpid beim Start das Verzeichnis /etc/acpi/events/ und „registriert“ alle darin enthaltenen Ereignismuster.
      Wenn du also F9 drückst und das ACPI-Ereignis exakt mit dem in der Datei media_prev definierten Muster übereinstimmt, weiß acpid automatisch, dass es das entsprechende Skript (bzw. den Befehl) ausführen soll.

    Zusammengefasst:

    • ACPI-Ereignisdateien im Verzeichnis /etc/acpi/events/ definieren, welches ACPI-Signal (Muster) welcher Aktion zugeordnet ist.
    • Der ACPI-Daemon liest diese Dateien beim Start und überwacht fortlaufend die Ereignisse.
    • Wenn ein Ereignis (z. B. F9) erkannt wird, das mit einem in einer dieser Dateien definierten Muster übereinstimmt, führt acpid die entsprechende Aktion aus (z. B. "Track zurück").

    So „weiß“ das System also automatisch, dass bei einem F9-Druck der vorherige Track abgespielt werden soll – alles basiert auf den in den ACPI-Ereignisdateien definierten Mustern und Aktionen.

     

     

     

    Next Song - Spotify

     

    /etc/acpi/events/media_next

     

    event=ibm/hotkey LEN0268:00 00000080 00001319
    action=/usr/bin/sudo -u jj /etc/acpi/local/media_next.sh

     

    /etc/acpi/local/media_next.sh
    #!/bin/bash
    
    export DISPLAY=:0.0
    export XAUTHORITY=/home/jj/.Xauthority
    export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
    
    playerctl -p spotify next

     

     

     

    Previous Song - Spotfy

     

    /etc/acpi/events/media_prev
    event=ibm/hotkey LEN0268:00 00000080 00001317
    action=/usr/bin/sudo -u jj /etc/acpi/local/media_prev.sh

     

    /etc/acpi/local/media_prev.sh
    #!/bin/bash
    
    export DISPLAY=:0.0
    export XAUTHORITY=/home/jj/.Xauthority
    export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
    
    playerctl -p spotify previous

     

     

     

    Play and Pause - Spotify

     

    /etc/acpi/events/media_play_pause
    event=ibm/hotkey LEN0268:00 00000080 00001318
    action=/usr/bin/sudo -u jj /etc/acpi/local/media_play_pause.sh

     

    /etc/acpi/local/media_play_pause.sh
    #!/bin/bash
    
    export DISPLAY=:0.0
    export XAUTHORITY=/home/jj/.Xauthority
    export DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/1000/bus
    
    playerctl -p spotify play-pause