{ 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"; }; eza = { enable = true; enableAliases = true; git = true; icons = true; extraOptions = ["--octal-permissions"]; }; 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; c = {symbol = " ";}; 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;}; lua = {symbol = " ";}; memory_usage = {disabled = false;}; nodejs = {symbol = " ";}; os = { disabled = false; format = "on [$symbol]($style) "; symbols = { Alpine = " "; Arch = " "; Artix = " "; CentOS = " "; Debian = " "; EndeavourOS = " "; Fedora = " "; FreeBSD = " "; Gentoo = " "; Illumos = " "; Linux = " "; Macos = " "; Manjaro = " "; Mint = " "; NixOS = " "; OpenBSD = " "; openSUSE = " "; Pop = " "; Raspbian = " "; Redhat = " "; RedHatEnterprise = " "; Solus = " "; SUSE = " "; Ubuntu = " "; Unknown = " "; Windows = " "; }; }; python = { python_binary = "python3"; symbol = " "; }; 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; enableVteIntegration = true; autocd = true; defaultKeymap = "emacs"; syntaxHighlighting = { enable = true; highlighters = ["brackets" "cursor"]; }; historySubstringSearch.enable = true; history = { extended = true; share = true; ignoreDups = true; ignoreAllDups = true; ignoreSpace = true; expireDuplicatesFirst = true; }; shellAliases = { nixos-upgrade = "systemctl start nixos-upgrade.service"; nixos-status = "systemctl status nixos-upgrade.service"; }; initExtra = '' ## completion config and styling zstyle ':completion:*' matcher-list 'm:{a-z}={A-Za-z}' zstyle ':completion:*' menu 'select=long-list' ## transient prompt source ${./transient.zsh} ''; }; }; }