diff --git a/nix/hm-module.nix b/nix/hm-module.nix index 4f1f4f6b..4109fe54 100644 --- a/nix/hm-module.nix +++ b/nix/hm-module.nix @@ -13,6 +13,7 @@ self: { in { options.wayland.windowManager.hyprland = { enable = lib.mkEnableOption "hyprland wayland compositor"; + package = lib.mkOption { type = with lib.types; nullOr package; default = defaultHyprlandPackage; @@ -27,6 +28,7 @@ in { be done if you want to use the NixOS module to install Hyprland. ''; }; + systemdIntegration = lib.mkOption { type = lib.types.bool; default = pkgs.stdenv.isLinux; @@ -43,6 +45,18 @@ in { ''; }; + + disableAutoreload = lib.mkOption { + type = lib.types.bool; + default = false; + defaultText = lib.literalExpression "false"; + example = lib.literalExpression "true"; + description = '' + Whether to disable automatically reloading Hyprland's configuration when + rebuilding the Home Manager profile. + ''; + }; + xwayland = { enable = lib.mkOption { type = lib.types.bool; @@ -70,7 +84,6 @@ in { ''; }; - extraConfig = lib.mkOption { type = lib.types.nullOr lib.types.lines; default = ""; @@ -119,7 +132,8 @@ in { if cfg.package == null then defaultHyprlandPackage else cfg.package; - in "HYPRLAND_INSTANCE_SIGNATURE=$(ls -w 1 /tmp/hypr | tail -1) ${hyprlandPackage}/bin/hyprctl reload config-only"; + in + lib.mkIf (!cfg.disableAutoreload) "HYPRLAND_INSTANCE_SIGNATURE=$(ls -w 1 /tmp/hypr | tail -1) ${hyprlandPackage}/bin/hyprctl reload config-only"; }; systemd.user.targets.hyprland-session = lib.mkIf cfg.systemdIntegration {