LinuxCommandLibrary

cbonsai

Display a colorful, animated ASCII tree

TLDR

Generate a bonsai in live mode

$ cbonsai [[-l|--live]]
copy

Generate a bonsai in infinite mode
$ cbonsai [[-i|--infinite]]
copy

Set the growth factor of the tree (default: 32)
$ cbonsai [[-L|--life]] [0..200]
copy

Set the branching factor of the tree (default: 5)
$ cbonsai [[-M|--multiplier]] [0..20]
copy

Run in screensaver mode (equivalent to --live --infinite but any keypress exits)
$ cbonsai [[-S|--screensaver]]
copy

Append a message to the bonsai
$ cbonsai [[-m|--message]] "[message]"
copy

Display extra information about the bonsai
$ cbonsai [[-v|--verbose]]
copy

Display help
$ cbonsai [[-h|--help]]
copy

SYNOPSIS

cbonsai [OPTIONS]

PARAMETERS

-i, --iterations <number>
    Simulate a specified number of tree generations before exiting. Use 0 for infinite iterations (unless --live is used).

-l, --live
    Enable live mode, causing the tree to animate continuously and infinitely loop without regenerating.

-s, --speed <ms>
    Set the animation speed by defining the delay between frames in milliseconds. Lower values mean faster animation.

-c, --color
    Enable color output for the bonsai tree, leaves, and birds. Highly recommended for visual appeal.

-F, --force-colors
    Attempt to force 24-bit true colors. Requires a terminal emulator with true color support.

-b, --birds
    Display small animated birds flying around the tree. Works best with color enabled.

-B, --no-bold
    Disable the use of bold text for rendering the tree trunk and branches.

-L, --long-sleep <ms>
    Define a longer sleep duration (in milliseconds) between iterations or full growth cycles.

-f, --full-screen
    Attempt to utilize the full terminal screen for rendering the bonsai tree, maximizing its size.

-v, --version
    Display version information for the cbonsai command and then exit.

-h, --help
    Show a help message detailing command usage and available options, then exit.

DESCRIPTION

cbonsai is a lightweight, ncurses-based program that renders an animated ASCII art bonsai tree directly in your terminal. It's designed to be a playful and visually appealing command-line utility, often used for relaxation, as a screensaver, or simply to add a unique aesthetic to your console.

The tree grows and changes over time, showcasing different phases of its life cycle, from a sprouting sapling to a mature tree, complete with falling leaves. Its simplicity and charm make it a popular choice for users looking for a bit of calm and beauty within the otherwise text-heavy Linux environment. It's highly customizable, allowing users to control aspects like growth speed, leaf color, and even the appearance of birds. It leverages terminal capabilities to provide a smooth, dynamic animation without heavy resource consumption.

CAVEATS

cbonsai relies on ncurses and terminal capabilities.
True color support (-F) is terminal-dependent.
Performance can vary with terminal emulator and system load.
The visual appearance might differ slightly based on the terminal's font and aspect ratio.
May not work as expected in non-VT100 compatible terminals.

DEPENDENCIES

Requires the ncurses library for terminal manipulation and a C compiler (like GCC or Clang) for compilation if installing from source.

INSTALLATION

Typically available in most popular Linux distribution repositories. For example, on Debian/Ubuntu systems, it can be installed via:
sudo apt install cbonsai

USAGE AS SCREENSAVER

Although not a true system screensaver, cbonsai can be used for continuous display in a terminal by running it in a loop or within a tmux/screen session, often combined with --live mode.

HISTORY

cbonsai was initially created by Holger Just (dogontheloose) and first publicly released around 2020. It quickly gained traction within the Linux community as a delightful and unconventional terminal utility. Developed as an open-source project, its code is hosted on GitHub, encouraging community contributions and continuous improvements. It represents a modern take on command-line entertainment, purely focused on aesthetic enjoyment and light interaction within the terminal environment, rather than traditional system tasks.

SEE ALSO

cmatrix(1), sl(1), ncurses(3), toilet(1), figlet(6)

Copied to clipboard