Shortcuts - FN Tasten
Überprüfen von ACPI-Ereignissen
Installiere und starte den ACPI-Dienst:
sudo apt-get update
sudo apt-get install acpid
sudo systemctl enable acpid
sudo systemctl start acpid
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.
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:
-
ACPI-Ereignisdateien:
Im Verzeichnis/etc/acpi/events/
liegen Konfigurationsdateien wiemedia_prev
. Jede dieser Dateien enthält zwei wichtige Teile:- event=...
Hier wird ein Muster definiert, das einem bestimmten ACPI-Ereignis entspricht. Zum Beispiel könnteevent=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 vonmedia_prev
wäre das beispielsweise ein Skript, das den Befehlplayerctl previous
ausführt, um zum vorherigen Track zu wechseln.
- event=...
-
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.
-
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 Dateimedia_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
No Comments