foxygit / dotfiles Log in
commit 70c6f61d3a83584f249ba9d59c01ae8f4fab91f7
Author:     mrfox <jens.se@icloud.com>
AuthorDate: Sun Sep 20 22:08:33 2026 +0200
Commit:     mrfox <jens.se@icloud.com>
CommitDate: Sun Sep 20 22:08:33 2026 +0200

    docs: document screensaver env vars (frame rate, font size, idle, art)

    Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
---
 README.md | 17 ++++++++++++++++-
 1 file changed, 16 insertions(+), 1 deletion(-)

diff --git a/README.md b/README.md
index e69be86..d8d8c38 100644
--- a/README.md
+++ b/README.md
@@ -396,7 +396,22 @@ Installed to `~/.local/bin` by `install.sh` and wired into `sxwmrc`/`~/.xinitrc`
 The screensaver renders `bin/screensaver.txt` through random
 [terminaltexteffects](https://github.com/ChrisBuilds/terminaltexteffects)
 animations (installed via `pipx` during setup) inside a fullscreen st
-window, and exits the instant you touch the mouse or keyboard.
+window, and exits the instant you touch the mouse or keyboard. It also stops
+itself the moment DPMS blanks the display or media starts playing (checked
+every second by `screensaverd`), so it never keeps animating — and burning
+CPU/GPU — into a screen nobody can see.
+
+Idle timeout, frame rate, cell size and art are all environment variables,
+read fresh each time `screensaverd` launches it — set them in `~/.xinitrc`
+before `exec sxwm` (or wherever `screensaverd` gets started) to override the
+defaults:
+
+| Variable | Default | Effect |
+|---|---|---|
+| `SCREENSAVER_IDLE_SECONDS` | `150` | Seconds of inactivity before the screensaver launches |
+| `SCREENSAVER_FPS` | `30` | `tte`'s `--frame-rate`. Higher looks smoother but costs more CPU — mostly matters once the cell count (below) is already low; at the default full-monitor cell count most effects are CPU-bound computing the frame and barely respond to this at all |
+| `SCREENSAVER_FONT_SIZE` | `36` | st's font `pixelsize` while the screensaver runs. Bigger font = fewer, larger terminal cells for `tte` to animate over the same screen area, which is the bigger lever of the two — measured ~65% less CPU from cell count alone, before even touching frame rate |
+| `SCREENSAVER_ART` | `screensaver.txt` next to the script | Path to the ASCII/ANSI art file to animate |

 ## Geany