Files

3.4 KiB

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.

tazza piena = attivo, tazza vuota = inattivo

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.