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:
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:
Snow in you screen gnome desktop
Install gsnow gnome extension to snow on your desktop. Open Ubuntu app store and search for gsnow:
Click on the extension and select INSTALL
Once installed you can see snow on your desktop:
If you enjoyed this desktop fun app, you may also like to use the following apps on Linux: