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
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.
Many things got broken since 14.04 (see bug #1562219), but you can still run xsnow :
- 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.
- Log into a virtual terminal (Ctrl-Alt-F2) for example
- 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