44 lines
No EOL
1.5 KiB
Bash
Executable file
44 lines
No EOL
1.5 KiB
Bash
Executable file
#!/usr/bin/env zsh
|
|
# FZF configuration
|
|
|
|
# Skip if already loaded
|
|
[[ -n "$_FZF_LOADED" ]] && return 0
|
|
|
|
# Check if FZF is available
|
|
if ! command -v fzf &>/dev/null; then
|
|
return 0
|
|
fi
|
|
|
|
# Configure for VSCode/Windsurf integrated terminals
|
|
if [[ "$TERM_PROGRAM" == "vscode" || "$TERM_PROGRAM" == "windsurf" ]]; then
|
|
export FZF_DEFAULT_OPTS="--height 40% --reverse --border"
|
|
export _FZF_LOADED=1
|
|
return 0
|
|
fi
|
|
|
|
# Configure FZF options for regular terminals
|
|
export FZF_DEFAULT_OPTS="--height 40% --layout=reverse --border --cycle"
|
|
|
|
# Use fd for faster file searching if available
|
|
if command -v fd &>/dev/null; then
|
|
export FZF_DEFAULT_COMMAND='fd --type f --hidden --follow --exclude .git'
|
|
export FZF_CTRL_T_COMMAND="$FZF_DEFAULT_COMMAND"
|
|
export FZF_ALT_C_COMMAND='fd --type d --hidden --follow --exclude .git'
|
|
fi
|
|
|
|
# Load FZF key bindings and completion
|
|
if [[ -n "${HOMEBREW_PREFIX}" && -d "${HOMEBREW_PREFIX}/opt/fzf/shell" ]]; then
|
|
source "${HOMEBREW_PREFIX}/opt/fzf/shell/key-bindings.zsh" 2>/dev/null
|
|
source "${HOMEBREW_PREFIX}/opt/fzf/shell/completion.zsh" 2>/dev/null
|
|
elif FZF_PATH="$(dirname "$(command -v fzf)" 2>/dev/null)"; then
|
|
[[ -f "$FZF_PATH/key-bindings.zsh" ]] && source "$FZF_PATH/key-bindings.zsh"
|
|
[[ -f "$FZF_PATH/completion.zsh" ]] && source "$FZF_PATH/completion.zsh"
|
|
fi
|
|
|
|
# Apply custom theme if available
|
|
if [[ -f "$HOME/.local/bin/scripts/fzf_theme.sh" ]]; then
|
|
FZF_THEME="$($HOME/.local/bin/scripts/fzf_theme.sh)"
|
|
export FZF_DEFAULT_OPTS="$FZF_THEME $FZF_DEFAULT_OPTS"
|
|
fi
|
|
|
|
export _FZF_LOADED=1 |