Integrates home-manager with nix-darwin

This commit is contained in:
willemml 2023-11-14 18:42:05 -08:00
parent 6ea3eb4b19
commit 2b6ff3f566
Signed by: willemml
GPG key ID: C3DE5DF6198DACBD
23 changed files with 90 additions and 104 deletions

View file

@ -13,5 +13,7 @@
username = "willem";
dotrepopath = "~/.config/dotfiles.nix";
sshAuthorizedKeyFiles = [./sshpubkeys/willem-nixbox ./sshpubkeys/willem-thinkpad ./sshpubkeys/willem-zeus];
}

View file

@ -64,37 +64,24 @@
inherit inputs globals;
overlays = self.overlays;
};
modules = [definition];
modules = definition;
});
mkNixos = arch: (mkSystem nixpkgs.lib.nixosSystem "${arch}-linux");
mkDarwin = arch: (mkSystem darwin.lib.darwinSystem "${arch}-darwin");
mkHome = system: config: (home-manager.lib.homeManagerConfiguration {
pkgs = nixpkgs.legacyPackages.${system};
extraSpecialArgs = {
inherit globals inputs;
overlays = self.overlays;
};
modules = [{nix.package = nixpkgs.legacyPackages.${system}.nix;} config];
});
forAllSystems = nixpkgs.lib.genAttrs systems;
in {
nixosConfigurations.x86_64-live = mkNixos "x86_64" ./nixos/hosts/x86_64-live.nix;
nixosConfigurations.aarch64-live = mkNixos "aarch64" ./nixos/hosts/aarch64-live.nix;
nixosConfigurations.x86_64-live = mkNixos "x86_64" [./nixos/hosts/x86_64-live.nix];
nixosConfigurations.aarch64-live = mkNixos "aarch64" [./nixos/hosts/aarch64-live.nix];
nixosConfigurations.p4box = mkNixos "i686" ./nixos/hosts/p4box.nix;
nixosConfigurations.nixbox = mkNixos "x86_64" ./nixos/hosts/nixbox.nix;
nixosConfigurations.thinkpad = mkNixos "x86_64" ./nixos/hosts/thinkpad.nix;
nixosConfigurations.nixbox = mkNixos "x86_64" [./nixos/hosts/nixbox.nix];
nixosConfigurations.thinkpad = mkNixos "x86_64" [./nixos/hosts/thinkpad.nix];
nixosConfigurations.darwin-arm-minimal-vm = mkNixos "aarch64" ./nixos/hosts/vms/aarch64-darwin-host/minimal.nix;
nixosConfigurations.darwin-arm-homeconsole-vm = mkNixos "aarch64" ./nixos/hosts/vms/aarch64-darwin-host/home-console.nix;
nixosConfigurations.darwin-arm-minimal-vm = mkNixos "aarch64" [./nixos/hosts/vms/aarch64-darwin-host/minimal.nix];
nixosConfigurations.darwin-arm-homeconsole-vm = mkNixos "aarch64" [./nixos/hosts/vms/aarch64-darwin-host/home-console.nix];
darwinConfigurations.zeus = mkDarwin "aarch64" ./nixos/hosts/zeus.nix;
homeConfigurations = forAllSystems (system: {
willem = mkHome system ./home/${builtins.replaceStrings ["aarch64-" "x86_64-"] ["" ""] system}/default.nix;
});
darwinConfigurations.zeus = mkDarwin "aarch64" [./nixos/hosts/zeus.nix];
packages.aarch64-darwin.minimal-vm = self.nixosConfigurations.darwin-arm-minimal-vm.config.system.build.vm;
packages.aarch64-darwin.homeconsole-vm = self.nixosConfigurations.darwin-arm-homeconsole-vm.config.system.build.vm;

View file

@ -5,16 +5,12 @@
...
}: {
imports = [
../modules/nix/use-flake-pkgs.nix
../modules/nix/pkgs-config.nix
../default.nix
./finder.nix
./keybinds.nix
./launchd.nix
];
home.homeDirectory = "/Users/willem";
programs.ssh.includes = ["/Users/willem/.colima/ssh_config"];
home.file.".gnupg/gpg-agent.conf" = {
@ -27,8 +23,8 @@
};
programs.zsh.shellAliases = {
drs = "nix run nix-darwin -- switch --flake ${config.home.homeDirectory}/.config/dotfiles.nix#";
dbs = "nix run nix-darwin -- build --flake ${config.home.homeDirectory}/.config/dotfiles.nix#";
drs = "darwin-rebuild switch --flake ${config.home.homeDirectory}/.config/dotfiles.nix#";
dbs = "darwin-rebuild build --flake ${config.home.homeDirectory}/.config/dotfiles.nix#";
o = "open";
oa = "open -a";
};

View file

@ -11,6 +11,8 @@ in rec {
./modules/emacs.nix
./packages.nix
./programs/default.nix
./modules/nix/pkgs-config.nix
./modules/nix/use-flake-pkgs.nix
inputs.nix-index-database.hmModules.nix-index
];

View file

@ -7,12 +7,10 @@
../default.nix
./services.nix
./hyprland.nix
../modules/nix/pkgs-config.nix
../modules/nix/use-flake-pkgs.nix
];
programs.zsh.shellAliases = {
nrs = "nixos-rebuild switch --flake ${config.home.homeDirectory}/.config/dotfiles.nix#";
nrs = "sudo nixos-rebuild switch --flake ${config.home.homeDirectory}/.config/dotfiles.nix#";
nbs = "nixos-rebuild build --flake ${config.home.homeDirectory}/.config/dotfiles.nix#";
};

View file

