2023-12-01 14:12:33 -05:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
...
|
2024-03-26 15:32:48 -04:00
|
|
|
}: let
|
|
|
|
inherit (lib) mkOption types;
|
|
|
|
flakeDir = config.environment.variables.FLAKE;
|
|
|
|
cfg = config.vars;
|
|
|
|
in {
|
|
|
|
options.vars = {
|
2024-01-09 13:13:04 -05:00
|
|
|
mainUser = mkOption {
|
2023-12-01 14:12:33 -05:00
|
|
|
type = types.str;
|
2023-10-18 13:50:00 -04:00
|
|
|
description = ''
|
|
|
|
Username that was defined at the initial setup process
|
|
|
|
'';
|
2023-12-01 14:12:33 -05:00
|
|
|
};
|
|
|
|
|
|
|
|
hostName = mkOption {
|
|
|
|
type = types.str;
|
|
|
|
description = ''
|
|
|
|
Hostname that was defined at the initial setup process
|
|
|
|
'';
|
2023-10-18 13:50:00 -04:00
|
|
|
};
|
|
|
|
|
2024-01-24 18:39:18 -05:00
|
|
|
promptMainColor = mkOption {
|
|
|
|
type = types.enum ["red" "green" "blue" "purple"];
|
|
|
|
default = "purple";
|
|
|
|
};
|
|
|
|
|
|
|
|
promptColors = mkOption {
|
|
|
|
description = ''
|
|
|
|
Colors used in starship prompt
|
|
|
|
'';
|
|
|
|
|
|
|
|
default = import ./prompt-schemes.nix cfg.promptMainColor;
|
|
|
|
|
2024-03-26 15:32:48 -04:00
|
|
|
readOnly = true;
|
2024-01-24 18:39:18 -05:00
|
|
|
type = with types;
|
|
|
|
submodule {
|
|
|
|
options = {
|
|
|
|
textColor = mkOption {type = str;};
|
|
|
|
firstColor = mkOption {type = str;};
|
|
|
|
secondColor = mkOption {type = str;};
|
|
|
|
thirdColor = mkOption {type = str;};
|
|
|
|
fourthColor = mkOption {type = str;};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
2023-10-18 13:50:00 -04:00
|
|
|
configDir = mkOption {
|
2023-12-01 14:12:33 -05:00
|
|
|
type = types.str;
|
2024-03-26 13:55:55 -04:00
|
|
|
default = "${flakeDir}/devices/${cfg.hostName}/config";
|
2023-10-18 13:50:00 -04:00
|
|
|
description = ''
|
2023-10-28 18:20:09 -04:00
|
|
|
The path to where most of the devices' configs are in the .nix folder
|
2023-10-18 13:50:00 -04:00
|
|
|
'';
|
|
|
|
};
|
|
|
|
|
2023-11-25 19:24:33 -05:00
|
|
|
mainMonitor = mkOption {
|
2023-12-05 15:07:50 -05:00
|
|
|
type = types.str;
|
2023-11-25 19:24:33 -05:00
|
|
|
description = ''
|
2023-12-05 15:07:50 -05:00
|
|
|
The name of the main monitor used for Hyprland
|
|
|
|
and Regreet which also uses Hyprland
|
2023-11-25 19:24:33 -05:00
|
|
|
'';
|
2024-03-26 13:55:55 -04:00
|
|
|
# This is to allow a bash script to know whether this value exists
|
2023-11-25 19:24:33 -05:00
|
|
|
default = "null";
|
|
|
|
};
|
|
|
|
|
|
|
|
greetdDupe = mkOption {
|
2024-01-24 18:39:18 -05:00
|
|
|
type = types.bool;
|
2023-11-25 19:24:33 -05:00
|
|
|
description = ''
|
|
|
|
If we should duplicate regreet on all monitors
|
|
|
|
'';
|
|
|
|
default = true;
|
|
|
|
};
|
|
|
|
|
2023-10-18 13:50:00 -04:00
|
|
|
fontSize = mkOption {
|
|
|
|
type = types.nullOr types.float;
|
|
|
|
};
|
2023-12-08 12:50:38 -05:00
|
|
|
|
|
|
|
neovimIde = mkOption {
|
|
|
|
type = types.bool;
|
|
|
|
default = true;
|
|
|
|
};
|
2023-10-18 13:50:00 -04:00
|
|
|
};
|
2024-03-26 15:32:48 -04:00
|
|
|
|
|
|
|
config = {
|
|
|
|
environment.variables.FLAKE = lib.mkDefault "/home/${cfg.mainUser}/.nix";
|
|
|
|
};
|
2023-10-18 13:50:00 -04:00
|
|
|
}
|