217 Commits

Author SHA1 Message Date
2953d963be config: bring back desc: for description matching
fixes #318
2026-01-08 22:16:54 +01:00
feafd06287 config: support * as wildcard monitor for default wallpapers (#315)
Add isWildcard() helper to treat both empty string and "*" as wildcards
when matching wallpaper settings to monitors.

This works around a limitation in hyprlang where listKeysForSpecialCategory()
skips entries with empty string keys (due to isStatic check in retrieveKeysForCat),
causing configs like:

    wallpaper {
        monitor =
        path = /path/to/image.png
    }

to be silently ignored. Users should now use "monitor = *" instead.
2026-01-07 16:18:40 +01:00
f7921cdf3a core: add a version argument 2026-01-04 13:50:10 +01:00
8e649e8901 version: bump to 0.8.1 v0.8.1 2026-01-02 22:17:20 +01:00
1f8d1fc0ba config: re-add source= include directive support (#303)
* feat(config): re-add source= include directive support

Re-implements the source= directive for including external config files,
which was originally added in PR #267 for v0.7.6 but lost during the
v0.8.0 hyprtoolkit rewrite.

Features:
- Include external config files using source=/path/to/file.conf
- Glob pattern support (e.g., source=~/.config/hypr/hyprpaper.d/*.conf)
- Tilde expansion for home directory paths
- Relative paths resolved relative to the current config file
- Proper error handling and logging for missing/invalid files

This restores parity with Hyprland's source= behavior, enabling modular
configuration management that was lost in the v0.8.0 transition.

Fixes: hyprwm/hyprpaper#302

* feat(config): add debug logging for source= directive

Adds LOG_DEBUG calls to help troubleshoot config include issues:
- Log when source= directive is encountered with resolved path
- Log number of files matched by glob patterns
- Log each file before parsing

* refactor(config): address PR review feedback & rebase against main

- Use Hyprutils::String::trim() instead of manual whitespace trimming
- Use Hyprutils::Utils::CScopeGuard for glob cleanup instead of manual
  globfree() calls
- Remove braces from short single-line if statements per style guide
- Remove duplicate absolutePath(), extend getPath() with optional
  basePath parameter instead

For source= directives, relative paths need to resolve relative to the
config file's directory, not CWD. So `source = ./themes/dark.conf` in
`~/.config/hypr/hyprpaper.conf` resolves to
`~/.config/hypr/themes/dark.conf`, not `$CWD/themes/dark.conf`.

* fix(config): address PR review feedback

- Use std::error_code for filesystem calls to avoid exceptions
- Move getCurrentConfigPath() body from header to cpp file
- Apply clang-format
2026-01-02 22:16:43 +01:00
9271162ef0 ui: drop toolkit's log level by default via a log conn 2026-01-02 18:25:33 +01:00
01e9c1f82b config: refuse to start with a bad config 2026-01-02 18:21:20 +01:00
e4413583bc ui: add support for dynamic wallpapers (#294)
- 'path' can contain multiple images comma separated (including
  directories)
- 'timeout' is used to define how long the wallpaper should be shown
  in seconds.
  Default: 30s
2026-01-01 15:00:59 +01:00
c6657e7793 version: bump to 0.8.0 v0.8.0 2025-12-29 17:00:47 +01:00
4d775beee5 flake.lock: Update
Flake lock file updates:

• Updated input 'aquamarine':
    'github:hyprwm/aquamarine/a43bedcceced5c21ad36578ed823e6099af78214?narHash=sha256-AjcMlM3UoavFoLzr0YrcvsIxALShjyvwe%2Bo7ikibpCM%3D' (2025-12-02)
  → 'github:hyprwm/aquamarine/d83c97f8f5c0aae553c1489c7d9eff3eadcadace?narHash=sha256-%2Bhn8v9jkkLP9m%2Bo0Nm5SiEq10W0iWDSotH2XfjU45fA%3D' (2025-12-16)
• Updated input 'hyprtoolkit':
    'github:hyprwm/hyprtoolkit/a07c89acce89709bed02160136a612e70021cd91?narHash=sha256-IAGHOvvuCnJ6zWB3efxboJ/HUfSaXJ6pzrMwOMS2lJY%3D' (2025-12-03)
  → 'github:hyprwm/hyprtoolkit/0a5d2c25d018112434e802212a1ad57ca1e24819?narHash=sha256-C0tMHhVMEN2XlgMVeuJSbY64h9UhR2AKk5Hxxlxx6cA%3D' (2025-12-17)
• Updated input 'hyprutils':
    'github:hyprwm/hyprutils/2f2413801beee37303913fc3c964bbe92252a963?narHash=sha256-vSyiKCzSY48kA3v39GFu6qgRfigjKCU/9k1KTK475gg%3D' (2025-12-02)
  → 'github:hyprwm/hyprutils/1c527b30feb7bed959ac07ae034a6105e6b65fd3?narHash=sha256-Ji2ty5d6yuToq59SZfpG0T5B5SkF3UiHoDl8VMyQp14%3D' (2025-12-17)
• Updated input 'hyprwire':
    'github:hyprwm/hyprwire/3f1997d6aeced318fb141810fded2255da811293?narHash=sha256-9UcCdwe7vPgEcJJ64JseBQL0ZJZoxp/2iFuvfRI%2B9zk%3D' (2025-12-03)
  → 'github:hyprwm/hyprwire/b8ca85082fd5c3cdd3d11027492cd0332b517078?narHash=sha256-jTJQy1m2XkcZJABajYVP249fCWPl3GbLe3Z8KiQmZqg%3D' (2025-12-14)
• Updated input 'nixpkgs':
    'github:NixOS/nixpkgs/2d293cbfa5a793b4c50d17c05ef9e385b90edf6c?narHash=sha256-pp3uT4hHijIC8JUK5MEqeAWmParJrgBVzHLNfJDZxg4%3D' (2025-11-30)
  → 'github:NixOS/nixpkgs/1306659b587dc277866c7b69eb97e5f07864d8c4?narHash=sha256-KJ2wa/BLSrTqDjbfyNx70ov/HdgNBCBBSQP3BIzKnv4%3D' (2025-12-15)
2025-12-18 12:36:36 +02:00
b431a94cfb config: fix default value for fit_mode to match wiki 2025-12-17 15:14:43 +02:00
07eb33e65d ui: add namespace 2025-12-05 18:57:16 +00:00
1d8df14fce core: migrate to hyprtoolkit (#288)
---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2025-12-04 17:58:54 +00:00
1733e0025b version: bump to 0.7.6 v0.7.6 2025-10-10 19:20:48 +01:00
bcb1ffa322 cmake: Strip leading whitespace from git commit message (#271) 2025-08-06 14:00:42 +02:00
86f6217029 cmake: Escape quotes in commit names (#269) 2025-07-27 23:05:07 +02:00
6502c87e9c config: Added "source=" capability to Hyprpaper .conf file (#267) 2025-07-27 18:32:49 +02:00
a88e0e066e flake.lock: update 2025-06-22 22:46:17 +03:00
7d63e15c09 CI/Nix: add cache-nix-action
Use nixbuild/nix-quick-install-action which pairs well with
nix-community/cache-nix-action.

Should help with build times by reducing the number of packages needing
to be re-downloaded on each run.

Parameters are taken from https://github.com/nix-community/cache-nix-action
and may be tweaked later.
2025-06-20 01:25:44 +03:00
81dc1fe4f0 config: Return empty string instead of throwing if unable to find default config (#253) 2025-06-10 08:19:18 +01:00
79e0992927 nix: update flake.lock (#252)
bumps hyprgraphics and nixpkgs
2025-06-08 15:58:36 +01:00
c6981ac490 nix: use gcc15
also updated dependencies
2025-06-06 01:26:58 +03:00
99213a1854 flake.lock: update 2025-05-09 00:14:03 +03:00
753ffa7fe9 version: bump to 0.7.5 v0.7.5 2025-05-06 20:18:13 +01:00
05337a4595 CMake: require wayland-protocols>=1.35 (#243)
tablet-v2 was moved to stable in 1.35. Hyprpaper will fail to build if a
earlier version is used.
2025-03-20 16:52:40 +02:00
6f4ba43163 CMake: move systemd service install (#240) 2025-02-28 19:56:02 +02:00
7e18ebc843 core: add mallopt to modify trim threshold 2025-02-09 17:40:50 +00:00
f827dc3197 flake.lock: update 2025-01-29 22:41:18 +02:00
7efb4a0346 version: bump to 0.7.4 v0.7.4 2025-01-23 15:12:54 +00:00
4d2e2b7f07 flake.lock: update 2025-01-23 14:28:44 +02:00
251e8e2593 README: Remove unused deps (#231)
Seems unused after the move to hyprgraphics
2025-01-06 16:33:44 +00:00
505e447b6c core: update for hw-s 0.4.4 2024-12-29 18:35:40 +01:00
2f305d5f48 flake.lock: update 2024-12-23 00:24:58 +02:00
f15e678507 core: conform to output transforms (#224) 2024-12-19 20:58:28 +01:00
eb9db3b815 version: bump to 0.7.3 v0.7.3 2024-12-15 21:58:46 +00:00
0e38c982d7 core: fixup execAndGet not running correctly 2024-12-15 21:58:26 +00:00
4d5b68b7ad core: avoid the use of pop_back on empty string
fixes #222
2024-12-15 21:58:11 +00:00
b17d32fdd2 logging: fix some missed logs 2024-12-15 21:55:41 +00:00
5b763f1618 version: bump to 0.7.2 v0.7.2 2024-12-14 15:10:30 +00:00
85e850bca3 Core: modernize internals (#219)
* flake.nix: use gcc14Stdenv, update

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2024-12-14 16:09:40 +01:00
a3ceb20095 README: add hyprgraphics dep 2024-11-28 15:58:20 +00:00
b3ee62fe4a Core: Move to hyprgraphics for image parsing (#216)
* move to hyprgraphics

* Nix: add hyprgraphics

---------

Co-authored-by: Mihai Fufezan <mihai@fufexan.net>
2024-11-28 15:56:01 +00:00
11d91446f1 cmake: drop # from commit messages 2024-11-28 15:40:37 +00:00
0b5e350011 core: use C++ streams to load Jpeg and Webp (#214) 2024-11-22 13:18:04 +00:00
dbea6cdf0c core: Add support for JPEG-XL (#212) 2024-11-22 13:17:50 +00:00
3f8cc92109 Add systemd service (#208) 2024-10-26 00:14:47 +03:00
e6e5c471e2 core: add tile as an image mode (#207)
---------

Co-authored-by: gkdwoe <gkdwoe>
2024-10-25 12:29:16 +01:00
1c18ad6503 flake.lock: update 2024-09-01 17:20:38 +03:00
36e83af943 nix: add pkg-config to depsBuildBuild 2024-09-01 17:20:38 +03:00
6c6e54faa8 CMakeLists: look for wayland.xml protocol in wayland-scanner pkgdata 2024-09-01 17:20:38 +03:00