xskat

package: xskat

title: xskat(6)

summary: a card game for 1 to 3 players.

text:
# xskat(6)

## NAME
xskat - a card game for 1 to 3 players.

## SYNOPSIS
xskat [-display|-d display] [-geometry|-g geometry] [-font|-fn font] [-iconic|-i] [-title|-T string] [-name prog] [-fg color] [-bg color] [-bt color] [-mark color] [-3d] [-2d] [-3dtop color] [-3dbot color] [-mb button#] [-keyboard number] [-tdelay seconds] [-fastdeal] [-slowdeal] [-help|-h] [-frenchcards] [-french4cards] [-germancards] [-german4cards] [-color] [-mono] [-color1 color] .. [-color4 color] [-large] [-small] [-up] [-down] [-alt] [-seq] [-list|-l file] [-alist] [-nlist] [-tlist] [-log file] [-dolog] [-nolog] [-fmt] [-unfmt] [-game file] [-briefmsg] [-verbosemsg] [-trickl2r] [-notrickl2r] [-lang language] [-start player#] [-s1 number] [-s2 number] [-s3 number] [-ramsch] [-noramsch] [-ramschonly] [-sramsch] [-nosramsch] [-skattolast] [-skattoloser] [-kontra] [-nokontra] [-kontra18] [-bock] [-nobock] [-bockramsch] [-bockevents number] [-resumebock] [-noresumebock] [-spitze] [-spitze2] [-nospitze] [-revolution] [-norevolution] [-klopfen] [-noklopfen] [-schenken] [-noschenken] [-hint] [-nohint] [-newrules] [-oldrules] [-shortcut] [-noshortcut] [-askshortcut] [-irc] [-noirc] [-irctelnet program] [-ircserver hostname] [-ircport number] [-ircchannel name] [-ircnick name] [-ircuser name] [-ircrealname name] [-ircpos number] [-irclog file] [-irclogappend] [-irclogoverwrite] [-auto #ofgames] [-opt file] [-pk] [player@display...]

## DESCRIPTION
XSkat lets you play the card game Skat as defined by the official Skat Order.

Up to 3 players may be simulated by the computer.

After starting the game a mouse click or ESC/F1 will bring up a menu. Other useful keys are: Space, Return, Tab, Cursor left/right/up/down. The rest of the game controls should be fairly obvious.

An introduction to Skat can be found at

http://www.xskat.de/xskat.html

## OPTIONS
In the following descriptions, the player starting XSkat is called player1.

-display display name

-geometry geometry specification

-font font name (default: 9x15 or 10x20)

-iconic

-title window title

-name application resource name

-fg foreground color

-bg background color

The usual X toolkit options.

-bt color

The color of dialog buttons.

-mark color

The color of the marks that indicate

who is forehand (during bidding),

who is the Soloist,

which card the computer would play,

or the keyboard focus

(default: red or black).

-3d

Use a 3D look for dialogs (default).

-2d

Use the old, flat style (default on monochrome screens).

-3dtop color

The color used for the lines around the top and left sides of 3D buttons (default: white).

-3dbot color

The color used for the lines around the bottom and right sides of 3D buttons (default: black).

-mb menu button

The number of the mouse button that brings up the menu (default: 0 = any button).

-keyboard number

Define how much of the user interface may be controlled by the keyboard. The number has the following meaning:

```
 0 : Nothing.

 1 : More (default).

 2 : Everything.
```

-tdelay seconds

Specifies how long the last trick will be visible. A delay of more than 10 seconds means that the trick will be removed after pressing a mouse button. In multiplayer mode the largest specified value is used (default: 0.7).

-fastdeal

Deal the cards without any time consuming animation.

-slowdeal

Deal the cards slowly (default).

-help

Show a short help text.

-frenchcards

Play with French suited cards.

-french4cards

Change the colors of diamond and spade to orange and green, so that the 4 suits have easily distinguishable colors (default).

-germancards

Use German cards.

-german4cards

Change the color of acorns to brown, so that the 4 suits have easily distinguishable colors.

-color

Use colored cards. If there are not enough colors left, the number of colors used to draw the cards will be reduced appropriately (default).

-mono

Use b&w cards.

-color1 .. -color4

Redefine the colors of the suits diamond, heart, spade and club. Selecting -french4cards overrides the colors for diamond and spade.

-large and -small

Select the size of the main window (default: as large as possible).

-down

Sort cards downwards (default).

-up

Sort cards upwards.

-alt

Sort cards in alternating order.

-seq

Sort cards in sequential order (default).

-list filename

The file for saving/restoring the game list (default: $HOME/.xskat.lst or ./xskat.lst if HOME isn't set. For IRC games: .irc instead of .lst).

-alist

Alternative form of listing.

-nlist

Normal form of listing (default).

-tlist

Listing with tournament scoring.

-log filename

Turn on automatic logging, i.e. append logs of all games to filename (- means stdout).

-dolog

Turn on automatic logging (default file: $HOME/.xskat.log or ./xskat.log).

-nolog

Turn off automatic logging (default). Logs of individual games may still be saved during the game.

-fmt

Write formatted log files, i.e. use backspaces for underlining and boldface.

-unfmt

Write unformatted log files (default).

-game filename

Read predefined games from filename (- means stdin). Not available for IRC play. See also section FILES below.

-briefmsg

Indicate who is forehand (during bidding) and who is the Soloist by displaying a small mark on the back of the cards.

-verbosemsg

Additionally print out everyones position and what is being played (default).

-trickl2r

Put down the cards of a trick from left to right (default).

-notrickl2r

Place the cards corresponding to the players positions.

-lang language

Currently available: English and German (default: $LANG/$LANGUAGE is tried first. Then: see Imakefile/Makefile).

-start number

The player who starts dealing cards (default: 2).

-s1 number

-s2 number

-s3 number

Change the playing strenght of the computer players.

s1 corresponds to the left computer in single player mode or to the one and only computer in two player mode.

s2 corresponds to the right computer in single player mode.

s3 is only useful with -auto.

The number must be between -4 (weak) and 0 (default).

-ramsch

Play a game of Ramsch when all players pass.

The following rules are currently implemented:

The Skat remains face down until it goes to the winner of the last trick (or to the loser of the game, s.b.). The amount lost is the number of card points taken. If two players tie for most card points, they both lose. If all tie, the score is 0. If one player takes no tricks (a virgin) the amount lost by the loser is doubled. Someone taking all the tricks (forced march) wins 120 points.

-noramsch

Don't play Ramsch (default).

-ramschonly

Play Ramsch each game.

-sramsch

Play Schieberamsch instead of simple Ramsch.

The rules are:

Each player in turn, starting with Forehand, may pick up the Skat and discard two cards face down. It's not allowed to pass on jacks. The score is doubled each time a player doesn't pick up the Skat.

-nosramsch

Don't play Schieberamsch (default).

-skattoloser

At the end of a Ramsch game the Skat is awarded to the loser(s). This will increase the loss.

-skattolast

The Skat goes to the winner of the last trick (default).

-kontra

Allow opponents to say 'Kontra' which doubles the score of the game. The Soloist may reply 'Re' to double the score again.

-nokontra

Disallow Kontra (default).

-kontra18

Only an opponent who said at least 18 may say 'Kontra'.

-bock

Play a Bockround after some special event. The score is doubled in the next 3 games. If an event causing a new Bockround happens before the current Bockround is over or several Bockround events happen at the same time, the number of Bockrounds still to play is increased appropriately.

-nobock

Don't play Bockrounds (default).

-bockramsch

Play a round of compulsory Ramsch after each Bockround. Before a game of Ramsch begins, each player in turn, starting with Forehand, may declare to play Grand Hand instead. After a Grand Hand the same player deals again because this game does not count towards completing the Ramschround.

-bockevents number

Specify the events that cause a Bockround.

```
(1) A game is lost with 60 points.
(2) A successful Grand Hand.
(4) A successful Kontra (opponents win).
(8) A game with Kontra & Re.
(16) A player's score ends in 3 equal digits.
(32) A player's score is a multiple of 100.
(64) A game value of +72 or more.
(128) A game value of +96 or more.
```

Add up the numbers in parentheses to specify the desired events (default: 0).

Notes:

A Kontra where the Soloist said Re but lost counts as one event not two (events 4 and 8).

To check a player's score, the current listing options of player1 are used (events 16 and 32). A score that is a multiple of 1000 counts as one event.

The game value (events 64 and 128) is the normal value without considering any doubling caused by Ramsch, Kontra or Bock.

-resumebock

Resume unfinished Bockrounds after quitting and restarting XSkat. The number of games to play is read from the game list file.

-noresumebock

Don't resume Bockrounds (default).

-spitze

Allow the Soloist to declare Spitze. This means that the last trick must be made with the lowest trump to win the game. This will be indicated to the other players by displaying the lowest trump. The game multiplier is increased by 1. It's not allowed to say Spitze in a Grand with 4 jacks.

-spitze2

Declaring Spitze increases the multiplier by 2.

-nospitze

Don't allow Spitze (default).

-revolution

Enable a special variation of Null ouvert. After the Soloist's cards are exposed the opponents can look at each other's cards and rearrange the cards between their two hands in any way they wish before the start of the play. Revolution is worth 92 points.

-norevolution

Don't allow Revolution (default).

-klopfen

During a Ramschround you may knock (klopfen) at the beginning of a game to indicate that you think you won't lose. This will double the score of the game. Klopfen is not possible if you don't pick up the Skat in Schieberamsch.

-noklopfen

Don't allow Klopfen (default).

-schenken

If the opponents decide at the start of the play that they cannot defeat the Soloist, they can give up. This is done by selecting Schenken from the main menu during the first trick when it's your turn. If the Soloist accepts, the score is as though the game was won simply. The Soloist can insist on playing on, but in that case has to make the opponents Schneider to win. The score in this case is as for an announced Schneider (the multiplier is increased by 2). If the Soloist goes on the opponents can schenken again, giving the Soloist the Schneider. The Soloist can accept Schneider or insist on playing on for Schwarz.

-noschenken

Don't allow Schenken (default).

-hint

Put a mark over the card the computer would play.

-nohint

Don't show computer hints (default).

-newrules

Use the official rules of 01/01/1999:

Lost Hand games count double.

The Grand Ouvert multiplier is 24.

(default)

-oldrules

Lost Hand games count simple.

The Grand Ouvert multiplier is 36.

-shortcut

Always finish the game when the remaining tricks will all go to one side.

-noshortcut

Play each trick.

-askshortcut

Ask whether a shortcut should be taken (default).

-irc

Play via Internet Relay Chat. This option will establish a connection to an IRC server where you can join other people for a game of Skat.

How it works:

Start XSkat from an xterm. Wait until the server has printed the welcome message. You are now on channel #xskat where new games should be planned. Everything you type into the xterm will be sent to everyone else on this channel. After you have found one or two other players and agreed upon the name of a new channel (say #xskat123), you should type /join #xskat123. When all players are on the new channel, exactly one player has to type /go (or /go2 if there are only 2 players) to start the game. Now you can play and talk.

-noirc

Don't use IRC (default).

-irctelnet program

Specify the program that will be used to connect to the IRC server. If you are sitting behind a firewall, a program like rtelnet must be used and you may have to set $SOCKS_SERVER to the name of your firewall host (default: telnet).

-ircserver host-name

Select an IRC server near you! (default: $IRCSERVER or irc.fu-berlin.de, if not changed in the Imakefile/Makefile)

-ircport number

The port of the IRC server to connect to (default: $IRCPORT or 6667).

-ircchannel name

The channel to join initially (default: #xskat).

-ircnick name

Your IRC nickname. If your nick is already used by someone else, a different nick will be generated automatically. Some servers allow a nick length of 30, others limit it to 9 characters. (default: $IRCNICK or $IRCUSER or $LOGNAME or xskatNNNN).

-ircuser name

Your user/login name. Note: most servers don't like faked user names (default: $IRCUSER or $LOGNAME).

-ircrealname name

Your real name (default: $IRCNAME or the entry from the passwd file or 'XSkat player').

-ircpos number

Select your position relative to the other players. Positions are numbered clockwise 1, 2 and 3. Player 2 will start dealing if not specified otherwise with -start or /start. If you don't specify your position or there is a conflict with someone else's choice or you give an invalid number (3 in a 2 player game), this will be fixed automatically. Choosing the right positions is important if you want to continue with a saved game list (default: 0 = I don't care).

-irclog file

Everything sent to or received from the IRC server is saved to this file (- means stdout). It may be useful for debugging (default: $HOME/.xskat.ilg or ./xskat.ilg).

-irclogappend

Append output to the log file.

-irclogoverwrite

Overwrite existing log file (default).

IRC commands:

/nick name, /nick - change or display your nickname.

/who - is on the current channel ?

/list, /list string - show all channels that match the word xskat or the specified string. This will take some time on networks with a large number of channels. Trying to stop the listing will terminate the program.

/pos number - see -ircpos.

/bell - toggle the alarm bell. When on, the bell will ring each time someone joins your channel or sends a message to you. The bell is off initially.

/quit - terminate XSkat.

/sync - if messages get lost due to a net-split (or because someone left the channel during play), XSkat will detect this and in most cases should be able to synchronize automatically (within 30 seconds) after the connection is reestablished. Typing /sync will try this immediately.

/quote command args - for those who know what they are doing.

The following commands are only useful for the player who will start the game by typing /go because that player will determine the rules of the game.

/default - set the official rules.

/ramsch, /sramsch, /skattoloser, /kontra, /bock, /resumebock, /spitze, /revolution, /klopfen, /schenken, /oldrules, /bockevents, /alist, /tlist, /start, /s1 - change the rules of the game. All of these require an argument (a number or True/False) just like the resources with the same name.

/rules - show the current rules to everyone on your channel.

Notes:

The version numbers of all participating programs must be equal.

Most options cannot be changed during the game. Options that can be changed are not saved to a file.

The game list can only be cleared during bidding or when it's your turn to play a card. There is a different default game list for IRC games (see -list).

It's possible to type into the xterm or the game window (which is recommended), but changing input sources in the middle of a line won't work.

If you want better input line editing and a split screen try the program ssfe. It is used like this: ssfe -raw xskat -irc

You can omit -irc when you specify any of the other IRC options.

-auto #ofgames

Three computers play the specified number of games without human interaction. The resulting scores are printed.

With this option, no resources are read, and the game list is saved only if -list is specified.

-opt filename

The file for saving/restoring all interactively changeable options of all players (default: $HOME/.xskat.opt or ./xskat.opt). Command line options take precedence over options specified in this file which in turn override resource specifications. This may be changed with the useoptfile resource.

-pk

If you want the computer to deal a Good Hand every time. (as requested by Petra K.) Alternatively, pressing F6 three times will result in a Good Hand for the next game. Does not work in multiplayer mode.

player@display

Specifies the display of the second and third player (but is ignored for IRC games). The player@ part may be omitted if the alias resource is set on display.

## RESOURCES
Command line options take precedence over resource specifications for player1.

geometry, font, title, foreground, background

The usual X11 resources.

mark

(see -mark).

button

(used for 2D buttons, see -bt).

3dbutton

(used for 3D buttons, see -bt, default: a shade of gray).

3dbackground

(used for 3D dialogs, see -bg, default: a different shade of gray).

3d

True or False (see -3d and -2d).

3dtop

(see -3dtop).

3dbot

(see -3dbot).

menubutton

(see -mb).

keyboard

(see -keyboard).

tdelay

(see -tdelay).

fastdeal

True or False (see -fastdeal and -slowdeal).(#)

cards

0, 1, 2 or 3 (see -frenchcards, -french4cards, -germancards and -german4cards).

color

True or False (see -color and -mono).

color1 .. color4

(see -color1 .. -color4).

large

True or False (see -large and -small).

down

True or False (see -down and -up).

alt

True or False (see -alt and -seq).

list

(see -list).(#)

alist

True or False (see -alist and -nlist).

tlist

True or False (see -tlist and -nlist).

log

(see -log).(#)

dolog

True or False (see -dolog and -nolog).(#)

formatted

True or False (see -fmt and -unfmt).(#)

game

(see -game).(#)

briefmsg

True or False (see -briefmsg and -verbosemsg).

trickl2r

True or False (see -trickl2r and -notrickl2r).

language

(see -lang).

start

(see -start).(#)

s1, s2

(see -s1, -s2).(#)

ramsch

0, 1 or 2 (see -noramsch, -ramsch and -ramschonly).(#)

sramsch

True or False (see -sramsch and -nosramsch).(#)

skattoloser

True or False (see -skattoloser and -skattolast).(#)

kontra

0, 1 or 2 (see -nokontra, -kontra and -kontra18).(#)

bock

0, 1 or 2 (see -nobock, -bock and -bockramsch).(#)

bockevents

(see -bockevents).(#)

resumebock

True or False (see -resumebock and -noresumebock).(#)

spitze

0, 1 or 2 (see -nospitze, -spitze and -spitze2).(#)

revolution

True or False (see -revolution and -norevolution).(#)

klopfen

True or False (see -klopfen and -noklopfen).(#)

schenken

True or False (see -schenken and -noschenken).(#)

hint

True or False (see -hint and -nohint).

oldrules

True or False (see -oldrules and -newrules).(#)

shortcut

0, 1 or 2 (see -noshortcut, -askshortcut and -shortcut).

irc

True or False (see -irc and -noirc).(#)

irctelnet

(see -irctelnet).(#)

ircserver

(see -ircserver).(#)

ircport

(see -ircport).(#)

ircchannel

(see -ircchannel).(#)

ircnick

(see -ircnick).(#)

ircuser

(see -ircuser).(#)

ircrealname

(see -ircrealname).(#)

ircpos

(see -ircpos).(#)

irclist

(see -list).(#)

irclog

(see -irclog).(#)

irclogappend

True or False (see -irclogappend and -irclogoverwrite).(#)

opt

(see -opt).(#)

useoptfile

True or False (default: False). This is a resource for multiplayer mode (but not for IRC). It is ignored for player1. If set to True, the contents of the option file, which is owned by player1, are used. This means that you may end up with someone else's preferred settings if player1 used this file in a different multiplayer game.

alias

The player's real name (max. 2 words of 9 characters, default: $LOGNAME).

Only player1 may specify the resources marked with (#).

Filenames starting with ~/ are interpreted correctly if HOME is set.

## FILES
An example of a file specifying predefined games:

```
# The following block specifies the distribution
# of cards for player1, 2, 3 and Skat(0).
# A 10  K  Q  J  9  8  7

  2  2  2  2  2  0  3  3  # Diamond

  2  2  2  2  2  3  3  3  # Heart

  1  1  1  1  1  3  3  3  # Spade

  1  1  1  1  1  0  3  3  # Club
# The following is not the same game !
# Player numbers rotate 3 -> 2 -> 1 -> 3
# (and depend on the start option).

  2  2  2  2  2  0  3  3

  2  2  2  2  2  3  3  3

  1  1  1  1  1  3  3  3

  1  1  1  1  1  0  3  3
repeat
# Repeat the above games forever.
# The following lines take effect only
# when you delete the 'repeat'.
random_seed 123456 0 2
# Specifies the random number which determines
# card distribution for all following games.
# The second number lets you skip that many
# games in the sequence.
# The third (optional) number defines
# who will start dealing cards (see -start).
# An additional L or R following this number will
# rotate the cards left or right.
# The random_seed will be shown in game logs
# to allow easy replay. Just type:
# echo random_seed 123456 0 2 | xskat -game -
```

## NOTES
There are no official rules for the variations Ramsch, Kontra, Bock, Spitze, Revolution, Klopfen and Schenken.

If executing xskat player@otherhost:0 on yourhost gives an error message you could try the command xhost yourhost on otherhost to grant yourhost access to otherhost's display.

If you replay a game with your own cards, it doesn't matter whether 'Forehand changes' is set to 'yes' or 'no'.

Some versions of telnet have a bug, that prevents them from reading input from a pipe correctly. See README.IRC for a fix or put this into your ~/.telnetrc:

```
irc.fu-berlin.de

 set echo off

 set escape off

 set rlogin off

 set flushoutput off

 set interrupt off

 set quit off

 set eof off

 set erase off

 set kill off

 set lnext off

 set susp off

 set reprint off

 set worderase off

 set start off

 set stop off

 set forw1 off

 set forw2 off

 set ayt off
```

Leading blanks are important! Change the irc server line appropriately.

## AUTHOR
Gunter Gerhardt

The latest version is always available at

http://www.xskat.de/xskat.html

```
This program is free software; you can redistribute it freely.
Use it at your own risk; there is NO WARRANTY.
Redistribution of modified versions is permitted
provided that the following conditions are met:
1. All copyright & permission notices are preserved.
2.a) Only changes required for packaging or porting are made.

  or
2.b) It is clearly stated who last changed the program.

     The program is renamed or

     the version number is of the form x.y.z,

     where x.y is the version of the original program

     and z is an arbitrary suffix.
Card images used with permission by
Spielkartenfabrik Altenburg GmbH, Marke ASS Altenburger
Leipziger Strasse 7, 04600 Altenburg, Germany
```


xsnow

package: xsnow

title: xsnow(6)

summary: Snow and Santa on your desktop

text:
# xsnow(6)

## NAME
xsnow - Snow and Santa on your desktop

## SYNOPSIS
xsnow [OPTION]...

## DESCRIPTION
Xsnow shows an animation of Santa and snow on your desktop. Xsnow can also run in one or more windows, see options -xwininfo, -id . (These options only work satisfactorily in an X11 environment.) Xsnow depends on an X11 environment. This is forced by setting the environment variable GDK_BACKEND=x11 before initializing the GTK. Hopefully, this will ensure that xsnow also runs in a Wayland environment for some time.

If xsnow is misbehaving, try to remove the file $HOME/.xsnowrc.

### General options:
Below:

<n> denotes an unsigned decimal (e.g 123) or octal (e.g. 017) or hex (e.g. 0x50009) number.

<c> denotes a string like "red" or "#123456".

<f> denotes a file name, like "/home/rick/Pictures/background.jpg".

-h, -help

print this text.

-H, -manpage

print man page.

-v, -version

prints version of xsnow.

-changelog

prints ChangeLog.

-config <f>

use <f> as config file, default is '.xsnowrc'.

If <f> does not start with '/', <f> is taken relative to your HOME directory.

<f> MUST contain the string 'xsnow'. Examples:

.myxsnowrc # will expand to '$HOME/.myxsnowrc'.

.config/xsnow # will expand to '$HOME/.config/xsnow'.

/etc/default/xsnow # will be used as is.

-selfrep

put tar ball on stdout, so you can do:

xsnow -selfrep > xsnow.tar.gz

-display <c>

Drop the snowflakes on the given display. Make sure the display is nearby, so you can hear them enjoy...

-screen <n>

If you have multiple monitors: snow in monitor n.

-1: use all monitors (default: -1)

Note: for this to work, Xinerama has to be functional.

-outline <n>

1: draw outline around snow window. 0: no outline.

Default: 0.

-vintage

Run xsnow in vintage settings.

-defaults

Do not read config file (see FILES).

-noconfig

Do not read or write config file (see FILES).

-hidemenu

Start with hidden interactive menu.

-nomenu

Do not show interactive menu.

-lang <c>

Set language, example: -lang it, see LANGUAGES below. Default: sys.

-scale <n>

Apply scalefactor (default: 100).

-doublebuffer <n>

1: use double buffering; 0: do not use double buffering (default: 1). Only effective with '-root' or '-id' or '-xwininfo'.

-transparency <n>

Transparency in % (default: 0)

-theme <n>

1: use xsnow theme for menu; 0: use system theme (default: 1)

-checkgtk <n>

0: Do not check gtk version before starting the user interface. 1: Check gtk version before starting the user interface. (default: 1).

-id <n>, -window-id <n>

Snow in window with id (for example from xwininfo).

--window-id <n>

see -id.

-desktop

Act as if window is a desktop.

-allworkspaces <n>

0: use one desktop for snow, 1: use all desktops (default: 1).

-above

Snow above your windows. Default is to snow below your windows. NOTE: in some environments this results in an un-clickable desktop.

-xwininfo

Use a cursor to point at the window you want the snow to be fallen in.

-stopafter <n>

Stop xsnow after so many seconds.

-root, --root

Force to paint on (virtual) root window.

Use this for xscreensaver:

Make sure xscreensaver is running, either as a start-up application

or from the command line, e.g:

nohup xscreensaver &

or

nohup xscreensaver -no-capture-stderr &

Run the program xscreensaver-demo to create the file ~/.xscreensaver

In the file ~.xscreensaver add after the line 'programs:' this line:

xsnow -root

Use the program xscreensaver-demo to select xsnow as screensaver.

You probably want to select: Mode: Only One Screen Saver.

-bg <f>

file to be used as background when running under xscreensaver.

-noisy

Write extra info about some mouse clicks, X errors etc, to stdout.

-cpuload <n>

How busy is your system with xsnow: the higher, the more load on the system (default: 100).

-screenshot <n>

1: use screenshots to find the windows, 0: use X11 (default: 0).

### Snow options:
-snowflakes <n>

The higher, the more snowflakes are generated per second. Default: 100.

-blowsnow

(Default) Animate blow-off snow.

-noblowsnow

Do not animate blowing snow from trees or windows

-sc <c>

Use the given string as color for the flakes (default: #fffafa).

-sc2 <c>

Use the given string as second color for the flakes (default: #87ceff).

-enablesc2 <n>

1: enable usage of second color for the flakes (default: 0).

-snowspeedfactor <n>

Multiply the speed of snow with this number/100 (default: 100).

-snowsize <n>

Set size of (non-vintage) snow flakes (default: 8).

-snow

(Default) Show snow.

-nosnow -nosnowflakes

Do not show snow.

-flakecountmax <n>

Maximum number of active flakes (default: 300).

-blowofffactor <n>

The higher, the more snow is generated in blow-off scenarios (default: 40).

### Tree options:
-treetype <n>[,<n> ...]

Choose tree types: minimum 0, maximum 8 (default: 1,2,3,4,5,6,7,). Thanks to Carla Vermin for numbers >=3! Credits: Image by b0red on Pixabay.

-treetype all

(Default) Use all non-vintage available tree types.

-tc <c>

Use the given string as the color for the vintage tree (default: #7fff00). Works only for treetype 0.

-notrees

Do not display the trees.

-showtrees

(Default) Display the trees.

-trees <n>

Desired number of trees. Default 10.

-treefill <n>

Region in percents of the height of the window where trees grow (default: 30).

-treescale <n>

Scale scenery (default: 100).

-treeoverlap

Allow scenery items to overlap each other (default).

-notreeoverlap

Do not allow scenery items to overlap each other.

### Santa options:
-showsanta

(Default) Display Santa running all over the screen.

-nosanta

Do not display Santa running all over the screen.

-showrudolph

(Default) With Rudolph.

-norudolph

No Rudolph.

-santa <n>

The minimum size of Santa is 0, the maximum size is 4. Default is 3. Thanks to Thomas Linder for the (big) Santa 2! Santa 3 is derived from Santa 2, and shows the required eight reindeer. The appearance of Santa 4 may be a surprise, thanks to Carla Vermin for this one.

-santaspeedfactor <n>

The speed Santa should not be excessive if he doesn't want to get fined. The appropriate speed for the Santa chosen will be multiplied by santaspeedfactor/100 (default: 100).

-santascale <n>

The scale to be used when drawing Santa (default: 100).

### Celestial options:
-wind

(Default) It will get windy now and then.

-nowind

By default it gets windy now and then. If you prefer quiet weather specify -nowind.

-whirlfactor <n>

This sets the whirl factor, i.e. the maximum adjustment of the horizontal speed. The default value is 100.

-windtimer <n>

With -windtimer you can specify how often it gets windy. It's sort of a period in seconds, default value is 30.

-stars <n>

The number of stars (default: 40).

-starsize <n>

Relative size of stars, default value is 50.

-meteors

(Default) Show meteors.

-nometeors

Do not show meteors.

-meteorfrequency

Frequency of falling of meteors, 0..100 (default: 40).

-moon <n>

1: show moon, 0: do not show moon (default: 1).

Picture of moon thanks to Pedro Lasta on Unsplash.

https://unsplash.com/photos/wCujVcf0JDw

-moonspeed <n>

Speed of moon in pixels/minute (default: 120).

-moonx <n>

Horizontal position of moon (only if speed = 0) (default: 50).

-moony <n>

Vertical position of moon (only if speed = 0) (default: 20).

-moonsize <n>

Relative size of moon (default: 100).

-mooncolor <n>

Color of moon 0: yellow-ish; 1: white-ish (default: 0).

-halo <n>

1: show halo around moon, 0: do not show halo (default: 1).

-halobrightness <n>

Brightness of halo (default: 25).

-aurora <n>

To show (1) or not to show(0) aurora (default: 1).

On most desktops aurora works, but not on all. Try!

-aurorax <n>

Place aurora horizontally in percents of screen-width (default: 50).

-aurorawidth <n>

Width of aurora in percentage of screen width (default: 60).

-aurorabase <n>

Height of aurora's base line in percentage of screen height (default: 50).

-auroraheight <n>

Height of aurora (default: 30).

-auroraspeed <n>

Animation speed of aurora (default: 50).

10: about real value, 100: timelapse.

-aurorabrightness <n>

Brightness of aurora (default: 15).

### Fallen snow options:
-wsnowdepth <n>

Maximum thickness of snow on top of windows (default: 30).

-ssnowdepth <n>

Maximum thickness of snow at the bottom of the screen (default: 50).

-maxontrees <n>

Maximum number of flakes on trees. Default 200.

-keepsnowonwindows

(Default) Keep snow on top of the windows.

-nokeepsnowonwindows

Do not keep snow on top of the windows.

-keepsnowonscreen

(Default) Keep snow at the bottom of the screen.

-nokeepsnowonscreen

Do not keep snow at the bottom of the screen.

-keepsnowontrees

(Default) Keep snow on trees.

-nokeepsnowontrees

Do not keep snow on trees.

-keepsnow

(Default) Have snow sticking anywhere.

-nokeepsnow

Do not have snow sticking anywhere.

-fluffy

(Default) Create fluff on fallen snow.

-nofluffy

Do not create fluff on fallen snow.

-offsetx <n>

Correction for window-manager provided x-coordinate of window. Default 4.

-offsety <n>

Correction for window-manager provided y-coordinate of window. Default 0.

-offsetw <n>

Correction for window-manager provided width of window. Default -8.

-offsets <n>

Correction for bottom coordinate of your screen. A negative value lifts the xsnow screen up. Default 0.

-ignoretop <n>

Do not collect snow on windows closer than <n> pixels from the top. Sometimes an hidden window is sitting there, but treated as a normal window by xsnow. Default 0.

-ignorebottom <n>

Analog to -ignoretop, but now for the bottom. Default 0.

### Birds options:
-anarchy <n>

Anarchy factor ( 0..100 default: 50).

-birdscolor <c>

Use the given string as color for the birds (default: #361A07).

-birdsonly <n>

Show only birds ( 0/1 default: 0).

-birdsspeed <n>

Speed of birds ( 0..300 default: 100).

-disweight <n>

Eagerness to keep desired distance ( 0..100 default: 20).

-focuscentre <n>

Eagerness to fly to the focus ( 0..300 default: 100).

-followneighbours <n>

Eagerness to follow neighbours ( 0..100 default: 30).

-nbirds <n>

Number of birds ( 0..400 default: 20).

-neighbours <n>

Number of neighbours to watch ( 0..20 default: 7).

-prefdistance <n>

Preferred distance to neighbours ( 0..100 default: 40).

-showbirds <n>

Show birds ( 0/1 default: 1).

-showattr <n>

Show attraction point ( 0/1 default: 0).

-attrspace <n>

Vertical space to be used by the attraction point (default: 40).

-followsanta <n>

Birds like Santa ( 0/1 default: 0).

-viewingdistance <n>

Viewing distance ( 0..95 default: 40).

-birdsscale <n>

Scalefactor used painting the birds (default: 100).

### LANGUAGES
Xsnow comes with some translations to non-english languages.

The translations are done with the aid of translate.google.com (implemented in package 'trans'), so there will be room for improvement. Any suggestions are welcome: contact@ratrabbit.nl .

### FILES
$HOME/.xsnowrc

Settings are read from and written to this file. See flags -noconfig and -defaults how to influence this behaviour.

NOTE: the following settings are not read or written:

-above -defaults -desktop -fullscreen -noconfig -id

-nomenu -stopafter -xwininfo -display -noisy -checkgtk

NOTE: the file also contains the screen locations of a number of buttons,

which can be used for testing purposes.

$HOME/.xsnowstop

Xsnow checks regularly the existence of this file. If present, xsnow will remove the file and stop.

$HOME/xsnow/pixmaps/tree.xpm

If present, xsnow will try this file for displaying the trees. The format must be xpm (X PixMap) format, see https://en.wikipedia.org/wiki/X_PixMap .

$HOME/xsnow/pixmaps/santa<n>.xpm

where <n> = 1,2,3,4. If present, xsnow will try this files (4 of them) for displaying Santa. The format must be xpm (X PixMap) format, see https://en.wikipedia.org/wiki/X_PixMap .

NOTE: To show: activate the first Santa in the menu.

### SIGNALS
On receiving the SIGUSR1 signal, xsnow writes the file ~/.xsnowrc.

### EXAMPLES

$ xsnow -defaults # run with defaults.

$ xsnow # run using values from the config file.

$ xsnow -treetype 1,2 # use tree types 1 and 2.

### WINDOW MANAGER ISSUES
In general, xsnow works better when using a compositing window manager like xcompmgr, compton or picom. However, with some window managers (FVWM for example), the xsnow-window is transparent, but not click-through. Flags to be tried in this case include: -root, -doublebuffer, -xwininfo, -id.

Here follow some window managers with their issues:

Tiling window managers

Here you need to float windows with class=Xsnow.

AWESOME

Without compositor: no issues.

With compositor: no click-through xsnow window, and issues with multi-monitor setup.

BSPWM

No issues if you add to your bspwmrc (the bspwm configuration file):

bspc rule -a Xsnow state=floating border=off

CINNAMON

No issues.

DWM

No issues, except the "Below Windows" setting in the "settings" panel.

ENLIGHTENMENT

With one monitor: no issuses.

With more montors: probems with showing in 'all monitors'

FLUXBOX

Without compositor: no issues.

With compositor: no click-through xsnow window

FVWM

Without compositor: no issues.

With compositor: no click-through xsnow window

GNOME on Xorg

No issues.

GNOME on Wayland

Most windows don't catch snow.

HERBSTLUFTWM

No issues.

I3

Without compositor: windows don't catch snow, use the next line in "config":

for_window [class="Xsnow"] floating enable;border none

With compositor: unworkable.

JVM

No issues.

LXDE

With compositor: no issues.

Without compositor: icons in snow window disappear.

LXQT

Without compositor: unworkable. With compositor: no issues.

MATE

No issues.

OPENBOX

No issues.

PLASMA (KDE)

No issues.

SPECTRWM

Various issues. In any case you need in spectrwm.conf:

quirk[Xsnow] = FLOAT

TWM

Without compositor: no issues.

With compositor: no click-through xsnow window and

you need to tweak settings->lift snow on windows.

WINDOW MAKER

Without compositor: no issues. With compositor: no click-through xsnow window

XFCE

No issues when compositing is on, unworkable when compositing is off.

See settings -> Window Manager Tweaks -> Compositor

XMONAD

No issues if you add to your xmonad.hs:

import XMonad.Hooks.EwmhDesktops

xmonad $ ewmh $ defaultConfig

in the ManageHook section:

className = ? "Xsnow" --> doFloat

### BUGS
- Xsnow needs a complete rewrite: the code is a mess.

- The flags are not consistent, caused by trying to be

compatible with older versions.

- Xsnow stresses the Xserver too much.

- Xsnow does run in Wayland, but will not snow on all windows.

- Xsnow tries to create a click-through window. This is not successful

in for example FVWM/xcompmgr. In that case, xsnow tries to keep

the snow window below all others, resulting in a transient effect

when you click on the desktop. Sadly, no FVWM menu will appear...

- Xsnow tries to adapt its snowing window if the display

settings are changed while xsnow is running.

This does not function always well.

- Xsnow does not play well with 'xcompmgr -a'. In some environments

(Raspberry 64 bit) xcompmgr is started with the flag '-a',

resulting in a black snow window. Remedy:

In a terminal window type:

killall xcompmgr

nohup xcompmgr -n &

and try again.

- In XFCE, compositing must be enabled for xsnow.

Settings -> Window Manager Tweaks -> Compositor -> Enable display compositing

- Depending on the window manager, snowing in 'all monitors' results in snowing

in one of the monitors. This happens for example in KDE.

- In multi-screen environments, it depends on the display settings

if it is snowing on all screens. Experiment!

- No snow on windows with 'desktop' or 'Desktop' in the name.

- In multi-screen environments, it depends on the window manager

if panels remain visible when running on 'all monitors'.

Please report your comments via:

https://ratrabbit.nl/ratrabbit/contact .

## HOMEPAGE
https://ratrabbit.nl/ratrabbit/xsnow

## COPYRIGHT
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

branch: sisyphus


xteddy

package: xteddy

title: xteddy(6)

text:
# xteddy(6)

## NAME
xteddy - cuddly teddy bear for your X Windows desktop.

## SYNOPSIS
xteddy [ -wm -float -noquit -nocursor -F<file> ]

[ -geometry WIDTHxHEIGHT+X+Y -display SERVER ]

[ -h --help -v ]

## DESCRIPTION
Xteddy is a cuddly teddy bear for your X Windows desktop.

Normally, xteddy just sits around doing nothing. After all, that's what teddy bears are for. Look at him, talk to him, place heavy windows on top of him, zap him around until he becomes dizzy, do what you like; he will always be your true (albeit virtual) friend.

You can move xteddy with the mouse by pointing at him and dragging him around. When clicked upon, he will pop up on top of all other windows. If you type "q" or "Esc" on him, he will exit (or, as I like to think of it, be tucked away in the file system until you need him next time).

That's it. But he's cute.

## OPTIONS
-wm

Use the window manager. Normally, xteddy sets the override_redirect flag for his window, which will cause most window managers to ignore him. However, some window managers might have problems coping with a window that is nailed directly to the root. In that case, use this option. If possible, instruct your window manager not to put any title bar or window frame on the window, or xteddy will lose some of his charm.

-float

Float up on top of overlapping windows. This will make xteddy stay in sight at all times, so you won't lose him. However, this is a bit intrusive and quite unlike a real teddy bear, so it is not the default action.

-noquit

Disable the "quit" command (do not quit when typing "q" in the window, but of course still on explicit window kills or process kills). This might seem an unnecessary option, but if you use the -wm option Xteddy might keep receiving keyboard events even after the mouse has left his window. I you use the -wm option in conjunction with a click-to-type window manager, you would probably want to include this option.

-nocursor

Disable the X11 cursor over the xteddy window.

-F,-f

< file > Display another image instead of xteddy. file can be the full name of an image file which reasonably should contain a transparent background. If there is no such file in the current working directory xteddy searches in $(installation_prefix)/share/xteddy, where $(installation_prefix) is determined at compile time (for instance /usr/X11R6). If this fails by default /usr/share/xteddy is searched. Failing this, /usr/local/share/xteddy is searched. If there is no such file in these directories the following appendixes where appended to the given name: xpm, png, tif, jpg, jpeg, gif and pnm. These files will be searched in the three directories. If all files the last try is to append the extensions in upper cases. '-F' and '-f' are equivalent, and the space in '-f <file>' is optional.

If no `-F` parameter is given file equals to xteddy or more precisely to the name of the calling program. For instance if there is a symlink

ln -s xteddy xpenguin

then file equals to xpenguin and the appropriate pixmaps with the name xpenguin are searched for.

-geometry

The standard X geometry specification. Only X and Y position requests are honored. Any height and width specifications will be ignored.

-display

Specify an X server other than the local display.

-h, --help

Print a help message and exit.

-v

Print the version number and exit.

## BEARS
The cast of characters is currently: teddy xalex xbobo xbrummi xcherubino xduck xhedgehog xklitze xnamu xorca xpenguin xpuppy xruessel xteddy xtrouble.png xtrouble_large xtuxxy.

## AUTHOR
Stefan Gustavson, ISY-LiTH (stegu@itn.liu.se). Xteddy is distributed under the GNU General Public License.

## BUGS
The Desktop Manager in Sun CDE (Common Desktop Environment) does not like xteddy. Xteddy by default does not use the window manager, and so he shows up as a sticky window on all desktops. If you don't like this, and try to circumvent it by running him with the -wm option, move him by grabbing him by the tummy instead of by the title bar, and then move him partly off the screen, the image is lost and never redrawn again, so all you see is a silhouette of a teddy bear. I have no idea why this happens. If you know, please tell me, and if you can fix it, please do. If you run CDE on other platforms than Sun, please tell me if it works for you. CDE does something which xteddy does not handle properly, and since I have a Sun with CDE myself I would like to know what the problem is.

For most X servers, the -float option does not work properly if xteddy is moved partially off the screen. This is the X server's fault, not mine.

If two copies of xteddy are placed so they overlap, and both were run with the -float option, the X server will try to put each on top of the other in an endless loop, which looks very bad and takes a lot of CPU power.

Xteddy does not make use of the X resource database. I just didn't get around to that.

Please send bug reports, fixes, suggestions, fan mail or or hacks to: stegu@itn.liu.se.