๐ฑ๏ธ Windows to Linux Cursor Converter
September 13, 2025 ยท View on GitHub
Convert Windows cursor themes to Linux format with ease! This tool automatically converts .cur and .ani files to Linux-compatible cursors using win2xcur.
โจ Features
- ๐ฏ Smart Mapping: Automatically maps Windows cursors to Linux equivalents
- ๐ Proper Structure: Creates standard Linux cursor theme directories
- ๐จ Multiple Variants: Generates all necessary cursor variants for complete compatibility
Note: Originally implemented in Bash, then ported to Python for cross-platform compatibility and because Python was already required for win2xcur. The Bash version remains available but may be removed in future updates in favor of the Python implementation.
๐ Quick Start
Prerequisites
Install win2xcur from: https://github.com/quantum5/win2xcur
Usage
-
Run the converter (creates
input/directory):./convert_cursors.sh # Bash version # or ./convert_cursors.py # Python version -
Add your Windows cursors to
input/theme-name/:input/ โโโ My Cursor Theme/ โ โโโ Normal.ani โ โโโ Help.ani โ โโโ install.inf โ โโโ ... โโโ Other Cursor Theme/ โโโ Default.cur โโโ Text.cur โโโ install.inf โโโ ... -
Convert:
./convert_cursors.sh -
Install the converted theme:
cp -r "output/My Cursor Theme" ~/.icons/
๐ Project Structure
cursor-converter/
โโโ convert_cursors.sh # Bash implementation
โโโ convert_cursors.py # Python implementation
โโโ input/ # Place Windows cursor themes here
โ โโโ theme-name/
โ โโโ *.cur, *.ani
โ โโโ install.inf
โโโ output/ # Converted Linux themes
โโโ theme-name/
โโโ index.theme
โโโ cursors/
โโโ arrow
โโโ hand
โโโ ...
๐ฏ Cursor Mappings
| Windows | Linux Variants |
|---|---|
| Default | arrow, default, left_ptr, top_left_arrow, size-* |
| Hand | draft, pencil |
| Link | grab, hand, hand1, hand2, openhand, pointer, pointing_hand |
| Text | ibeam, text, xterm |
| Busy | half-busy, wait, watch |
| Work | left_ptr_watch, pirate, progress |
| Cross | cross, crosshair |
| Move | all-scroll, closedhand, dnd-move, fleur, grabbing, move, size_all |
| Help | help, left_ptr_help, question_arrow, whats_this |
| Unavailable | circle, crossed_circle, dnd_no_drop, forbidden, no_drop, not_allowed |
| Horizontal | col-resize, e-resize, ew-resize, h_double_arrow, w-resize, size_hor |
| Vertical | n-resize, ns-resize, row-resize, s-resize, v_double_arrow, size_ver |
| Dgn1 | nw-resize, nwse-resize, se-resize, size_fdiag |
| Dgn2 | ne-resize, nesw-resize, sw-resize, size_bdiag |
| Alternate | bottom_*_corner, top_*_corner, *_side, *-arrow, up_arrow |
Custom Theme Installation
# User installation
cp -r "output/Theme Name" ~/.icons/
# System-wide installation
sudo cp -r "output/Theme Name" /usr/share/icons/