mirror of
https://github.com/hyprwm/hyprcursor.git
synced 2024-12-22 02:09:48 +01:00
A read-only mirror of https://github.com/hyprwm/hyprcursor
c18572a92e
hyprcursor-util/src/main.cpp:260:19: error: implicit instantiation of undefined template 'std::basic_ofstream<char>' 260 | std::ofstream manifest(out + "/manifest.hl", std::ios::trunc); | ^ /usr/include/c++/v1/__fwd/fstream.h:26:28: note: template is declared here 26 | class _LIBCPP_TEMPLATE_VIS basic_ofstream; | ^ hyprcursor-util/src/main.cpp:292:41: error: implicit instantiation of undefined template 'std::basic_ifstream<char>' 292 | std::ifstream xconfig("/tmp/hyprcursor-util/" + xcursor.path().stem().string() + ".conf"); | ^ /usr/include/c++/v1/__fwd/fstream.h:24:28: note: template is declared here 24 | class _LIBCPP_TEMPLATE_VIS basic_ifstream; | ^ hyprcursor-util/src/main.cpp:370:23: error: implicit instantiation of undefined template 'std::basic_ofstream<char>' 370 | std::ofstream meta(CURSORDIR + "/meta.hl", std::ios::trunc); | ^ /usr/include/c++/v1/__fwd/fstream.h:26:28: note: template is declared here 26 | class _LIBCPP_TEMPLATE_VIS basic_ofstream; | ^ |
||
---|---|---|
.github/workflows | ||
docs | ||
hyprcursor-util | ||
include/hyprcursor | ||
libhyprcursor | ||
nix | ||
tests | ||
.clang-format | ||
.gitignore | ||
CMakeLists.txt | ||
flake.lock | ||
flake.nix | ||
hyprcursor.pc.in | ||
LICENSE | ||
README.md | ||
VERSION |
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