xcowsay - Display a cute cow and speech bubble.
xcowsay [-h] [-t time] [-r speed] [-d] [-f font] [text]...
Display a cow with a speech bubble containing some text. If text is
specified it will be displayed in the bubble. Otherwise the text will
be read from the standard input and displayed when end of file is
The cow is displayed for either a fixed amount of time, or an amount of
time calculated from the size of the text. Click on the cow to dismiss
If xcowsay is started with --daemon it will fork away from the terminal
and run in daemon mode. The daemon provides a DBus service
uk.me.doof.Cowsay that responds to ShowCow requests. The daemon can
queue up any number of requests and displays them in order.
When xcowsay starts it checks to see if a daemon is running, and if it
is, sends a ShowCow request and returns immediately. Otherwise xcowsay
will block until the cow has disappeared.
xcowsay reads a configuration file on startup. The configuration file
can be stored in the XDG compliant location $XDG_CONFIG_HOME/xcowsayrc
(which will default to $HOME/.config/xcowsayrc) or in your home
directory at $HOME/.xcowsayrc. If the --config=FILE command line
option is passed FILE will be processed after your personal
The configuration file consists of ’option = value’ pairs, one per
line. The valid keys are given in the next section. For example, the
following line sets display time to 10 seconds:
display_time = 10000
The character ’#’ begins a comment which lasts until the end of the
Note that these options override any settings in the config file.
Display usage information.
-t time, --time=time
Display the cow for time seconds. This overrides any value set
for reading_speed. The corresponding config file option is
-r speed, --reading-speed=speed
Number of milliseconds to display the cow for each word in the
input text. This is clamped to a minimum of min_display_time and
a maximum of max_display_time. The defaults are 1 second and 30
seconds respectively. The corresponding config file option is
-f font, --font=font
Font for the speech bubble text. Accepts Pango font strings. The
corresponding config file option is font.
-d file, --dream=file
Display an image instead of text in the cow’s bubble. The
dream_time config file option sets the numer of milliseconds to
display the image for. The default is 10 seconds.
Display a thought bubble instead of a speech bubble.
Run xcowsay in daemon mode if DBus support has been enabled. See
the description for more information.
Size of the cow image. Current choices are small, med, or
large. The corresponding config file option is cow_size.
Use a different image instead of the cow. The corresponding
config file option is alt_image.
Make the cow appear on monitor N.
Force that cow to appear at screen location (X,Y). The config
file options are at_x and at_y.
Change position of bubble relative to where it would normally
appear. This is most useful when combined with the alt_image
option to create your own characters. The config file options
are bubble_x and bubble_y.
Print messages about what xcowsay is doing. Useful for finding
out why the daemon fails.
Print version information.
Written by Nick Gasson.
Report all bugs to firstname.lastname@example.org The xcowsay home page is
There are a few issues I am aware of:
The cow and speech bubble have jagged edges which would be improved by
Very long strings will disappear off the right-hand side of the screen.
This could be fixed e.g. by using Pango’s word wrapping.