diff --git a/common/vars/default.nix b/common/vars/default.nix index e9caa3f..91bce09 100644 --- a/common/vars/default.nix +++ b/common/vars/default.nix @@ -3,7 +3,7 @@ lib, ... }: let - inherit (lib) mkOption types; + inherit (lib) mkDefault mkOption types; flakeDir = config.environment.variables.FLAKE; cfg = config.vars; in { @@ -23,7 +23,7 @@ in { }; promptMainColor = mkOption { - type = types.enum ["red" "green" "blue" "purple" "orange" "yellow" "cyan" "pink"]; + type = types.enum (import ./prompt-schemes.nix {}); default = "purple"; }; @@ -32,7 +32,7 @@ in { Colors used in starship prompt ''; - default = import ./prompt-schemes.nix cfg.promptMainColor; + default = import ./prompt-schemes.nix {color = cfg.promptMainColor;}; readOnly = true; type = types.submodule { @@ -63,6 +63,6 @@ in { }; config = { - environment.variables.FLAKE = lib.mkDefault "/home/${cfg.mainUser}/.nix"; + environment.variables.FLAKE = mkDefault "/home/${cfg.mainUser}/.nix"; }; } diff --git a/common/vars/prompt-schemes.nix b/common/vars/prompt-schemes.nix index a8d6938..9855368 100644 --- a/common/vars/prompt-schemes.nix +++ b/common/vars/prompt-schemes.nix @@ -1,4 +1,6 @@ -color: let +{color ? null}: let + inherit (builtins) attrNames removeAttrs; + schemes = { "purple" = { textColor = "#090c0c"; @@ -74,4 +76,6 @@ color: let }; }; in - schemes.${color} + if ! isNull color + then schemes.${color} + else attrNames (removeAttrs schemes ["color"])