Skip to main content

win2xcur is a tool to convert Windows .cur and .ani cursors to Xcursor format, and vice versa.

Project description

win2xcur and x2wincur Build Status PyPI PyPI - Format PyPI - Python Version

win2xcur is a tool that converts cursors from Windows format (*.cur, *.ani) to Xcursor format. This allows Windows cursor themes to be used on Linux, for example.

win2xcur is more than a simple image conversion tool. It preserves the cursor hotspot and animation delay, and has an optional mode to add shadows that replicates Windows's cursor shadow effect.

x2wincur is a tool that does the opposite: it converts cursors in the Xcursor format to Windows format (*.cur, *.ani), allowing to use your favourite Linux cursor themes on Windows.

win2xcurtheme converts a packaged Windows cursor theme with an INF installer into a directory of Xcursors, which can be used to construct your own cursor theme on Linux.

Conversely, x2wincurtheme converts a directory of Xcursors into Windows, while generating the complementary install.inf for easy installation.

Finally, inspectcur serves as a debugging tool, able to load arbitrary Windows or X11 cursors and show the animation settings, image sizes, and hotspots.

Installation

To install the latest stable version:

pip install win2xcur

To install from GitHub:

pip install -e git+https://github.com/quantum5/win2xcur.git

Usage: win2xcur

For example, if you want to convert the sample cursor to Linux format:

mkdir output/
win2xcur sample/crosshair.cur -o output/

-s can be specified to enable shadows. Multiple cursors files can be specified on the command line. For example, to convert a directory of cursors with shadows enabled:

win2xcur input/*.{ani,cur} -o output/ 

For more information, run win2xcur --help.

Usage: x2wincur

For example, if you want to convert DMZ-White to Windows:

mkdir dmz-white/
x2wincur /usr/share/icons/DMZ-White/cursors/* -o dmz-white/

Usage: win2xcurtheme

To convert an example Windows cursor theme in example with an INF installer install.inf:

mkdir -p example-linux/cursors
win2xcurtheme example/install.inf -o example-linux/cursors

You can then create example-linux/index.theme as follows:

[Icon Theme]
Name=example
Comment=My example cursor theme.
Example=default

Usage: x2wincurtheme

To convert a whole Xcursor theme to Windows format, run x2wincurtheme on the cursors subdirectory of an Xcursor theme, then specify a name with -n. For example, for DMZ-White:

x2wincurtheme /usr/share/icons/DMZ-White/cursors -n DMZ-White -o dmz-white/

Usage: inspectcur

$ inspectcur /usr/share/icons/DMZ-White/cursors/left_ptr
Cursor file: /usr/share/icons/DMZ-White/cursors/left_ptr
1. nominal size 24, 24x24, hotspot: (7, 4)
2. nominal size 32, 32x32, hotspot: (10, 5)
3. nominal size 48, 48x48, hotspot: (14, 8)
$ inspectcur /usr/share/icons/DMZ-White/cursors/watch 
Cursor file: /usr/share/icons/DMZ-White/cursors/watch
  - Frame 0, delay 30.0 ms
    1. nominal size 24, 24x24, hotspot: (12, 12)
    2. nominal size 32, 32x32, hotspot: (18, 18)
    3. nominal size 48, 48x48, hotspot: (24, 24)
  - Frame 1, delay 30.0 ms
    1. nominal size 24, 24x24, hotspot: (12, 12)
    2. nominal size 32, 32x32, hotspot: (18, 18)
    3. nominal size 48, 48x48, hotspot: (24, 24)
...

Troubleshooting

win2xcur, x2wincur, win2xcurtheme, and x2wincurtheme should work out of the box on most systems. If you are using unconventional distros (e.g. Alpine) and are getting errors related to wand, please see the Wand documentation on installation.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

win2xcur-0.2.0.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

win2xcur-0.2.0-py3-none-any.whl (22.3 kB view details)

Uploaded Python 3

File details

Details for the file win2xcur-0.2.0.tar.gz.

File metadata

  • Download URL: win2xcur-0.2.0.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for win2xcur-0.2.0.tar.gz
Algorithm Hash digest
SHA256 5f64b7d0de7734590b1428510e1953a9cd2bd9e3d05729cd15597dc8e4932429
MD5 8689d5aa8e65130fe2399d58ceb5bf94
BLAKE2b-256 7cf6083dfba6c3a4f523df12db6595f1bf904418ac68b9dcce691dbf15603616

See more details on using hashes here.

File details

Details for the file win2xcur-0.2.0-py3-none-any.whl.

File metadata

  • Download URL: win2xcur-0.2.0-py3-none-any.whl
  • Upload date:
  • Size: 22.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.5

File hashes

Hashes for win2xcur-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 8aff7c1c1435caec7fd87b2204012ba81eeeea5b0637a8cb6298517a3d7f23b5
MD5 96c7163365579f463dab233cf6dfac69
BLAKE2b-256 c2add3358eb6f23ff479a21d1c92d6afcc147b031ec13974eec43e2f218337ec

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page