Let us create Linux or Unix console Christmas tree and snow on your Linux desktop just for fun and profit. First, you need to install a Perl module called Acme::POE::Tree. It is an animated Christmas tree module. I’ve tested this on Linux, OS X and Unix-like system.

I tested following instructions on a Debian/Ubuntu Linux 17.10/18.04 LTS and CentOS Linux 7.x and macOS Unix desktop system.

Install Perl curses lib

Type the following apt-get command/apt command to install lib on a Debian/Ubuntu Linux:
$ sudo apt install libcurses-perl libcurses-ui-perl libcurses-widgets-perl
If you are using a CentOS/RHEL Linux (first turn on EPEL repo on a RHEL/CentOS 7 or turn on EPEL repo on a RHEL/CentOS 6 as described here), using yum command:
$ sudo yum install perl-Curses perl-Curses-UI perl-CPAN perl-POE
If you are using a Fedora Linux, type the following dnf command:
$ sudo dnf install perl-Curses perl-Curses-UI perl-CPAN perl-POE

Install compilers and build tools on Linux

See the following docs:

Install Acme::POE::Tree

The easiest way to install any perl module is to use the cpan (Comprehensive Perl Archive Network). Open the terminal application and type the following command to install Acme::POE::Tree:

## run as root ##
perl -MCPAN -e 'install Acme::POE::Tree'

Sample outputs:

Installing /home/vivek/perl5/man/man3/POE::NFA.3pm
Installing /home/vivek/perl5/man/man3/POE::Kernel.3pm
Installing /home/vivek/perl5/man/man3/POE::Loop.3pm
Installing /home/vivek/perl5/man/man3/POE::Resource.3pm
Installing /home/vivek/perl5/man/man3/POE::Filter::Map.3pm
Installing /home/vivek/perl5/man/man3/POE::Resource::SIDs.3pm
Installing /home/vivek/perl5/man/man3/POE::Loop::IO_Poll.3pm
Installing /home/vivek/perl5/man/man3/POE::Pipe::TwoWay.3pm
Appending installation info to /home/vivek/perl5/lib/perl5/x86_64-linux-gnu-thread-multi/perllocal.pod RCAPUTO/POE-1.367.tar.gz /usr/bin/make install -- OK RCAPUTO/Acme-POE-Tree-1.022.tar.gz Has already been unwrapped into directory /home/vivek/.cpan/build/Acme-POE-Tree-1.022-uhlZUz RCAPUTO/Acme-POE-Tree-1.022.tar.gz Has already been prepared
Running make for R/RC/RCAPUTO/Acme-POE-Tree-1.022.tar.gz
cp lib/Acme/POE/Tree.pm blib/lib/Acme/POE/Tree.pm
Manifying 1 pod document RCAPUTO/Acme-POE-Tree-1.022.tar.gz /usr/bin/make -- OK
Running make test
PERL_DL_NONLAZY=1 "/usr/bin/perl" "-MExtUtils::Command::MM" "-MTest::Harness" "-e" "undef *Test::Harness::Switches; test_harness(0, 'blib/lib', 'blib/arch')" t/*.t
t/01_basic.t .. ok All tests successful.
Files=1, Tests=2, 6 wallclock secs ( 0.09 usr 0.03 sys + 0.53 cusr 0.06 csys = 0.71 CPU)
Result: PASS RCAPUTO/Acme-POE-Tree-1.022.tar.gz
Tests succeeded but one dependency not OK (Curses) RCAPUTO/Acme-POE-Tree-1.022.tar.gz [dependencies] -- NA

Show Christmas tree in the shell

Simply type the following command:

## perl one liner to show Xmas tree ##
perl -MAcme::POE::Tree -e 'Acme::POE::Tree->new()->run()'

Sample outputs:

Gif 01: An animated christmas tree in Perl
Gif 01: An animated christmas tree in Perl

Tree customization

Here is my tree.pl:

#!/usr/bin/perl
# Use cpan module that we installed 
use Acme::POE::Tree;
my $tree = Acme::POE::Tree->new(
{ star_delay => 1.5, # shimmer star every 1.5 sec light_delay => 2, # twinkle lights every 2 sec run_for => 10, # automatically exit after 10 sec
}
);
$tree->run();

Now can play with your tree modifying star_delay, run_for, and light_delay. And ,there you have it a a Christmas tree in your shell for fun.

Not a fan of Perl? Try BASHTree

You can create animated Christmas tree in bash shell running on a Linux, macOS, *BSD, and Unix-like system. Use the wget command to grab the source code:
$ wget https://github.com/sergiolepore/ChristBASHTree/raw/master/tree-EN.sh
Run it as follows:
$ bash tree-EN.sh
Sample outputs:

Gif.02: An animated Christmas tree in Bash for Linux/Unix/macOS desktop
Gif.02: An animated Christmas tree in Bash for Linux/Unix/macOS desktop

Snow in you screen gnome desktop

Install gsnow gnome extension to snow on your desktop. Open Ubuntu app store and search for gsnow:
Search for gsnow on Gnome Linux desktop
Click on the extension and select INSTALL
Install gsnow on Linux
Once installed you can see snow on your desktop:

gsnow
gsnow in action (click to enlarge)

If you enjoyed this desktop fun app, you may also like to use the following apps on Linux:

Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

Similar Posts