Initial nix-darwin revision
This commit is contained in:
parent
9a0750c0bf
commit
92e04a0924
3 changed files with 80 additions and 6 deletions
37
darwin/darwin.nix
Normal file
37
darwin/darwin.nix
Normal 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
21
flake.lock
generated
|
@ -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"
|
||||
}
|
||||
}
|
||||
|
|
28
flake.nix
28
flake.nix
|
@ -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; };
|
||||
};
|
||||
}
|
||||
];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue