24 lines
662 B
Bash
Executable file
24 lines
662 B
Bash
Executable file
#!/bin/sh
|
|
# Snippets directory
|
|
snippets=~/Documents/snippets
|
|
|
|
# Navigate using fzf
|
|
fzf_nav() {
|
|
[ -d "$1" ] && cd "$1"
|
|
while true ; do
|
|
opt=$(/usr/bin/ls -AF1 --group-directories-first)
|
|
opt=$(printf "../\n$opt" | fzf --cycle --reverse --padding 2% --preview 'batcat --decorations never --color always {}')
|
|
[ -d "$opt" ] && cd "$opt" > /dev/null 2>&1 || break
|
|
done
|
|
[ -n "$opt" ] && echo "$opt"
|
|
}
|
|
|
|
# Select using menu
|
|
snippet=$(fzf_nav "$snippets")
|
|
# Exit if empty
|
|
[ -z "$snippet" ] && exit
|
|
|
|
# Copy to clipboard and notify
|
|
cat "$snippets"/"$snippet" | xsel -ib && notify-send "Snippet" "'$snippet' copied to clipboard!"
|
|
|
|
"$EDITOR" "$snippets"/"$snippet"
|