≡ Menu

Linux / Unix Desktop Fun: Christmas Tree For Your Terminal

Let us create Linux or Unix console Christmas tree 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.

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
  /usr/bin/make install  -- OK
  Has already been unwrapped into directory /home/vivek/.cpan/build/Acme-POE-Tree-1.022-uhlZUz
  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
  /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
Tests succeeded but one dependency not OK (Curses)
  [dependencies] -- NA

Show Christmas tree in the shell

Simply type the following command:

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:

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

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. If you enjoyed this desktop fun app, you may also like to use the following apps on Linux:

  1. Terminal ASCII Aquarium
  2. Run Steam Locomotive On Your Desktop
  3. Let it Snow On Your Desktop
  4. Summon Swarms Of Penguins To Waddle About The Desktop
  5. Linux / Unix Desktop Fun: Cat And Mouse Chase All Over Your Screen
  6. Text Mode Box and Comment Drawing
Share this on:
{ 9 comments… add one }
  • David Fernández Piña December 16, 2015, 11:47 am

    Tested also on Windows 7 with Cygwin. It works well.

  • David Fernández Piña December 14, 2015, 1:48 pm

    If you are behind a proxy, call cpan, then o conf init /proxy/ enter http://:, as stated, e.g. here: http://stackoverflow.com/questions/11541428/using-cpan-with-a-proxy-failing-after-o-conf-init-proxy
    Remember to o conf commit.

  • fred December 11, 2015, 10:20 am

    thx for the script but I have an error on Manjaro:

    Test Summary Report
    t/01_basic.t (Wstat: 7424 Tests: 1 Failed: 1)
    Failed test: 1
    Non-zero exit status: 29
    Parse errors: Bad plan. You planned 2 tests but ran 1.
    Files=1, Tests=1, 0 wallclock secs ( 0.02 usr 0.00 sys + 0.02 cusr 0.00 csys = 0.04 CPU)
    Result: FAIL
    Failed 1/1 test programs. 1/1 subtests failed.
    Makefile:852 : la recette pour la cible « test_dynamic » a échouée
    make: *** [test_dynamic] Erreur 29
    /usr/bin/make test — NOT OK
    //hint// to see the cpan-testers results for installing this module, try:
    reports RCAPUTO/Acme-POE-Tree-1.022.tar.gz

    • duc December 25, 2016, 3:42 pm

      I got them same error worked after run

      `sudo perl -MCPAN -e ‘install POE’ `

      and then

      `sudo perl -MCPAN -e ‘install Acme::POE::Tree’`

      merry christmas :D

  • Edward Crosby December 9, 2015, 11:06 am

    Just a tip for those wanting to run on Fedora: I had to install perl-Curses for this to work for me.

  • svennson56 December 8, 2015, 8:11 pm

    Nice find, in the shell script you miss ->run(); though :)

    • nixcraft December 9, 2015, 8:50 am

      Hah.. yes. I did sorry about that :(

  • spiros December 8, 2015, 6:59 pm

    After Gif 01, I think you meant to say “Tree customization” instead of “Teee customization”. Nice cristmass tutorial though :-)

    • nixcraft December 8, 2015, 7:05 pm

      Thanks for the heads up! :)

Security: Are you a robot or human?

Leave a Comment