---
name: "xcursorgen"
section: "1"
platform: "linux"
package: "xorg-xcursorgen"
version: "1.0.9-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/xcursorgen"
---

# xcursorgen(1)

create an X cursor file from a collection of PNG images

## NAME

xcursorgen - create an X cursor file from a collection of PNG images

## SYNOPSIS

**xcursorgen** \[ **-p** *dir* \] \[ **--prefix** *dir* \] \[ *config-file* \[ *output-file* \] \]\
 **xcursorgen** **-V** \| **--version** \| **-?** \| **--help**

## DESCRIPTION

**Xcursorgen** reads the *config-file* to find the list of cursor images along with their hotspot and nominal size information. **Xcursorgen** converts all of the images to Xcursor format and writes them to the *output-file*.

Each line in the config file is of the form:\
 \<size\> \<xhot\> \<yhot\> \<filename\> \<ms-delay\>\

Multiple images with the same \<size\> are used to create animated cursors, the \<ms-delay\> value on each line indicates how long each image should be displayed before switching to the next.  \<ms-delay\> can be elided for static cursors.

If *config-file* is not specified, or is specified as "-", standard input is used for the configuration file. If *output-file* is not specified, or is specified as "-", standard output is used for the output file.

## OPTIONS

- **-V**, **--version**

  Display the version number and exit.

- **-?**, **--help**

  Display the usage message and exit.

- **-p *dir***, **--prefix *dir***

  Find cursor images in the directory specified by *dir*.   If not specified, the current directory is used.

## SEE ALSO

[**Xcursor**(3)](/Xcursor/3.md)
