7 releases

0.2.1 Aug 18, 2024
0.2.0 Aug 16, 2024
0.1.4 Aug 15, 2024

#287 in Command-line interface

Download history 382/week @ 2024-08-10 172/week @ 2024-08-17 3/week @ 2024-08-24

557 downloads per month

MIT/Apache

285KB
762 lines

ttysvr

Screensavers for your terminal.

Uses bevy_ratatui_render, my bevy plugin that allows you to render a bevy application to the terminal using ratatui and ratatui-image.

Triggering immediately works in any shell, triggering after a delay is currently Zsh only.

installation

# cargo
cargo install --locked ttysvr
# homebrew
brew install cxreiff/tap/ttysvr

usage

Starts the screensaver immediately. If no variant is specified, one is randomly selected.

ttysvr [VARIANT]

Some variants have subvariants.

ttysvr [VARIANT] [SUBVARIANT]

Sets up the screensaver to activate after DELAY seconds of inactivity in your current shell session.

eval `ttysvr [VARIANT] --init [DELAY]`

Cancels the screensaver in your current shell session.

eval `ttysvr --cancel`

[!IMPORTANT] Note that the --init and --cancel options require being wrapped in eval and backticks. This is because activating the screensaver after a set period of inactivity relies on setting the TMOUT environment variable in your current shell, instead of the child shell created by the ttysvr process. Issues/PRs are greatly appreciated if somebody is aware of a better way of doing this!

variants

variant subvariants? description
bubbles Colorful bubbles bounce around the screen.
logo dvd, tty DVD player style bouncing logo.
maze Not yet implemented.

compatibility

zsh only

The screensaver delay works based on setting a session timeout and catching the ALRM signal in a way only compatible with ZSH. If you know a way to achieve something similar in another shell, please open an issue!

terminal

This requires that your terminal:

  1. Supports 24bit color.
  2. Has reasonably efficient rendering.

This includes a decent variety of terminals, but I have personally confirmed good results in the following:

  • Alacritty (macOS, linux)
  • Kitty (macOS)
  • WezTerm (macOS)
  • iTerm2 (macOS)

Dependencies

~32–46MB
~755K SLoC