separate out nixos and nix-darwin toplevel

This commit is contained in:
Sridhar Ratnakumar 2022-12-03 13:26:13 -05:00
parent a0b850b1a6
commit 2991d29adb
3 changed files with 114 additions and 116 deletions

101
flake.nix
View file

@ -77,86 +77,33 @@
in
{
# Configurations for Linux (NixOS) systems
nixosConfigurations =
let
mkLinuxSystem = extraModules: nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
# Arguments to pass to all modules.
specialArgs = { inherit system inputs; };
modules = [
self.nixosModules.default
{
home-manager.users.${userName} = { pkgs, ... }: {
imports = [
self.homeModules.common-linux
./home/shellcommon.nix
(import ./home/git.nix {
userName = "Sridhar Ratnakumar";
userEmail = "srid@srid.ca";
})
];
};
}
] ++ extraModules;
};
in
{
# My Linux development computer (on Hetzner)
pinch = mkLinuxSystem
[
./systems/hetzner/ax41.nix
./nixos/server/harden.nix
nixosConfigurations = {
# My Linux development computer (on Hetzner)
pinch = self.lib.mkLinuxSystem userName
[
./systems/hetzner/ax41.nix
./nixos/server/harden.nix
# Temporarily sharing with Uday.
{
users.users.uday.isNormalUser = true;
home-manager.users."uday" = {
imports = [
self.homeModules.common-linux
(import ./home/git.nix {
userName = "Uday Kiran";
userEmail = "udaycruise2903@gmail.com";
})
];
};
}
];
};
# Temporarily sharing with Uday.
{
users.users.uday.isNormalUser = true;
home-manager.users."uday" = {
imports = [
self.homeModules.common-linux
(import ./home/git.nix {
userName = "Uday Kiran";
userEmail = "udaycruise2903@gmail.com";
})
];
};
}
];
};
# Configurations for macOS systems (using nix-darwin)
darwinConfigurations =
let
mkMacosSystem = darwin.lib.darwinSystem;
defaultMacosSystem = mkMacosSystem rec {
system = "aarch64-darwin";
specialArgs = {
inherit inputs system;
rosettaPkgs = import nixpkgs { system = "x86_64-darwin"; };
};
modules = [
self.darwinModules.default
./systems/darwin.nix
{
home-manager.users.${userName} = { pkgs, ... }: {
imports = [
self.homeModules.common-darwin
./home/shellcommon.nix
(import ./home/git.nix {
userName = "Sridhar Ratnakumar";
userEmail = "srid@srid.ca";
})
];
programs.zsh.initExtra = ''
export PATH=/etc/profiles/per-user/${userName}/bin:/run/current-system/sw/bin/:$PATH
'';
};
}
];
};
in
{
default = defaultMacosSystem;
};
darwinConfigurations = {
default = self.lib.mkMacosSystem userName;
};
};
};
}

View file

@ -1,21 +1,49 @@
{ self, inputs, ... }:
{
# Configuration common to all macOS systems
flake.darwinModules = {
common = self.nixosConfig.common;
home.imports = [
inputs.home-manager.darwinModules.home-manager
({
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit inputs;
system = "aarch64-darwin";
};
})
];
default.imports =
self.darwinModules.common ++
self.darwinModules.home.imports;
flake = {
darwinModules = {
common = self.nixosConfig.common;
home.imports = [
inputs.home-manager.darwinModules.home-manager
({
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit inputs;
system = "aarch64-darwin";
};
})
];
default.imports =
self.darwinModules.common ++
self.darwinModules.home.imports;
};
mkMacosSystem = userName: inputs.darwin.lib.darwinSystem rec {
system = "aarch64-darwin";
specialArgs = {
inherit inputs system;
rosettaPkgs = import inputs.nixpkgs { system = "x86_64-darwin"; };
};
modules = [
self.darwinModules.default
../systems/darwin.nix
{
home-manager.users.${userName} = { pkgs, ... }: {
imports = [
self.homeModules.common-darwin
../home/shellcommon.nix
(import ../home/git.nix {
userName = "Sridhar Ratnakumar";
userEmail = "srid@srid.ca";
})
];
programs.zsh.initExtra = ''
export PATH=/etc/profiles/per-user/${userName}/bin:/run/current-system/sw/bin/:$PATH
'';
};
}
];
};
};
}

View file

@ -1,29 +1,52 @@
{ self, inputs, ... }:
{
# Configuration common to all Linux systems
flake.nixosModules = {
# These imports are platform independent.
common.imports = [
./caches
];
home.imports = [
inputs.home-manager.nixosModules.home-manager
({
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit inputs;
system = "x86_64-linux";
};
})
];
default.imports =
self.nixosModules.common.imports ++
self.nixosModules.home.imports ++
[
./self-ide.nix
./takemessh
./current-location.nix
flake = {
nixosModules = {
# These imports are platform independent.
common.imports = [
./caches
];
home.imports = [
inputs.home-manager.nixosModules.home-manager
({
home-manager.useGlobalPkgs = true;
home-manager.useUserPackages = true;
home-manager.extraSpecialArgs = {
inherit inputs;
system = "x86_64-linux";
};
})
];
default.imports =
self.nixosModules.common.imports ++
self.nixosModules.home.imports ++
[
./self-ide.nix
./takemessh
./current-location.nix
];
};
lib.mkLinuxSystem = userName: extraModules: inputs.nixpkgs.lib.nixosSystem rec {
system = "x86_64-linux";
# Arguments to pass to all modules.
specialArgs = { inherit system inputs; };
modules = [
self.nixosModules.default
{
home-manager.users.${userName} = { pkgs, ... }: {
imports = [
self.homeModules.common-linux
../home/shellcommon.nix
(import ../home/git.nix {
userName = "Sridhar Ratnakumar";
userEmail = "srid@srid.ca";
})
];
};
}
] ++ extraModules;
};
};
}