enne2-caffeine
Widget per il pannello di KDE Plasma 6 che impedisce lo spegnimento dello schermo, il blocco schermo e la sospensione automatica: l'equivalente Plasma di Caffeine di GNOME.
Funzioni
- Clic sinistro sull'icona → attiva/disattiva immediatamente (come Caffeine su GNOME). Tazza piena = inibizione attiva, tazza vuota = inibizione assente.
- Clic centrale → popup con le opzioni rapide.
- Due modalità:
- Schermo + sospensione (default, come Caffeine): blocca spegnimento/dim dello schermo, blocco schermo e sospensione automatica;
- Solo sospensione (come Amphetamine): il computer non si sospende ma lo schermo può spegnersi normalmente.
- Timer di disattivazione automatica (5/15/30/60/120/240 minuti, oppure mai), con countdown nel tooltip e nell'icona di pannello; notifica opzionale alla scadenza.
- Il widget è "stateless": dopo un riavvio Caffeine è spento, come ci si aspetta.
Come funziona
Il backend sono due unità systemd utente che lanciano systemd-inhibit (logind) e restano
vive finché l'inibizione è attiva:
| Modalità | Unità | systemd-inhibit |
|---|---|---|
| schermo + sospensione | enne2-caffeine-screen.service |
--what=sleep:idle |
| solo sospensione | enne2-caffeine-sleep.service |
--what=sleep |
PowerDevil/PolicyAgent traduce le inibizioni logind in policy interne:
sleep→InterruptSession(niente sospensione automatica);idle→ChangeScreenSettings(niente dim/spegnimento dello schermo, niente blocco schermo).
Perché non si usa direttamente org.kde.Solid.PowerManagement.PolicyAgent.AddInhibition?
Perché il cookie di quell'API è legato al chiamante D-Bus: una chiamata da un processo
effimero verrebbe rilasciata subito (e l'inibizione ha 5 s di delay prima di essere applicata).
Usando unità systemd l'inibizione sopravvive anche al riavvio di plasmashell e si rilascia da
sola alla fine della sessione.
Installazione
git clone ssh://git@git.enne2.net:222/enne2/kde-caffeine.git
cd kde-caffeine
./install.sh
Poi: tasto destro sul pannello → Aggiungi widget → Caffeine (categoria Utilità). Per averlo vicino all'orologio trascinalo a sinistra dell'orologio.
CLI e scorciatoia da tastiera
bin/enne2-caffeine status # state=on|off, mode=screen|sleep, deadline=<epoch>
bin/enne2-caffeine on 30 # attiva per 30 minuti (modalità schermo + sospensione)
bin/enne2-caffeine toggle # inverti
bin/enne2-caffeine sleep on 60 # solo sospensione, 60 minuti
bin/enne2-caffeine off
Per una scorciatoia globale: Impostazioni di sistema → Tastiera → Scorciatoie → Aggiungi →
Comando o script, comando enne2-caffeine toggle (o il percorso completo dello script).
Verifica
systemd-inhibit --list | grep enne2-caffeine
busctl --user get-property org.kde.Solid.PowerManagement \
/org/kde/Solid/PowerManagement/PolicyAgent \
org.kde.Solid.PowerManagement.PolicyAgent ActiveInhibitions | grep -i caffeine
La seconda mostra che PowerDevil ha recepito l'inibizione logind (what=idle:sleep).
Configurazione del widget
Tasto destro sull'icona → Configura Caffeine…:
- Impedisci anche lo spegnimento e il blocco dello schermo (default: attivo);
- Disattiva automaticamente dopo N minuti (0 = mai);
- Notifica quando scade il timer.
Licenza
MIT — vedi LICENSE.