Initial nix-darwin revision

This commit is contained in:
Spotlight 2024-04-11 09:01:03 -05:00
parent 9a0750c0bf
commit 92e04a0924
Signed by: spotlight
GPG key ID: 874AA355B3209BDC
3 changed files with 80 additions and 6 deletions

37
darwin/darwin.nix Normal file
View file

@ -0,0 +1,37 @@
{ pkgs, system, ... }: {
# List packages installed in system profile. To search by name, run:
# $ nix-env -qaP | grep wget
environment.systemPackages = [
pkgs.vim
];
# Auto upgrade nix package and the daemon service.
services.nix-daemon.enable = true;
nix.package = pkgs.nix;
# Necessary for using flakes on this system.
nix.settings.experimental-features = "nix-command flakes";
# Create /etc/zshrc that loads the nix-darwin environment.
programs.zsh.enable = true;
# Used for backwards compatibility, please read the changelog before changing.
# $ darwin-rebuild changelog
system.stateVersion = 4;
nixpkgs = {
# TODO(spotlightishere): Make this configurable beyond a singular device.
hostPlatform = "aarch64-darwin";
# Custom packages.
# TODO(spotlightishere): Why does this need to be specified in both home-manager and globally?
overlays = [ (import ../pkgs/default.nix) ];
};
# Our singular user!
users.users.spot = {
description = "Spotlight Deveaux";
home = "/Users/spot";
shell = pkgs.zsh;
};
}

21
flake.lock generated
View file

@ -65,6 +65,26 @@
"type": "github"
}
},
"nix-darwin": {
"inputs": {
"nixpkgs": [
"nixpkgs"
]
},
"locked": {
"lastModified": 1711763326,
"narHash": "sha256-sXcesZWKXFlEQ8oyGHnfk4xc9f2Ip0X/+YZOq3sKviI=",
"owner": "LnL7",
"repo": "nix-darwin",
"rev": "36524adc31566655f2f4d55ad6b875fb5c1a4083",
"type": "github"
},
"original": {
"owner": "LnL7",
"repo": "nix-darwin",
"type": "github"
}
},
"nixpkgs": {
"locked": {
"lastModified": 1712608508,
@ -87,6 +107,7 @@
"darwin-systems": "darwin-systems",
"home-manager": "home-manager",
"linux-systems": "linux-systems",
"nix-darwin": "nix-darwin",
"nixpkgs": "nixpkgs"
}
}

View file

@ -12,9 +12,13 @@
url = "github:nix-community/home-manager";
inputs.nixpkgs.follows = "nixpkgs";
};
nix-darwin = {
url = "github:LnL7/nix-darwin";
inputs.nixpkgs.follows = "nixpkgs";
};
};
outputs = inputs@{ nixpkgs, home-manager, ... }:
outputs = inputs@{ nixpkgs, home-manager, nix-darwin, ... }:
let
# TODO(spotlightishere): Is there a better way to approach this that doesn't
# involve importing so many separate flakes?
@ -49,10 +53,6 @@
# For now, this is effectively true, sans a few specific configurations :)
spotlight = homeManager {
system = system;
specialArgs = {
desktop = false;
gpg = false;
};
};
# For a special case: with the Steam Deck, we have to assume the user
@ -94,7 +94,23 @@
useGlobalPkgs = true;
useUserPackages = true;
users.spotlight = import ./home/home.nix;
extraSpecialArgs = { desktop = false; gpg = false; };
};
}
];
};
# We define a default Darwin configuration via nix-darwin.
darwinConfigurations."spotlights-macbook-air" = nix-darwin.lib.darwinSystem {
modules = [
# System-wide configuration
./darwin/darwin.nix
# Our provided home-manager configuration
home-manager.darwinModules.home-manager {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
users.spot = import ./home/home.nix;
extraSpecialArgs = { desktop = true; gpg = true; };
};
}
];