Classic After Dark screensaver recreation.
Runs on Wayland, X11, and Raspberry Pi using SDL2.
- Raspberry Pi / Debian / Ubuntu:
sudo apt install build-essential pkg-config libsdl2-dev # For xscreensaver support (draws directly on its window): sudo apt install libx11-dev libxpm-dev - macOS:
brew install sdl2
make buildThe binary will be in bin/flying-toasters. Run make run to preview in windowed mode, or ./bin/flying-toasters for fullscreen.
On Raspberry Pi OS (64-bit, Bookworm) with Wayland, SDL2 uses Wayland automatically. No extra setup needed.
To force Wayland if both X11 and Wayland are available:
SDL_VIDEODRIVER=wayland ./bin/flying-toastersControls: Press Escape or close the window to exit.
- Wayland: Use with a Wayland screensaver/inhibit daemon. Some options:
- swayidle + custom script
- wayland-idle-inhibit
- X11 / XScreensaver: Add to
~/.xscreensaver:Requires/usr/local/bin/flying-toasterslibx11-devandlibxpm-dev. When launched by xscreensaver, draws directly on its window (no flickering). If you see "DISPLAY is not set", ensure xscreensaver is started with your session's DISPLAY (e.g.export DISPLAY=:0in your autostart).
Cross-compile for Linux (e.g. from macOS):
docker build -t flying-toasters .
docker create --name ft flying-toasters
docker cp ft:/flying-toasters ./
docker rm ft
chmod +x flying-toasters