# # Setup # set -U fish_greeting '' function fish_user_key_bindings # ctrl-del bind \e\[3\;5~ kill-word # ctrl-backspace bind \cH backward-kill-path-component end # # Variables # fish_add_path ~/.local/bin fish_add_path ~/.go/bin fish_add_path ~/.volta/bin/node fish_add_path ~/.spicetify set -gx TERM xterm-256color set -gx VISUAL emacsclient -c set -gx EDITOR nvim # Yubikey set -gx SSH_AUTH_SOCK (gpgconf --list-dirs agent-ssh-socket) set -gx GPG_TTY (tty) gpg-connect-agent updatestartuptty /bye >/dev/null # # Functions # # Shorthand abbr -a g git function ls; exa $argv; end function ll; exa -l $argv; end function vim; nvim $argv; end function k; kubectl $argv; end function ka; kubectl $argv --all-namespaces; end function kw; watch -n1 "kubectl $argv"; end function kx; kubectl config use-context $argv; end # Dotfiles management function dots if test (count $argv) -eq 1 if test "$argv[1]" = "ls" dots ls-tree --full-tree -r --name-only HEAD return end if test "$argv[1]" = "sync" for f in (dots ls-files --modified) dots add $f end dots commit -m "$(date +'%d %b %Y %T')" dots push return end end git --git-dir=$HOME/.dotfiles --work-tree=$HOME $argv end # Reload fish configuration function reload . ~/.config/fish/config.fish end # Editor shorthand function e emacsclient -nc $argv[1] end function ez set target (f $argv) if test -f $target e $target else return 1 end end function v nvim $argv[1] end function vz set target (f $argv) if test -f $target v $target else return 1 end end # Process Management set ps "-ax" "-o" "pid,user,pcpu,pmem,start_time,cmd" function pg ps $ps | head -n1 ps $ps -h | rg -v rg | rg $argv end function pk if test (count $argv) -gt 0 set pids (pg $argv | tail -n +2 | awk '{print $1}') else set pids (ps $ps -h | fzf -m | awk '{print $1}') end if test -n "$pids" for pid in $pids kill $pid end echo "Killed $(count $argv)" else return 1 end end # Archive creation function tcz set dir $argv[1] tar cvfz "$dir.tar.gz" "$dir" end function tcj set dir $argv[1] tar cvfJ "$dir.tar.xz" "$dir" end function tx tar xvf $argv[1] end # Clipboard function clip xclip -sel c end # # Theme: Tomorrow Night Bright # set -U fish_color_normal normal set -U fish_color_command c397d8 set -U fish_color_quote b9ca4a set -U fish_color_redirection 70c0b1 set -U fish_color_end c397d8 set -U fish_color_error d54e53 set -U fish_color_param 7aa6da set -U fish_color_comment e7c547 set -U fish_color_match --background=brblue set -U fish_color_selection white --bold --background=brblack set -U fish_color_search_match bryellow --background=brblack set -U fish_color_history_current --bold set -U fish_color_operator 00a6b2 set -U fish_color_escape 00a6b2 set -U fish_color_cwd green set -U fish_color_cwd_root red set -U fish_color_valid_path --underline set -U fish_color_autosuggestion 969896 set -U fish_color_user brgreen set -U fish_color_host normal set -U fish_color_cancel --reverse set -U fish_pager_color_prefix normal --bold --underline set -U fish_pager_color_progress brwhite --background=cyan set -U fish_pager_color_completion normal set -U fish_pager_color_description B3A06D set -U fish_pager_color_selected_background --background=brblack