{ pkgs, lib, isDarwin, ... }: { programs.zsh = { enable = true; enableCompletion = true; autosuggestion.enable = true; syntaxHighlighting.enable = true; shellAliases = { ll = "ls -alF"; la = "ls -A"; l = "ls -CF"; tp = "tree -I '__init__*' -I '__pycache__'"; clear = "${pkgs.ncurses}/bin/clear"; zide = "zellij --layout ide"; }; sessionVariables = { LANG = "en_US.UTF-8"; RUST_BACKTRACE = "1"; TYPST_FONT_PATHS = "$HOME/.fonts"; }; oh-my-zsh = { enable = true; theme = ""; plugins = [ "git" "gh" "git-auto-fetch" "rust" "ssh" ]; }; initContent = '' # Conditional Editor logic if [[ -n $SSH_CONNECTION ]]; then export EDITOR='nano' else export EDITOR='hx' export GIT_EDITOR='hx' fi ''; }; home.sessionVariables = { # ghostty (GTK) ships terminfo under $out/share on Linux. The macOS # ghostty-bin bundles its own, so only add ncurses there. TERMINFO_DIRS = lib.concatStringsSep ":" ( lib.optional (!isDarwin) "${pkgs.ghostty}/share/terminfo" ++ [ "${pkgs.ncurses}/share/terminfo" ] ); }; }