pipes-rs logo

pipes-rs lhvy

Use this command to install pipes-rs:
winget install --id=lhvy.pipes-rs -e

An over-engineered rewrite of pipes.sh in Rust.

README

pipes-rs

GitHub Actions CI status

> An over-engineered rewrite of pipes.sh in Rust

pipes-rs preview

Installation

Install the latest version release via git on any platform using Cargo:

cargo install --git https://github.com/lhvy/pipes-rs

Alternatively for macOS, install via Homebrew:

brew install lhvy/tap/pipes-rs

Alternatively for Windows, install via Scoop:

scoop bucket add extras
scoop install pipes-rs

Manual Download

Download compiled binaries from releases.

Windows Font Issues

There have been reports that some characters pipes-rs uses are missing on Windows, which causes them to appear as tofu. If you experience this issue, try using a font with a large character set, such as Noto Mono.

Keybindings

  • r: reset the screen
  • q or ^C: exit the program

Configuration

pipes-rs can be configured using TOML located at ~/.config/pipes-rs/config.toml. The following is an example file with the default settings:

bold = true
color_mode = "ansi" # ansi, rgb or none
palette = "default" # default, darker, pastel or matrix
rainbow = 0 # 0-255
delay_ms = 20
inherit_style = false
kinds = ["heavy"] # heavy, light, curved, knobby, emoji, outline, dots, blocks, sus
num_pipes = 1
reset_threshold = 0.5 # 0.0–1.0
turn_chance = 0.15 # 0.0–1.0

Color Modes

ModeDescription
ansipipe colors are randomly selected from the terminal color profile, default option
rgbpipe colors are randomly generated rgb values, unsupported in some terminals
nonepipe colors will not be set and use the current terminal text color

Palettes

PaletteDescription
defaultbright colors – good on dark backgrounds, default option
darkerdarker colors – good on light backgrounds
pastelpastel colors – good on dark backgrounds
matrixcolors based on Matrix digital rain – good on dark backgrounds

Pipe Kinds

KindPreview
heavy┃ ┃ ━ ━ ┏ ┓ ┗ ┛
light│ │ ─ ─ ┌ ┐ └ ┘
curved│ │ ─ ─ ╭ ╮ ╰ ╯
knobby╽ ╿ ╼ ╾ ┎ ┒ ┖ ┚
emoji👆 👇 👈 👉 👌 👌 👌 👌
outline║ ║ ═ ═ ╔ ╗ ╚ ╝
dots• • • • • • • •
blocks█ █ ▀ ▀ █ █ ▀ ▀
susඞ ඞ ඞ ඞ ඞ ඞ ඞ ඞ

Due to emojis having a different character width, using the emoji pipe kind along side another pipe kind can cause spacing issues.

Options

There are also command line options that can be used to override parts of the configuration file:

OptionUsageExample
-btoggles bold text-b true
-csets the color mode-c rgb
-dsets the delay in ms-d 15
-itoggles if pipes inherit style when hitting the edge-i false
-ksets the kinds of pipes, each kind separated by commas-k heavy,curved
-psets the number of pipes on screen-p 5
-rsets the percentage of the screen to be filled before resetting-r 0.75
-tchance of a pipe turning each frame-t 0.15
--palettesets the color palette, RGB mode only--palette pastel
--rainbowsets the number of degrees per frame to shift the hue of each pipe, RGB mode only--rainbow 5

Credits

Contributors

pipes-rs is maintained by lhvy and lunacookies; any other contributions via PRs are welcome! Forks and modifications are implicitly licensed under the Blue Oak Model License 1.0.0. Please credit the above contributors and pipes.sh when making forks or other derivative works.

Inspiration

This project is based off of pipes.sh.

Versions
1.6.3
1.6.0
Website