1XSNOW(6)                         User Commands                        XSNOW(6)
2
3
4

NAME

6       xsnow - Snow and Santa on your desktop
7

SYNOPSIS

9       xsnow [OPTION]...
10

DESCRIPTION

12       Xsnow  shows an animation of Santa and snow on your desktop.  Xsnow can
13       also run in one or more windows, see options -xwininfo, -id  .   (These
14       options only work satisfactorily in an X11 environment.)  Xsnow depends
15       on an X11 environment.  This  is  forced  by  setting  the  environment
16       variable  GDK_BACKEND=x11 before initializing the GTK.  Hopefully, this
17       will ensure that xsnow also runs in  a  Wayland  environment  for  some
18       time.
19
20       If xsnow is misbehaving, try to remove the file $HOME/.xsnowrc.
21
22   General options:
23       Below:
24       <n>  denotes  an  unsigned decimal (e.g 123) or octal (e.g. 017) or hex
25       (e.g. 0x50009) number.
26       <c> denotes a string like "red" or "#123456".
27       <f> denotes a file name, like "/home/rick/Pictures/background.jpg".
28
29
30       -h, -help
31              print this text.
32
33       -H, -manpage
34              print man page.
35
36       -v, -version
37              prints version of xsnow.
38
39       -changelog
40              prints ChangeLog.
41
42       -display <c>
43              Drop the snowflakes on the given display.  Make sure the display
44              is nearby, so you can hear them enjoy...
45
46       -screen <n>
47              If you have multiple monitors: snow in monitor n.
48              -1: use all monitors (default: -1)
49              Note: for this to work, Xinerama has to be functional.
50
51       -outline <n>
52              1: draw outline around snow window. 0: no outline.
53              Default: 0.
54
55       -vintage
56              Run xsnow in vintage settings.
57
58       -defaults
59              Do not read config file (see FILES).
60
61       -noconfig
62              Do not read or write config file (see FILES).
63
64       -hidemenu
65              Start with hidden interactive menu.
66
67       -nomenu
68              Do not show interactive menu.
69
70       -scale <n>
71              Apply scalefactor (default: 100).
72
73       -doublebuffer <n>
74              1:  use  double  buffering;  0:  do  not  use  double  buffering
75              (default:  1).   Only  effective  with  '-root'  or   '-id'   or
76              '-xwininfo'.
77
78       -transparency <n>
79              Transparency in % (default: 0)
80
81       -theme <n>
82              1: use xsnow theme for menu; 0: use system theme (default: 1)
83
84       -checkgtk <n>
85              0:  Do not check gtk version before starting the user interface.
86              1:  Check  gtk  version  before  starting  the  user  interface.
87              (default: 1).
88
89       -id <n>, -window-id <n>
90              Snow in window with id (for example from xwininfo).
91
92       -desktop
93              Act as if window is a desktop.
94
95       -allworkspaces <n>
96              0: use one desktop for snow, 1: use all desktops (default: 1).
97
98       -above Snow  above your windows. Default is to snow below your windows.
99              NOTE: in some  environments  this  results  in  an  un-clickable
100              desktop.
101
102       -xwininfo
103              Use  a  cursor  to  point  at the window you want the snow to be
104              fallen in.
105
106       -stopafter <n>
107              Stop xsnow after so many seconds.
108
109       -root  Force to paint on (virtual) root window.
110              Use this for xscreensaver:
111              Make  sure  xscreensaver  is  running,  either  as  a   start-up
112              application
113              or from the command line, e.g:
114                 nohup xscreensaver &
115              or
116                  nohup xscreensaver -no-capture-stderr &
117              Run   the   program   xscreensaver-demo   to   create  the  file
118              ~/.xscreensaver
119              In the file ~.xscreensaver add after the line  'programs:'  this
120              line:
121                  xsnow -root
122              Use   the   program   xscreensaver-demo   to   select  xsnow  as
123              screensaver.
124              You probably want to select: Mode: Only One Screen Saver.
125
126       -bg <f>
127              file to be used as background when running under xscreensaver.
128
129       -noisy Write extra info about some  mouse  clicks,  X  errors  etc,  to
130              stdout.
131
132       -cpuload <n>
133              How busy is your system with xsnow: the higher, the more load on
134              the system (default: 100).
135
136   Snow options:
137       -snowflakes <n>
138              The higher,  the  more  snowflakes  are  generated  per  second.
139              Default: 100.
140
141       -blowsnow
142              (Default) Animate blow-off snow.
143
144       -noblowsnow
145              Do not animate blowing snow from trees or windows
146
147       -sc <c>
148              Use the given string as color for the flakes (default: #fffafa).
149
150       -snowspeedfactor <n>
151              Multiply the speed of snow with this number/100 (default: 100).
152
153       -snowsize <n>
154              Set size of (non-vintage) snow flakes (default: 8).
155
156       -snow  (Default) Show snow.
157
158       -nosnow -nosnowflakes
159              Do not show snow.
160
161       -flakecountmax <n>
162              Maximum number of active flakes (default: 300).
163
164       -blowofffactor <n>
165              The  higher,  the  more  snow is generated in blow-off scenarios
166              (default: 40).
167
168   Tree options:
169       -treetype <n>[,<n> ...]
170              Choose   tree   types:   minimum   0,   maximum   7    (default:
171              1,2,3,4,5,6,7,).   Thanks  to  Carla  Vermin  for  numbers  >=3!
172              Credits: Image by b0red on Pixabay.
173
174       -treetype all
175              (Default) Use all non-vintage available tree types.
176
177       -tc <c>
178              Use the given string as the color for the vintage tree (default:
179              #7fff00).  Works only for treetype 0.
180
181       -notrees
182              Do not display the trees.
183
184       -showtrees
185              (Default) Display the trees.
186
187       -trees <n>
188              Desired number of trees. Default 10.
189
190       -treefill <n>
191              Region  in percents of the height of the window where trees grow
192              (default: 30).
193
194       -treeoverlap
195              Allow scenery items to overlap each other (default).
196
197       -notreeoverlap
198              Do not allow scenery items to overlap each other.
199
200   Santa options:
201       -showsanta
202              (Default) Display Santa running all over the screen.
203
204       -nosanta
205              Do not display Santa running all over the screen.
206
207       -showrudolph
208              (Default) With Rudolph.
209
210       -norudolph
211              No Rudolph.
212
213       -santa <n>
214              The minimum size of Santa is 0, the maximum size is  4.  Default
215              is  3.   Thanks to Thomas Linder for the (big) Santa 2!  Santa 3
216              is derived from Santa 2, and shows the required eight  reindeer.
217              The  appearance  of  Santa  4 may be a surprise, thanks to Carla
218              Vermin for this one.
219
220       -santaspeedfactor <n>
221              The speed Santa should not be excessive if he  doesn't  want  to
222              get  fined.  The  appropriate speed for the Santa chosen will be
223              multiplied by santaspeedfactor/100 (default: 100).
224
225   Celestial options:
226       -wind  (Default) It will get windy now and then.
227
228       -nowind
229              By default it gets windy now  and  then.  If  you  prefer  quiet
230              weather specify -nowind.
231
232       -whirlfactor <n>
233              This  sets  the whirl factor, i.e. the maximum adjustment of the
234              horizontal speed. The default value is 100.
235
236       -windtimer <n>
237              With -windtimer you can specify how often it gets   windy.  It's
238              sort of a period in seconds, default value is 30.
239
240       -stars <n>
241              The number of stars (default: 20).
242
243       -meteors
244              (Default) Show meteors.
245
246       -nometeors
247              Do not show meteors.
248
249       -meteorfrequency
250              Frequency of falling of meteors, 0..100 (default: 40).
251
252       -moon <n>
253              1: show moon, 0: do not show moon (default: 1).
254              Picture of moon thanks to  Pedro Lasta on Unsplash.
255              https://unsplash.com/photos/wCujVcf0JDw
256
257       -moonspeed <n>
258              Speed of moon in pixels/minute (default: 120).
259
260       -moonsize <n>
261              Realtive size of moon (default: 100).
262
263       -halo <n>
264              1: show halo around moon, 0: do not show halo (default: 1).
265
266       -halobrightness <n>
267              Brightness of halo (default: 25).
268
269       -aurora <n>
270              To show (1) or not to show(0) aurora (default: 1).
271                On most desktops aurora works, but not on all. Try!
272
273       -auroraleft
274              Place aurora in top left of screen.
275
276       -auroramiddle
277              Place aurora in top middle of screen.
278
279       -auroraright
280              Place aurora in top right of screen (default).
281
282       -aurorawidth <n>
283              Width of aurora in percentage of screen width (default: 60).
284
285       -aurorabase <n>
286              Height  of  aurora's  base  line  in percentage of screen height
287              (default: 50).
288
289       -auroraheight <n>
290              Height of aurora (default: 30).
291
292       -auroraspeed <n>
293              Animation speed of aurora (default: 50).
294                 10: about real value, 100: timelapse.
295
296       -aurorabrightness <n>
297              Brightness of aurora (default: 15).
298
299   Fallen snow options:
300       -wsnowdepth <n>
301              Maximum thickness of snow on top of windows (default: 30).
302
303       -ssnowdepth <n>
304              Maximum thickness of snow at the bottom of the screen  (default:
305              50).
306
307       -maxontrees <n>
308              Maximum number of flakes on trees. Default 200.
309
310       -keepsnowonwindows
311              (Default) Keep snow on top of the windows.
312
313       -nokeepsnowonwindows
314              Do not keep snow on top of the windows.
315
316       -keepsnowonscreen
317              (Default) Keep snow at the bottom of the screen.
318
319       -nokeepsnowonscreen
320              Do not keep snow at the bottom of the screen.
321
322       -keepsnowontrees
323              (Default) Keep snow on trees.
324
325       -nokeepsnowontrees
326              Do not keep snow on trees.
327
328       -keepsnow
329              (Default) Have snow sticking anywhere.
330
331       -nokeepsnow
332              Do not have snow sticking anywhere.
333
334       -fluffy
335              (Default) Create fluff on fallen snow.
336
337       -nofluffy
338              Do not create fluff on fallen snow.
339
340       -offsetx <n>
341              Correction  for  window-manager provided x-coordinate of window.
342              Default 4.
343
344       -offsety <n>
345              Correction for window-manager provided  y-coordinate of  window.
346              Default 0.
347
348       -offsetw <n>
349              Correction  for window-manager provided width of window. Default
350              -8.
351
352       -offsets <n>
353              Correction for bottom coordinate  of  your  screen.  A  negative
354              value lifts the xsnow screen up. Default 0.
355
356       -ignoretop <n>
357              Do  not  collect snow on window > 0.8*width of screen and closer
358              than <n> pixels from the top.  Sometimes  an  hidden  window  is
359              sitting  there, but treated as a normal window by xsnow. Default
360              0.
361
362       -ignorebottom <n>
363              Analog to -ignoretop, but now for the bottom. Default 0.
364
365   Birds options:
366       -anarchy <n>
367              Anarchy factor ( 0..100 default: 50).
368
369       -birdscolor <c>
370              Use the given string as color for the birds (default: #361A07).
371
372       -birdsonly <n>
373              Show only birds ( 0/1 default: 0).
374
375       -birdsspeed <n>
376              Speed of birds ( 0..300 default: 100).
377
378       -disweight <n>
379              Eagerness to keep desired distance ( 0..100 default: 20).
380
381       -focuscentre <n>
382              Eagerness to fly to the focus ( 0..300 default: 100).
383
384       -followneighbours <n>
385              Eagerness to follow neighbours ( 0..100 default: 30).
386
387       -nbirds <n>
388              Number of birds ( 0..400 default: 70).
389
390       -neighbours <n>
391              Number of neighbours to watch ( 0..20 default: 7).
392
393       -prefdistance <n>
394              Preferred distance to neighbours ( 0..100 default: 40).
395
396       -showbirds <n>
397              Show birds ( 0/1 default: 1).
398
399       -showattr <n>
400              Show attraction point ( 0/1 default: 0).
401
402       -attrspace <n>
403              Vertical space to be used by the attraction point (default: 40).
404
405       -followsanta <n>
406              Birds like Santa ( 0/1 default: 0).
407
408       -viewingdistance <n>
409              Viewing distance ( 0..95 default: 40).
410
411       -birdsscale <n>
412              Scalefactor used painting the birds (default: 100).
413
414   FILES
415       $HOME/.xsnowrc
416              Settings are read from and written  to  this  file.   See  flags
417              -noconfig and -defaults how to influence this behaviour.
418                  NOTE: the following settings are not read or written:
419                        -above  -defaults  -desktop  -fullscreen -noconfig -id
420                        -nomenu   -stopafter   -xwininfo   -display     -noisy
421              -checkgtk
422
423
424       $HOME/xsnow/pixmaps/tree.xpm
425              If present, xsnow will try this file for displaying  the  trees.
426              The    format    must    be   xpm   (X   PixMap)   format,   see
427              https://en.wikipedia.org/wiki/X_PixMap .
428                  NOTE: when this file is present, no menu will appear.
429
430
431       $HOME/xsnow/pixmaps/santa<n>.xpm
432              where <n> = 1,2,3,4.  If present, xsnow will try this  files  (4
433              of them) for displaying Santa. The format must be xpm (X PixMap)
434              format, see https://en.wikipedia.org/wiki/X_PixMap .
435                  NOTE: when these files are present, no menu will appear.
436
437
438   EXAMPLES
439           $ xsnow -defaults        # run with defaults.
440           $ xsnow                  # run using values from the config file.
441           $ xsnow -treetype 1,2    # use tree types 1 and 2.
442
443   WINDOW MANAGER ISSUES
444       In general, xsnow works better when using a compositing window  manager
445       like  xcompmgr,  compton  or picom.  However, with some window managers
446       (FVWM  for  example),  the  xsnow-window  is   transparent,   but   not
447       click-through.   Flags  to  be  tried  in  this  case  include:  -root,
448       -doublebuffer, -xwininfo, -id.
449       Here follow some window managers with their issues:
450
451
452       Tiling window managers
453              Here you need to float windows with class=Xsnow.
454
455       AWESOME
456              Without compositor: no issues.
457              With compositor: no click-through xsnow window, and issues  with
458              multi-monitor setup.
459
460       BSPWM  No  issues  if  you add to your bspwmrc (the bspwm configuration
461              file):
462                  bspc rule -a Xsnow state=floating border=off
463
464       CINNAMON
465              No issues.
466
467       DWM    No issues, except the "Below Windows" setting in the  "settings"
468              panel.
469
470       ENLIGHTENMENT
471              With one monitor: no issuses.
472              With more montors: probems with showing in 'all monitors'
473
474       FLUXBOX
475              Without compositor: no issues.
476              With compositor: no click-through xsnow window
477
478       FVWM   Without compositor: no issues.
479              With compositor: no click-through xsnow window
480
481       GNOME on Xorg
482              No issues.
483
484       GNOME on Wayland
485              Most windows don't catch snow.
486
487       HERBSTLUFTWM
488              No issues.
489
490       I3     Without  compositor: windows don't catch snow, use the next line
491              in "config":
492                  for_window [class="Xsnow"] floating enable;border none
493              With compositor: unworkable.
494
495       JVM    No issues.
496
497       LXDE   With compositor: no issues.
498              Without compositor: works with one monitor.
499              Maybe you need to run with the flag -xwininfo
500
501       LXQT   Without compositor: unworkable.  With compositor: no issues.
502
503       MATE   No issues.
504
505       OPENBOX
506              No issues.
507
508       PLASMA (KDE)
509              No issues.
510
511       SPECTRWM
512              Various issues. In any case you need in spectrwm.conf:
513                  quirk[Xsnow] = FLOAT
514
515       TWM    Without compositor: no issues.
516              With compositor: no click-through xsnow window and
517              you need to tweak settings->lift snow on windows.
518
519       WINDOW MAKER
520              Without   compositor:   no   issues.    With   compositor:    no
521              click-through xsnow window
522
523       XFCE   No issues when compositing is on, unworkable when compositing is
524              off.
525              See settings -> Window Manager Tweaks -> Compositor
526
527       XMONAD No issues if you add to your xmonad.hs:
528               import XMonad.Hooks.EwmhDesktops
529               xmonad $ ewmh $ defaultConfig
530               in the ManageHook section:
531                  className = ? "Xsnow" --> doFloat
532
533   BUGS
534       - Xsnow needs a complete rewrite: the code is a mess.
535       - The flags are not consistent, caused by trying to be
536           compatible with older versions.
537       - Xsnow stresses the Xserver too much.
538       - Xsnow does run in Wayland, but will not snow on all windows.
539       - Xsnow tries to create a click-through window. This is not successful
540         in for example FVWM/xcompmgr. In that case, xsnow tries to keep
541         the snow window below all others, resulting in a transient effect
542         when you click on the desktop. Sadly, no FVWM menu will appear...
543       - Remnants of fluffy snow can persist after removing the
544           fallen snow. These will gradually disappear, so no big deal.
545       - Remnants of meteors can persist after passage of Santa.
546           These will eventually be wiped out by snow or Santa.
547       - Xsnow tries to adapt its snowing window if the display
548           settings are changed while xsnow is running.
549           This does not function always well.
550       - Xsnow does not play well with 'xcompmgr -a'. In some environments
551           (Raspberry 64 bit) xcompmgr is started with the flag '-a',
552           resulting in a black snow window. Remedy:
553           In a terminal window type:
554             killall xcompmgr
555             nohup xcompmgr -n &
556           and try again.
557       - In XFCE, compositing must be enabled for xsnow.
558           Settings -> Window Manager Tweaks -> Compositor ->  Enable  display
559       compositing
560       - In multi-screen environments, it depends on the display settings
561           if it is snowing on all screens. Experiment!
562
564       This is free software; see the source for copying conditions.  There is
565       NO warranty; not even for MERCHANTABILITY or FITNESS FOR  A  PARTICULAR
566       PURPOSE.
567
568
569
570xsnow-3.6.0                          2022                             XSNOW(6)
Impressum