debian/0000755000000000000000000000000011727110772007173 5ustar debian/xsnow.lintian-overrides0000644000000000000000000000012711725016050013721 0ustar # we depend on procps xsnow: menu-command-not-in-package usr/share/menu/xsnow:4 skill debian/source/0000755000000000000000000000000011725010217010462 5ustar debian/source/format0000644000000000000000000000001411724467600011703 0ustar 3.0 (quilt) debian/control0000644000000000000000000000077511725020560010600 0ustar Source: xsnow Section: non-free/games Priority: optional Maintainer: Martin Lazar Build-Depends: debhelper (>= 7), libx11-dev, libxext-dev, libxpm-dev, libxt-dev, xutils-dev Standards-Version: 3.9.3 XS-Autobuild: yes Package: xsnow Architecture: any Depends: ${shlibs:Depends}, ${misc:Depends}, procps Description: brings Christmas to your desktop Xsnow is a X Window application that will snow on the desktop background. Santa and his reindeer will complete your festive-season feeling. debian/rules0000755000000000000000000000275011725010437010252 0ustar #!/usr/bin/make -f # -*- makefile -*- # Sample debian/rules that uses debhelper. # This file was originally written by Joey Hess and Craig Small. # As a special exception, when this file is copied by dh-make into a # dh-make output file, you may use that output file without restriction. # This special exception was added by Craig Small in version 0.37 of dh-make. # # Copyright (C) 2005 Cai Qian (caiqian@debian.org) # Uncomment this to turn on verbose mode. #export DH_VERBOSE=1 DESTDIR=$(CURDIR)/debian/xsnow BINDIR=/usr/games MANPATH=/usr/share/man CFLAGS = -Wall -g ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS))) CFLAGS += -O0 else CFLAGS += -O2 endif build: build-arch build-indep build-arch: build-stamp build-indep: build-stamp build-stamp: dh_testdir xmkmf $(MAKE) depend $(MAKE) CDEBUGFLAGS="$(CFLAGS)" touch build-stamp clean: dh_testdir dh_testroot dh_clean xmkmf $(MAKE) clean rm Makefile install: build dh_testdir dh_testroot dh_prep dh_installdirs $(MAKE) BINDIR=$(BINDIR) MANPATH=$(MANPATH) DESTDIR=$(DESTDIR) install binary-indep: build install # There are no architecture-independent files. binary-arch: build install dh_testdir dh_testroot dh_installchangelogs dh_installdocs dh_installmenu dh_installman xsnow.man dh_lintian dh_link dh_strip dh_compress dh_fixperms dh_makeshlibs dh_installdeb dh_shlibdeps dh_gencontrol dh_md5sums dh_builddeb binary: binary-indep binary-arch .PHONY: build clean binary-indep binary-arch binary install debian/copyright0000644000000000000000000000214511725006732011126 0ustar This is a Debian prepackaged version of xsnow. This package was put together by Joey Hess and later maintained by Martin Schulze , Adrian Bunk , Randall Donald , and Cai Qian . Current maintained by Martin Lazar . It was downloaded from http://dropmix.xs4all.nl/rick/Xsnow/ This package is not part of Debian main because its license only allows modifications for the purpose of packaging but not arbitrary modifications. Copyright: Copyright 1984, 1988, 1990, 1993-1995, 2000-2001 by Rick Jansen, all rights reserved. This means Xsnow is available freely and you may give it to other people as is, but I retain all rights. Therefore it does not classify as 'Public Domain' software. It *is* allowed to package Xsnow for Unix/Linux distributions, CD-Roms etc, and to make the necessary changes to makefiles etc. to facilitate this. Permission to use and distribute Robin Hogan's toon_root.c under the terms of the xsnow license when used as part of xsnow has been obtained. debian/README.Debian0000644000000000000000000000124611725006732011235 0ustar Note on xsnow in KDE If there is no snow in your KDE, please follow the intructions below. Right-click on your desktop and select Configure Desktop from the popup menu. When the dialog box appears, click on the Behavior icon in the left hand side bar. A three tabbed window will appear on the right hand side. Look near the top on the General tab and you'll see check box with the words "Allow programs in desktop window" (see the image below). Click that check box, then click the OK button. Xsnow will wash away your icons in KDE. That is the normal behaviour. Please see manpage for further information. -- Cai Qian Thu, 08 Dec 2005 18:01:00 +0000 debian/compat0000644000000000000000000000000211725006732010367 0ustar 7 debian/changelog0000644000000000000000000001402511727110772011047 0ustar xsnow (1:1.42-9) unstable; urgency=low * Switch to dpkg-source 3.0 (quilt) format * Fixed lintian warnings: - debian-rules-missing-recommended-target build-arch - debian-rules-missing-recommended-target build-indep - dh-clean-k-is-deprecated - hyphen-used-as-minus-sign * Fix react to resolution change (Closes: #568687) * debian/control: + Added XS-Autobuild: yes + Bump Standards-Version to 3.9.3 + Uncapitalize the short description -- Martin Lazar Mon, 05 Mar 2012 01:57:31 +0100 xsnow (1:1.42-8) unstable; urgency=low * Adopting package (Closes: #476129) * debian/control - set myself as maintainer - bump Standards-Version to 3.8.0 * debian/copyright - set myself as maintainer * fix lintian warning patch-system-but-direct-changes-in-diff - add file debian/patches/02_manpage.dpatch - add file debian/patches/03_Imakefile.dpatch * debian/patches/vroot.h => debian/patches/04_vroot.dpatch - convert direct copy of the file to dpatch * debian/rules - clean target: remove Makefile - it is automaticaly generated - use dpatch.make (simplify the rules file) -- Martin Lazar Tue, 28 Oct 2008 20:57:49 +0100 xsnow (1:1.42-7) unstable; urgency=low * QA upload. + Set maintainer to QA group. * Replace xutils with xutils-dev in Build-Depends. * Explain in debian/copyright that and why this package is in non-free. * Add lintian override for menu-command-not-in-package and for hyphen-used-as-minus-sign. Use dh_lintian to install it. * Bump debhelper compat level to 7. * Fix handling of CFLAGS and remove unused -lm. -- Frank Lichtenheld Wed, 06 Aug 2008 15:51:01 -0300 xsnow (1:1.42-6) unstable; urgency=low * Add {misc:Depends} * Patch broken -nokeepsnowonwindows and -nokeepsnow options * Improve menu * Change subsection to x11/games -- Cai Qian Sat, 29 Dec 2005 22:33:08 +0000 xsnow (1:1.42-5xmas) unstable; urgency=low * Xmas version. * Adjust debian/rules to make package cleaner and simpler. -- Cai Qian Sat, 24 Dec 2005 13:55:08 +0000 xsnow (1:1.42-4) unstable; urgency=low * Fix typos in README.Debian and debian/control. * Rewrite debian/rules to use debhelper (>= 5). * Remove hard coding postrm, prerm and postinst scripts. -- Cai Qian Thu, 22 Dec 2005 17:37:08 +0000 xsnow (1:1.42-3) unstable; urgency=low * Wrote README.Debian including some FAQs related to xsnow on KDE. -- Cai Qian Thu, 08 Dec 2005 18:01:00 +0000 xsnow (1:1.42-2) unstable; urgency=low * Used vroot.h from xscreensaver 4.23. -- Cai Qian Sun, 06 Nov 2005 11:03:00 +0000 xsnow (1:1.42-1) unstable; urgency=low * New maintainer. (Closes: #329485) * New upstream release. (Closes: #224077, #283390) * Used jwz's vroot.h that uses env XSCREENSAVER_WINDOW. * Menu file goes to /usr/share/menu * xsnow.man - belongs to section 6. * Depended on psmisc, as menu file uses "killall". * debian/copyright - fixed GPLed toon_root.c issue. * debian/rules - fixed FSF address. * debian/watch - Added watch file. -- Cai Qian Sat, 05 Nov 2005 14:56:00 +0000 xsnow (1:1.41-2) unstable; urgency=high * Re-upload of 1.41 due to GPL violation in 1.42. The code to find the correct root window in 1.42 is taken from xpenguin and licenced under the GPL. Sorry KDE and GNOME users. Hopefully this is temporary. (closes: #250689) * Fix menu. * Change Build-deps to reflect Xfree86 4.3 packaging. -- Randall Donald Mon, 24 May 2004 12:24:55 -0700 xsnow (1.42-4) unstable; urgency=low * Use jwz's vroot.h that uses env XSCREENSAVER_WINDOW (closes: #217700) -- Randall Donald Tue, 4 Nov 2003 18:42:14 -0800 xsnow (1.42-3) unstable; urgency=low * New maintainer. (closes #130848) -- Randall Donald Fri, 25 Jan 2002 18:52:16 -0800 xsnow (1.42-2) unstable; urgency=low * Orphaned this package. -- Adrian Bunk Fri, 25 Jan 2002 14:00:24 +0100 xsnow (1.42-1) unstable; urgency=high * New upstream release. - xsnow does now work better with transparent windows. (closes: #51180) -- Adrian Bunk Wed, 9 Jan 2002 08:59:54 +0100 xsnow (1.41-1) unstable; urgency=low * New maintainer. * New upstream release. This release fixes the following bugs: - The "-nokeepsnowonscreen" option is now working. (closes: #6896) - xsnow clears snow pileup but doesn't reset "streaking" level (closes: #13269) * Added "-isp" to dpkg-gencontrol in debian/rules. * /usr/doc -> /usr/share/doc (closes: #91731) * /usr/X11R6/man -> /usr/share/man * /usr/X11R6/bin -> /usr/bin * Added build dependencies. * Standards-Version: 3.1.1 -- Adrian Bunk Sat, 14 Apr 2001 20:15:43 +0200 xsnow (1.40-6) unstable; urgency=low * Improved description, "stolen" from Anselm Lingnau -- Martin Schulze Wed, 9 Dec 1998 23:39:10 +0100 xsnow (1.40-5) frozen unstable; urgency=low * Added Section: non-free/x11 (closes: Bug#14946, Bug#15347) * New authors address in copyright file -- Martin Schulze Wed, 25 Mar 1998 01:16:18 +0100 xsnow (1.40-4) frozen unstable; urgency=low * New maintainer * Pristine source * Converted to my own packaging rules -- Martin Schulze Tue, 24 Mar 1998 01:06:20 +0100 xsnow (1.40-3) unstable; urgency=low * Non-maintainer release to fix broken man page permissions. -- Joey Hess Wed, 10 Sep 1997 18:59:49 -0400 xsnow (1.40-2) unstable; urgency=low * Non-maintainer release. (Ignore previous upload of this same version, it was made in error.) * New source format and general package reworking. Fixes #4281, #6076, #9546 * Moved man page to section 6. * Added a menu file. * Libc6. -- Joey Hess Wed, 10 Sep 1997 00:36:40 -0400 debian/watch0000644000000000000000000000010211725006732010213 0ustar version=3 http://dropmix.xs4all.nl/rick/Xsnow/xsnow-(.*)\.tar\.gz debian/menu0000644000000000000000000000030511725006732010056 0ustar ?package(xsnow): needs="X11" section="Games/Toys" \ title="Xsnow - Start" command="xsnow" ?package(xsnow): needs="X11" section="Games/Toys" \ title="Xsnow - Stop" command="skill -c xsnow" debian/docs0000644000000000000000000000000711725006732010041 0ustar README debian/patches/0000755000000000000000000000000011725016014010612 5ustar debian/patches/06_bts-568687_fix_react_to_resolution_change.patch0000644000000000000000000003140611725016014022037 0ustar Author: Adrian List of changes: * to make xsnow aware of screen resolution changes: [to see this bug with the original version: xrandr to a lower resolution; launch xsnow; wait for some snow to accumulate at the bottom; switch back to higher resolution: the bottom snow now accumulates at the coordinate of the former display height, somewhere in mid-air] - moved some display-size-dependent initalisation code from main() to new function prepare(), which is then invoked at every display size change - make the main event loop listen to StructureNotify masked events, so that changes in root window size generate a ConfigureNotify event - call prepare() from within the main event loop on ConfigureNotify events where display size has changed * to erase bottom snow when full-screen app quits: [to see this bug with the original version: launch xsnow and wait for some snow to accumulate on bottom and/or windows (use -snowflakes 1000 to wait less long...); start full-screen app (e.g. "mplayer -fs somemovie.avi") and quit it: the snow has disappeared because of the resulting redraw, but xsnow still thinks there are thick layers of snow around. Flakes falling through these layers produce strange trails of free-standing snow...] - modified the tests that MWR() uses to skip over some child windows. These tests in particular would skip over any child window with the top at y=0, such as full-screen-windows. Now skip only completely invisible windows. * to make xsnow's memory of accumulated snow match full background window redraws in the absence of child window changes (such as occuring when switching VT or waking from suspend) [to see bug with the original version: same procedure as for full-screen-app bug, but switch to console and back to X11 instead of launching fs-app. Same observation.] - immediately subtract newly exposed areas from the accumulated snow region snscr (in the main event loop) - as this places some additional load on the machine when windows are moved around (was not able to measure the real impact reliably), added "#define CLEANONEXPOSE 1" to xsnow.h and added preprocessor instructions around the code in xsnow.c to conditionnally compile according to the value of CLEANONEXPOSE in xsnow.h * other minor changes - removed declaration unused variable current_snow_height - added a few comments here and there while figuring out xsnow's inner workings - corrected what seems like a typo: in MASR(), part of the code should clearly depend on NoKeepSBot, not on NoKeepSWin; has no effect in practice because snscr (initialised with the same code without typo) is merged into sar afterwards. --- a/xsnow.c +++ b/xsnow.c @@ -198,6 +198,10 @@ 14DEC2001 KDE and other root window obstructors: sub borrowed from xpenguins 2.2 to find the current "root" window for this system. Credit to Robin Hogan + + 05FEB2010 Now reacts to a change of its root window size (e.g. mode + changes through xrandr) and erases bottom snow when full-screen-app + quits. [Adrian Daerr, no rights claimed on contribution - public domain] */ #define debug 0 @@ -211,7 +215,7 @@ Xsnow dos mil etc. */ -#define VERSION "Xsnow-1.42, December 14th 2001 by Rick Jansen (rja@euronet.nl)\n\ +#define VERSION "Xsnow-1.42resizeable, December 14th 2001 by Rick Jansen (rja@euronet.nl)\n\ WWW: http://www.euronet.nl/~rja/Xsnow/\n" #ifdef VMS @@ -315,7 +319,6 @@ int wind = 0; int direction=0; int WindTimer=30; -int current_snow_height; int geta=0; XRectangle AddRect; unsigned int RunCounter = 0; @@ -324,6 +327,7 @@ void Usage(); void SigHandler(); void SigHupHandler(); +void prepare(int,int); void InitSnowflake(); void UpdateSnowflake(); void DrawSnowflake(); @@ -555,15 +559,6 @@ rootWin = ToonGetRootWindow(display, screen, &Parent); black = BlackPixel(display, screen); white = WhitePixel(display, screen); - display_width = DisplayWidth(display, screen); - display_height = DisplayHeight(display, screen); - center_x = display_width / 2; - center_y = display_height / 2; - current_snow_height = display_height; - if (MaxScrSnowDepth> (display_height-SNOWFREE)) { - printf("** Maximum snow depth set to %d\n", display_height-SNOWFREE); - MaxScrSnowDepth = display_height-SNOWFREE; - } for (flake=0; flake<=SNOWFLAKEMAXTYPE; flake++) { rp = &snowPix[flake]; rp->pixmap = XCreateBitmapFromData(display, rootWin, @@ -620,29 +615,9 @@ XSetForeground(display,TreesGC,trPix); XSetFillStyle(display, TreesGC, FillStippled); - - - - Wr = XCreateRegion(); - PrevWr = XCreateRegion(); - snscr = XCreateRegion(); - sar = XCreateRegion(); - WDR = XCreateRegion(); - CDR = XCreateRegion(); - rscrr = XCreateRegion(); - AddRect.x = 0; - AddRect.y = display_height; - AddRect.width = display_width - 1; - AddRect.height = MaxYStep+MaxSnowFlakeHeight; - if (!NoKeepSBot) - XUnionRectWithRegion(&AddRect, snscr, snscr); - for (i=0; i (display_height-SNOWFREE)) { + printf("** Maximum snow depth set to %d\n", display_height-SNOWFREE); + MaxScrSnowDepth = display_height-SNOWFREE; + } + AddRect.x = 0; + AddRect.y = display_height; + AddRect.width = display_width - 1; + AddRect.height = MaxYStep+MaxSnowFlakeHeight; + if (!NoKeepSBot) + XUnionRectWithRegion(&AddRect, snscr, snscr); + for (i=0; i (recy + height)) return 0; return 1; } - + void InitSnowflake(rx) int rx; @@ -1028,6 +1074,8 @@ False); } } + +/* unused (see changelog 20DEC93) */ void PaintSnowAtBottom(depth) int depth; @@ -1329,10 +1377,7 @@ &winWidth, &winHeight, &borderWidth, &depth); /*if (winWidth == 1280) continue; /* debug */ #if debug - printf("\nw x:%d y:%d w:%d h:%d - bw:%d d:%d \n", winX,winY,winWidth,winHeight,borderWidth,depth); - #endif - #if debug - printf("MakeWrx: (x;%d\ty:%d\tx+w%d\ty+h%d)\tbw:%d d:%d\n", + printf("MakeWr: x=%d\ty=%d\tx+w=%d\ty+h=%d,\tbw:%d depth:%d\n", winX,winY,winX+winWidth,winY+winHeight,borderWidth,depth); #endif if (errorVal) continue; @@ -1340,11 +1385,17 @@ WinRect.y = winY; WinRect.height = winHeight + 2*borderWidth; WinRect.width = winWidth + 2*borderWidth; + // zap invisible windows if (WinRect.x >= display_width) continue; if (WinRect.y >= display_height) continue; - if (WinRect.y <= 0) continue; - if ((WinRect.x + WinRect.width) < 0) continue; + if (WinRect.y < 0) continue; + if ((WinRect.x + WinRect.width) <= 0) continue; XUnionRectWithRegion(&WinRect,Wr, Wr); + #if debug + XClipBox( Wr, &WinRect ); + printf("Wr now: x=%d\ty=%d\tx+w=%d\ty+h=%d\n", + WinRect.x,WinRect.y,WinRect.x+WinRect.width,WinRect.y+WinRect.height); + #endif } } XFree((char *)children); @@ -1355,6 +1406,8 @@ #endif return 1; } +/** add to the region snscr strips of height + MaxYStep+MaxSnowFlakeHeight below every window-top */ void RCSR() { XDestroyRegion(rscrr); rscrr = XCreateRegion(); @@ -1367,6 +1420,7 @@ XUnionRegion(rscrr,snscr, snscr); if (SnowOffset != 0) XOffsetRegion(snscr,0,SnowOffset); } +/** create region 'sar' where snow may accumulate */ void MASR() { XRectangle AllowRect; XDestroyRegion(sar); @@ -1434,6 +1488,8 @@ #endif return 1; } +/** clear a given rectangle and remove it (plus margins related to + flake-size and snow-movement) from the snow-region snscr */ void HEAr(int X,int Y,int W, int H) { int AddX,AddY; int ClearX, ClearY; --- a/xsnow.h +++ b/xsnow.h @@ -9,6 +9,10 @@ #define INITIALSCRPAINTSNOWDEPTH 8 /* Painted in advance */ #define INITSCRSNOWDEPTH 50 /* Will build up to INITSCRSNOWDEPTH */ #define SNOWFREE 25 /* Must stay snowfree on display :) */ +#define CLEANONEXPOSE 1 /* clean memory of accumulated snow on expose + events without window change (e.g. VT + switching); increases server burden + during window movements */ /* ------------------------------------------------------------------ */ debian/patches/05_hyphen-used-as-minus-sign.patch0000644000000000000000000002214011725015656017072 0ustar Author: Description: Escape hyphens in manual page --- a/xsnow.man +++ b/xsnow.man @@ -3,111 +3,111 @@ xsnow \- let it snow on your desktop and windows .SH SYNOPSIS .B xsnow -[-option .,..] +[\-option .,..] .SH DESCRIPTION Xsnow lets it snow on your desktop and windows (sic!). .SH OPTIONS .TP 8 --display display_name +\-display display_name Drop the snowflakes on the given display. Make sure the display is nearby, so you can hear them enjoy... .TP 8 --snowflakes num_snowflakes +\-snowflakes num_snowflakes This is the number of snowflakes. Default is 100, max is 1000. .TP 8 --sc snowflake_color +\-sc snowflake_color Use the given string as the color for the flakes instead of the default "snow". .TP 8 --bg background_color +\-bg background_color Use the given string as the color for the background. Note that the usual default desktop pattern consisting of 50% white 50% black doesn't particularly look good with Xsnow. .TP 8 --solidbg +\-solidbg When using solid colored backgrounds specifying this option MAY greatly improve performance. (Not on SUN Solaris 2.5.1 for example!) .TP 8 --tc tree_color +\-tc tree_color Use the given string as the color for the trees. .TP 8 --slc sleigh_color +\-slc sleigh_color This option is obsolete in version 1.41. Used to be the color for the sleigh. Santa has decided not to have you interfere with the color of his means of transportation any more. .TP 8 --santa santa_size +\-santa santa_size There are 3 sizes of Santa: 0, 1 and 2. Default is 2. Thanks to Thomas Linder for the (big) Santa! .TP 8 --santaspeed santa_speed +\-santaspeed santa_speed The speed Santa should not exceed if he doesn't want to get fined. The default speed for Santa size 0 is 1, for Santa 1 it's 2 and for Big Santa it's 4. .TP 8 --santaupdatefactor factor +\-santaupdatefactor factor This is to slow down Santa with respect to the snow. Default the value is 3, meaning that Santa is moved only every third time the snow flakes move. Specifying zero here is considered very naughty. .TP 8 --delay delay +\-delay delay This is the number of milliseconds delay after updating everything. Default is 50 milliseconds, i.e. 20 updates per second max. .TP 8 --unsmooth +\-unsmooth .br If you specify this option the snowflakes will 'whirl' more dramatically, resulting in a somewhat jerkier movement. .TP 8 --whirl +\-whirl This sets the whirl factor, i.e. the maximum adjustment of the horizontal speed. The default value is 4. .TP 8 --nowind -Default it gets windy now and then. If you prefer it quiet specify -nowind. +\-nowind +Default it gets windy now and then. If you prefer it quiet specify \-nowind. .TP 8 --windtimer period -With -windtimer you can specify how often it gets windy. It's sort of a +\-windtimer period +With \-windtimer you can specify how often it gets windy. It's sort of a period in seconds, default value is 30. .TP 8 --xspeed -yspeed +\-xspeed \-yspeed These options set the maximum horizontal and vertical speed. The default X maximum speed is 4, the default maximum Y speed is 8. .TP 8 --wsnowdepth -ssnowdepth +\-wsnowdepth \-ssnowdepth This sets the maximum thickness of the snow on top of windows and at the bottom of the display respectively. The default snowdepth for windows is 15, at the bottom of the screen the default is 50. .TP 8 --offset -With -offset you can specify that snow starts building up a number of +\-offset +With \-offset you can specify that snow starts building up a number of pixels lower or higher. This is handy if you use twm and squeezed window titles. .TP 8 --notrees +\-notrees Do not display the trees. .TP 8 --nosanta +\-nosanta Do not display Santa Claus running all over the screen. .TP 8 --norudolf +\-norudolf No Rudolf. .TP 8 --nokeepsnow +\-nokeepsnow Do not have snow sticking anywhere. .TP 8 --nokeepsnowonwindows +\-nokeepsnowonwindows Do not keep snow on top of the windows. .TP 8 --nokeepsnowonscreen +\-nokeepsnowonscreen Do not keep snow at the bottom of the screen. .TP 8 --nonopopup -Xsnow takes care to not let it snow on Pop-up windows, due to their +\-nonopopup +Xsnow takes care to not let it snow on Pop\-up windows, due to their nature. If however, you use an Xserver that has backing store on for all windows, then specify this option. Symptom would be that no snow is kept on any window, but only at the screen bottom. .TP 8 --version +\-version Prints the current Xsnow version and does not start Xsnow. The current version (of this man page) is 1.42, December 14th 2001 .SH EXAMPLES @@ -118,30 +118,30 @@ .TP 8 xsnow& (Mind the empersand) Starts xsnow as a background process. Use this if you start xsnow from -a script. To stop xsnow find the process id (pid) as follows: ps -ef|grep xsnow +a script. To stop xsnow find the process id (pid) as follows: ps \-ef|grep xsnow and use the kill command to stop xsnow. .TP 8 -xsnow -bg SkyBlue3 -sc snow +xsnow \-bg SkyBlue3 \-sc snow .br Sets the background to a bluish color and lets it snow white. .TP 8 -xsnow -ssnowdepth 100 +xsnow \-ssnowdepth 100 Starts with a thin layer of snow that gradually builds up at the bottom of the screen. .TP 8 -xsnow -santa 2 -santaspeed 10 +xsnow \-santa 2 \-santaspeed 10 Gives you the biggest Santa at a speed that is hardly legal. .TP 8 -xsnow -delay 100 -notrees +xsnow \-delay 100 \-notrees For slow systems use longer delay and don't draw the trees. .TP 8 -xsnow -snowflakes 1000 -delay 0 +xsnow \-snowflakes 1000 \-delay 0 .br Uses the maximum number of snowflakes and runs as fast as possible. .TP 8 -xsnow -bg SkyBlue3 -solidbg +xsnow \-bg SkyBlue3 \-solidbg .br -Sets the background to a bluish color and specify -solidbg for increased +Sets the background to a bluish color and specify \-solidbg for increased performance (depending on your system!). .SH FILES See /usr/lib/X11/rgb.txt for the list of colors and their respective @@ -153,12 +153,12 @@ .br WWW: http://www.euronet.nl/~rja/ .SH COPYRIGHT -Copyright 1984,1988,1990,1993-1995,2000-2001 by Rick Jansen (rja@euronet.nl) +Copyright 1984,1988,1990,1993\-1995,2000\-2001 by Rick Jansen (rja@euronet.nl) Xsnow is available freely and you may give it to other people as is, but I retain all rights. Therefore it does not classify as 'Public Domain' software. However, it *is* allowed to package Xsnow for Unix/Linux -distributions, CD-Roms etc, and to make the necessary changes to +distributions, CD\-Roms etc, and to make the necessary changes to makefiles etc. to facilitate this. .SH CREDITS @@ -183,7 +183,7 @@ and/or network quite substantially. Use less snowflakes and a bigger delay in such a case. On a standalone workstation there usually will not be be any problem. Another improvement can be to specify a solid background -color with -bg and with this also specify the option -solidbg. This may +color with \-bg and with this also specify the option \-solidbg. This may greatly improve performance! DO check this though, on some systems (SUN Solaris 2.5.1) performance is much WORSE. @@ -204,20 +204,20 @@ /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 Desktop->Home +desktop just start /usr/lib/desktop/startdesktop or select Desktop\->Home Directory from the toolchest. -It's even possible to have both - desktop icons and xsnow (and even +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: +4DWm, the file ~/.desktop\-`hostname`/4DWm. Example: -*Global.backgroundDescription: -execute /etc/killall -TERM xsnow ; +*Global.backgroundDescription: \-execute /etc/killall \-TERM xsnow ; /usr/local/bin/xsnow .br -*Desk 1.backgroundDescription: -execute /etc/killall -TERM xsnow ; +*Desk 1.backgroundDescription: \-execute /etc/killall \-TERM xsnow ; /usr/local/bin/xsnow .br -*Desk 2.backgroundDescription: -execute /etc/killall -TERM xsnow ; +*Desk 2.backgroundDescription: \-execute /etc/killall \-TERM xsnow ; /usr/local/bin/xsnow .br @@ -225,7 +225,7 @@ appear. What this does is stop the currently running Xsnow and start a new one when you switch to another desktop. -.B HP and hp-ux +.B HP and hp\-ux .br HP also uses a Workspace Manager which may interfere with Xsnow. If Xsnow does not appear: @@ -234,15 +234,15 @@ .B Snow does not stick? .br -On black-and-white X terminals snow may not stick to windows because -backing store is on. Try specifying the option -nonopopup when +On black\-and\-white X terminals snow may not stick to windows because +backing store is on. Try specifying the option \-nonopopup when starting Xsnow. .B Snow hovering above windows? .br If you use twm it is possible you see the snow layer hovering a little bit above your windows. In that case set BorderWidth 0 in your .twmrc -file. If you use windows with 'squeezed title bars' specify a -offset to +file. If you use windows with 'squeezed title bars' specify a \-offset to get the snow on the windows itself. .SH "SEE ALSO" snowplough(1), your_travel_agent(1) debian/patches/04_vroot.patch0000644000000000000000000000573311725007635013330 0ustar Author: Description: Used vroot.h from xscreensaver 4.23. --- a/vroot.h +++ b/vroot.h @@ -1,3 +1,4 @@ +/* -*- Mode: C; tab-width: 2 -*- */ /*****************************************************************************/ /** Copyright 1991 by Andreas Stolcke **/ /** Copyright 1990 by Solbourne Computer Inc. **/ @@ -52,13 +53,29 @@ * - replaced all NULL's with properly cast 0's, 5/6/91 * - free children list (suggested by Mark Martin ), 5/16/91 * - include X11/Xlib.h and support RootWindowOfScreen, too 9/17/91 + * + * Jamie Zawinski , 28-Apr-1997 + * - use ANSI C + * + * Jamie Zawinski , 3-Sep-2003 + * - if the environment variable "XSCREENSAVER_WINDOW" is set, use that + * as the root window instead of searching for __SWM_VROOT. + * + * Jamie Zawinski , 14-Aug-2004 + * - changes to get gcc to stop whining about "type punning". + * + * Jamie Zawinski , 16-Dec-2004 + * - fixed that last fix. */ #ifndef _VROOT_H_ #define _VROOT_H_ +#define _XSCREENSAVER_VROOT_H_ #if !defined(lint) && !defined(SABER) -static char vroot_rcsid[] = "$Id: vroot.h,v 1.4 1991/09/30 19:23:16 stolcke Exp stolcke $"; +static const char vroot_rcsid[] = + "#Id: vroot.h,v 1.8 2004/12/16 05:33:54 jwz Exp #" "\n" + "#Id: vroot.h,v 1.4 1991/09/30 19:23:16 stolcke Exp stolcke #"; #endif #include @@ -66,8 +83,11 @@ #include static Window -VirtualRootWindowOfScreen(screen) - Screen *screen; +#ifdef __STDC__ /* ANSIfication added by jwz, to avoid superfluous warnings. */ +VirtualRootWindowOfScreen(Screen *screen) +#else /* !__STDC__ */ +VirtualRootWindowOfScreen(screen) Screen *screen; +#endif /* !__STDC__ */ { static Screen *save_screen = (Screen *)0; static Window root = (Window)0; @@ -79,6 +99,19 @@ Window rootReturn, parentReturn, *children; unsigned int numChildren; + /* first check for a hex or decimal window ID in the environment */ + const char *xss_id = getenv("XSCREENSAVER_WINDOW"); + if (xss_id && *xss_id) { + unsigned long id = 0; + char c; + if (1 == sscanf (xss_id, " 0x%lx %c", &id, &c) || + 1 == sscanf (xss_id, " %lu %c", &id, &c)) { + root = (Window) id; + save_screen = screen; + return root; + } + } + root = RootWindowOfScreen(screen); /* go look for a virtual root */ @@ -89,15 +122,15 @@ Atom actual_type; int actual_format; unsigned long nitems, bytesafter; - Window *newRoot = (Window *)0; + unsigned char *newRoot = 0; if (XGetWindowProperty(dpy, children[i], __SWM_VROOT, 0, 1, False, XA_WINDOW, &actual_type, &actual_format, &nitems, &bytesafter, - (unsigned char **) &newRoot) == Success + &newRoot) == Success && newRoot) { - root = *newRoot; + root = *((Window *) newRoot); break; } } debian/patches/03_Imakefile.patch0000644000000000000000000000042411725015557014036 0ustar Author: Description: New patch generated from xsnow 1.42-7 diff.gz --- a/Imakefile +++ b/Imakefile @@ -1,4 +1,4 @@ -SYS_LIBRARIES = -lm -lXpm +SYS_LIBRARIES = -lXpm LOCAL_LIBRARIES = $(XLIB) DEPLIBS = $(DEPXLIB) SRCS = xsnow.c toon_root.c xsnow.h vroot.h debian/patches/02_manpage.patch0000644000000000000000000000043711725015547013562 0ustar Author: Description: New patch generated from xsnow 1.42-7 diff.gz --- a/xsnow.man +++ b/xsnow.man @@ -1,4 +1,4 @@ -.TH XSNOW 1 "Release 6" "X Version 11" +.TH XSNOW 6 "Release 6" "X Version 11" .SH NAME xsnow \- let it snow on your desktop and windows .SH SYNOPSIS debian/patches/01_fixoptions.patch0000644000000000000000000000207311725007633014346 0ustar Author: Description: -nokeepsnow will not update screen if there are expose events. ie. after start xsnow, move away a window, the snow will not show on the area of previous window. -nokeepsnowonwindows will cause snow erased on the bottom of screen as well. --- a/xsnow.c +++ b/xsnow.c @@ -653,7 +653,7 @@ if (stilltddr) { stilltddr = !DDLT(); } - if (!NoKeepSnow) { + switch (ev.type) { case Expose: #if debug @@ -746,7 +746,7 @@ } } - } + #if debug #endif uSsleep(snowDelay); @@ -1362,8 +1362,6 @@ XOffsetRegion(rscrr, 0,MaxYStep+MaxSnowFlakeHeight); XSubtractRegion(Wr,rscrr, rscrr); if (NoKeepSWin) { - XDestroyRegion(snscr); - snscr = XCreateRegion(); return; } XUnionRegion(rscrr,snscr, snscr); @@ -1378,7 +1376,7 @@ XOffsetRegion(sar, 0,-MaxWinSnowDepth); XSubtractRegion(sar,Wr, sar); } - if (!NoKeepSWin) { + if (!NoKeepSBot) { AllowRect.x = 0; AllowRect.y = display_height - MaxScrSnowDepth; AllowRect.width = display_width - 1; debian/patches/series0000644000000000000000000000023511725014437012036 0ustar 01_fixoptions.patch 02_manpage.patch 03_Imakefile.patch 04_vroot.patch 05_hyphen-used-as-minus-sign.patch 06_bts-568687_fix_react_to_resolution_change.patch