I have installed the old program xsnow with Apt. This program is supposed to make snow (the type of precipitation) appear on the desktop. However, running the program does nothing except return the following code:

Xsnow-1.42resizeable, December 14th 2001 by Rick Jansen (rja@euronet.nl)
WWW: http://www.euronet.nl/~rja/Xsnow/

This is because the program is designed to draw the snow on the root X window, as stated on the website:

Frequently asked question: I start Xsnow but I don't see any snow? Answer: Xsnow makes it snow on the X-window "root" window. That root window is often obscured by desktop managers, to display icons and tools. So, Xsnow works fine, you just cannot see the snow! See the README for details and possible solutions.

I tried it in an Ubuntu 13.10 VM, Kubuntu 13.10 and 14.04, and a Lubuntu Trusty Live USB. It is working in Xubuntu, because in Xfce we see the root X window by default. In chat, someone reported it working in Ubuntu 12.04, but in my Ubuntu 13.10 VM I don't see snow.

The problem is that, as I mentioned, xsnow draws solely on the root X Window. The root X window is the "parent" of all the other X windows and is therefore also invisible, because modern desktop environments such as KDE and Unity usually hide the root X window with a desktop effects compositor. So xsnow still draws snow, (you can get snatches of it when logging in and out due to graphics fragmentation) it's just not visible. On simpler desktops like Openbox and XFCE, the X window (and thus the snow) are completely visible.

