1
0
mirror of https://github.com/nix-community/home-manager synced 2024-06-29 09:58:32 +02: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 GitHub
parent 5e9d1fe19f
commit 7a88cdedbd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

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
)
'';