Take the 2-minute tour ×
Ask Ubuntu is a question and answer site for Ubuntu users and developers. It's 100% free, no registration required.

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?

share|improve this question
    
It works on XFCE, which is what I use. Just letting you know. I'm on 13.10+. –  hbdgaf 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
    
Edited to address comments by hbdgaf, Mateo, and Utkarsh –  Richard Dec 19 '13 at 15:47

6 Answers 6

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...

share|improve this answer
    
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

share|improve this answer

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

xsnowSnap


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

/usr/lib/desktop/startdesktop

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.

share|improve this answer
    
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

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:

xmkmf
make depend
make

then (assuming no errors)

./xsnow

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

share|improve this answer
    
Looks like it compiled ok... but still no snow :\ i.imgur.com/Pmd9vOx.jpg –  Richard Dec 20 '13 at 21:35
    
Thanks for the info on "Virtual window managers" –  Julian Stirling Dec 20 '13 at 23:21
    
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

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).

share|improve this answer
    
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

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

gconftool-2 –type bool –set /apps/nautilus/preferences/show_desktop 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'
share|improve this answer
    
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

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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