ZSCROLL(1)

πŸ“¦ version 2.0.1, in nixos 26.05

πŸ’… ZSCROLL(1) β€” the zscroll man page, but make it cute

okay so bestie, welcome to zscroll(1) β€” the man page for zscroll, aka your new favorite little terminal text scroller. no cap, this thing is iconic.


✨ NAME ✨

zscroll β€” a text scroller for panels or terminals πŸŒ€


πŸŽ€ SYNOPSIS πŸŽ€

zscroll [OPTIONS] [scroll-text or shell command]

that's it. that's the whole vibe. ✨


πŸ¦‹ DESCRIPTION πŸ¦‹

okay so here's the tea β˜• β€” zscroll makes continuously scrolling text, like for a panel or whatever. the text you wanna scroll can be piped into zscroll, or you can just hand it over as a positional argument. either way slays. πŸ’–

and here's the part that's genuinely so good: zscroll lets you dynamically update what text is being scrolled without having to kill it and start a whole new zscroll instance. no restart, no drama, just vibes. periodt. πŸ‘‘


🌸 BOOLEAN VALUES 🌸

booleans here are super chill β€” you can write them in all the common ways, upper, lower, or mixed case (do NOT stress about capitalization, she does not care πŸ’…):

  • truthy: true, t, yes, y, and 1 βœ…
  • falsy: false, f, no, n, and 0 ❌

πŸ’… OPTIONS πŸ’…

  • -h, --help β€” prints the help text. the classic "help me understand" button 🫢
  • -l LENGTH, --length=LENGTH β€” sets the character length for the text being scrolled. if the text you give is shorter than this length, zscroll will not scroll it β€” it'll just print it in place, sitting pretty. (default: 40)
  • -r BOOL, --reverse=BOOL β€” whether the text scrolls in reverse order (so, from left to right instead of the usual way). (default: false)
  • -b PADDING, --before-text=PADDING β€” static padding text that is always displayed to the left of the scrolling section. it just lives there. rent free. (default: "")
  • -a PADDING, --after-text=PADDING β€” static padding text that is always displayed to the right of the scrolling section. (default: "")
  • -p PADDING, --scroll-padding=PADDING β€” padding text displayed in between the start and the end of the displayed text β€” and ONLY while it's actively scrolling. so if it's just chillin' in place, no padding. (default: " - ") ⭐
  • -s BOOL, --scroll=BOOL β€” whether the text should scroll at all. if false, the text will never scroll even if it's long enough to. this one is mostly meant to be used together with -m. (default: true)
  • -m REGEXP OPTIONS, --match-text REGEXP OPTIONS β€” this is the main character option fr πŸ‘‘ give it a regexp search term to look for in the output of the matching --match-command. when it's found, the settings get changed. using this flag you can specify any option (except -m and -M, which get ignored) and optionally the positional scroll-text argument β€” and you can do it multiple times. any setting you don't specify defaults to the values you specified outside of --match-text, or to the base defaults (when those options weren't set by you at all). (default: none)
  • -M COMMAND, --match-command=COMMAND β€” a command whose output gets searched. this is required for -m to work, no exceptions bestie. you can either give one -M for all your -m searches, or an equal number of both. (default: none)
  • -d TIME, --delay=TIME β€” the delay between scroll steps. (default: 0.4)
  • -u BOOL, --update-check=BOOL β€” says that the positional argument is actually a command that should be run to get the text to scroll. whenever that command's output changes, the text updates accordingly. (default: false)
  • -U TIME, --update-interval=TIME β€” time in seconds to wait in between running update-checking commands. this applies to the positional argument when -u/--update-check is specified, and to commands given with -M/--match-command. super useful if your scrolling text only needs updating every so often, or if continuously running the update-checking command(s) is resource intensive. (default: 0)
  • -e BOOL, --eval-in-shell=BOOL β€” executes -M/--match-command and the positional argument in the shell (-u/--update-check must be true too). this unlocks environment variables (e.g. "$PWD"), subshells (e.g. 'echo "$(/path/to/script)"'), piping, and all that good stuff.
⚠️ bestie, watch out β€” quote your commands right, or you're opening the door to unwanted command injection 😭. see https://docs.python.org/3/library/subprocess.html#security-considerations for more shell security info. (default: false)
  • -n BOOL, --newline=BOOL β€” adds a newline after every update/step (may be necessary for use with panels). takes no argument. (default: true)
  • -t TIME, --timeout=TIME β€” time in seconds to run before closing. an argument of zero means infinite duration, i.e. she runs forever πŸ’«. (default: 0)

🌈 EXAMPLES 🌈

these examples are meant for testing in the terminal β€” just remove the -n false if you're using them with panels. πŸ’–

scroll the currently playing mpd song with mpc:

$ zscroll -n false -b "playing: " "$(mpc current)"

continually update the playing song:

$ zscroll -n false -u true -b "playing: " "mpc current"

you can also pipe into zscroll, which is honestly so clean:

$ xtitle | zscroll -l 60

full shell instructions can be passed too:

$ zscroll -u true -e true 'echo Unix Time: "$(date +%s)"'

an example that'll stop scrolling the song when it's paused, and change the before-padding text depending on the state of the song:

$ zscroll -n f -u t -b "x" -d 0.3 -M "mpc status" -m "playing" \
     "-b 'playing: '" -m "paused" "-b 'paused: ' -s f" "mpc current" &
🫢 note that settings specified with an -m will only apply if that text was just matched. in this case, the default -s is not altered, but the default -b is. iykyk.

πŸ”₯ SEE ALSO πŸ”₯

lemonbar(1), polybar(1)


πŸ’€ BUGS πŸ’€

if you encounter any bugs, please make an issue on the online repository's bug tracker. be nice about it, devs are people too πŸ™ˆ


🧚 AUTHOR 🧚

Fox Kiester <noct@posteo.net> Source: https://github.com/noctuid/zscroll


and that's the whole page, bestie πŸŽ€ this was zscroll 2.0.1, dated 11 MARCH 2015 β€” go forth and scroll something iconic. πŸ¦‹βœ¨πŸ‘‘

πŸ“¦ where this page comes from