Skip to content

Latest commit

 

History

19 Commits

Folders and files

Repository files navigation

X-Vector Cursor

A minimal eight-point star cursor for your desktop environment.
B/W tone contrast to stay readable on black and white pages.

Variants

X-Vector — white core, black outline. Built for dark desktops; the outline keeps it readable on light pages.

X-Vector on black X-Vector on white X-Vector on gray

X-Vector-Inverse — black core, white outline. Built for light desktops; the outline keeps it readable on dark pages.

X-Vector-Inverse on black X-Vector-Inverse on white X-Vector-Inverse on gray

X-Vector-Meta — rhombic horizontal and vertical axes, the classic X diagonals, and an eight-point centre. Built for dark desktops.

X-Vector-Meta on black X-Vector-Meta on white X-Vector-Meta on gray

X-Vector-Meta-Inverse — the Meta geometry with inverted tones. Built for light desktops.

X-Vector-Meta-Inverse on black X-Vector-Meta-Inverse on white X-Vector-Meta-Inverse on gray

X-Vector-Link — rhombic horizontal and vertical axes with the four axial separators bridged, so the arms meet the centre. Built for dark desktops.

X-Vector-Link on black X-Vector-Link on white X-Vector-Link on gray

X-Vector-Link-Inverse — the Link geometry with inverted tones. Built for light desktops.

X-Vector-Link-Inverse on black X-Vector-Link-Inverse on white X-Vector-Link-Inverse on gray

Preview tiles use a 36×36 canvas: the 28 px cursor plus 4 px breathing room on every side.

Design

  • 28 px nominal size.
  • Four main axes: 24 px at the 28 px size (2 px margin on every side for the outline).
  • Four diagonals: 14 px.
  • X-Vector: white 1 px core; black 1 px outline.
  • X-Vector-Inverse: black 1 px core; white 1 px outline.
  • X-Vector-Meta: rhombic axes; 3 px rhombus core with a 1 px outline at the 28 px size; the centre is an eight-point figure (a 3×3 square plus a 5 px rhombus). The diagonals stay the classic X.
  • X-Vector-Link: the same geometry as Meta, with the four axial separators bridged by one core pixel. The arms meet the centre and read as a compact hub; the diagonals and the outer contour stay unchanged.
  • Meta and Link geometry snap to whole pixels. A rotated 1×1 square is smaller than a pixel at 28 px and would average to gray, so the smallest crisp rhombus is used instead. No anti-aliasing is applied.
  • Linux themes carry both XCursor and hyprcursor data. The hyprcursor SVG is built from 1×1 rects on the 28 px grid with shape-rendering="crispEdges" and resize_algorithm = nearest, so Hyprland gets the same crisp pixel art without bitmap resampling.
  • No centre dot.
  • Static XCursor; no motion trail and no per-click animation (XCursor cannot receive global mouse-button events).

All six variants are two-tone cursors. On a matching background one layer disappears, while the other keeps the star visible. X-Vector, X-Vector-Meta and X-Vector-Link favor dark desktops; the three -Inverse variants favor light ones. On mid-gray both layers are visible — the unavoidable compromise of a two-tone cursor.

The text cursor is a three-stripe vertical sandwich, 8 px shorter than the nominal cursor. X-Vector uses black-white-black; the inverse uses white-black-white. Both survive dark and light input fields.

Platforms

Platform Format Guide
Linux XCursor + native Hyprland hyprcursor Linux setup
Windows .cur + PowerShell installer Windows setup
macOS Mousecape .cape macOS setup

X-Vector is native on Linux. Each theme directory contains both the XCursor tree for GTK, Qt and XWayland and a hyprcursor tree for Hyprland. Hyprland uses the SVG-based native cursor; the XCursor copy remains the fallback for other applications. Windows and macOS use converted formats generated from the same star geometry.

Release

Current version: 1.3.0 — Linux, Windows and macOS packages, including the Meta family and its Link variant. Older releases are deprecated; use the latest one. See CHANGELOG.md for details.

Install

Linux

The generated XCursor themes are committed, so Python is only needed when rebuilding.

git clone https://github.com/369arc/x-vector-cursor.git
cd x-vector-cursor
./install.sh

The script installs all six variants and applies X-Vector. To apply the Meta star:

./install.sh X-Vector-Meta

For the Link variant:

./install.sh X-Vector-Link

For the inverse variants, pass X-Vector-Inverse, X-Vector-Meta-Inverse or X-Vector-Link-Inverse.

For Hyprland, GNOME, KDE Plasma, XFCE, Cinnamon, MATE, generic X11, GTK and Flatpak instructions, see docs/linux.md.

Windows

Windows cannot load XCursor themes. Use the generated .cur package and the PowerShell installer: platforms/windows/README.md.

macOS

macOS needs a Mousecape cape: platforms/macos/README.md.

Build

Requires Python 3 and hyprcursor-util (from the hyprcursor package) for the native Hyprland output.

./build.sh

This regenerates all six XCursor themes, their native hyprcursor data, and the Windows/macOS assets in platforms/.

Uninstall

./uninstall.sh

This removes the Linux themes. See the Windows and macOS guides for their uninstall steps.

License

MIT. X-Vector is an original cursor design.

Releases

Packages

Contributors

Languages