{ config, pkgs, ... }: { imports = [ ./git.nix ./ssh.nix ./starship.nix ]; home.shellAliases = { sync-all = "sync-emacs; sync-git; vdirsyncer sync; mbsync -a"; protonup = "sudo wg-quick up protonvpn && sudo wg"; protondown = "sudo wg-quick down protonvpn"; }; programs = { bash.enable = true; carapace.enable = true; fastfetch.enable = true; fd.enable = true; jq.enable = true; ripgrep.enable = true; bat = { enable = true; config.style = "plain,numbers,changes"; }; bottom = { enable = true; settings = { flags = { group_processes = true; temperature_type = "celsius"; battery = true; enable_gpu = true; enable_cache_memory = true; }; colors = let rainbow = with config.lib.stylix.scheme.withHashtag; [ red yellow green cyan blue magenta ]; in { cpu_core_colors = rainbow; gpu_core_colors = rainbow; }; }; }; cava = { enable = true; settings = { color = with config.lib.stylix.colors.withHashtag; { gradient = 1; gradient_count = 6; gradient_color_1 = "'${red}'"; gradient_color_2 = "'${yellow}'"; gradient_color_3 = "'${green}'"; gradient_color_4 = "'${cyan}'"; gradient_color_5 = "'${blue}'"; gradient_color_6 = "'${magenta}'"; }; }; }; direnv = { enable = true; nix-direnv.enable = true; }; eza = { enable = true; git = true; icons = true; extraOptions = [ "--octal-permissions" ]; }; fzf = { enable = true; defaultCommand = "${pkgs.fd}/bin/fd --type f"; changeDirWidgetCommand = "${pkgs.fd}/bin/fd --type d"; fileWidgetCommand = "${pkgs.fd}/bin/fd --type f"; }; readline = { enable = true; variables = { bell-style = "visible"; blink-matching-paren = "On"; colored-completion-prefix = "On"; colored-stats = "On"; completion-ignore-case = "On"; completion-map-case = "On"; editing-mode = "emacs"; expand-tilde = "On"; horizontal-scroll-mode = "On"; mark-directories = "On"; mark-symlinked-directories = "On"; visible-stats = "On"; }; }; zsh = { enable = true; enableCompletion = true; autocd = true; autosuggestion.enable = 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; }; 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} ''; }; }; }