diff --git a/zsh/.profile.d/fzf.sh b/zsh/.profile.d/fzf.sh old mode 100644 new mode 100755 index af2d5f1..bdccac0 --- a/zsh/.profile.d/fzf.sh +++ b/zsh/.profile.d/fzf.sh @@ -1,8 +1,31 @@ #!/usr/bin/env bash +is_debian_based() { + # Checking /etc/os-release + if [[ -f /etc/os-release ]]; then + . /etc/os-release + if [[ "$ID_LIKE" == *"debian"* ]] || [[ "$ID" == "debian" ]]; then + return 0 # OK: Debian-based + fi + fi + + # Alternative check: /etc/debian_version + if [[ -f /etc/debian_version ]]; then + return 0 # OK: Debian-based + fi + + return 1 # NO Debian-based +} + # Add fzf keybindings and enhancements -export FZF_CTRL_T_COMMAND="fd --type f" -export FZF_ALT_C_COMMAND="fd --type d" +if is_debian_based; then + export FZF_CTRL_T_COMMAND="fdfind --type f" + export FZF_ALT_C_COMMAND="fdfind --type d" +else + export FZF_CTRL_T_COMMAND="fd --type f" + export FZF_ALT_C_COMMAND="fd --type d" +fi + export FZF_CTRL_R_OPTS="--preview 'echo {}'" # Export Catppuccin Mocha theme for FZF diff --git a/zsh/.zshrc b/zsh/.zshrc index 8cb42cc..0e62d9e 100644 --- a/zsh/.zshrc +++ b/zsh/.zshrc @@ -76,7 +76,6 @@ plugins=( aws colored-man-pages command-not-found - fzf gitignore mise zoxide @@ -122,35 +121,8 @@ fpath=(~/.zsh $fpath) autoload run-help autoload -Uz compinit && compinit -u -# Key bindings using bindkey and fzf-tmux where possible -# Ctrl+R: Enhanced reverse history search -bindkey '^R' fzf-history-widget +export FZF_HOME=$HOME/.oh-my-zsh/custom/plugins/fzf +source <(fzf --zsh) +source "$FZF_HOME/shell/key-bindings.zsh" +source "$FZF_HOME/shell/completion.zsh" -# Ctrl+T: Fuzzy find file -bindkey '^T' fzf-file-widget - -# Alt+C: Fuzzy change directory -bindkey '^[c' fzf-cd-widget - -# Additional useful bindings -# Alt+H: Search and insert from history -fzf-history-widget() { - BUFFER=$(fc -l 1 | fzf --tac +s --no-sort --preview 'echo {}' | sed 's/^[ 0-9]*//') - CURSOR=$#BUFFER - zle reset-prompt -} -zle -N fzf-history-widget - -fzf-file-widget() { - local file - file=$(fzf --preview 'bat --style=numbers --color=always --line-range :500 {}' 2> /dev/null) && LBUFFER+="$file" - zle reset-prompt -} -zle -N fzf-file-widget - -fzf-cd-widget() { - local dir - dir=$(fd --type d | fzf --preview 'tree -a -C {} | head -100') && cd "$dir" - zle reset-prompt -} -zle -N fzf-cd-widget