From d35fbb68b83cddbc3b01154102f2680607026e3c Mon Sep 17 00:00:00 2001 From: Zynh Ludwig Date: Tue, 5 Nov 2024 00:55:25 -0800 Subject: [PATCH] snowhawk: nix-darwin time --- builders.nix | 32 +++++++++++++++++++++- flake.lock | 21 ++++++++++++++ flake.nix | 11 ++++---- hosts/little-lightning/configuration.nix | 35 ++++++++++++++++++++++++ hosts/little-lightning/home.nix | 10 +------ 5 files changed, 94 insertions(+), 15 deletions(-) create mode 100644 hosts/little-lightning/configuration.nix diff --git a/builders.nix b/builders.nix index 23d529a..e41bea5 100644 --- a/builders.nix +++ b/builders.nix @@ -1,4 +1,4 @@ -{ nixpkgs, self, ... }@inputs: +{ nixpkgs, nix-darwin, self, ... }@inputs: let makePkgs = system: (import nixpkgs { @@ -73,4 +73,34 @@ rec { builtins.listToAttrs (map toPartialHomeManagerConfig) systems; + + + toPartialDarwinConfig = + { hostname, system ? "aarch64-darwin", }: + nameValuePair + hostname + (nix-darwin.lib.darwinSystem rec { + pkgs = makePkgs system; + specialArgs = { inherit inputs self; }; + + modules = [ + inputs.home-manager.darwinModules.home-manager + ./hosts/${hostname}/configuration.nix + + + { + home-manager.extraSpecialArgs = { + inherit inputs self pkgs; + lib = pkgs.lib.extend (_: _: inputs.home-manager.lib); + }; + } + ]; + }); + + compileDarwinSystems = + systems: + lib.right + builtins.listToAttrs + (map toPartialDarwinConfig) + systems; } diff --git a/flake.lock b/flake.lock index 843ca92..48aec99 100644 --- a/flake.lock +++ b/flake.lock @@ -482,6 +482,26 @@ "type": "github" } }, + "nix-darwin": { + "inputs": { + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1730765507, + "narHash": "sha256-u2KaQonCkHQbQvYrfZz7OJuyOrFelbfh5gS9L43c1WY=", + "owner": "LnL7", + "repo": "nix-darwin", + "rev": "5d891207854e792a33b5984e9bee56c8b57ef010", + "type": "github" + }, + "original": { + "owner": "LnL7", + "repo": "nix-darwin", + "type": "github" + } + }, "nix-github-actions": { "inputs": { "nixpkgs": [ @@ -606,6 +626,7 @@ "lix-module": "lix-module", "neovim-overlay": "neovim-overlay", "niri": "niri", + "nix-darwin": "nix-darwin", "nixpkgs": "nixpkgs_2", "repo-clone": "repo-clone", "sops-nix": "sops-nix", diff --git a/flake.nix b/flake.nix index d217c94..87d4090 100644 --- a/flake.nix +++ b/flake.nix @@ -11,6 +11,8 @@ dunst-theme = { url = "github:d2718nis/rose-pine-dunst"; flake = false; }; niri = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; + nix-darwin = { url = "github:LnL7/nix-darwin"; inputs.nixpkgs.follows = "nixpkgs"; }; + repo-clone.url = "git+https://git.zynh.me/Zynh0722/repo-clone"; fish_theme = { url = "git+https://git.zynh.me/Zynh0722/omf-theme"; flake = false; }; backgrounds = { url = "git+https://git.zynh.me/Zynh0722/backgrounds"; inputs.nixpkgs.follows = "nixpkgs"; }; @@ -30,11 +32,10 @@ homeConfigurations = builders.compileHomes [ { user = "zynh"; hostname = "msiserver"; } { user = "val"; hostname = "caveserver"; } - { - user = "zynh"; - hostname = "little-lightning"; - system = "aarch64-darwin"; - } + ]; + + darwinConfigurations = builders.compileDarwinSystems [ + { hostname = "little-lightning"; } ]; overlays.default = import ./pkgs; diff --git a/hosts/little-lightning/configuration.nix b/hosts/little-lightning/configuration.nix new file mode 100644 index 0000000..920bb25 --- /dev/null +++ b/hosts/little-lightning/configuration.nix @@ -0,0 +1,35 @@ +{ pkgs, self, ... }: { + # List packages installed in system profile. To search by name, run: + # $ nix-env -qaP | grep wget + environment.systemPackages = [ ]; + + nix.settings = { + experimental-features = [ "nix-command" "flakes" ]; + auto-optimise-store = true; + }; + + # Auto upgrade nix package and the daemon service. + services.nix-daemon.enable = true; + + # Enable alternative shell support in nix-darwin. + # programs.fish.enable = true; + + users.users.zynh = { + name = "zynh"; + home = "/Users/zynh"; + }; + + home-manager = { + users = { "zynh" = import ./home.nix; }; + backupFileExtension = "backup"; + }; + + # Set Git commit hash for darwin-version. + system.configurationRevision = self.rev or self.dirtyRev or null; + # $ darwin-rebuild changelog + system.stateVersion = 5; + + + # The platform the configuration will be used on. + # nixpkgs.hostPlatform = "x86_64-darwin"; +} diff --git a/hosts/little-lightning/home.nix b/hosts/little-lightning/home.nix index 895c654..147d617 100644 --- a/hosts/little-lightning/home.nix +++ b/hosts/little-lightning/home.nix @@ -5,14 +5,6 @@ ../../home/modules ]; - nix = { - package = pkgs.nix; - settings = { - auto-optimise-store = true; - experimental-features = [ "nix-command" "flakes" ]; - }; - }; - snowhawk = { alacritty.enable = true; macos.enable = true; @@ -38,7 +30,7 @@ home.packages = with pkgs; [ nix-output-monitor (writeShellScriptBin "rebuild" '' - home-manager switch --flake ~/nixos#zynh@little-lightning |& nom + darwin-rebuild switch --flake ~/nixos#little-lightning |& nom '') wakeonlan