Files
nixos/home/default.nix
T

65 lines
1.3 KiB
Nix
Raw Normal View History

2022-11-01 08:35:06 -05:00
{
2023-06-21 10:58:40 -05:00
inputs,
2022-11-01 08:35:06 -05:00
overlays,
...
}:
2022-08-02 01:50:50 -05:00
let
2023-03-06 23:31:58 -06:00
# I'm "greg" everywhere except Darwin where I'm "gregory.hellings"
user = system:
2023-06-21 10:58:40 -05:00
( if ( inputs.nixstable.lib.hasSuffix "-darwin" system ) then "gregory.hellings" else "greg" );
2023-03-06 23:31:58 -06:00
home = system: username:
2022-09-09 11:54:18 -05:00
if username == "root" then "/root" else
2023-06-21 10:58:40 -05:00
( if ( inputs.nixstable.lib.hasSuffix "-darwin" system ) then "/Users/${username}" else "/home/${username}" );
2022-08-02 01:50:50 -05:00
2022-12-24 00:36:36 -06:00
mkhome = {
system,
gui,
2023-03-06 23:31:58 -06:00
gnome,
username
2022-12-24 00:36:36 -06:00
}:
2022-09-09 11:54:18 -05:00
let
2023-06-20 11:00:12 -05:00
stateVersion = "23.05";
2023-03-06 23:31:58 -06:00
homeDirectory = home system username;
2023-05-09 12:01:29 -05:00
cfg = { home = { inherit username homeDirectory stateVersion; }; };
2022-09-09 11:54:18 -05:00
configDir = "${homeDirectory}/.config";
2023-06-21 10:58:40 -05:00
pkgs = import inputs.nixstable {
2023-03-06 23:31:58 -06:00
inherit overlays system;
2022-09-09 11:54:18 -05:00
config.allowUnfree = true;
config.xdg.configHome = configDir;
};
2023-06-21 10:58:40 -05:00
in inputs.hm.lib.homeManagerConfiguration rec {
2023-05-09 12:01:29 -05:00
inherit pkgs;
modules = [
(import ./home.nix {
2023-06-21 10:58:40 -05:00
inherit inputs pkgs gui gnome;
2023-05-09 12:01:29 -05:00
inherit (pkgs) config lib stdenv;
})
cfg
];
2022-08-02 01:50:50 -05:00
};
2022-12-24 00:36:36 -06:00
2023-06-21 10:58:40 -05:00
in inputs.flake-utils.lib.eachDefaultSystem (system: {
2023-03-06 23:31:58 -06:00
gui = mkhome {
inherit system;
gui = true;
gnome = false;
username = user system;
};
gdm = mkhome {
inherit system;
2022-12-24 00:36:36 -06:00
gui = true;
gnome = true;
2023-03-06 23:31:58 -06:00
username = user system;
2022-12-24 00:36:36 -06:00
};
2023-03-06 23:31:58 -06:00
cli = mkhome {
inherit system;
2022-12-24 00:36:36 -06:00
gui = false;
gnome = false;
2023-03-06 23:31:58 -06:00
username = user system;
2022-12-24 00:36:36 -06:00
};
2023-03-06 23:31:58 -06:00
})