#tui #pipe #terminal #screensaver #background-color #termwiz

app rxpipes

2D version of the ancient pipes screensaver for terminals

4 stable releases

1.3.0 Sep 7, 2024
1.2.0 Aug 24, 2024
1.1.0 May 9, 2024
1.0.0 May 3, 2024

#246 in Command line utilities

MIT license

96KB
764 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.
  • Depth mode - in this mode several layers of pipes are drawn, and when a new layer is created, old pipes are made darker which gives a sense of depth. Usable only with RGB palette.
  • Background color setting (by default transparent).
  • Each pipe has its own color; available palettes are: none (colorless), base colors (16 colors defined by your terminal) and RGB.
  • There is a gradient mode for use with RGB palette.
  • Stats widget - decoration that shows various pipe/piece/layer counters and the current pipe color.
  • 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 Third screenshot with depth-mode Fourth screenshot with enabled gradient mode Fifth screenshot with stats widget

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 / Ctrl-C Quit
Space Pause
c Clear screen
s Show stats widget
l Clear and redraw everything
, Change speed by -1
. Change speed by +1
< Change speed by -10
> Change speed by +10

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

~21–32MB
~578K SLoC