Who loves eye candy? Don’t be shy — you can raise both hands! Both feet too if you’re sufficiently pliant.
Linux Candy is a series of articles covering interesting eye candy software. We only feature open-source software in this series.
As we’re fast approaching Christmas, it seems only appropriate to start decorating the desktop. ctree offers a Christmas tree right on your terminal.
Installation
As you’d expect, installation is a breeze.
On a vanilla Ubuntu 22.10 system, we first need to install a package.
$ sudo apt install golang-go
Now we’re ready to install ctree. If there’s no package for your distro, clone the project’s repository.
$ git clone https://github.com/gleich/ctree
Change into the newly created ctree directory
$ cd ctree
Then run the command:
$ go build -v .
We can then copy the ctree to a directory in our PATH e.g. /usr/local/bin
There is a package in the Arch User Repository for users of Arch and Arch-based distros. ctree is cross-platform software. The developer provides binaries for Linux (including ARM), macOS and Windows.
In Operation
Issuing the command $ ctree presents a (slightly) animated Christmas tree in your terminal.

The only option is the --no-refresh which outputs the tree a single time and returns you back to the command prompt.
Summary
ctree offers an ‘animated’ Christmas tree on your terminal that refreshes every 2 seconds.
As Porky Pig memorably said on so many endings in the Looney Tunes signature closing sequence “Th-Th-The, Th-Th-The, Th-Th… That’s all, folks!””
Website: github.com/gleich/ctree
Support:
Developer: Matthew Gleich
License: MIT License
ctree is written in Go. Learn Go with our recommended free books and free tutorials.
Complete list of articles in this series:
| Linux Candy | |
|---|---|
| ASCIIQuarium | Embrace marine life from the terminal with beautiful ASCII art |
| ASCII Art Converter | A small utility that converts images into ASCII art |
| BobRossQuotes | Collection of quotes from Bob Ross |
| Boxes | Command line ASCII boxes |
| Buoh | Online strips comics reader |
| cacafire | Color ASCII fire |
| catclock | xclock with an enhanced cat mode |
| cbonsai | Generate bonsai trees in the terminal |
| christmasfetch | Festive cheer on the desktop |
| chucknorris | Chuck Norris jokes in your terminal |
| Clairvoyant | Like a magic 8-ball inspired fortune teller |
| cornyjokes | Corny jokes for the terminal |
| CMatrix | ncurses program that simulates the display from “The Matrix” |
| ctree | A Christmas tree right on your terminal |
| doge | Simple motd script |
| eDEX-UI | Sci-fi computer terminal emulator and system monitor |
| emoj | Simple tool that to find suitable emojis for pasting to your clipboard |
| Emote | Modern popup emoji picker |
| Evolvotron | Interactive generative art |
| Fantascene | Dynamic wallpaper changer |
| Fondo | Find beautiful wallpapers from Unsplash |
| gti | Typo-based curio inspired by Steam Locomotive |
| Hidamari | Python-based app that offers video wallpaper for Linu |
| Hollywood | Fill your console with Hollywood melodrama technobabble |
| lifecycler | Aquarium right in your terminal |
| linuxwave | Generate music from the entropy of Linux |
| lolcat | Rainbows and unicorns |
| Meme | Fun tool to create memes |
| No More Secrets | Recreates the data decryption effect from the Sneakers movie |
| nook | Plays Animal Crossing hourly themes on the hour |
| nyancat | Terminal-based Pop Tart Cat Animation |
| oneko | Animal chasing fun |
| Picture Of The Day | Your daily wallpaper |
| pipes.sh | Animated pipes terminal screensaver |
| ponysay | cowsay reimplemention for ponies |
| projectM | Music visualizer originally based on Milkdrop |
| pscircle | A different take on the venerable ps command |
| PyBonsai | Generates procedural ASCII art trees |
| pyjokes | One line jokes for programmers |
| Pywal | Generate color schemes on the fly (not actively developed) |
| Relaxator | Relax to soothing sounds |
| ricksay | Rick and Morty quotes of the day |
| Rusty Aquarium | Monitoring by visualization |
| Steam Locomotive | C program written in 295 lines. It's harmless fun |
| Ternimal | Animated lifeform in the terminal |
| terminal-parrot | Party parrot time |
| tetris | Tile-matching puzzle video game in your terminal |
| Variety | Wallpaper manager with many desktops and wallpaper sources |
| WallGen | Generate HQ poly wallpapers with a few arguments. |
| WallpaperDownloader | Download, change, and manage wallpapers |
| wallust | Create 16 color palettes |
| walrs | Fast colorscheme generator |
| WSelector | Browse, download, and set wallpapers from Wallhaven.cc |
| xcowsay | Displays a cow on your desktop with message |
| XDecorations | Add some festive cheer to your desktop |
| XScreenSaver | Framework and collection of screensavers |
| yosay | Like cowsay but with less cow |
This could have been a simple ANSI Art file but they made it a program. Geeze.
Your comment says more about you than the developer.
ITF: Bear in mind that these very simple utilities are often the product of a developer either new to programming or to a specific language. Whether or not the program could have been an ANSI art file is totally missing the point.