Commit graph

158 commits

Author SHA1 Message Date
d8a768b756
nix: separate overlay with deps 2026-03-02 15:51:56 +02:00
ItsOhen
0b21922491
parser: fix removed CValues not fully removed. (#90)
Leading to dangling dtor pointers when doing CConfigCustomValueTypes.
Also shortstring cmp problem with handlers fixed.
2026-02-23 17:02:52 +00:00
d4037379e6
core: reset special cat after parsing
ref https://github.com/hyprwm/Hyprland/discussions/12917
2026-01-09 19:33:27 +01:00
3a1c1b25b0
version: bump to 0.6.8 2026-01-05 16:56:10 +01:00
John Mylchreest
0567ba7607
core/parser: correctly match keyed special categories by value being set (#89)
When parsing multiple special category blocks with different key values,
the second block would incorrectly overwrite the first instead of creating
a separate category entry.

Root cause:
When parsing a block like:

    wallpaper {
        monitor =
        path = /path/image.png
    }
    wallpaper {
        monitor = DP-1
        path = /path/image.png
    }

1. After closing the first block, `currentSpecialKey` resets to ""
2. When parsing `monitor = DP-1` in the second block, the code looks
   for an existing category where key value == currentSpecialKey ("")
3. The first category's key value IS "", so it matches incorrectly
4. The second block overwrites the first, leaving only one category

The fix:
When looking for an existing category to reuse, check what field we're
parsing:
- If parsing the KEY field itself, match by the VALUE being set
- If parsing other fields, match by currentSpecialKey (existing behavior)

This ensures `monitor = DP-1` looks for a category with `monitor == "DP-1"`,
not `monitor == ""`, allowing empty string keys to work correctly alongside
non-empty keys.

This bug affects any hyprlang consumer using keyed special categories where
empty string is a valid key value (e.g., hyprpaper's wallpaper category
with `monitor =` for default/wildcard).
2026-01-04 13:38:00 +01:00
0d00dc1189
version: bump to 0.6.7 2025-12-01 18:07:10 +00:00
EvilLary
eb5be96aa0
core: fix crash with same name special category and keyword (#87)
---------

Co-authored-by: Vaxry <vaxry@vaxry.net>
2025-11-28 16:52:41 +00:00
3d66ec7c29
core: add changeRootPath for CConfig 2025-11-27 15:46:35 +00:00
a318deec0c
core: fix dynamic env changes 2025-11-22 13:54:21 +00:00
3d3057837c
version: bump to 0.6.6 2025-11-17 18:36:20 +00:00
deea98d5b6
config/parser: don't return found on dontErrorOnMissing in special
fixes https://github.com/hyprwm/hyprland-plugins/issues/539
2025-11-16 00:51:32 +00:00
8b3da759ec
version: bump to 0.6.5 2025-11-14 19:34:08 +00:00
b0d7b375a9
parser: fix lingering currentSpecialCat after dynamic calls 2025-11-13 17:42:52 +00:00
4302343ce7
ci/arch: add gtest 2025-11-13 15:59:41 +00:00
771e915f59
config/parser: fix invalid ptr after move 2025-11-12 13:51:28 +00:00
995db114b8
config: try variables before handlers if possible 2025-11-11 21:36:52 +00:00
Maximilian Seidler
4dafa28d4f
core: support nesting with special categories and fix explicit key + nested (#82) 2025-09-27 01:05:02 +02:00
3d63fb4a42
config: allow nesting if statements 2025-09-02 12:51:41 +02:00
crispy-caesus
23f0debd20
README: update docs link (#81) 2025-07-27 16:28:12 +03:00
12cb0e19e3
tests: minor typo fix 2025-07-25 21:26:39 +02:00
13865735fe
core: fix negating of ifs 2025-07-25 21:24:08 +02:00
235ce61cba
core: add support for conditional statements
Adds support for simple if / endif statements operating on variables

Fixes #52
2025-07-25 21:20:34 +02:00
cee01452bc
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:13:18 +03:00
Friday
1bfb84f54d
nix: use gcc15 (#79)
also updated dependencies
2025-06-05 18:51:22 +01:00
Jonathan Steininger
163c83b3db
parser: Add ability to escape {{EXPRESSION}} syntax from #75 (#76) 2025-05-17 14:29:35 +02:00
557241780c
version: bump to 0.6.3 2025-05-07 23:03:32 +01:00
a59e86a3da
parser: change expression syntax to avoid bash clashes
changes from $() to {{}} to avoid clashing with bash syntax
2025-05-07 23:03:03 +01:00
a15e7ba78a
version: bump to 0.6.2 2025-05-07 19:46:08 +01:00
e863ebcee9
flake.lock: update 2025-05-07 20:11:54 +03:00
6726cfd54b
parser: add support for basic arithmetic
Adds support for  expressions that take left and right hand side and an operation (+-*/) -> e.g.

fixes #67
2025-05-07 17:50:22 +01:00
Honkazel
397600c42b
clang-tidy: fix some errors (#70) 2025-04-22 23:23:39 +02:00
f1000c54d2 version: bump to 0.6.1 2025-04-12 15:35:25 +01:00
Lukas
72df3861f1
README: fix typo (#65) 2025-03-05 18:18:47 +02:00
1d7d96a278 docs: fix incorrect doc about getValue type 2025-02-25 17:18:11 +00:00
a7334904d5
CI: remove deprecated magic-nix-cache-action 2025-02-08 23:08:34 +02:00
Honkazel
7a59f2de3f
core: clang-tidy and comp fixes (#63) 2025-02-08 01:44:54 +01:00
f41271d35c
flake.lock: update 2025-01-23 14:16:46 +02:00
Joshua Baker
55608efdaa
core: add multiline support (#58)
Adds support for multi-line commands with a backslash
2024-12-28 13:36:59 +00:00
0404833ea1
flake.lock: update 2024-12-23 00:24:19 +02:00
16e59c1eb1
flake.lock: update 2024-12-16 17:57:08 +02:00
9441266c89 cmakelists: remove clang-specific config
closes #59
2024-12-14 23:34:04 +00:00
f7acd5dabb
flake.nix: use gcc14Stdenv, update 2024-12-14 13:01:16 +02:00
1b0c595731 version: bump to 0.6.0 2024-12-13 20:48:31 +00:00
058fcf84c9 API: add a templated config value wrapper
This is basically a copy of the Hyprland config wrapper. It's much more straightforward to use, and much harder to fuck up.
2024-12-13 20:48:06 +00:00
f054f2e44d version: bump to 0.5.3 2024-10-05 23:50:12 +01:00
Petr Kobalicek
dfeb5811dd
CMake: Use library aliases instead of library names (#55)
This changeset makes it possible to compile hyprlang with a custom
install prefix, which was not honored because of using "hyprutils" as
a raw dependency, which means that CMake was adding "-lhyprutils" flag
to the linker, but the linker didn't know the path in case a custom
install prefix was used to compile hyprutils.
2024-09-10 20:51:00 +01:00
Eduard Tykhoniuk
5b175c9704
config: Return an error on invalid hex values. (#54)
* config.cpp: fix parsing invalid hex
Instead of crashing on an invalid hex, return an error.

* config: return an error on an invalid hex value

* cleanup

* style: add references for catching exceptions

* style: ignore `std::out_of_range`
2024-09-02 00:45:17 +02:00
Eduard Tykhoniuk
c12ab785ce
config: fix parsing invalid hex (#53)
Instead of crashing on an invalid hex, return an error.
2024-09-01 12:57:32 +02:00
16e5c9465f core: don't populate linesContainingVar on dynamic requests 2024-08-20 19:16:02 +02:00
adbefbf496
flake.lock: update 2024-07-18 20:39:21 +03:00