{ pkgs, lib, ... }: let home-manager-config = { uid, username, }: let HOME = "/home/${username}"; in { ${username} = { config, ... }: { imports = [ ./nvim ./tmux.nix ]; home.username = username; home.homeDirectory = "${HOME}"; home.stateVersion = "25.11"; home.enableNixpkgsReleaseCheck = false; home.sessionVariables = { DISPLAY = ":1"; }; programs = { chromium.enable = true; claude-code.enable = true; opencode.enable = true; ssh = { enable = true; enableDefaultConfig = false; matchBlocks = { "*" = { serverAliveInterval = 60; serverAliveCountMax = 3; }; "github.com" = { identityFile = "${HOME}/.ssh/id_ed25519"; }; }; }; delta = { enable = true; options = { navigate = true; line-numbers = true; side-by-side = true; }; enableGitIntegration = true; }; git = { enable = true; lfs.enable = true; signing = { key = "${HOME}/.ssh/id_ed25519.pub"; signByDefault = true; }; includes = [ { condition = "gitdir:~/dealwise/"; contents = { user = { name = "felipematos"; email = "5471818+fnzr@users.noreply.github.com"; signingkey = "${HOME}/.ssh/id_ed25519.pub"; }; }; } { contents = { user = { name = "${username}"; email = "${username}@sandbox.dev"; signingkey = "${HOME}/.ssh/id_ed25519.pub"; }; }; } ]; settings = { user = { email = "${username}@sandbox.dev"; name = "${username}"; signingkey = "${HOME}/.ssh/id_ed25519.pub"; }; gpg.format = "ssh"; commit.gpgsign = true; tag.gpgsign = true; core = { editor = "nvim"; whitespace = "fix,only-indent-error,trailing-space,space-before-tab"; quotepath = false; }; diff = { algorithm = "histogram"; renames = "copies"; tool = "nvim"; }; difftool = { prompt = false; nvim.cmd = "nvim -d $LOCAL $REMOTE"; }; merge = { conflictstyle = "zdiff3"; tool = "nvim"; }; mergetool = { prompt = false; keepBackup = false; nvim.cmd = "nvim -d $LOCAL $REMOTE $MERGED -c 'wincmd w' -c 'wincmd J'"; }; init = { defaultBranch = "master"; }; push = { autoSetupRemote = true; default = "current"; }; pull = { rebase = true; }; fetch = { prune = true; }; help = { autocorrect = "prompt"; }; }; }; fish = { enable = true; plugins = [ { name = "puffer"; src = pkgs.fetchFromGitHub { owner = "nickeb96"; repo = "puffer-fish"; rev = "83174b0"; sha256 = "sha256-Dhx5+XRxJvlhdnFyimNxFyFiASrGU4ZwyefsDwtKnSg="; }; } ]; interactiveShellInit = '' set fish_greeting bind ctrl-space "" ''; }; starship.enable = true; }; custom.tmux.enable = true; custom.neovim = { enable = true; colorscheme = "rose-pine-moon"; hostname = "amelia"; }; xdg.configFile."containers/containers.conf".text = '' [engine] compose_warning_logs=false events_logger="file" [containers] log_driver="k8s-file" ''; xdg.configFile."opencode/opencode.json".text = builtins.toJSON { "$schema" = "https://opencode.ai/config.json"; # provider = { # ollama = { # model = "qwen3.6"; # base_url = "http://localhost:11434"; # }; # }; }; xdg.userDirs = { enable = true; setSessionVariables = false; extraConfig = { XDG_CACHE_HOME = "$HOME/.cache"; }; }; }; }; in { home-manager.users = lib.mkMerge [ (home-manager-config { uid = 1002; username = "agent"; }) ]; }