diff --git a/darwin/default.nix b/darwin/default.nix index ca11172..ff8066e 100644 --- a/darwin/default.nix +++ b/darwin/default.nix @@ -15,33 +15,15 @@ let inherit system; specialArgs = { inherit nixpkgs; }; modules = [ - { nixpkgs.overlays = overlays; } - hm.darwinModules.home-manager { - system.stateVersion = 4; - home-manager = { - useGlobalPkgs = true; - users."gregory.hellings" = import ../home/home.nix; - extraSpecialArgs = { - inherit inputs; - gnome = false; - gui = false; - home = "/Users/gregory.hellings"; - host = name; - }; - }; - users.users."gregory.hellings".home = "/Users/gregory.hellings"; - programs = { - zsh.enable = true; - bash.enable = true; - }; - services.nix-daemon.enable = true; - nix = { - gc.interval.Hour = 24; - settings.auto-optimise-store = false; # Darwin bugs? - settings.experimental-features = "nix-command flakes"; + nixpkgs.overlays = overlays; + home-manager.extraSpecialArgs = { + inherit inputs; + host = name; }; } + hm.darwinModules.home-manager + inputs.self.modules.darwinModule ./${name} ] ++ extraMods; }; diff --git a/flake.nix b/flake.nix index ec04236..7b9e3df 100644 --- a/flake.nix +++ b/flake.nix @@ -92,6 +92,9 @@ })); overlays = { default = local_overlay; }; + + modules = import ./modules; + packages = { x86_64-linux = rec { default = iso; diff --git a/hosts/default.nix b/hosts/default.nix index 5e66939..6e2973d 100644 --- a/hosts/default.nix +++ b/hosts/default.nix @@ -35,7 +35,7 @@ let } inputs.agenix.nixosModules.default hm.nixosModules.home-manager - ../modules + inputs.self.modules.nixosModule ./${name} ] ++ extraMods; }; diff --git a/modules/baseline.nix b/modules/baseline.nix new file mode 100644 index 0000000..b80cd0e --- /dev/null +++ b/modules/baseline.nix @@ -0,0 +1,55 @@ +{pkgs, ... }: +{ + # Enable flakes + nix = { + gc = { + automatic = true; + # Scheduling of them is different in nixos vs nix-darwin, so check for + # the extra details there + options = "--delete-older-than 30d"; + }; + + settings = { + experimental-features = "nix-command flakes"; + keep-outputs = true; + keep-derivations = true; + min-free = (toString (1024 * 1024 * 1024) ); + max-free = (toString (5 * 1024 * 1024 * 1024) ); + substituters = [ + "https://cache.garnix.io" + "https://ai.cachix.org" + ]; + trusted-public-keys = [ + "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" + "ai.cachix.org-1:N9dzRK+alWwoKXQlnn0H6aUx0lU/mspIoz8hMvGvbbc=" + ]; + }; + }; + + nixpkgs.config = { + allowUnfree = true; + }; + + # Base packages that need to be in all my hosts + environment.systemPackages = with pkgs; [ + agenix + android-file-transfer + bitwarden-cli + configure_aws_creds + diffutils + git + gh + gnupatch + gregpy + findutils + hms # My own home manager switcher + htop + killall + nano + pciutils + pwgen + transcrypt + unzip + wget + ]; +} \ No newline at end of file diff --git a/modules/darwin/default.nix b/modules/darwin/default.nix new file mode 100644 index 0000000..576ae65 --- /dev/null +++ b/modules/darwin/default.nix @@ -0,0 +1,26 @@ +{...}: +{ + imports = [ + ../baseline.nix + ]; + system.stateVersion = 4; + home-manager = { + useGlobalPkgs = true; + users."gregory.hellings" = import ../../home/home.nix; + extraSpecialArgs = { + gnome = false; + gui = false; + home = "/Users/gregory.hellings"; + }; + }; + users.users."gregory.hellings".home = "/Users/gregory.hellings"; + programs = { + zsh.enable = true; + bash.enable = true; + }; + services.nix-daemon.enable = true; + nix = { + gc.interval.Hour = 24; + settings.auto-optimise-store = false; # Darwin bugs? + }; +} \ No newline at end of file diff --git a/modules/default.nix b/modules/default.nix index 1841394..7f28a07 100644 --- a/modules/default.nix +++ b/modules/default.nix @@ -1,63 +1,7 @@ -{ pkgs, lib, ... }: - let + nixos = (import ./nixos); + darwin = (import ./darwin); in { - imports = [ - ./linux - ]; - - # Enable flakes - nix = { - package = pkgs.nixFlakes; - gc = { - automatic = true; - # Scheduling of them is different in nixos vs nix-darwin, so check for - # the extra details there - options = "--delete-older-than 30d"; - }; - - settings = { - auto-optimise-store = true; - experimental-features = "nix-command flakes"; - keep-outputs = true; - keep-derivations = true; - min-free = (toString (1024 * 1024 * 1024) ); - max-free = (toString (5 * 1024 * 1024 * 1024) ); - substituters = [ - "https://cache.garnix.io" - "https://ai.cachix.org" - ]; - trusted-public-keys = [ - "cache.garnix.io:CTFPyKSLcx5RMJKfLo5EEPUObbA78b0YQ2DTCJXqr9g=" - "ai.cachix.org-1:N9dzRK+alWwoKXQlnn0H6aUx0lU/mspIoz8hMvGvbbc=" - ]; - }; - }; - - nixpkgs.config = { - allowUnfree = true; - }; - - # Base packages that need to be in all my hosts - environment.systemPackages = with pkgs; [ - agenix - android-file-transfer - bitwarden-cli - configure_aws_creds - diffutils - git - gh - gnupatch - gregpy - findutils - hms # My own home manager switcher - htop - killall - nano - pciutils - pwgen - transcrypt - unzip - wget - ]; -} + nixosModule = nixos; + darwinModule = darwin; +} \ No newline at end of file diff --git a/modules/linux/linux.nix b/modules/linux/linux.nix deleted file mode 100644 index a5ad118..0000000 --- a/modules/linux/linux.nix +++ /dev/null @@ -1,11 +0,0 @@ -{ config, lib, ... }: - -let - cfg = config.greg.linux; - -in with lib; { - options.greg.linux = mkEnableOption "This system is Linux"; - - config = mkIf cfg { - }; -} diff --git a/modules/linux/backup.nix b/modules/nixos/backup.nix similarity index 100% rename from modules/linux/backup.nix rename to modules/nixos/backup.nix diff --git a/modules/linux/default.nix b/modules/nixos/default.nix similarity index 97% rename from modules/linux/default.nix rename to modules/nixos/default.nix index 2ac57da..1a886ef 100644 --- a/modules/linux/default.nix +++ b/modules/nixos/default.nix @@ -2,13 +2,13 @@ { imports = [ + ../baseline.nix ./backup.nix ./gnome.nix ./home.nix ./kde.nix ./kiwix-serve.nix ./linode.nix - ./linux.nix ./proxy.nix ./router.nix ./rpi4.nix @@ -24,7 +24,10 @@ system.stateVersion = "22.05"; - nix.gc.dates = "weekly"; + nix = { + gc.dates = "weekly"; + settings.auto-optimise-store = true; + }; # I am a fan of network manager, myself networking = { diff --git a/modules/linux/gnome.nix b/modules/nixos/gnome.nix similarity index 100% rename from modules/linux/gnome.nix rename to modules/nixos/gnome.nix diff --git a/modules/linux/home.nix b/modules/nixos/home.nix similarity index 100% rename from modules/linux/home.nix rename to modules/nixos/home.nix diff --git a/modules/linux/kde.nix b/modules/nixos/kde.nix similarity index 100% rename from modules/linux/kde.nix rename to modules/nixos/kde.nix diff --git a/modules/linux/kiwix-serve.nix b/modules/nixos/kiwix-serve.nix similarity index 100% rename from modules/linux/kiwix-serve.nix rename to modules/nixos/kiwix-serve.nix diff --git a/modules/linux/linode.nix b/modules/nixos/linode.nix similarity index 100% rename from modules/linux/linode.nix rename to modules/nixos/linode.nix diff --git a/modules/linux/proxy.nix b/modules/nixos/proxy.nix similarity index 100% rename from modules/linux/proxy.nix rename to modules/nixos/proxy.nix diff --git a/modules/linux/router.nix b/modules/nixos/router.nix similarity index 100% rename from modules/linux/router.nix rename to modules/nixos/router.nix diff --git a/modules/linux/rpi4.nix b/modules/nixos/rpi4.nix similarity index 100% rename from modules/linux/rpi4.nix rename to modules/nixos/rpi4.nix diff --git a/modules/linux/tailscale.nix b/modules/nixos/tailscale.nix similarity index 100% rename from modules/linux/tailscale.nix rename to modules/nixos/tailscale.nix