diff --git a/modules/home-environment.nix b/modules/home-environment.nix index 45f8135f..6a64e0da 100644 --- a/modules/home-environment.nix +++ b/modules/home-environment.nix @@ -124,18 +124,21 @@ in ''; }; - mode = mkOption { - type = types.str; - default = "444"; - description = "The permissions to apply to the file."; + executable = mkOption { + type = types.bool; + default = false; + description = "Set file as executable."; }; }; config = { target = mkDefault name; - source = mkIf (config.text != null) ( - mkDefault (pkgs.writeText "home-file" config.text) - ); + source = mkIf (config.text != null) + (mkDefault (pkgs.writeTextFile { + name = "home-file"; + text = config.text; + executable = config.executable; + })); }; }) ); @@ -419,7 +422,7 @@ in mkdir -pv "$(dirname "$out/${v.target}")" ln -sv "${v.source}" "$out/${v.target}" else - install -D -m${v.mode} "${v.source}" "$out/${v.target}" + install -D -m${if v.executable then "+x" else "-x"} "${v.source}" "$out/${v.target}" fi '' ) cfg.file diff --git a/modules/xsession.nix b/modules/xsession.nix index 0ec95ffe..1c166d8e 100644 --- a/modules/xsession.nix +++ b/modules/xsession.nix @@ -72,7 +72,7 @@ in }; home.file.".xsession" = { - mode = "555"; + executable = true; text = '' if [[ -e "$HOME/.profile" ]]; then . "$HOME/.profile"