#pipe #terminal #crossterm #tui #screensaver #color-palette

app rxpipes

2D version of the ancient pipes screensaver for terminals

2 stable releases

1.1.0 May 9, 2024
1.0.0 May 3, 2024

#565 in Command line utilities

Download history 154/week @ 2024-04-29 134/week @ 2024-05-06

288 downloads per month

MIT license

59KB
368 lines

rxpipes

This program is a 2D screensaver which recreates the Pipes screensaver from old MS Windows versions.

Features

  • 6 available piece sets (see the Piece Sets section to see them).
  • Custom piece sets are supported.
  • Each pipe has its own color; available palettes are: none (colorless), base colors (16 colors defined by your terminal) and RGB.
  • Changeable FPS (frames per second).
  • The minimal and maximal length of pipes can be specified.
  • The maximal number of drawn characters can be also specified. To ignore this setting specify 0 via CLI. The screen will be cleared when this number is reached.
  • The probability of turning pipes is changeable, it's given as a percentage in decimal form (0 .. 1).
  • It enters an alternate screen so it won't mess up your previous output (if your terminal does not support alternate screen, see Installation).

Screenshots

First screenshot with doubled pipes Second screenshot with bold pipes

Installation

You'll need the Rust toolchain (rustup or from system package repo) and make sure it's up to date.

When the toolchain will be prepared, type cargo install rxpipes. If you want to disable the alternate screen feature, add --no-default-features (currently, cargo does not support disabling of individual features).

If you have installed successfully rxpipes, you can now run the it simply by typing rxpipes. If the shell says that the command does not exists, make sure that $HOME/.cargo/bin (or whatever the default cargo dir will be) is in the PATH environment variable.

To see all available options, pass -h or --help.

Controls

Key Action
q / Q / Escape Quit
Space Pause
c Clear screen

Piece Sets

You can select a set by passing -P <ID> to rxpipes.

ID Description Image
0 ASCII pipes
1 Thin dots
2 Bold dots
3 Thin pipes
4 Thin pipes with rounded corners
5 Double pipes
6 Bold pipes (default)

The look of the selected set may differ from the screenshots as it depends on the font that you use.

To set your own piece set see the -c/--custom-piece-set flag in the help message (-h).

Contribution

If you have found a problem or have a suggestion, feel free to open an issue or send a pull request. I'd appreciate it.

License

The rxpipes project is licensed under the MIT license.

Dependencies

~3–9MB
~70K SLoC