Download xsnow
The current version is 3.7.5.
Note1: xsnow has been tested and runs on Ubuntu 18.04, 19.04, 19.10, 20.04, Mint-19 and Raspbian 11 (bullseye). It also runs with the FVWM window manager.
Note2: since version 3.1.2, xsnow should also compile and run on slackware-14.2. The user interface will be disabled and you have to use command-line flags.
Note3: since version 3.1.4, xsnow should also compile and run on fedora-33, even in combination with musl-libc-1.2.1
The file README in the tarball contains installation instructions.
Source
Download source: xsnow-3.7.5.tar.gz
Download previous version: xsnow-3.7.4.tar.gz
Install:
umask 022
tar xf xsnow-3.7.5.tar.gz
# Make sure you have installed the packages mentioned in the file xsnow-3.7.5/dependencies
cd xsnow-3.7.5
./configure
make
sudo make install
xsnow should now be installed as /usr/local/games/xsnow .
Previous versions are available on sourceforge
Inspired by being on vacation, on a campsite, I will not offer Debian versions for download any more. Let me know if you really need a Debian package or maybe an AppImage.
Advice: search the Web for 'dangers of AppImages' and 'dangers of .deb files'. If you want to be on the safe side, install xsnow using your package manager, e.g. for Debian-like distributions (Ubuntu, Linux mint, ...):
apt install xsnow
Of course, most of the time, the distributions do not offer the newest version.
How it all began
The current xsnow wouldn't have existed without Rick Jansen's xsnow-1.42. That version is still available here .
Startup scripts
Download scripts to start xsnow on a particular desktop: startondesktop or all desktops: startonalldesktops. This is obsolete now, because xsnow runs by default on all desktops, but maybe it is an inspiration for somebody.
Usage:
startondesktop -d <desktop-nr> -a xsnow xsnow -nomenu
startonalldesktops -a xsnow xsnow -nomenu # this script uses startondesktop
The scripts use 'wmctrl' (debian package: wmctrl) and 'xmessage' (debian package x11-utils)
Example script for window placement
Download example script for placement of windows: getwindowcoordinates