92 lines
No EOL
2.4 KiB
Fish
92 lines
No EOL
2.4 KiB
Fish
# fish config
|
|
|
|
## Variables
|
|
|
|
set PATH $PATH $HOME/.local/bin $HOME/.mix $HOME/.mix/escripts $HOME/.cargo/bin
|
|
set DOTFILES $HOME/.dotfiles
|
|
set NOTES $HOME/Documents/Sync/Notes/MyVault
|
|
set TERMINAL 'alacritty'
|
|
set TERM 'xterm'
|
|
set EDITOR 'nano'
|
|
|
|
## Environment setup
|
|
|
|
# Apply .profile: use this to put fish compatible .profile stuff in
|
|
if test -f ~/.fish_profile
|
|
source ~/.fish_profile
|
|
end
|
|
|
|
# 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)'
|
|
|
|
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 |