hyprcursor/README.md

68 lines
1.4 KiB
Markdown
Raw Normal View History

2024-03-07 15:59:04 +01:00
## hyprcursor
2024-03-06 19:57:56 +01:00
The hyprland cursor format, library and utilities.
2024-03-07 15:59:04 +01:00
Please note it's in very early development.
## 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.
2024-03-07 21:56:13 +01:00
- Support for SVG cursors
2024-03-07 15:59:04 +01:00
- Way more space-efficient. As an example, Bibata-XCursor is 44.1MB, while it's 6.6MB in hyprcursor.
## 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.
2024-03-07 19:11:32 +01:00
### Examples
For both C and C++, see `tests/`.
2024-03-07 19:32:51 +01:00
## Docs
See `docs/`.
2024-03-07 15:59:04 +01:00
## TODO
Library:
2024-03-07 17:21:04 +01:00
- [x] Support animated cursors
2024-03-07 21:46:36 +01:00
- [x] Support SVG cursors
2024-03-07 15:59:04 +01:00
Util:
- [ ] Support compiling a theme with X
2024-03-07 18:52:38 +01:00
- [x] Support decompiling animated cursors
2024-03-07 19:03:42 +01:00
## Building
### Deps:
- hyprlang >= 0.4.2
- cairo
- libzip
2024-03-07 21:46:36 +01:00
- librsvg
2024-03-07 19:03:42 +01:00
### Build
```sh
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:
```sh
sudo cmake --install build
```