A read-only mirror of https://github.com/hyprwm/hyprcursor
Find a file
Jan Beich 34efe230c2
core: add missing header for libc++ after 5a95d8512b (#66)
libhyprcursor/hyprcursor.cpp:23:27: error: implicit instantiation of undefined template 'std::basic_stringstream<char>'
   23 |         std::stringstream envXdgStream(envXdgData);
      |                           ^
/usr/include/c++/v1/__fwd/sstream.h:29:28: note: template is declared here
   29 | class _LIBCPP_TEMPLATE_VIS basic_stringstream;
      |                            ^
2024-10-01 10:08:26 +01:00
.github/workflows ci: fix missing dep 2024-06-14 14:31:45 +02:00
docs docs: Correction in hotspot coordinates documentation (#63) 2024-09-28 15:13:23 +01:00
hyprcursor-util zip: fix build for some distros (#37) (#38) 2024-04-20 12:23:33 +01:00
include/hyprcursor core/API: add option to not use default fallbacks (env and first available) (#43) 2024-05-21 23:45:11 +02:00
libhyprcursor core: add missing header for libc++ after 5a95d8512b (#66) 2024-10-01 10:08:26 +01:00
nix nix: pkg: add missing dep xcur2png 2024-08-02 21:24:31 +03:00
tests lib: Added a raw data API (#23) 2024-04-06 21:16:55 +01:00
.clang-format Initial commit: very basics 2024-03-07 03:19:38 +00:00
.gitignore gitignore: add .cache 2024-09-30 18:29:41 +01:00
CMakeLists.txt CMake: fmt 2024-07-18 22:18:46 +03:00
flake.lock flake.lock: update 2024-07-18 22:19:31 +03:00
flake.nix fix missing follow in flake.nix 2024-04-05 11:00:30 +13:00
hyprcursor.pc.in Initial commit: very basics 2024-03-07 03:19:38 +00:00
LICENSE Initial commit 2024-03-06 18:57:56 +00:00
README.md README: add standards link 2024-06-15 13:24:35 +02:00
VERSION version: bump to 0.1.10 2024-09-30 22:25:02 +01:00

hyprcursor

The hyprland cursor format, library and utilities.

Why?

XCursor sucks, and we still use it today.

  • Scaling of XCursors is horrible
  • XCursor does not support vector cursors
  • XCursor is ridiculously space-inefficient

Hyprcursor fixes all three. It's an efficient cursor theme format that doesn't suck as much.

Notable advantages over XCursor

  • Automatic scaling according to a configurable, per-cursor method.
  • Support for SVG cursors
  • Way more space-efficient. As an example, Bibata-XCursor is 44.1MB, while it's 6.6MB in hyprcursor.

Documentation

See the wiki here check out docs/ and standards

Tools

hyprcursor-util

Utility for creating hyprcursor themes. See its readme in hyprcursor-util/

libhyprcursor

The library to use for implementing hyprcursors in your compositor or app.

It provides C and C++ bindings.

Examples

For both C and C++, see tests/.

TODO

Library:

  • Support animated cursors
  • Support SVG cursors

Util:

  • Support compiling a theme with X
  • Support decompiling animated cursors

Building

Deps:

  • hyprlang >= 0.4.2
  • cairo
  • libzip
  • librsvg
  • tomlplusplus

Build

cmake --no-warn-unused-cli -DCMAKE_BUILD_TYPE:STRING=Release -DCMAKE_INSTALL_PREFIX:PATH=/usr -S . -B ./build
cmake --build ./build --config Release --target all -j`nproc 2>/dev/null || getconf _NPROCESSORS_CONF`

Install with:

sudo cmake --install build