{ lib, pkgs, ... }: let dircolors-solarized = pkgs.fetchFromGitHub { owner = "seebi"; repo = "dircolors-solarized"; rev = "65d4d595ceca96166139862131a006fa3079e00a"; sha256 = "1nl5rs24gi7zqg7nqsbf9fa94yggwzqf3n3imxgfywl8jny3cj1q"; meta.license = lib.licenses.mit; }; in { programs = { fzf = { enable = true; changeDirWidgetCommand = "fd --color always --type d"; changeDirWidgetOptions = [ "--preview 'exa --tree --color=always -L 4 {}'" ]; defaultCommand = "fd --color always"; defaultOptions = [ "--ansi" "--color=bg+:#073642,bg:#002b36,spinner:#2aa198,hl:#268bd2" "--color=fg:#839496,header:#268bd2,info:#b58900,pointer:#2aa198" "--color=marker:#2aa198,fg+:#eee8d5,prompt:#b58900,hl+:#268bd2" ]; fileWidgetCommand = "fd --color always --type f"; fileWidgetOptions = [ "--preview 'head -n 100 {}'" ]; }; direnv = { enable = true; enableNixDirenvIntegration = true; }; starship = { enable = true; settings = { add_newline = false; }; }; zsh = { enable = true; history = { save = 100000; size = 100000; }; plugins = [ { name = "zsh-nix-shell"; file = "nix-shell.plugin.zsh"; src = "${pkgs.zsh-nix-shell}/share/zsh-nix-shell"; } ]; shellAliases = { cp = "cp --reflink=auto"; # TODO: remove with coreutils > 8.32 exa = "exa --git --binary"; ipy = "ipython3"; l = "exa -l"; la = "exa -la"; ll = "exa -l"; ls = "exa"; userctl = "systemctl --user"; vim = "nvim"; vimdiff = "nvim -d"; ip = "ip --color=auto"; }; envExtra = '' export _JAVA_OPTIONS="-Dawt.useSystemAAFontSettings=on" ''; initExtra = '' eval $(${pkgs.coreutils}/bin/dircolors -b ${dircolors-solarized}/dircolors.ansi-universal) # no sad smiley (starship shows exit status) zstyle ':prompt:grml:right:setup' items # grml config sets these but systemd --user import-environment doesn’t # like escape sequences in environment variables # FIXME: remove with systemd 248 (https://github.com/systemd/systemd/commit/30927a24848c4d727f7619cc74b878f098cdd724) unset \ LESS_TERMCAP_mb \ LESS_TERMCAP_md \ LESS_TERMCAP_me \ LESS_TERMCAP_se \ LESS_TERMCAP_so \ LESS_TERMCAP_ue \ LESS_TERMCAP_us source ${../files/zsh/pass-wrappers.zsh} ''; }; }; }