Compare commits

...

3 Commits

Author SHA1 Message Date
Giulio De Pasquale
4bc41031ef Removed stateVersion from common home role 2022-10-14 00:42:40 +02:00
Giulio De Pasquale
334a606f11 Created mkHMUser function in lib 2022-10-14 00:41:18 +02:00
Giulio De Pasquale
45935b999e Decouple system from flake 2022-10-13 19:05:31 +02:00
5 changed files with 55 additions and 35 deletions

View File

@ -12,38 +12,44 @@
outputs = outputs =
inputs@{ self, nixpkgs, nixos-unstable, home-manager, vim-extra-plugins }: inputs@{ self, nixpkgs, nixos-unstable, home-manager, vim-extra-plugins }:
let let
system = "x86_64-linux"; x64System = "x86_64-linux";
pkgs = import nixpkgs { wrapPkgsSystem = { system }:
inherit system; import nixpkgs rec {
config.allowUnfree = true; inherit system;
overlays = [ unstable = wrapUnstablePkgsSystem { inherit system; };
(final: prev: { inherit unstable; }) config.allowUnfree = true;
vim-extra-plugins.overlays.default overlays = [
]; (final: prev: { inherit unstable; })
vim-extra-plugins.overlays.default
];
};
wrapUnstablePkgsSystem = { system }:
import nixos-unstable {
inherit system;
config.allowUnfree = true;
};
pkgsX64 = wrapPkgsSystem { system = x64System; };
unstableX64 = wrapPkgsSystem { system = x64System; };
utilsX64 = import ./lib {
inherit nixpkgs nixos-unstable home-manager;
pkgs = pkgsX64;
unstable = unstableX64;
system = x64System;
}; };
unstable = import nixos-unstable {
inherit system;
config.allowUnfree = true;
};
utils = import ./lib {
inherit pkgs unstable nixpkgs nixos-unstable home-manager;
};
inherit (utils) host;
inherit (utils) user;
in { in {
nixosConfigurations = { nixosConfigurations = {
architect = host.mkHost { architect = utilsX64.host.mkHost {
name = "architect"; name = "architect";
users = [{ users = [{
user = "giulio"; user = "giulio";
roles = [ ]; roles = [ ];
}]; }];
}; };
gAluminum = host.mkHost { gAluminum = utilsX64.host.mkHost {
name = "gAluminum"; name = "gAluminum";
users = [{ users = [{
user = "giulio"; user = "giulio";
@ -51,7 +57,7 @@
}]; }];
roles = [ "gnome" ]; roles = [ "gnome" ];
}; };
proxy = host.mkHost { proxy = utilsX64.host.mkHost {
name = "proxy"; name = "proxy";
users = [ ]; users = [ ];
}; };

View File

@ -1,6 +1,6 @@
{ pkgs, unstable, nixpkgs, nixos-unstable, home-manager, ... }: rec { { pkgs, unstable, nixpkgs, nixos-unstable, home-manager, system, ... }: rec {
user = import ./user.nix { inherit pkgs unstable; }; user = import ./user.nix { inherit pkgs unstable system home-manager; };
host = import ./host.nix { host = import ./host.nix {
inherit pkgs nixpkgs unstable nixos-unstable home-manager user; inherit pkgs nixpkgs unstable nixos-unstable home-manager user system;
}; };
} }

View File

@ -1,10 +1,8 @@
{ pkgs, nixpkgs, nixos-unstable, unstable, home-manager, user, ... }: { pkgs, nixpkgs, nixos-unstable, unstable, home-manager, user, system, ... }:
{ {
mkHost = { name, users, roles ? [ ], imports ? [ ] }: mkHost = { name, users, roles ? [ ], imports ? [ ] }:
let let
system = "x86_64-linux";
mkRole = role: import (../roles + "/${role}.nix"); mkRole = role: import (../roles + "/${role}.nix");
users_mod = (map (u: users_mod = (map (u:

View File

@ -1,4 +1,4 @@
{ pkgs, unstable, ... }: { pkgs, unstable, home-manager, ... }:
{ {
mkUser = { name, roles ? [ ] }: mkUser = { name, roles ? [ ] }:
@ -20,7 +20,25 @@
extraGroups = [ "wheel" "plugdev" ]; extraGroups = [ "wheel" "plugdev" ];
}; };
home-manager.users.${name}.imports = [ (mkRole "common") ] home-manager.users.${name}.imports = [ (mkRole "common") ] ++ roles_mod;
++ roles_mod; };
mkHMUser = { name, roles }:
let
mkRole = role: import (../roles/home + "/${role}.nix");
roles_mod = (map (r: mkRole r) roles);
in home-manager.lib.homeManagerConfiguration {
inherit pkgs;
modules = [
{
home = {
username = name;
homeDirectory =
if pkgs.stdenv.isLinux then "/home/${name}" else "/Users/${name}";
stateVersion = "22.05";
};
}
(mkRole "common")
] ++ roles_mod;
}; };
} }

View File

@ -3,9 +3,7 @@
{ {
imports = [ ./zsh.nix ./git.nix ]; imports = [ ./zsh.nix ./git.nix ];
home = { home = {
stateVersion = "21.05";
sessionVariables = { sessionVariables = {
EDITOR = "nvim"; EDITOR = "nvim";
VISUAL = "nvim"; VISUAL = "nvim";