{ 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; }; }