foxygit / screensaver Log in
commits tags

/README.md · 2.87 KB

raw

screensaver

En egen variant av Omarchys terminal-screensaver (samma idé: tte animerar en ASCII-konstfil i en fullskärms-terminal), anpassad för X11/sxwm istället för Hyprland.

Filer

  • screensaver.txt – ASCII-konsten/loggan som animeras. Byt ut mot vad du vill

    (vilken textfil som helst funkar, tte bryr sig inte om innehållet).

  • screensaver – körs inuti terminalfönstret: loopar tte med slumpmässig effekt,

    avslutar sig själv vid tangenttryck eller om fönstret tappar fokus.

  • screensaver-launch – hittar alla anslutna skärmar (xrandr) och öppnar ett

    fullskärms-kitty-fönster med screensaver på var och en.

  • screensaverd – bevakar inaktivitet via xssstate och startar/dödar

    screensavern automatiskt. Skjuter upp start (och avbryter en redan startad screensaver) medan något spelar upp media, via playerctl status – kräver playerctl (valfritt, hoppas bara över om det saknas) och stöd för MPRIS i spelaren (mpv, VLC, Firefox/Chromium m.fl.).

  • screensaver-toggle – pausar/återupptar screensaverd. Kör en gång för att

    pausa (avbryter screensavern direkt om den visas just då), kör igen för att återuppta.

Installation

Kräver tte, xdotool, wmctrl, xssstate (paketet x11-utils eller suckless-tools beroende på distro) och kitty.

pipx install terminaltexteffects   # installerar `tte` i din användarmiljö, ingen sudo

Använda manuellt

./screensaver-launch   # starta screensavern direkt, på alla skärmar

Avsluta genom att röra musen eller trycka en tangent.

Automatisk aktivering vid inaktivitet

Filerna installeras i ~/.local/bin (som ligger i PATH, se ~/.xinitrc). Starta screensaverd när sxwm startar genom att lägga till en rad i ~/.config/sxwmrc:

exec : "screensaverd"

Vill du justera tiden till skärmsläckaren (standard 150 sekunder) utan att ändra scriptet, gör en liten wrapper eftersom exec inte går genom en shell och därmed inte kan sätta miljövariabler direkt:

# ~/.local/bin/screensaverd-300  (chmod +x)
#!/bin/sh
SCREENSAVER_IDLE_SECONDS=300 exec "$HOME/.local/bin/screensaverd"
exec : "screensaverd-300"

Efter ändring i sxwmrc: logga ut och in igen (eller kör call : mod + r : reload_config — observera att reload_config läser om bindningar/inställningar men exec-raderna körs bara vid sxwm-start).

Pausa tillfälligt

screensaver-toggle   # pausa; kör igen för att återuppta

Styr det med en tangent genom att lägga till i ~/.config/sxwmrc:

bind : mod + shift + s : "screensaver-toggle"

Byta ASCII-konst

Peka screensaver mot en annan fil genom att sätta miljövariabeln innan start:

SCREENSAVER_ART=~/min-logga.txt ./screensaver-launch