{ inputs, config, pkgs, ... }: { programs.zsh = { enable = true; enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; completionInit = "autoload -U compinit && compinit -u"; shellAliases = { c = "cargo"; d = "docker"; dc = "docker compose"; g = "git"; n = "nvim"; vim = "nvim"; ls = "eza"; cat = "bat"; ps = "procs"; open = "xdg-open"; o = "xdg-open"; s = "ssh"; v = "nohup neovide &; disown"; # cd ".." = "cd .."; "..2" = "cd ../.."; "..3" = "cd ../../.."; }; history = { size = 10000; path = "${config.xdg.dataHome}/zsh/history"; }; plugins = [ { name = "fzf-tab"; src = pkgs.fetchFromGitHub { owner = "Aloxaf"; repo = "fzf-tab"; rev = "v1.1.2"; hash = "sha256-Qv8zAiMtrr67CbLRrFjGaPzFZcOiMVEFLg1Z+N6VMhg="; }; } { name = "zsh-autopair"; src = pkgs.fetchFromGitHub { owner = "hlissner"; repo = "zsh-autopair"; rev = "449a7c3"; hash = "sha256-3zvOgIi+q7+sTXrT+r/4v98qjeiEL4Wh64rxBYnwJvQ="; }; } ]; initContent = '' [[ -f ~/.secrets.zsh ]] && source ~/.secrets.zsh [[ -n "$KITTY_WINDOW_ID" ]] && alias ssh="kitten ssh" export PATH="$HOME/.bin:$PATH" export PATH="''${ASDF_DATA_DIR:-$HOME/.asdf}/shims:$PATH" export FOUNDRY_DISABLE_NIGHTLY_WARNING=true export LD_LIBRARY_PATH=${pkgs.zlib}/lib:${pkgs.icu}/lib:${pkgs.stdenv.cc.cc.lib}/lib:$LD_LIBRARY_PATH ''; }; programs.fzf = { enable = true; enableZshIntegration = true; }; programs.starship = { enable = true; settings = { add_newline = true; # Disable language modules to keep prompt short nodejs.disabled = true; python.disabled = true; rust.disabled = true; golang.disabled = true; java.disabled = true; ruby.disabled = true; php.disabled = true; elixir.disabled = true; elm.disabled = true; haskell.disabled = true; julia.disabled = true; kotlin.disabled = true; lua.disabled = true; nim.disabled = true; nix_shell.disabled = true; ocaml.disabled = true; perl.disabled = true; purescript.disabled = true; scala.disabled = true; swift.disabled = true; terraform.disabled = true; zig.disabled = true; dotnet.disabled = true; }; }; home.packages = with pkgs; [ btop inxi ripgrep pass bat procs eza asdf-vm fd tdf ]; home.sessionVariables = { "ASDF_NODEJS_AUTO_ENABLE_COREPACK" = "true"; }; home.sessionPath = [ "./.git/safe/../../node_modules/.bin" "./.git/safe/../../bin" ]; }