@ -61,8 +61,8 @@
};
hishtory = {
enable = true;
enableZshIntegration = true;
enable = false;
enableZshIntegration = false;
};
java = {

View file

@ -4,5 +4,16 @@
../modules/apple-silicon.nix
];
isoImage.makeEfiBootable = true;
hardware.asahi.extractPeripheralFirmware = false;
networking.wireless.enable = false;
networking.wireless.iwd = {
enable = true;
settings.General.EnableNetworkConfiguration = true;
};
networking.hostName = "nixos-live-aarch64";
}

View file

@ -9,7 +9,7 @@
(modulesPath + "/installer/scan/not-detected.nix")
../profiles/hyprland.nix
../profiles/default.nix
../users/willem/home.nix
../users/willem/home/linux.nix
../modules/zerotier.nix
];

View file

@ -1,37 +0,0 @@
{
config,
lib,
pkgs,
modulesPath,
...
}: {
imports = [
(modulesPath + "/installer/scan/not-detected.nix")
../profiles/default.nix
../users/willem
../modules/zerotier.nix
];
boot.loader.grub.enable = true;
boot.initrd.availableKernelModules = ["ata_piix" "uhci_hcd" "sata_sil" "sd_mod"];
boot.initrd.kernelModules = [];
boot.kernelModules = [];
boot.extraModulePackages = [];
fileSystems."/" = {
device = "/dev/disk/by-uuid/4f558bc6-e3b3-46e4-a3b1-520eab6d090f";
fsType = "ext4";
};
swapDevices = [
{device = "/dev/disk/by-uuid/413077c1-e921-4377-8c7d-ca2acf8a60d2";}
];
networking.useDHCP = lib.mkDefault true;
networking.hostName = "p4box";
nixpkgs.hostPlatform = lib.mkDefault "i686-linux";
hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
}

View file

@ -9,7 +9,7 @@
(modulesPath + "/installer/scan/not-detected.nix")
../profiles/hyprland.nix
../profiles/default.nix
../users/willem/home.nix
../users/willem/home/linux.nix
../modules/zerotier.nix
];

View file

@ -3,7 +3,7 @@
../../common/system.nix
../modules/nix/link-inputs.nix
../modules/nix/use-flake-pkgs.nix
../users/willem/base.nix
../users/willem/home/darwin.nix
];
nix = {
@ -16,6 +16,8 @@
networking.hostName = "zeus";
networking.computerName = "Zeus";
nix.gc.interval.Hour = 5;
environment.etc."nix/user-sandbox.sb".text = ''
(version 1)
(allow default)
@ -46,10 +48,4 @@
'';
services.nix-daemon.enable = true;
users.users.willem = {
home = "/Users/willem";
isHidden = false;
name = "willem";
};
}

View file

@ -1,5 +1,5 @@
{...}: {
config.home-manager = {
home-manager = {
useGlobalPkgs = true;
useUserPackages = true;
backupFileExtension = "bak";

View file

@ -0,0 +1,7 @@
{...}: {
nix = {
settings.auto-optimise-store = true;
gc.automatic = true;
gc.options = "--delete-older-than 14d";
};
}

View file

@ -7,12 +7,15 @@
imports = [
../../common/system.nix
../modules/nix/use-flake-pkgs.nix
../users/willem/default.nix
../modules/nix/optimise.nix
../users/willem/linux.nix
];
console.keyMap = "colemak";
console.packages = [pkgs.terminus_font];
nix.gc.dates = "daily";
i18n.defaultLocale = "en_US.UTF-8";
programs.zsh.loginShellInit = ''

View file

@ -41,9 +41,7 @@
];
# Include support for various filesystems and tools to create / manipulate them.
boot.supportedFilesystems =
["btrfs" "cifs" "f2fs" "jfs" "ntfs" "reiserfs" "vfat" "xfs"]
++ lib.optional (lib.meta.availableOn pkgs.stdenv.hostPlatform config.boot.zfs.package) "zfs";
boot.supportedFilesystems = ["ntfs" "vfat" "xfs"];
boot.enableContainers = false;

View file

@ -0,0 +1,9 @@
{...}: {
imports = [./default.nix];
users.users.willem = {
isHidden = false;
home = "/Users/willem";
};
}

View file

@ -1,7 +1,6 @@
{...}: {
imports = [./base.nix];
imports = [./sshkeys.nix];
users.users.willem = {
extraGroups = ["networkmanager" "wheel" "video" "udev"];
isNormalUser = true;
name = "willem";
};
}

View file

@ -1,18 +0,0 @@
{
inputs,
globals,
overlays,
...
}: {
imports = [
inputs.home-manager.nixosModules.home-manager
];
home-manager.users.willem = {
imports = [
../../../home/linux/default.nix
];
};
home-manager.extraSpecialArgs = {inherit inputs overlays globals;};
}

View file

@ -0,0 +1,8 @@
{inputs, ...}: {
imports = [
inputs.home-manager.darwinModules.home-manager
./default.nix
../darwin.nix
];
home-manager.users.willem = ../../../../home/darwin/default.nix;
}

View file

@ -0,0 +1,8 @@
{
inputs,
globals,
overlays,
...
}: {
home-manager.extraSpecialArgs = {inherit inputs overlays globals;};
}

View file

@ -0,0 +1,8 @@
{inputs, ...}: {
imports = [
inputs.home-manager.nixosModules.home-manager
./default.nix
../linux.nix
];
home-manager.users.willem = ../../../../home/linux/default.nix;
}

View file

@ -0,0 +1,9 @@
{...}: {
imports = [./default.nix];
users.users.willem = {
extraGroups = ["networkmanager" "wheel" "video" "udev"];
isNormalUser = true;
home = "/home/willem";
};
}