summaryrefslogtreecommitdiff
path: root/modules/darwin
diff options
context:
space:
mode:
Diffstat (limited to 'modules/darwin')
-rw-r--r--modules/darwin/archetypes/default.nix (renamed from modules/darwin/suites/default.nix)0
-rw-r--r--modules/darwin/archetypes/personal.nix21
-rw-r--r--modules/darwin/base.nix18
-rw-r--r--modules/darwin/base/default.nix7
-rw-r--r--modules/darwin/base/nix.nix16
-rw-r--r--modules/darwin/base/programs.nix16
-rw-r--r--modules/darwin/default.nix7
-rw-r--r--modules/darwin/desktop.nix39
-rw-r--r--modules/darwin/desktop/default.nix11
-rw-r--r--modules/darwin/desktop/fonts.nix20
-rw-r--r--modules/darwin/desktop/homebrew.nix29
-rw-r--r--modules/darwin/desktop/programs.nix20
-rw-r--r--modules/darwin/suites/personal.nix11
-rw-r--r--modules/darwin/traits/default.nix5
-rw-r--r--modules/darwin/traits/users.nix5
15 files changed, 154 insertions, 71 deletions
diff --git a/modules/darwin/suites/default.nix b/modules/darwin/archetypes/default.nix
index b4bd1b5..b4bd1b5 100644
--- a/modules/darwin/suites/default.nix
+++ b/modules/darwin/archetypes/default.nix
diff --git a/modules/darwin/archetypes/personal.nix b/modules/darwin/archetypes/personal.nix
new file mode 100644
index 0000000..34f9ec4
--- /dev/null
+++ b/modules/darwin/archetypes/personal.nix
@@ -0,0 +1,21 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.archetypes.personal;
+in {
+ options.archetypes.personal = {
+ enable = lib.mkEnableOption "personal archetype";
+ };
+
+ config = lib.mkIf cfg.enable {
+ base.enable = true;
+ desktop.enable = true;
+
+ traits = {
+ home-manager.enable = true;
+ users.seth.enable = true;
+ };
+ };
+}
diff --git a/modules/darwin/base.nix b/modules/darwin/base.nix
deleted file mode 100644
index 9fc0d86..0000000
--- a/modules/darwin/base.nix
+++ /dev/null
@@ -1,18 +0,0 @@
-{
- lib,
- inputs,
- ...
-}: {
- imports = [../shared];
-
- # not sure why i have to force this
- environment.etc."nix/inputs/nixpkgs".source = lib.mkForce inputs.nixpkgs.outPath;
-
- programs = {
- bash.enable = true;
- vim.enable = true;
- zsh.enable = true;
- };
-
- services.nix-daemon.enable = true;
-}
diff --git a/modules/darwin/base/default.nix b/modules/darwin/base/default.nix
new file mode 100644
index 0000000..5066832
--- /dev/null
+++ b/modules/darwin/base/default.nix
@@ -0,0 +1,7 @@
+{
+ imports = [
+ ../../shared
+ ./nix.nix
+ ./programs.nix
+ ];
+}
diff --git a/modules/darwin/base/nix.nix b/modules/darwin/base/nix.nix
new file mode 100644
index 0000000..dd593f9
--- /dev/null
+++ b/modules/darwin/base/nix.nix
@@ -0,0 +1,16 @@
+{
+ config,
+ lib,
+ inputs,
+ ...
+}: let
+ cfg = config.base.nixSettings;
+ enable = config.base.enable && cfg.enable;
+in {
+ config = lib.mkIf enable {
+ # not sure why i have to force this
+ environment.etc."nix/inputs/nixpkgs".source = lib.mkForce inputs.nixpkgs.outPath;
+
+ services.nix-daemon.enable = true;
+ };
+}
diff --git a/modules/darwin/base/programs.nix b/modules/darwin/base/programs.nix
new file mode 100644
index 0000000..bb6d4f5
--- /dev/null
+++ b/modules/darwin/base/programs.nix
@@ -0,0 +1,16 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.base.defaultPrograms;
+ enable = config.base.enable && cfg.enable;
+in {
+ config = lib.mkIf enable {
+ programs = {
+ bash.enable = true;
+ vim.enable = true;
+ zsh.enable = true;
+ };
+ };
+}
diff --git a/modules/darwin/default.nix b/modules/darwin/default.nix
index 4dfa561..1b6cd03 100644
--- a/modules/darwin/default.nix
+++ b/modules/darwin/default.nix
@@ -1,7 +1,8 @@
{
flake.darwinModules = {
- default = ./base.nix;
- desktop = ./desktop.nix;
- suites = ./suites;
+ default = ./base;
+ archetypes = ./archetypes;
+ desktop = ./desktop;
+ traits = ./traits;
};
}
diff --git a/modules/darwin/desktop.nix b/modules/darwin/desktop.nix
deleted file mode 100644
index c6eb106..0000000
--- a/modules/darwin/desktop.nix
+++ /dev/null
@@ -1,39 +0,0 @@
-{
- config,
- lib,
- pkgs,
- ...
-}: let
- cfg = config.desktop;
-in {
- options.desktop.enable = lib.mkEnableOption "base desktop settings";
-
- config = lib.mkIf cfg.enable {
- fonts.fonts = with pkgs;
- lib.mkDefault [
- (nerdfonts.override {fonts = ["FiraCode"];})
- ];
-
- homebrew = {
- enable = lib.mkDefault true;
-
- onActivation = lib.mkDefault {
- autoUpdate = true;
- cleanup = "zap";
- upgrade = true;
- };
-
- caskArgs = {
- no_quarantine = true;
- require_sha = false;
- };
-
- casks = [
- "chromium"
- "iterm2"
- ];
- };
-
- programs.gnupg.agent.enable = lib.mkDefault true;
- };
-}
diff --git a/modules/darwin/desktop/default.nix b/modules/darwin/desktop/default.nix
new file mode 100644
index 0000000..cdfb246
--- /dev/null
+++ b/modules/darwin/desktop/default.nix
@@ -0,0 +1,11 @@
+{lib, ...}: {
+ options.desktop = {
+ enable = lib.mkEnableOption "base desktop settings";
+ };
+
+ imports = [
+ ./fonts.nix
+ ./homebrew.nix
+ ./programs.nix
+ ];
+}
diff --git a/modules/darwin/desktop/fonts.nix b/modules/darwin/desktop/fonts.nix
new file mode 100644
index 0000000..39d8531
--- /dev/null
+++ b/modules/darwin/desktop/fonts.nix
@@ -0,0 +1,20 @@
+{
+ config,
+ lib,
+ pkgs,
+ ...
+}: let
+ cfg = config.desktop.fonts;
+ enable = config.desktop.enable && cfg.enable;
+in {
+ options.desktop.fonts = {
+ enable = lib.mkEnableOption "desktop fonts" // {default = true;};
+ };
+
+ config = lib.mkIf enable {
+ fonts.fonts = with pkgs;
+ lib.mkDefault [
+ (nerdfonts.override {fonts = ["FiraCode"];})
+ ];
+ };
+}
diff --git a/modules/darwin/desktop/homebrew.nix b/modules/darwin/desktop/homebrew.nix
new file mode 100644
index 0000000..1015ff9
--- /dev/null
+++ b/modules/darwin/desktop/homebrew.nix
@@ -0,0 +1,29 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.desktop.homebrew;
+ enable = config.desktop.enable && cfg.enable;
+in {
+ options.desktop.homebrew = {
+ enable = lib.mkEnableOption "Homebrew integration" // {default = true;};
+ };
+
+ config = lib.mkIf enable {
+ homebrew = {
+ enable = true;
+
+ onActivation = lib.mkDefault {
+ autoUpdate = true;
+ cleanup = "zap";
+ upgrade = true;
+ };
+
+ caskArgs = {
+ no_quarantine = true;
+ require_sha = false;
+ };
+ };
+ };
+}
diff --git a/modules/darwin/desktop/programs.nix b/modules/darwin/desktop/programs.nix
new file mode 100644
index 0000000..b681c59
--- /dev/null
+++ b/modules/darwin/desktop/programs.nix
@@ -0,0 +1,20 @@
+{
+ config,
+ lib,
+ ...
+}: let
+ cfg = config.desktop.defaultPrograms;
+ enable = config.desktop.enable && cfg.enable;
+in {
+ options.desktop.defaultPrograms = {
+ enable = lib.mkEnableOption "default desktop programs" // {default = true;};
+ };
+
+ config = lib.mkIf enable {
+ homebrew.casks = [
+ "chromium"
+ "iterm2"
+ ];
+ programs.gnupg.agent.enable = lib.mkDefault true;
+ };
+}
diff --git a/modules/darwin/suites/personal.nix b/modules/darwin/suites/personal.nix
deleted file mode 100644
index 6f37936..0000000
--- a/modules/darwin/suites/personal.nix
+++ /dev/null
@@ -1,11 +0,0 @@
-{
- config,
- lib,
- ...
-}: let
- cfg = config.suites.personal;
-in {
- config = lib.mkIf cfg.enable {
- desktop.enable = true;
- };
-}
diff --git a/modules/darwin/traits/default.nix b/modules/darwin/traits/default.nix
new file mode 100644
index 0000000..e6e5275
--- /dev/null
+++ b/modules/darwin/traits/default.nix
@@ -0,0 +1,5 @@
+{
+ imports = [
+ ./users.nix
+ ];
+}
diff --git a/modules/darwin/traits/users.nix b/modules/darwin/traits/users.nix
new file mode 100644
index 0000000..b0a2078
--- /dev/null
+++ b/modules/darwin/traits/users.nix
@@ -0,0 +1,5 @@
+{
+ imports = [
+ ../../../users/seth/darwin.nix
+ ];
+}