dotfiles/config/fish/config.fish

92 lines
2.4 KiB
Fish
Raw Normal View History

2021-07-28 23:47:06 +02:00
# fish config
2023-06-13 22:42:37 +02:00
## Variables
set PATH $PATH $HOME/.local/bin $HOME/.mix $HOME/.mix/escripts $HOME/.cargo/bin
2021-07-28 23:47:06 +02:00
set DOTFILES $HOME/.dotfiles
set NOTES $HOME/Documents/Sync/Notes/MyVault
2021-07-28 23:47:06 +02:00
set TERMINAL 'alacritty'
set TERM 'xterm'
2022-04-04 23:35:07 +02:00
set EDITOR 'nano'
2021-07-28 23:47:06 +02:00
2023-06-13 22:42:37 +02:00
## 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
2021-07-28 23:47:06 +02:00
2023-06-13 22:42:37 +02:00
# 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
2022-12-31 10:36:49 +01:00
end
2021-07-28 23:47:06 +02:00
2023-06-13 22:42:37 +02:00
# 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
2022-12-15 22:35:21 +01:00
2023-06-13 22:42:37 +02:00
# Elixir / phoenix aliases
2021-09-06 13:35:05 +02:00
alias phx="iex -S mix phx.server"
2021-08-05 23:46:53 +02:00
2023-06-13 22:42:37 +02:00
# Systemd alias
2021-08-05 23:46:53 +02:00
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"
2023-06-13 22:42:37 +02:00
## Helpers
# Generate SSH key
alias sshkey='ssh-keygen -t ed25519 -f $HOME/.ssh/id_ed25519 -C "(whoami)@(hostname)-(date +'%y%m%d')"'
2023-01-18 12:14:36 +01:00
2023-06-13 22:42:37 +02:00
# 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
2023-06-13 22:42:37 +02:00
## Load asdf if available
if test -e ~/.asdf/asdf.fish
source ~/.asdf/asdf.fish
end
2023-06-13 22:42:37 +02:00
## Run fastfetch if session is interactive
if status --is-interactive && type -q fastfetch
fastfetch --load-config neofetch
end