Is there any way to view the root X window activity and thus see the snow?

  • It works on XFCE, which is what I use. Just letting you know. I'm on 13.10+. – RobotHumans Dec 19 '13 at 1:30
  • where there any errors in terminal? – Mateo Dec 19 '13 at 1:47
  • @hbdgaf Good to know, I was about to send a bug report in to Launchpad to let people know it would need to be removed for non-functionality. Will test with Lubuntu. – Richard Dec 19 '13 at 1:51
  • 3
    There was/is a compiz plugin to do the same thing. That one is also kinda old and maybe it is not even working now, but here is the source if anyone wants to try it out. (I won't.) – falconer Dec 19 '13 at 10:12
  • Just tried it in an Openbox session... Octal snowflakes... – Richard Dec 19 '13 at 16:11

Using KDE you can use kwin-snow-effect package.

How to install:

sudo apt-add-repository ppa:ivan-safonov/ppa
sudo apt-get update
sudo apt-get install kwin-effect-snow

Then in KDE you can set up the effect from System Settings --> Desktop Effects --> All Effects and activate snow.

You can also use the Compiz plugin Snow, Check how it works on this Youtube video

I found xwinwrap, that let you stick any app as your desktop background. Click here to download it, Or here to read to coder's release note

It does not give you access to the root window (which seems difficult on most desktop environments). And this one doesn't work with xsnow but it will work with a lot of other apps...

  • Oh no it crashed my desktop! Will try it again. – Richard Dec 19 '13 at 21:15
  • Just tried kwin effect a I use KDE. Please check this answer : askubuntu.com/a/65522/226084 its about getting compiz snow plugin working – yilmi Dec 21 '13 at 18:23

Just did some more testing on 12.04 ( Likely this is not the answer for 13.10, but for those who want this on 12.04)

If in gnome-tweak-tool, under Desktop I check Have file manager handle the desktop. Then both in Unity and in Unity-2D xsnow works. Altough in unity-2d the snow in the air is invisible, only the fallen are visible, but that's because of my graphic card and its driver. In Unity it works perfectly.

If in gnome-tweak-tool I uncheck Have file manager handle the desktop, then xsnow won't even start and throws an error both in Unity and Unity-2D


I'm a user of Precise with Unity environment, and had the same problem until executing this command:

gsettings set org.gnome.desktop.background show-desktop-icons true


Here's an extract of the xsnow man page's notes:

SGI Irix 5.x

Silicon Graphics and Irix 5.x users may not see any snow or Santa at all, as long the desktop icons are visible. To circumvent this problem issue this command:

/usr/lib/desktop/telldesktop quit

The icons will disappear and Xsnow will work perfectly. To restart the desktop just start


or select Desk‐top -> Home Directory from the toolchest.

It's even possible to have both - desktop icons and xsnow (and even multiple desks). You need to modify the window manager's resource file 4DWm, the file ~/.desktop-hostname/4DWm. Example:

  • Global.backgroundDescription: -execute /etc/killall -TERM xsnow ; /usr/local/bin/xsnow
  • Desk 1.backgroundDescription: -execute /etc/killall -TERM xsnow ; /usr/local/bin/xsnow
  • Desk 2.backgroundDescription: -execute /etc/killall -TERM xsnow ; /usr/local/bin/xsnow

Restart the window manager (4Dwm) from the toolchest and Xsnow should appear. What this does is stop the currently running Xsnow and start a new one when you switch to another desktop.

  • Thanks but unfortunately still no snow in Ubuntu 13.10! – Richard Dec 21 '13 at 14:43
  • I am not a Silicon Graphics or Irix user, I'm a Radeon dude using KDE. Also the command resulted in bash: /usr/lib/desktop/telldesktop: No such file or directory. Thank you for mentioning that part of the README. – Richard Dec 23 '13 at 1:27
  • Now the first command is working, but the second one you provided mysteriously isn't... – Richard Dec 28 '14 at 5:59
  • 1
    I didn't have much trouble with getting it work.. not sure why, but toggling the desktop icon visibility just worked.. it's not advised to, but I was looking to quickly edit some files so I started nautilus as root with gksu nautilus (then I didn't know about the --no-desktop switch, which later too didn't help).. that command also root desktop! But something went wrong.. terribly.. (Now can't get compiz to work.. I've tried resetting, reinstalling, and all.. So I can't advise to try that..) – precise Dec 28 '14 at 18:58

For gnome you can just tell it not to handle the desktop

gconftool-2 --set "/apps/nautilus/preferences/show_desktop" --type bool false

I had also come across some mention of using shantz-xwinwrap for For Unity Compiz, however, it doesn't seem possible on to use with 13.10's version of unity without more fine-tuned control of xsnow.

That said if you want to give it a try in a terminal execute:

wget http://anibg.googlecode.com/files/shantz-xwinwrap_v0.3.deb && sudo dpkg -i shantz-xwinwrap_v0.3.deb

Once installed, possible execution of xwinwrap without anibg might look like:

nice -n 15 xwinwrap -ni -o 0.90 -fs -s -sp -st -b -nf -- '/usr/games/xsnow'
  • I'm having trouble with remote display of my home computer otherwise I'd totally be testing this. I thought I found a command here but it really makes no sense as it called xscrensaver/plasma: fsckin.com/2008/04/14/fun-with-xwinwrap-in-compiz-fusion it would be sweet if Vdesk worked, but when I installed it in kubuntu and tried to run it nothing happened. – virtualxtc Dec 19 '13 at 22:46
  • I'm getting /usr/lib/xscreensaver/plasma: No such file or directory /usr/lib/xscreensaver/plasma died, exit status 2 – Richard Dec 19 '13 at 22:49
  • so close I can taste it; having trouble with xsnow reading the args intended for xscreenwrap - but xscreenwrap is definitely working with xscreensaver on 13.10. – virtualxtc Dec 20 '13 at 7:49
  • Yeah I suspect it's only a syntax thing... – Richard Dec 21 '13 at 14:26
  • The --root and --windows-id are not supported arguments by xsnow. Those arguments are from a usage example of xwinwrap with glmatrix which accepts --root and --window-id as arguments : xwinwrap -ov -fs -- /usr/lib/xscreensaver/glmatrix -root -window-id WID for example will work fine – yilmi Dec 21 '13 at 18:04

On a standard 12.04.3 64 bit install, login, have just a terminal window near the bottom of the screen, and start xsnow, which works. Seems to be a leftover knowledge of where windows were when xsnow was started, and the snow cutoff still occurs after the window is moved or iconized. Problems occur when a window is near the top of the screen. Logout/in clears up old windows positions, so experiment with a fresh login (or maybe X restart). The default delay of 20 is pretty near the minimum for me, increasing that may make the snow appear too.

xsnow options are described in the man pages or with the -h switch. -delay 30 will make a 30 millisecond delay between updates, instead of the default which is 20. I find things get flakey at 18, and no snow at 15, so on an otherwise working system, too short a delay breaks things. For 13.10, there is certainly a difference in the way the "root" windows are stacked up. The 12.04 unity system has a root, child, grandchild, desktop, great great grandchild which is updates with the snow and works. (see output of

 `xwininfo -root -tree`

The 13.10 unity system actually updates the root window, and the desktop does not even have a full screen child. With a debugger, changing the window being updated to the desktop does result in images appearing, but they erase the backgound, so not a good solution. No other window getting the updates shows anything, so I guess it's a conflict with the unity mechanism, which looks like it does need some change for this to work (since the ideal is not to have to change anything but the xsnow program).

Update for 14.04 running Unity To see Santa, give up on the Unity desktop, and just create another X display without it. Switch back and forth as needed, or even run programs with the -display :1 to show up on the new display.

First allow anyone to run an X server

dpkg-reconfigure x11-common

and set the X access to everyone Yes you can run with sudo, but then you will have left some root owned files on your desktop, and won't be able to login with the GUI any longer (use a virtual terminal to delete the root owned file if you do that).

Do you have another window manager installed so you can move windows around on your new display (only if you want to run other programs there, don't bother if all you want to do is see Santa. Even a simple one like twm will do, choose your favorite one that leaves the root window exposed.

Run the below on a vt to get a full screen xsnow.

xinit /usr/games/xsnow -- :1 vt8

Switch back to the original display on vt7 with Crtl-Alt-F7 and back to xsnow with Ctrl-Alt-F8

Create xterms from vt7 (original X server on :0)

xterm -display :1 &

start your window manager on the new display from the new xterm e.g.


16.04 update: Many things got broken since 14.04 (see bug #1562219), but you can still run xsnow :

  1. If running with an Nvidia video driver, use the nouveau driver. Software Updater/Settings button/ Additional Drivers tab, select nouveau. reboot just to be sure.
  2. Log into a virtual terminal (Ctrl-Alt-F2) for example
  3. xinit /usr/games/xsnow -- :1 vt2 Or start an xterm, and from it start other things like a window manager, xsnow, etc. Just don't start unity, it takes over the background.

Merry Christmas to All

  • Thanks but moving the terminal window to the bottom of the screen did not work for me. – Richard Dec 21 '13 at 14:43
  • It's the no windows near the top that's the key, not even iconized ones. Try a delay of 30 to see if that helps. Those two items were the only problems I found. – ubfan1 Dec 21 '13 at 18:14
  • How would I do a "delay of 30"? Not sure what that means. – Richard Dec 23 '13 at 1:18

There is a new version of xsnow, running on gnome, kde, fvwm, lcde,and even raspbian: https://www.ratrabbit.nl/ratrabbit/xsnow/index.html

It is available in Debian, but:

The latest version is available on sourceforge.

From the website:

Finally, a working xsnow for Gnome, KDE, etc. Based on the original xsnow-1.42 created by Rick Jansen, after the xsnow-2019 conference in Antas (Spain) we now have available a xsnow that works on many desktop environments, even Raspian. By request of many beta-testers, a graphical front end has been created as well.


If you look at the compile instructions you get:

For compatibility with virtual window managers Xsnow uses 'vroot.h', an include file that makes X programs compatible with window managers like swm and tvtwm. The complete vroot distribution is available from 'ftp.x.org' in the contrib directory as 'vroot.shar.Z'. Vroot was written by Andreas Stolcke , 9/7/90 and is copyright 1991 by Andreas Stolcke, copyright 1990 by Solbourne Computer Inc.

They seem to have taken vroot.h out of the compiling because it was included for KDE. However, the header still comes with the the latest version:

wget http://dropmix.xs4all.nl/rick/Xsnow/xsnow-1.42.tar.gz

and unpack it. Open xsnow.c and add to a new line after 250 (there were problems when I commented it back in where it was.)

#include "vroot.h"

Then build (requires xutils-dev, xorg-dev and libxpm-dev) with:

make depend

then (assuming no errors)


Does that work? The compiled version works here but I am in Gnome, on 12.04, and not on a virtual machine.

  • Looks like it compiled ok... but still no snow :\ i.imgur.com/Pmd9vOx.jpg – Richard Dec 20 '13 at 21:35
  • I had a look at xsnow code and the problem is the way it handle the windows it renders on. – yilmi Dec 22 '13 at 8:52

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.