summaryrefslogtreecommitdiff
path: root/modules/shared/traits
diff options
context:
space:
mode:
authorseth <[email protected]>2024-02-07 18:03:24 -0500
committerseth <[email protected]>2024-02-07 18:27:45 -0500
commitcffffeb678e9a1078eeba0f19c9607cda9f31bed (patch)
tree8b8f68aa357becad06845f15b7e528474041371c /modules/shared/traits
parent48712d44fde91d2685089cca7f9d88295fd59817 (diff)
modules/nixos+darwin: move to traits + archetypes model
Diffstat (limited to 'modules/shared/traits')
-rw-r--r--modules/shared/traits/default.nix6
-rw-r--r--modules/shared/traits/home-manager.nix21
-rw-r--r--modules/shared/traits/locale.nix19
3 files changed, 46 insertions, 0 deletions
diff --git a/modules/shared/traits/default.nix b/modules/shared/traits/default.nix
new file mode 100644
index 0000000..fa5ba25
--- /dev/null
+++ b/modules/shared/traits/default.nix
@@ -0,0 +1,6 @@
+{
+ imports = [
+ ./locale.nix
+ ./home-manager.nix
+ ];
+}
diff --git a/modules/shared/traits/home-manager.nix b/modules/shared/traits/home-manager.nix
new file mode 100644
index 0000000..732f4f9
--- /dev/null
+++ b/modules/shared/traits/home-manager.nix
@@ -0,0 +1,21 @@
+{
+ config,
+ lib,
+ inputs,
+ inputs',
+ ...
+}: let
+ cfg = config.traits.home-manager;
+in {
+ options.traits.home-manager = {
+ enable = lib.mkEnableOption "home-manager configuration";
+ };
+
+ config = lib.mkIf cfg.enable {
+ home-manager = {
+ useGlobalPkgs = true;
+ useUserPackages = true;
+ extraSpecialArgs = {inherit inputs inputs';};
+ };
+ };
+}
diff --git a/modules/shared/traits/locale.nix b/modules/shared/traits/locale.nix
new file mode 100644
index 0000000..9c07c14
--- /dev/null
+++ b/modules/shared/traits/locale.nix
@@ -0,0 +1,19 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.traits.locale;
+in {
+ options.traits.locale = {
+ US-east = {
+ enable = lib.mkEnableOption "eastern United States locale";
+ };
+ };
+
+ config = lib.mkMerge [
+ (lib.mkIf cfg.US-east.enable {
+ time.timeZone = "America/New_York";
+ })
+ ];
+}