Ich arbeite auf einem Notebook, und wie die meisten Notebook-Nutzer lebe ich in zwei Welten. Am Schreibtisch hängt der Laptop am Strom, soll also volle Leistung bringen - Kompilieren, Container starten, mehrere Browser-Fenster mit Dev-Tools offen haben. Unterwegs im Zug oder im Café zählt dagegen jede Minute Akkulaufzeit, und ich brauche kein Maximum an CPU-Boost, sondern möglichst lange Durchhaltevermögen.
Linux bietet dafür Energieprofile. Das Problem: Ich musste sie bisher jedes Mal von Hand umschalten. Das vergesse ich zuverlässig. In diesem Artikel zeige ich dir, wie du das loswirst und das mit einer kleinen udev-Regel, die das Profil automatisch wechselt, sobald du das Netzkabel einsteckst oder ziehst.

Was ist ein Energieprofil?
Moderne Linux-Desktops kennen drei Energieprofile:
- Power Saver (Energiesparen): Stromspar-Modus. Die CPU taktet niedriger, Turbo-Boost wird gedrosselt, Lüfter drehen langsamer. Akku hält deutlich länger, dafür merkst du den Leistungseinbruch bei anspruchsvollen Aufgaben.
- Balanced (Ausgeglichen): Der Kompromiss. Standard-Modus auf den meisten Distros. Leistung auf Abruf, aber kein aggressives Boosten.
- Performance (Leistung): Volle Leistung. Turbo-Boost voll aktiviert, alle Kerne dürfen hochtakten, Lüfter drehen auch mal laut. Für kompilierintensive Arbeit, Videoschnitt oder vielen Container gleichzeitig.
Die Profile werden vom power-profiles-daemon verwaltet, einem kleinen Systemdienst, der 2021 eingeführt wurde und inzwischen auf fast allen grossen Desktop-Linux-Systemen mitläuft.
Der power-profiles-daemon und seine Grenzen
power-profiles-daemon ist unter der Haube aktiv auf:
- GNOME (ab Version 40 offiziell integriert, also Ubuntu 21.10 oder neuer)
- KDE Plasma (ab Version 5.24, also Kubuntu 22.04 oder neuer)
- Cinnamon (ab Version 6.0, also Linux Mint 21.3 oder neuer)
- XFCE (über
xfce4-power-managermit Plugin)
Du kannst über das Batterie-Symbol in der Systemleiste zwischen den Profilen wechseln. Auf der Kommandozeile funktioniert das Gleiche mit dem Tool powerprofilesctl:
# Aktuelles Profil anzeigen
powerprofilesctl get
# Verfügbare Profile auflisten
powerprofilesctl list
# Profil setzen
powerprofilesctl set performance
powerprofilesctl set balanced
powerprofilesctl set power-saverDas Problem ist nur: Ich muss daran denken. Wenn ich morgens den Laptop vom Dock löse und in den Zug steige, bleibt das Performance-Profil aktiv - und der Akku ist nach 90 Minuten leer statt nach drei Stunden. Umgekehrt bleibt abends der Stromsparmodus aktiv, und ich wundere mich, warum der Rust-Build so lange dauert.
Die Lösung: udev soll das für mich übernehmen.
Wie udev bei der Sache hilft
udev ist der Teil von Linux, der auf Hardware-Ereignisse reagiert. Wenn du einen USB-Stick einsteckst, ist es udev, das bemerkt "da ist ein neues Gerät" und die passenden Treiber lädt. Genau diesen Mechanismus nutzen wir.
Wenn du das Netzteil einsteckst oder abziehst, feuert der Kernel ein udev-Event auf dem Netzteil-Subsystem. Wir schreiben eine Regel, die auf dieses Event reagiert und powerprofilesctl aufruft.
Die udev-Regel einrichten
Zuerst schauen wir uns an, wie dein System das Netzteil benennt. Bei den meisten Notebooks heisst es AC oder ACAD, aber das ist nicht garantiert. Prüf das mit:
ls /sys/class/power_supply/Bei mir zeigt das beispielsweise AC und BAT0. Der Eintrag ohne BAT ist das Netzteil - in meinem Fall AC. Den Namen merken wir uns.

