{ config, pkgs, hmLib, lib, userOptions, ... }: { home.sessionVariables = { EDITOR = "nvim"; }; home.sessionPath = [ "${userOptions.userHome}/.cargo/bin" ]; home.activation.coursierSetup = hmLib.hm.dag.entryAfter [ "writeBoundary" ] '' $DRY_RUN_CMD ${pkgs.coursier}/bin/cs setup --env --jvm 21 ''; programs.fzf = { enable = true; enableZshIntegration = true; }; programs.zsh = { enable = true; enableCompletion = true; initContent = '' export PATH="$HOME/.local/bin:$PATH" bindkey '\e.' insert-last-word if java_home=$(cs java-home --jvm 21 2>/dev/null); then export JAVA_HOME="$java_home" fi ''; shellAliases = { fmt-nix = "nix run nixpkgs#nixfmt-tree"; }; plugins = [ { name = "fzf-tab"; src = pkgs.fetchFromGitHub { owner = "Aloxaf"; repo = "fzf-tab"; rev = "v1.3.0"; sha256 = "8atbysoOyCBW2OYKmdc91x9V/Mk3eyg3hvzvhJpQ32w="; }; } ]; }; programs.git = { enable = true; settings = { core = { editor = "vim"; pager = "delta"; }; user = { email = "${userOptions.gitEmail}"; name = "${userOptions.gitName}"; }; pull.rebase = true; merge.conflictstyle = "zdiff3"; }; }; services.gpg-agent = { enable = true; }; programs.tmux = { enable = true; extraConfig = '' set -g default-command "${pkgs.zsh}/bin/zsh" ''; }; programs.starship = { enable = true; enableZshIntegration = true; }; }