mirror of
https://github.com/Xevion/dotfiles.git
synced 2026-01-31 02:24:11 -06:00
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:
@@ -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)
|
||||||
|
|||||||
@@ -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'
|
||||||
|
|
||||||
|
|||||||
@@ -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)
|
||||||
|
|||||||
@@ -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
|
||||||
|
|||||||
Executable
+16
@@ -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"
|
||||||
Reference in New Issue
Block a user