Jetzt legst du die udev-Regel an. Öffne eine neue Datei mit Root-Rechten:
sudo nano /etc/udev/rules.d/99-power-profiles.rulesUnd trägst folgendes ein:
# Netzkabel eingesteckt -> Performance-Profil
SUBSYSTEM=="power_supply", ATTR{online}=="1", \
RUN+="/usr/bin/powerprofilesctl set performance"
# Netzkabel abgezogen -> Balanced-Profil (oder power-saver)
SUBSYSTEM=="power_supply", ATTR{online}=="0", \
RUN+="/usr/bin/powerprofilesctl set balanced"Wenn du lieber aggressiv Strom sparen willst im Akku-Betrieb, ersetzt du in der zweiten Regel balanced durch power-saver. Ich persönlich bleibe im Akku-Betrieb bei balanced, weil mir im Zug Performance oft noch wichtig ist und Power-Saver sich auf meinem Thinkpad merklich zäh anfühlt.
Falls deine Netzteil-Bezeichnung abweicht, kannst du sie noch explizit angeben, um Fehlzündungen durch andere Power-Supply-Events zu vermeiden:
# Netzkabel eingesteckt -> Performance-Profil
SUBSYSTEM=="power_supply", KERNEL=="AC", ATTR{online}=="1", \
RUN+="/usr/bin/powerprofilesctl set performance"
# Netzkabel abgezogen -> Balanced-Profil (oder power-saver)
SUBSYSTEM=="power_supply", KERNEL=="AC", ATTR{online}=="0", \
RUN+="/usr/bin/powerprofilesctl set balanced"KERNEL=="AC" müsstest du auf deinen Namen aus dem ersten Schritt anpassen.
Regel aktivieren
udev lädt neue Regeln nicht automatisch. Nach dem Speichern der Datei musst du die Regeln neu einlesen:
sudo udevadm control --reload-rules
sudo udevadm triggerDer erste Befehl lädt die Regel-Definitionen neu, der zweite löst die Events einmal manuell aus, damit die neue Regel sofort ein konsistentes Profil setzt.
Testen, ob es funktioniert
Jetzt kommt der angenehme Teil. Zieh das Netzkabel. Warte zwei Sekunden. Dann:
powerprofilesctl getSollte balanced (oder power-saver, je nach deiner Konfiguration) anzeigen. Steck das Netzkabel wieder ein, warte kurz, und der gleiche Befehl meldet jetzt performance.
Wenn's nicht funktioniert, hilft ein Blick in das System-Log:
journalctl -f | grep -i powerZieh oder steck das Kabel mit diesem Befehl im Hintergrund, und du siehst die udev-Events live. Häufigste Fehler: falscher Pfad zu powerprofilesctl (prüf mit which powerprofilesctl, bei manchen Distros liegt es in /usr/local/bin), oder ein Tippfehler in der Regel.
Warum das mehr ist als Komfort
Zwei konkrete Zahlen aus meinem Alltag:
- Vor der Automatisierung: Akkulaufzeit unterwegs zwischen 4 und 5 Stunden, abhängig davon, ob ich ans Umschalten dachte.
- Nach der Automatisierung: konstant 7 bis 9 Stunden - ohne dass ich irgendetwas anders mache.
Der Effekt ist nicht spektakulär, aber er ist verlässlich. Und das ist der eigentliche Punkt: kleine Automatisierungen, die dir Entscheidungen abnehmen, summieren sich über die Zeit.
Bonus: noch eine Stufe weiter
Wenn du magst, kannst du die Regel noch verfeinern. Ein paar Ideen, die ich selbst nicht (oder noch nicht) implementiert habe:
- Bei Akkustand unter 20% automatisch auf
power-saverwechseln, unabhängig vom Netzkabel. - Beim Start eines bestimmten Programms (zum Beispiel beim Öffnen von Blender oder einer Videokonferenz) temporär auf
performancewechseln. - Die Bildschirmhelligkeit in derselben Regel mitanpassen (über
brightnessctl).
Solche Erweiterungen gehen über udev hinaus und brauchen meist ein kleines Shell-Skript oder einen systemd-Dienst. Vielleicht ein Thema für einen späteren Artikel.
Für heute reicht, was wir haben: Das Notebook passt sich jetzt von allein an, je nachdem, ob es am Strom hängt oder nicht. Genau so, wie es eigentlich immer schon hätte sein sollen.