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"
|
"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": {
|
"nixpkgs": {
|
||||||
"locked": {
|
"locked": {
|
||||||
"lastModified": 1712608508,
|
"lastModified": 1712608508,
|
||||||
|
@ -87,6 +107,7 @@
|
||||||
"darwin-systems": "darwin-systems",
|
"darwin-systems": "darwin-systems",
|
||||||
"home-manager": "home-manager",
|
"home-manager": "home-manager",
|
||||||
"linux-systems": "linux-systems",
|
"linux-systems": "linux-systems",
|
||||||
|
"nix-darwin": "nix-darwin",
|
||||||
"nixpkgs": "nixpkgs"
|
"nixpkgs": "nixpkgs"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
28
flake.nix
28
flake.nix
|
@ -12,9 +12,13 @@
|
||||||
url = "github:nix-community/home-manager";
|
url = "github:nix-community/home-manager";
|
||||||
inputs.nixpkgs.follows = "nixpkgs";
|
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
|
let
|
||||||
# TODO(spotlightishere): Is there a better way to approach this that doesn't
|
# TODO(spotlightishere): Is there a better way to approach this that doesn't
|
||||||
# involve importing so many separate flakes?
|
# involve importing so many separate flakes?
|
||||||
|
@ -49,10 +53,6 @@
|
||||||
# For now, this is effectively true, sans a few specific configurations :)
|
# For now, this is effectively true, sans a few specific configurations :)
|
||||||
spotlight = homeManager {
|
spotlight = homeManager {
|
||||||
system = system;
|
system = system;
|
||||||
specialArgs = {
|
|
||||||
desktop = false;
|
|
||||||
gpg = false;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# For a special case: with the Steam Deck, we have to assume the user
|
# For a special case: with the Steam Deck, we have to assume the user
|
||||||
|
@ -94,7 +94,23 @@
|
||||||
useGlobalPkgs = true;
|
useGlobalPkgs = true;
|
||||||
useUserPackages = true;
|
useUserPackages = true;
|
||||||
users.spotlight = import ./home/home.nix;
|
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