1
0
Fork 0
mirror of https://github.com/nix-community/home-manager synced 2024-12-25 03:09:47 +01:00

hyprland: improve config reload

When using the previous approach I've always gotten errors that I can't
reload config on the .lock file that exists in /tmp when you run a
standard configured hyprland.

This commit improves this by using hyprctl to find instances to reload
instead.

We can remove the HYPRLAND_INSTANCE_SIGNATURE bogus assignment once
https://github.com/hyprwm/Hyprland/issues/4088 is resolved.

Co-authored-by: Carl Hjerpe <git@hjerpe.xyz>
This commit is contained in:
Ujp8LfXBJ6wCPR 2023-12-14 08:04:57 +01:00 committed by Mikilio
parent 3d480fe009
commit 14dd7d71fb
No known key found for this signature in database
GPG key ID: 5B2F1A890CF33F3F

View file

@ -243,11 +243,11 @@ in {
+ lib.optionalString (cfg.extraConfig != "") cfg.extraConfig;
onChange = lib.mkIf (cfg.package != null) ''
( # execute in subshell so that `shopt` won't affect other scripts
shopt -s nullglob # so that nothing is done if /tmp/hypr/ does not exist or is empty
for instance in /tmp/hypr/*; do
HYPRLAND_INSTANCE_SIGNATURE=''${instance##*/} ${cfg.finalPackage}/bin/hyprctl reload config-only \
|| true # ignore dead instance(s)
( # Execute in subshell so we don't poision environment with vars
# This var must be set for hyprctl to function, but the value doesn't matter.
export HYPRLAND_INSTANCE_SIGNATURE="bogus"
for i in $(${cfg.finalPackage}/bin/hyprctl instances -j | jq ".[].instance" -r); do
HYPRLAND_INSTANCE_SIGNATURE=$i ${cfg.finalPackage}/bin/hyprctl reload config-only
done
)
'';