{ config, lib, pkgs, ... }: { imports = [ ./git.nix ./ssh.nix ./starship.nix ]; home = { packages = with pkgs; [ rclone git-sync du-dust ]; shellAliases = { update = "sudo nixos-rebuild switch"; sync-all = "gsync; esync; 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; nix-index.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; }; }; }; 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"; }; }; zellij = { enable = true; settings = { default_mode = "locked"; mouse_mode = true; copy_command = lib.mkIf config.wayland.windowManager.sway.enable "wl-copy"; copy_on_select = true; }; }; 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} ''; }; }; }