mirror of
https://github.com/jbowdre/dotfiles.git
synced 2024-12-22 12:22:17 +00:00
initial work to support multiple home configs
This commit is contained in:
parent
013112f692
commit
5a05fa411c
3 changed files with 84 additions and 11 deletions
19
flake.lock
19
flake.lock
|
@ -36,10 +36,27 @@
|
|||
"type": "github"
|
||||
}
|
||||
},
|
||||
"nixpkgs-23_05": {
|
||||
"locked": {
|
||||
"lastModified": 1689956312,
|
||||
"narHash": "sha256-NV9yamMhE5jgz+ZSM2IgXeYqOvmGIbIIJ+AFIhfD7Ek=",
|
||||
"owner": "nixos",
|
||||
"repo": "nixpkgs",
|
||||
"rev": "6da4bc6cb07cba1b8e53d139cbf1d2fb8061d967",
|
||||
"type": "github"
|
||||
},
|
||||
"original": {
|
||||
"owner": "nixos",
|
||||
"ref": "nixos-23.05",
|
||||
"repo": "nixpkgs",
|
||||
"type": "github"
|
||||
}
|
||||
},
|
||||
"root": {
|
||||
"inputs": {
|
||||
"home-manager": "home-manager",
|
||||
"nixpkgs": "nixpkgs"
|
||||
"nixpkgs": "nixpkgs",
|
||||
"nixpkgs-23_05": "nixpkgs-23_05"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
|
74
flake.nix
74
flake.nix
|
@ -3,27 +3,81 @@
|
|||
|
||||
inputs = {
|
||||
nixpkgs.url = "github:nixos/nixpkgs/nixpkgs-unstable";
|
||||
nixpkgs-23_05.url = "github:nixos/nixpkgs/nixos-23.05";
|
||||
home-manager = {
|
||||
url = "github:nix-community/home-manager";
|
||||
inputs.nixpkgs.follows = "nixpkgs";
|
||||
};
|
||||
};
|
||||
|
||||
outputs = {nixpkgs, home-manager, ...}:
|
||||
outputs = {nixpkgs, home-manager, ...} @inputs:
|
||||
let
|
||||
system = "x86_64-linux";
|
||||
in {
|
||||
defaultPackage.${system} = home-manager.defaultPackage.${system};
|
||||
# Overlays enable you to customize the Nixpkgs attribute set
|
||||
overlays = [
|
||||
(self: super:
|
||||
let
|
||||
system = self.stdenv.system;
|
||||
in {
|
||||
pkgs_2305 = inputs.nixpkgs-23_05.legacyPackages.${system};
|
||||
pkgs_aarch64 = import nixpkgs {
|
||||
system = "aarch64-${builtins.head (builtins.match ".+-([[:lower:]]+)" system)}";
|
||||
};
|
||||
pkgs_x86_64 = nixpkgs.legacyPackages.${"x86_64-${builtins.head (builtins.match ".+-([[:lower:]]+)" system)}"};
|
||||
})
|
||||
];
|
||||
|
||||
# Systems supported
|
||||
allSystems = [
|
||||
"aarch64-linux"
|
||||
"x86_64-linux"
|
||||
];
|
||||
|
||||
importPkgs = (system: import nixpkgs {
|
||||
inherit overlays system;
|
||||
config.allowUnfree = true;
|
||||
});
|
||||
|
||||
# Helper to provide system-specific attributes
|
||||
forAllSystems = f: nixpkgs.lib.genAttrs allSystems (system: f {
|
||||
inherit system;
|
||||
pkgs = (importPkgs system);
|
||||
});
|
||||
|
||||
in
|
||||
rec {
|
||||
inherit allSystems importPkgs forAllSystems home-manager;
|
||||
|
||||
overlays = { };
|
||||
|
||||
packages = forAllSystems
|
||||
({ pkgs, system }: rec {
|
||||
home-penguin = homeConfigurations."john@penguin".activationPackage;
|
||||
home-pixnix = homeConfigurations."john@pixnix".activationPackage;
|
||||
all = pkgs.symlinkJoin {
|
||||
name = "all";
|
||||
paths = [
|
||||
home-penguin
|
||||
home-pixnix
|
||||
];
|
||||
};
|
||||
default = all;
|
||||
});
|
||||
|
||||
homeConfigurations = {
|
||||
"john@penguin" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = import nixpkgs {
|
||||
system = "${system}";
|
||||
config.allowUnfree = true;
|
||||
};
|
||||
pkgs = importPkgs "x86_64-linux";
|
||||
|
||||
modules = [ ./nix/machines/penguin/home.nix ];
|
||||
modules = [
|
||||
./nix/machines/penguin/home.nix
|
||||
];
|
||||
};
|
||||
"john@pixnix" = home-manager.lib.homeManagerConfiguration {
|
||||
pkgs = importPkgs "x86_64-linux";
|
||||
|
||||
modules = [
|
||||
./nix/common/home.nix
|
||||
];
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
}
|
||||
|
|
|
@ -70,6 +70,8 @@
|
|||
programs.git = {
|
||||
enable = true;
|
||||
delta.enable = true;
|
||||
userEmail = "john@bowdre.net";
|
||||
userName = "John Bowdre";
|
||||
extraConfig = {
|
||||
init.defaultBranch = "main";
|
||||
pull.ff = "only";
|
||||
|
|
Loading…
Reference in a new issue