๐Ÿ–ฑ๏ธ 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

  1. Run the converter (creates input/ directory):

    ./convert_cursors.sh    # Bash version
    # or
    ./convert_cursors.py    # Python version
    
  2. 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
        โ””โ”€โ”€ ...
    
  3. Convert:

    ./convert_cursors.sh
    
  4. 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

WindowsLinux Variants
Defaultarrow, default, left_ptr, top_left_arrow, size-*
Handdraft, pencil
Linkgrab, hand, hand1, hand2, openhand, pointer, pointing_hand
Textibeam, text, xterm
Busyhalf-busy, wait, watch
Workleft_ptr_watch, pirate, progress
Crosscross, crosshair
Moveall-scroll, closedhand, dnd-move, fleur, grabbing, move, size_all
Helphelp, left_ptr_help, question_arrow, whats_this
Unavailablecircle, crossed_circle, dnd_no_drop, forbidden, no_drop, not_allowed
Horizontalcol-resize, e-resize, ew-resize, h_double_arrow, w-resize, size_hor
Verticaln-resize, ns-resize, row-resize, s-resize, v_double_arrow, size_ver
Dgn1nw-resize, nwse-resize, se-resize, size_fdiag
Dgn2ne-resize, nesw-resize, sw-resize, size_bdiag
Alternatebottom_*_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/