## Set values # Hide welcome message set fish_greeting set VIRTUAL_ENV_DISABLE_PROMPT "1" # set -x MANPAGER "sh -c 'col -bx | bat -l man -p'" # Set settings for https://github.com/franciscolourenco/done set -U __done_min_cmd_duration 10000 set -U __done_notification_urgency_level low # Custom John Costa Commands alias v='nvim' alias lg='lazygit' alias p='pnpm' alias px='pnpx' alias s='tmux new-session -c $(bash ~/Code/dotfiles/Scripts/StartWork.bash && cat ~/.startwork.txt | fzf)' alias tasker='go run /home/john/Code/dotfiles/Scripts/CreateTask.go' alias mp4='bash ~/Code/dotfiles/Scripts/MkvToMp4.bash' ## Environment setup # Apply .profile source ~/.profile # Add ~/.local/bin to PATH if test -d ~/.local/bin if not contains -- ~/.local/bin $PATH set -p PATH ~/.local/bin end end # Add depot_tools to PATH if test -d ~/Applications/depot_tools if not contains -- ~/Applications/depot_tools $PATH set -p PATH ~/Applications/depot_tools end end ## Starship prompt if status --is-interactive source ("/usr/bin/starship" init fish --print-full-init | psub) end ## Functions # Functions needed for !! and !$ https://github.com/oh-my-fish/plugin-bang-bang function __history_previous_command switch (commandline -t) case "!" commandline -t $history[1]; commandline -f repaint case "*" commandline -i ! end end function __history_previous_command_arguments switch (commandline -t) case "!" commandline -t "" commandline -f history-token-search-backward case "*" commandline -i '$' end end if [ "$fish_key_bindings" = fish_vi_key_bindings ]; bind -Minsert ! __history_previous_command bind -Minsert '$' __history_previous_command_arguments else bind ! __history_previous_command bind '$' __history_previous_command_arguments end # Fish command history function history builtin history --show-time='%F %T ' end function backup --argument filename cp $filename $filename.bak end # Copy DIR1 DIR2 function copy set count (count $argv | tr -d \n) if test "$count" = 2; and test -d "$argv[1]" set from (echo $argv[1] | trim-right /) set to (echo $argv[2]) command cp -r $from $to else command cp $argv end end ## Useful aliases # Replace ls with exa alias ls='exa -al --color=always --group-directories-first --icons' # preferred listing alias la='exa -a --color=always --group-directories-first --icons' # all files and dirs alias ll='exa -l --color=always --group-directories-first --icons' # long format alias lt='exa -aT --color=always --group-directories-first --icons' # tree listing alias l.="exa -a | egrep '^\.'" # show only dotfiles # Replace some more things with better alternatives # alias cat='bat --style header --style rules --style snip --style changes --style header' # alias bat='bat --style header --style rules --style snip --style changes --style header' [ ! -x /usr/bin/yay ] && [ -x /usr/bin/paru ] && alias yay='paru --bottomup' # Common use alias aup="pamac upgrade --aur" alias grubup="sudo update-grub" alias fixpacman="sudo rm /var/lib/pacman/db.lck" alias tarnow='tar -acf ' alias untar='tar -zxvf ' alias wget='wget -c ' alias rmpkg="sudo pacman -Rdd" alias psmem='ps auxf | sort -nr -k 4' alias psmem10='ps auxf | sort -nr -k 4 | head -10' alias upd='sudo reflector --latest 5 --age 2 --fastest 5 --protocol https --sort rate --save /etc/pacman.d/mirrorlist && cat /etc/pacman.d/mirrorlist && sudo pacman -Syu && fish_update_completions && sudo updatedb && sudo -H DIFFPROG=meld pacdiff' alias ..='cd ..' alias ...='cd ../..' alias ....='cd ../../..' alias .....='cd ../../../..' alias ......='cd ../../../../..' alias dir='dir --color=auto' alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' alias hw='hwinfo --short' # Hardware Info alias big="expac -H M '%m\t%n' | sort -h | nl" # Sort installed packages according to size in MB (expac must be installed) alias gitpkg='pacman -Q | grep -i "\-git" | wc -l' # List amount of -git packages # Get fastest mirrors alias mirror="sudo reflector -f 30 -l 30 --number 10 --verbose --save /etc/pacman.d/mirrorlist" alias mirrord="sudo reflector --latest 50 --number 20 --sort delay --save /etc/pacman.d/mirrorlist" alias mirrors="sudo reflector --latest 50 --number 20 --sort score --save /etc/pacman.d/mirrorlist" alias mirrora="sudo reflector --latest 50 --number 20 --sort age --save /etc/pacman.d/mirrorlist" # Help people new to Arch alias apt='man pacman' alias apt-get='man pacman' alias pacdiff='sudo -H DIFFPROG=meld pacdiff' # Compare .pacnew & .pacsave files alias helpme='cht.sh --shell' alias please='sudo' alias tb='nc termbin.com 9999' alias paru="paru --bottomup" # Cleanup orphaned packages alias cleanup='sudo pacman -Rns (pacman -Qtdq)' # Get the error messages from journalctl alias jctl="journalctl -p 3 -xb" # Recent installed packages alias rip="expac --timefmt='%Y-%m-%d %T' '%l\t%n %v' | sort | tail -200 | nl" ## Import colorscheme from 'wal' asynchronously if type "wal" >> /dev/null 2>&1 cat ~/.cache/wal/sequences end ## Run paleofetch if session is interactive if status --is-interactive # paleofetch end thefuck --alias | source # pnpm set -gx PNPM_HOME "/home/johnc/.local/share/pnpm" set -gx PATH "$PNPM_HOME" $PATH set -gx TERM xterm-256color # pnpm end # opam configuration source /home/johnc/.opam/opam-init/init.fish > /dev/null 2> /dev/null; or true # bun set --export BUN_INSTALL "$HOME/.bun" set --export PATH $BUN_INSTALL/bin $PATH # bun set --export BUN_INSTALL "$HOME/.bun" set --export PATH $BUN_INSTALL/bin $PATH # Chrome set -gx BROWSER "vivaldi" set -gx SLEEP_TIME "8" set -gx UV_USE_IO_URING 0