## Shared fish config (all hosts). Host-specific bits live in host.fish (sourced at the end). ## Secrets (e.g. DUSKADIY_API_KEY) go in conf.d/secrets.fish, which is gitignored. set -gx EDITOR nvim set -gx PAGER less set -gx QT_FONT_DPI 96 set -gx PI_SKIP_VERSION_CHECK 1 set -gx OPENCODE_CONFIG "$HOME/.config/opencode/openai-gpt.jsonc" set -gx MANPAGER "nvim +Man!" # fzf's built-in walker is the one search tool that ignores .ignore files, so point it at # fd, which honours them. fd still hides dotfiles by default everywhere else — this only # changes what fzf sees inside trees that opt in (e.g. ~/.dots/.ignore). set -gx FZF_DEFAULT_COMMAND 'fd --type f --strip-cwd-prefix' set -gx NEWT_COLORS 'root=black,black;window=black,black;border=white,black;listbox=white,black;label=blue,black;checkbox=red,black;title=green,black;button=white,red;actsellistbox=white,red;actlistbox=white,gray;compactbutton=white,gray;actcheckbox=white,blue;entry=lightgray,black;textbox=blue,black' # themes nmtui # set -gx BAT_THEME "Catppuccin Mocha" # Cursor / greeting set -g fish_greeting set -g fish_cursor_insert line set -g fish_cursor_default block set -g fish_cursor_visual underscore # Misc alias exti=exit alias dmz="cat ~/.config/fish/dmz.txt" alias nmatrix="neo-matrix -DS 3" alias grep="grep --color=auto" alias fzf="fzf --preview 'bat --color=always {}'" alias fzff="fzf --multi --preview 'bat --style=numbers --color=always {}' | xargs -n 1 nvim" abbr scrcpyz 'scrcpy -wSK -m 1920 --window-borderless --always-on-top --power-off-on-close --no-audio' # Git alias gti="git" alias gs="git status -s" alias gca="git add -p . && git commit" alias gd="git diff --word-diff" alias gl="git log --graph --show-signature" alias glog="git log --all --decorate --oneline --color --graph" alias gla="git log --all --decorate --oneline" alias gls="serie" alias gm="git merge" # List directory alias ls='eza --icons --group-directories-first' alias l="ls -l" alias la="ls -a" alias lla="ls -la" alias lt="ls --tree" # Dotfiles + notes alias cdots="cd ~/.dots/" alias cpnotes="cd ~/sync/PersonalNotes/" alias cnotes="cd ~/sync/CojaDuska/Notes/" abbr notes "cnotes && nvim" abbr wnotes "cd ~/sync/Wingman/notes && nvim" abbr wtodo "cd ~/sync/Wingman/notes/wm-client/ && nvim todo.md" abbr dots "cdots && nvim" abbr dotsync "cdots && ./bin/dotsync" abbr pnotes "cpnotes && nvim" abbr todo "cpnotes && nvim ToDoNext.md" abbr aliases "bat ~/.config/fish/config.fish" # Handy abbr cat "bat -p" abbr untar "tar -xf" abbr unarchive "atool -x" abbr copy wl-copy abbr img "kitten icat" abbr fm yazi abbr lg lazygit abbr gcommit "git diff HEAD | aichat -r commit" abbr aichatdel "rm ~/.config/aichat/sessions/*.yaml" abbr mkdir "mkdir -p" abbr faillock "sudo faillock --reset" abbr xremaps "sudo xremap ~/.config/xremap/config.yml" abbr pacs "sudo pacman -Syu --noconfirm" abbr yays "yay --noconfirm --sudoloop" abbr nmaps "sudo nmap -sn 192.168.0.0/24" abbr scrcpyc 'scrcpy -wSK -m 1920 --window-borderless --always-on-top --power-off-on-close' abbr scrcpys 'scrcpy -wS --power-off-on-close' abbr tts "tt -notheme -bold -showwpm -json" abbr tuioss "tuios --show-clock --show-keys --show-cpu --show-ram --confirm-quit" abbr keybinds "cd ~/.dots/ && nvim gui/.config/hypr/keybindings.conf" abbr vpnhome "sudo wg-quick up wg0" abbr vpnkralizec "sudo wg-quick up kralizec-wg0" abbr vpnsumadija "sudo wg-quick up sumadija-wg0" abbr ipadd "sudo ip route add 192.168.0.234 dev wg0" abbr aria2cs "aria2c -x 16 -k 1M" # Change-dir shortcuts abbr .. "cd .." abbr ... "cd ../.." abbr .3 "cd ../../.." abbr .4 "cd ../../../.." abbr .5 "cd ../../../../.." # Tool init (fnm is initialized once in conf.d/fnm.fish — don't source it again here) zoxide init --cmd cd fish | source fish_add_path $HOME/.cargo/bin $HOME/.local/bin # thefuck, lazy-loaded on first use (its --alias eval costs ~170ms of shell startup) function fuck functions -e fuck thefuck --alias | source fuck $argv end # pnpm set -gx PNPM_HOME "$HOME/.local/share/pnpm" if not string match -q -- $PNPM_HOME $PATH set -gx PATH "$PNPM_HOME" $PATH end # Per-host extras test -f ~/.config/fish/host.fish; and source ~/.config/fish/host.fish