#!/bin/bash
# Quick file opener for nvim via dmenu
# Bind to Super+P in your DE/WM

SEARCH_DIRS="${DMENU_NVIM_DIRS:-$HOME}"
MAX_DEPTH="${DMENU_NVIM_DEPTH:-8}"
TERMINAL="${DMENU_NVIM_TERM:-alacritty}"

selected=$(find $SEARCH_DIRS \
    -maxdepth "$MAX_DEPTH" \
    -type f \
    -not -path '*/\.git/*' \
    -not -path '*/node_modules/*' \
    -not -path '*/\.cache/*' \
    -not -path '*/__pycache__/*' \
    -not -path '*/\.local/share/*' \
    -not -path '*/\.config/chromium/*' \
    -not -path '*/\.mozilla/*' \
    -not -name '*.o' \
    -not -name '*.pyc' \
    2>/dev/null | \
    dmenu -i -l 20 -p "nvim:")

[ -z "$selected" ] && exit 0

case "$TERMINAL" in
    alacritty)
        $TERMINAL -e nvim "$selected"
        ;;
    kitty)
        $TERMINAL nvim "$selected"
        ;;
    *)
        $TERMINAL -e nvim "$selected"
        ;;
esac
