# screensaver En egen variant av [Omarchy](https://github.com/basecamp/omarchy)s terminal-screensaver (samma idé: [tte](https://github.com/ChrisBuilds/terminaltexteffects) animerar en ASCII-konstfil i en fullskärms-terminal), anpassad för X11/[sxwm](https://github.com/uint23/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`. ```sh pipx install terminaltexteffects # installerar `tte` i din användarmiljö, ingen sudo ``` ## Använda manuellt ```sh ./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: ```sh # ~/.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 ```sh 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: ```sh SCREENSAVER_ART=~/min-logga.txt ./screensaver-launch ```