dotfiles/fish/.config/fish/config.fish

92 lines
2.8 KiB
Fish

set PATH {$HOME}/.nix-profile/bin {$HOME}/.cargo/bin {$HOME}/.cabal/bin {$HOME}/.local/bin $PATH
set -gx TERM xterm-kitty
set -gx NIX_PATH {$HOME}/.nix-defexpr/channels
# https://github.com/fish-shell/fish-shell/issues/5593
bind \cd true
export MANPAGER='nvim +Man!'
export NIX_SSL_CERT_FILE='/etc/ssl/certs/ca-certificates.crt'
if [ -n "$NVIM_LISTEN_ADDRESS" ]
export VISUAL="nvr"
export EDITOR="nvr"
else
export VISUAL="nvim"
export EDITOR="nvim"
end
alias b="cd .."
alias c="clear"
alias m="mutt"
alias v="nvim"
alias vc="nvim --clean"
alias vn="nvim -u NONE"
alias vnrc="nvim -u NORC"
alias vnp="nvim --noplugin"
alias tksa="tmux kill-session -a"
alias tks="tmux kill-server"
alias tat="tmux attach -t "
alias tls="tmux ls"
alias vf="v (fzf)"
alias cs="cscope -bqR"
alias cat="bat"
alias t="tokei ."
alias gst="gst-inspect-1.0"
alias gsl="gst-launch-1.0"
alias sds="systemctl status "
alias sde="systemctl enable "
alias sdd="systemctl disable "
alias sfc="source ~/.config/fish/config.fish"
alias icat="kitty +kitten icat (fzf)"
alias jb="journalctl -r -b -1"
alias jf="journalctl -f"
alias jk="journalctl -r -k"
alias jr="journalctl -r"
alias ju="journalctl -u"
alias jx="journalctl -xe"
alias dpw="pw-dump | jq | nvim -c 'setlocal ft=json' -R"
# Git helpers
alias vg="vgrep"
alias vs="vgrep -s"
# Open fugitive with nvim directly
alias gn="nvim +Git +only"
# Open modified files
# ACMRU = Added || Copied || Modified || Renamed || Unmerged
# Edit all uncommitted files that have changes since the last commit (be they staged or unstaged)
alias vd="nvim (git diff HEAD --name-only --diff-filter=ACMR)"
# Edit all staged files that have changes since the last commit
alias vds="nvim (git diff --staged --name-only --diff-filter=ACMR)"
# Edit all files that were altered in the last commit
alias vdc="nvim (git diff HEAD^ --name-only --diff-filter=ACMR)"
# Edit files changed since master
alias vdm="nvim (git diff master --name-only --diff-filter=ACMR)"
# Edit files unmerged
alias vdu="nvim (git diff --name-only --diff-filter=U | uniq)"
# Add unmerged files
alias vdua="git add (git diff --name-only --diff-filter=U)"
# Cargo aliases
alias cba='cargo update && cargo build --all && cargo doc'
alias cbb='cargo build --all'
alias cbc='cargo clean'
alias cbd='cargo doc'
alias cbD='cargo doc --open'
alias cbu='cargo update'
fzf_key_bindings
# https://github.com/fish-shell/fish-shell/issues/7485#issuecomment-728984689
# https://wiki.archlinux.org/title/Flatpak#Adding_Flatpak_.desktop_files_to_your_menu
set -l xdg_data_home $XDG_DATA_HOME ~/.local/share
set -gx --path XDG_DATA_DIRS $xdg_data_home[1]/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share
for flatpakdir in ~/.local/share/flatpak/exports/bin /var/lib/flatpak/exports/bin
if test -d $flatpakdir
contains $flatpakdir $PATH; or set -a PATH $flatpakdir
end
end