feat: enhance Fish shell config with fzf bindings, Fisher auto-update, and native Linux browser

- Add fzf.fish keybinding customization (remap variables, preserve Atuin history)
- Add Fisher plugin auto-update hook for chezmoi apply
- Set Vivaldi as default browser on native Linux
- Improve commit-staged command instructions
- Add Kitty font size configuration
This commit is contained in:
2025-12-28 16:57:34 -06:00
parent 62c575aa92
commit 6a72b0af2d
6 changed files with 38 additions and 6 deletions
@@ -170,6 +170,10 @@ wt() {
# SSH key management (keychain loads keys once per WSL session) # SSH key management (keychain loads keys once per WSL session)
eval `keychain --quiet --eval --agents ssh ~/.ssh/id_rsa` eval `keychain --quiet --eval --agents ssh ~/.ssh/id_rsa`
{{- else }}
# Native Linux browser (use Vivaldi)
export BROWSER=vivaldi-stable
{{ end }} {{ end }}
# atuin (magical shell history with sync) # atuin (magical shell history with sync)
+3 -3
View File
@@ -46,6 +46,6 @@ $ARGUMENTS
- You should only use 'git commit' and create a single commit - You should only use 'git commit' and create a single commit
- If in plan mode, proceed with the commit anyway - command execution is implied - If in plan mode, proceed with the commit anyway - command execution is implied
- Do not stage any additional files - Do not stage any additional files
- Create the commit using a single bash command - Execute the commit using the Bash tool with a single git commit command
- Do not use any other tools or do anything else - Do not use any other tools besides Bash
- Do not send any other text or messages besides the git commit command - Do not send any other text or messages - only invoke the Bash tool to execute the commit
@@ -21,7 +21,6 @@ abbr -a es 'exec fish'
# Chezmoi # Chezmoi
abbr -a cha 'chezmoi apply' abbr -a cha 'chezmoi apply'
abbr -a chai 'chezmoi apply --interactive'
abbr -a ch 'chezmoi' abbr -a ch 'chezmoi'
alias cdc='chezmoi cd' alias cdc='chezmoi cd'
+14 -2
View File
@@ -26,8 +26,20 @@ if test "$TERM_PROGRAM" = "vscode"
end end
end end
# fzf key bindings (if fzf.fish plugin installed via Fisher) # fzf.fish configuration (PatrickF1/fzf.fish via Fisher)
# Note: This is handled automatically by Fisher plugin if functions -q fzf_configure_bindings
# Remap CTRL+V (variables) to Alt+Ctrl+V to avoid paste conflict
# Disable history (--history=) to let Atuin keep CTRL+R
fzf_configure_bindings --variables=\e\cv --history=
# Always include hidden files (dotfiles) in searches
set -g fzf_fd_opts --hidden
# Directory search: Ctrl+I toggles gitignored files
set -g fzf_directory_opts \
--header 'C-i: toggle ignored' \
--bind 'ctrl-i:reload(fd --type f --hidden --no-ignore)+change-prompt(+ignored > )'
end
# Load custom functions from ~/.config/fish/functions/ # Load custom functions from ~/.config/fish/functions/
# (Fish does this automatically, no explicit sourcing needed) # (Fish does this automatically, no explicit sourcing needed)
+1
View File
@@ -5,6 +5,7 @@ include current-theme.conf
enable_audio_bell no enable_audio_bell no
font_family MesloLGS NF font_family MesloLGS NF
font_size 9.0
# Disable command finish notifications (fixes cryptic "4;0;0" notifications) # Disable command finish notifications (fixes cryptic "4;0;0" notifications)
notify_on_cmd_finish never notify_on_cmd_finish never
+16
View File
@@ -0,0 +1,16 @@
#!/bin/bash
# Update Fisher plugins
if ! command -v fish &> /dev/null; then
echo "[err] Fish shell not installed - skipping fisher update"
exit 0
fi
if ! fish -c "type -q fisher" &> /dev/null; then
echo "[err] Fisher not installed - skipping fisher update"
exit 0
fi
echo "Updating Fisher plugins..."
fish -c "fisher update" && echo "[ok] Fisher plugins updated" || echo "[err] Fisher update failed"