---
name: "xcowsay"
section: "6"
platform: "linux"
package: "xcowsay"
version: "1.6-1+b1"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/xcowsay"
---

# xcowsay(6)

Display a cute cow and speech bubble.

## NAME

xcowsay - Display a cute cow and speech bubble.

## SYNOPSIS

**xcowsay** \[**-h**\] \[**-t***time*\] \[**-r***speed*\] \[**-d**\] \[**-f***font*\] \[*text*\]...

## DESCRIPTION

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 encountered.

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 it immediately.

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.

## CONFIGURATION FILE

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 configuration file.

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 line.

Values containing spaces should be enclosed in quotes.  For example:

font = "mono 28"

## OPTIONS

Note that these options override any settings in the config file.

- **-h, --help**

  Display usage information.

- **-t** *time***, --time=***time*

  Display the cow for *time* seconds.  This overrides any value set for *reading\_speed*. Setting *time* to zero displays the cow until it is clicked.  The corresponding config file option is *display\_time*. This can also be set to a fractional value like 0.5.

- **-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 *reading\_speed*.

- **-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.

- **--think**

  Display a thought bubble instead of a speech bubble.

- **--daemon**

  Run xcowsay in daemon mode if DBus support has been enabled.  See the **DESCRIPTION** section above for more information.

- **--cow-size=***size*

  Size of the cow image.  Current choices are **small**, **med**, or **large**. The corresponding config file option is *cow\_size*.

- **--image=***file*

  Use a different image instead of the cow.  The corresponding config file option is *alt\_image*.

- **--monitor=***N*

  Make the cow appear on monitor N.

- **--at=***X,Y*

  Force that cow to appear at screen location (X,Y).  The config file options are *at\_x* and *at\_y*.

- **--bubble-at=***X,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*.

- **--no-wrap**

  Disable word wrapping when the bubble is too wide to fit on the screen. The config file option *wrap* can be set to *true* or *false* to set this explicitly.

- **-l, --left**

  Make the bubble appear on the left hand side of the cow.  This is useful if you are using your own image.

- **--debug**

  Print messages about what **xcowsay** is doing.  Useful for finding out why the daemon fails.

- **--release**

  Close window on release event instead of press.  The corresponding config file option is *close\_event=button-release-event*.

- **-v, --version**

  Print version information.

## AUTHOR

Written by Nick Gasson.

## REPORTING BUGS

Report all bugs to nick@nickg.me.uk The xcowsay home page is \<http://www.doof.me.uk/xcowsay\>

## SEE ALSO

[**cowsay**(6)](/cowsay/6.md)
