{ config, lib, pkgs, ... }: { stylix.targets = { avizo.enable = true; foot.enable = true; fzf.enable = true; rofi.enable = true; swaylock.enable = true; xresources.enable = true; }; xdg.configFile."bat/themes/Catppuccin-mocha.tmTheme".source = ./Catppuccin-mocha.tmTheme; programs = rec { bash.enable = true; bat = { enable = true; config.theme = "Catppuccin-mocha"; }; bottom = { enable = true; settings.colors = { table_header_color = "#f5e0dc"; all_cpu_color = "#f5e0dc"; avg_cpu_color = "#eba0ac"; cpu_core_colors = [ "#f38ba8" "#fab387" "#f9e2af" "#a6e3a1" "#74c7ec" "#cba6f7" ]; ram_color = "#a6e3a1"; swap_color = "#fab387"; rx_color = "#a6e3a1"; tx_color = "#f38ba8"; widget_title_color = "#f2cdcd"; border_color = "#585b70"; highlighted_border_color = "#f5c2e7"; text_color = "#cdd6f4"; graph_color = "#a6adc8"; cursor_color = "#f5c2e7"; selected_text_color = "#11111b"; selected_bg_color = "#cba6f7"; high_battery_color = "#a6e3a1"; medium_battery_color = "#f9e2af"; low_battery_color = "#f38ba8"; gpu_core_colors = [ "#74c7ec" "#cba6f7" "#f38ba8" "#fab387" "#f9e2af" "#a6e3a1" ]; arc_color = "#89dceb"; }; }; eza = { enable = true; git = true; icons = true; enableAliases = true; extraOptions = [ "--octal-permissions" ]; }; readline = { enable = true; includeSystemConfig = true; extraConfig = '' set completion-ignore-case On ''; }; direnv = { enable = true; nix-direnv.enable = true; enableBashIntegration = true; enableZshIntegration = true; }; fzf = { enable = true; enableBashIntegration = true; enableZshIntegration = true; }; git = { enable = true; userName = "Evie Litherland-Smith"; userEmail = lib.mkDefault "evie@xenia.me.uk"; delta = { enable = true; options = { line-numbers = true; hyprlinks = true; navigate = true; side-by-side = true; syntax-theme = bat.config.theme; }; }; extraConfig = { github.user = "elitherl"; pull.rebase = false; init.defaultBranch = "main"; merge.conflictstyle = "diff3"; diff.colorMoved = "default"; }; }; ssh = { enable = true; forwardAgent = true; addKeysToAgent = "yes"; compression = true; serverAliveInterval = 15; serverAliveCountMax = 3; controlMaster = "auto"; controlPersist = "10s"; extraConfig = '' SetEnv TERM=xterm-256color ''; matchBlocks = { "git*".user = "git"; "legion" = { user = "xenia"; hostname = "192.168.1.230"; }; "ionos" = { user = "root"; hostname = "77.68.67.133"; }; "freia" = { user = "elitherl"; hostname = "freia020.hpc.l"; localForwards = [{ bind.port = 5915; host = { address = "127.0.0.1"; port = 5915; }; }]; }; "heimdall" = { user = "elitherl"; hostname = "heimdall003.jet.uk"; localForwards = [{ bind.port = 6702; host = { address = "127.0.0.1"; port = 6702; }; }]; }; }; }; starship = { enable = true; enableBashIntegration = true; enableZshIntegration = true; enableTransience = true; settings = { command_timeout = 1000; add_newline = true; character = { success_symbol = "[❯](bold green)"; error_symbol = "[❯](bold red)"; }; directory = { truncation_length = 2; fish_style_pwd_dir_length = 1; read_only = " 󰉐"; truncate_to_repo = false; }; line_break.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; hostname = { ssh_only = true; ssh_symbol = "󰢹 "; }; localip.disabled = false; memory_usage = { disabled = false; symbol = "󰍛 "; }; nix_shell.symbol = "󱄅 "; os = { disabled = false; format = "on [$symbol $name ]($style)"; style = "bold blue"; symbols = { Alpine = " "; Android = " "; Arch = " "; CentOS = " "; Debian = " "; EndeavourOS = " "; Fedora = " "; FreeBSD = " "; Gentoo = " "; Illumos = " "; Linux = " "; Macos = " "; Manjaro = " "; Mint = "󰣭 "; NixOS = " "; OpenBSD = " "; openSUSE = " "; Pop = " "; Raspbian = " "; Redhat = " "; RedHatEnterprise = " "; Solus = " "; SUSE = " "; Ubuntu = " "; Unknown = " "; Windows = " "; }; }; python = { symbol = "󰌠 "; python_binary = "python3"; }; rust = { symbol = "󱘗 "; }; shell = { disabled = false; format = "using [$indicator ]($style)"; }; sudo = { disabled = false; symbol = "󰪋 "; }; }; }; zsh = { enable = true; enableAutosuggestions = true; enableCompletion = true; syntaxHighlighting.enable = true; enableVteIntegration = true; autocd = true; historySubstringSearch.enable = true; initExtra = '' git-sync-all () { for DIRECTORY in $HOME/.nixos $HOME/.emacs $HOME/.password-store $HOME/.elfeed $HOME/Documents/Org $HOME/Documents/References; do echo "--- $DIRECTORY ---" mkdir -p $DIRECTORY cd $DIRECTORY && git-sync cd - done } xdg-query-program () { FILETYPE=$(xdg-mime query filetype $@) DEFAULT=$(xdg-mime query default $FILETYPE) echo "$FILETYPE -> $DEFAULT" } rsync-local-config () { HOST=$1 for TARGET in bat git starship.toml; do SOURCE="${config.xdg.configHome}/$TARGET" TMP_TARGET=/tmp/rsync-local-config TMP_SOURCE=$TMP_TARGET NIX_SED="${pkgs.gnused}/bin/sed -i 's|/nix/.*/bin/||g'" NIX_REPLACE="$NIX_SED $TMP_TARGET" if [[ -e ${config.xdg.configHome}/$TARGET ]]; then if [[ -d $SOURCE ]]; then SOURCE=$SOURCE/ TMP_SOURCE=$TMP_SOURCE/ NIX_REPLACE="${pkgs.fd}/bin/fd -g '**' $TMP_TARGET -tfile -x $NIX_SED {};" fi ${pkgs.rsync}/bin/rsync -avzL --exclude=".git*" $SOURCE $TMP_TARGET ${pkgs.coreutils}/bin/chmod u+rw -R $TMP_SOURCE ${pkgs.bash}/bin/sh -c "$NIX_REPLACE" ${pkgs.rsync}/bin/rsync -avzL --delete --exclude=".git*" $TMP_SOURCE $HOST:.config/$TARGET ${pkgs.coreutils}/bin/rm -rf $TMP_SOURCE fi done } ''; oh-my-zsh = { enable = true; plugins = [ "colored-man-pages" "lol" "rand-quote" ]; theme = ""; }; }; }; }