{ lib, pkgs, ... }: { imports = [ ./git.nix ./bottom.nix ]; xdg.configFile = let variants = ["Latte" "Frappe" "Macchiato" "Mocha"]; mkVariant = variant: let fname = "catppuccin${variant}.tmTheme"; in { name = "bat/themes/${fname}"; value = {source = ./. + "/${fname}";}; }; in builtins.listToAttrs (lib.lists.forEach variants mkVariant); programs = { bash.enable = true; bat = { enable = true; config.theme = "catppuccinMocha"; }; carapace.enable = true; eza = { enable = true; enableAliases = true; git = true; icons = true; extraOptions = ["--octal-permissions"]; }; readline = { enable = true; includeSystemConfig = true; extraConfig = '' set completion-ignore-case On ''; }; direnv = { enable = true; nix-direnv.enable = true; }; fzf = { enable = true; defaultCommand = "${pkgs.fd}/bin/fd --type f"; changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d"; fileWidgetCommand = "${pkgs.fd}/bin/fd --type f"; }; ssh = { enable = true; forwardAgent = true; compression = true; serverAliveInterval = 15; serverAliveCountMax = 3; controlMaster = "auto"; controlPersist = "10s"; extraConfig = '' AddKeysToAgent=yes SetEnv TERM=xterm-256color ''; matchBlocks = { "git*".user = "git"; "legion" = { user = "pixelifytica"; hostname = "192.168.0.31"; }; "vanguard" = { user = "pixelifytica"; hostname = "192.168.0.90"; }; "ionos" = { user = "root"; hostname = "77.68.67.133"; }; "freia" = { user = "elitherl"; hostname = "freia020.hpc.l"; forwardX11Trusted = true; }; "heimdall" = { user = "elitherl"; hostname = "heimdall003.jet.uk"; forwardX11Trusted = true; }; }; }; starship = { enable = true; enableTransience = true; settings = { add_newline = false; character = { success_symbol = "[󰁔 ](bold green)"; error_symbol = "[󰁔 ](bold red)"; }; command_timeout = 2000; container = {symbol = " ";}; directory = { truncation_length = 2; fish_style_pwd_dir_length = 1; truncate_to_repo = false; }; direnv = {disabled = false;}; git_branch = { symbol = " "; only_attached = true; ignore_branches = ["master" "main"]; }; git_commit = { format = "[ $hash | $tag]($style) "; tag_symbol = " "; tag_disabled = false; }; git_metrics = {disabled = false;}; git_status = { stashed = " "; ahead = " "; behind = " "; up_to_date = ""; diverged = " "; conflicted = " "; deleted = " "; renamed = " "; modified = " "; staged = " "; untracked = " "; typechanged = " "; }; hostname = { ssh_only = true; ssh_symbol = "󰢹 "; }; jobs = {symbol = "󰈏 ";}; line_break = {disabled = false;}; localip = {disabled = false;}; memory_usage = {disabled = false;}; os = { disabled = false; format = "on [$symbol]($style) "; }; python = {python_binary = "python3";}; shell = { disabled = false; format = "using [$indicator ]($style)"; }; status = { disabled = false; map_symbol = true; pipestatus = true; symbol = " "; success_symbol = ""; not_executable_symbol = " "; not_found_symbol = " "; sigint_symbol = " "; signal_symbol = " "; }; sudo = {disabled = false;}; }; }; zsh = { enable = true; enableCompletion = true; enableAutosuggestions = true; syntaxHighlighting.enable = true; enableVteIntegration = true; autocd = true; historySubstringSearch.enable = true; history = { extended = true; ignoreDups = true; ignoreSpace = true; }; shellAliases = { nixos-upgrade = "systemctl start nixos-upgrade.service"; nixos-status = "systemctl status nixos-upgrade.service"; }; oh-my-zsh = { enable = true; plugins = ["colored-man-pages" "lol" "rand-quote"]; theme = ""; }; completionInit = '' autoload -Uz +X compinit && compinit ## case insensitive path-completion zstyle ':completion:*' matcher-list 'm:{a-zA-Z}={A-Za-z}' zstyle ':completion:*' menu select ''; initExtra = "source ${./transient.zsh}\n"; }; }; }