dotfiles/config/fish/config.fish

103 lines
2.7 KiB
Fish

# fish config
set -x -U GOPATH $HOME/.go
set PATH $PATH $HOME/.local/bin $HOME/.mix $HOME/.mix/escripts $HOME/.cargo/bin $GOPATH/bin
## Variables
set DOTFILES $HOME/.dotfiles
set NOTES $HOME/Documents/Sync/Notes/MyVault
set TERMINAL 'alacritty'
set TERM 'xterm'
set -gx EDITOR 'nano'
alias r='source ~/.config/fish/config.fish && echo "Fish config reloaded."'
## Environment setup
# Apply .profile: use this to put fish compatible .profile stuff in
if test -f ~/.fish_profile
source ~/.fish_profile
end
if test -d $HOME/.asdf
source ~/.asdf/asdf.fish
end
alias up="sudo apt update && sudo apt list --upgradable"
alias ug="sudo apt upgrade"
# Hide welcome message
set fish_greeting
set VIRTUAL_ENV_DISABLE_PROMPT "1"
set -x MANPAGER "sh -c 'col -bx | bat -l man -p'"
## Functions
function backup --argument filename
cp $filename $filename.bak
end
## Useful aliases
# Reload fish config
alias r='clear && source ~/.config/fish/config.fish'
# Nicer ls if nothing els is available
alias ls="ls"
alias ll="ls -lh"
alias la="ls -A"
alias lt="ls -ald .*"
# Replace ls with exa
if test -e /usr/bin/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 -ald --color=always --group-directories-first --icons .*' # show only dotfiles
end
# Add apt aliases for updating / upgrading if available
if test -e (whereis apt)
alias up="sudo apt update && sudo apt list --upgradable"
alias ug="sudo apt upgrade"
end
# Elixir / phoenix aliases
alias phx="iex -S mix phx.server"
# Systemd alias
alias start="sudo systemctl start"
alias restart="sudo systemctl restart"
alias stop="sudo systemctl stop"
alias enable="sudo systemctl enable"
alias disable="sudo systemctl disable"
alias sta="sudo systemctl status"
## Helpers
# Generate SSH key
alias sshkey='ssh-keygen -t ed25519 -f $HOME/.ssh/id_ed25519 -C "(whoami)@(hostname)-(date +'%y%m%d')"'
# 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"
# Cleanup orphaned packages
alias cleanup='sudo pacman -Rns (pacman -Qtdq)'
alias cal="ncal -3Mb"
if status is-interactive
# Commands to run in interactive sessions can go here
end
## Load asdf if available
if test -e ~/.asdf/asdf.fish
source ~/.asdf/asdf.fish
end
## Run fastfetch if session is interactive
if status --is-interactive && type -q fastfetch
fastfetch --load-config neofetch
end