forked from irl/nix-configs
62 lines
1.4 KiB
Nix
62 lines
1.4 KiB
Nix
{
|
|
config,
|
|
lib,
|
|
outputs,
|
|
pkgs,
|
|
...
|
|
}:
|
|
{
|
|
imports = builtins.attrValues outputs.homeManagerModules;
|
|
|
|
options.role = lib.mkOption {
|
|
description = "Home role to set up";
|
|
default = "minimal";
|
|
type =
|
|
with lib.types;
|
|
enum [
|
|
"desktop"
|
|
"minimal"
|
|
"server"
|
|
];
|
|
};
|
|
|
|
config = {
|
|
feature.cli.enable = builtins.elem config.role [
|
|
"desktop"
|
|
"minimal"
|
|
"server"
|
|
];
|
|
feature.firefox.enable = config.role == "desktop";
|
|
feature.git.enable = builtins.elem config.role [
|
|
"desktop"
|
|
"server"
|
|
];
|
|
feature.ops.enable = config.role == "desktop";
|
|
feature.tmux.enable = builtins.elem config.role [
|
|
"desktop"
|
|
"server"
|
|
];
|
|
feature.vim.enable = builtins.elem config.role [
|
|
"desktop"
|
|
"minimal"
|
|
"server"
|
|
];
|
|
|
|
home.username = "irl";
|
|
home.homeDirectory =
|
|
if lib.strings.hasSuffix "darwin" pkgs.system then "/Users/irl" else "/home/irl";
|
|
home.file.".config/nix/nix.conf".text = ''
|
|
experimental-features = nix-command flakes pipe-operators
|
|
'';
|
|
home.packages = with pkgs; [
|
|
neofetch
|
|
];
|
|
home.shellAliases = {
|
|
hms = "home-manager switch --flake ~/.config/nix-configs#irl-${config.role}-${pkgs.system}";
|
|
drs = "sudo darwin-rebuild switch --flake ~/.config/nix-configs";
|
|
};
|
|
home.stateVersion = "25.05";
|
|
|
|
programs.home-manager.enable = true;
|
|
};
|
|
}
|