mirror of
https://github.com/genebean/dots.git
synced 2026-03-27 01:17:42 -04:00
Infrastructure: - Add deadnix, nixfmt, and statix to flake inputs - Add formatter output to flake for nix fmt support - Add deadnix, nixfmt, statix to Home Manager packages - Add GitHub Actions workflow for CI validation - Add .pre-commit-config.yaml with hooks for nixfmt, deadnix, and statix - Support x86_64-darwin in formatter Statix fixes (W10/W20 warnings): - Remove unused lambda argument from nixpkgs-settings.nix - Merge repeated keys in hardware-configuration.nix files (boot.initrd, boot, fileSystems) - Merge repeated keys in nixnuc/default.nix (services, virtualisation) - Merge repeated keys in rainbow-planet/default.nix (desktopManager) - Merge repeated keys in home/general/default.nix (home) Deadnix fixes (unused declarations): - Remove unused pkgs/lib/username/http_port arguments from various files - Fix unused final parameter in overlay functions (final -> _final) CI/pre-commit fixes: - Fix pre-commit statix config: add pass_filenames: false - Fix CI workflow: use nix run nixpkgs# prefix and --ci flag for nixfmt
50 lines
1.5 KiB
Nix
50 lines
1.5 KiB
Nix
{ inputs, ... }:
|
|
{
|
|
mkDarwinHost =
|
|
{
|
|
system ? "aarch64-darwin",
|
|
hostname,
|
|
username ? "gene",
|
|
additionalModules ? [ ],
|
|
additionalSpecialArgs ? { },
|
|
}:
|
|
inputs.nix-darwin.lib.darwinSystem {
|
|
inherit system;
|
|
specialArgs = {
|
|
inherit inputs hostname username;
|
|
}
|
|
// additionalSpecialArgs;
|
|
modules = [
|
|
./nixpkgs-settings.nix
|
|
|
|
inputs.nix-homebrew.darwinModules.nix-homebrew
|
|
{
|
|
nix-homebrew = {
|
|
enable = true; # Install Homebrew under the default prefix
|
|
user = "${username}"; # User owning the Homebrew prefix
|
|
autoMigrate = true; # Automatically migrate existing Homebrew installations
|
|
};
|
|
}
|
|
|
|
inputs.home-manager.darwinModules.home-manager
|
|
{
|
|
home-manager = {
|
|
extraSpecialArgs = { inherit inputs username; };
|
|
useGlobalPkgs = true;
|
|
useUserPackages = true;
|
|
users.${username}.imports = [
|
|
inputs.sops-nix.homeManagerModule # user-level secrets management
|
|
../modules/shared/home/general
|
|
../modules/shared/home/general/all-gui.nix
|
|
../modules/hosts/darwin/home.nix
|
|
../modules/hosts/darwin/${hostname}/home-${username}.nix
|
|
];
|
|
};
|
|
}
|
|
|
|
../modules/hosts/darwin # system-wide stuff
|
|
../modules/hosts/darwin/${hostname} # host specific stuff
|
|
]
|
|
++ additionalModules; # end modules
|
|
}; # end darwinSystem
|
|
}
|