From dff809f6a38a64d429a94f92c1b0d3b171d67cc1 Mon Sep 17 00:00:00 2001 From: Sven Wilhelm Date: Sat, 16 Nov 2024 01:41:04 +0100 Subject: [PATCH] fix(hosts/defiant): streamline host definitions, skip library approach In the previous configuration I used a library approach to generate host configurations. This approach makes it more complicated to handle different kind of host configurations and adds an unnecessary abstraction layer. Streamline the config defining darwin and nixos configurations directly in the flake. --- flake.nix | 24 ++++------ hosts/defiant/default.nix | 94 +++++++++++++++++++++++++++++++++++++++ lib/default.nix | 34 +------------- 3 files changed, 105 insertions(+), 47 deletions(-) create mode 100644 hosts/defiant/default.nix diff --git a/flake.nix b/flake.nix index 30e84dc..ad391df 100644 --- a/flake.nix +++ b/flake.nix @@ -107,21 +107,15 @@ # Build darwin flake using: # $ darwin-rebuild build --flake .#defiant - - darwinConfigurations = let - system = "aarch64-darwin"; - pkgs = pkgsFor.${system}; - in { - defiant = import ./lib { - inherit - pkgs - nix-darwin - home-manager - system - user - flake - inputs - ; + darwinConfigurations = { + defiant = nix-darwin.lib.darwinSystem { + system = "aarch64-darwin"; + modules = [./hosts/defiant]; + specialArgs = { + inherit flake inputs; + system = "aarch64-darwin"; + pkgs = pkgsFor.aarch64-darwin; + }; }; }; diff --git a/hosts/defiant/default.nix b/hosts/defiant/default.nix new file mode 100644 index 0000000..d406941 --- /dev/null +++ b/hosts/defiant/default.nix @@ -0,0 +1,94 @@ +{ + pkgs, + flake, + system, + inputs, + ... +}: { + imports = [ + inputs.home-manager.darwinModules.home-manager + ]; + + # List packages installed in system profile. To search by name, run: + # $ nix-env -qaP | grep wget + environment = { + systemPackages = [ + pkgs.coreutils + pkgs.vim + pkgs.git + ]; + + shells = [ + pkgs.bash + pkgs.zsh + ]; + + loginShell = pkgs.zsh; + }; + + fonts = { + packages = [ + (pkgs.nerdfonts.override { + fonts = [ + "JetBrainsMono" + "Meslo" + ]; + }) + ]; + }; + + # Auto upgrade nix package and the daemon service. + services.nix-daemon.enable = true; + + nix = { + # package = pkgs.nixVersions.nix_2_16; + checkConfig = true; + configureBuildUsers = true; + settings = { + # Necessary for using flakes on this system. + experimental-features = "nix-command flakes"; + allowed-users = [ + "@admin" + ]; + # disable it, enabling leads to some symlink problems + # on macOS + auto-optimise-store = false; + cores = 6; + extra-sandbox-paths = []; + max-jobs = "auto"; + require-sigs = true; + sandbox = false; + # substituters = []; + # trusted-public-keys = []; + trusted-users = [ + "@admin" + ]; + }; + }; + + programs.zsh.enable = true; + + # TODO https://discourse.nixos.org/t/give-name-label-comment-to-generations/45355 + system.configurationRevision = flake.rev or flake.dirtyRev or null; + + # Used for backwards compatibility, + # please read the changelog before changing. + # $ darwin-rebuild changelog + system.stateVersion = 4; + + # The platform the configuration will be used on. + nixpkgs.hostPlatform = system; + + networking = { + computerName = "defiant"; + hostName = "defiant"; + localHostName = "defiant"; + }; + + home-manager = { + useGlobalPkgs = true; + useUserPackages = true; + extraSpecialArgs = {inherit pkgs;}; + users.refnode = import ../../users/refnode; + }; +} diff --git a/lib/default.nix b/lib/default.nix index 14a264f..ea8f50d 100644 --- a/lib/default.nix +++ b/lib/default.nix @@ -1,32 +1,2 @@ -{ - pkgs, - nix-darwin, - home-manager, - system, - user, - flake, - inputs, - ... -}: let - osConfig = ../hosts/darwin-base.nix; - userHomeConfig = ../users/${user}; - systemFn = nix-darwin.lib.darwinSystem; - home-manager = inputs.home-manager.darwinModules.home-manager; -in - systemFn { - modules = [ - osConfig - {_module.args = {inherit flake;};} - home-manager - { - home-manager.useGlobalPkgs = true; - home-manager.useUserPackages = true; - home-manager.users.${user} = import userHomeConfig { - inherit pkgs user; - }; - # Optionally, use home-manager.extraSpecialArgs to pass - # arguments to home.nix - # home-manager.extraSpecialArgs = { inherit lib; }; - } - ]; - } +{...}: { +}