mirror of
https://github.com/The-Repo-Club/DotFiles.git
synced 2025-02-26 14:19:52 -05:00
79 lines
1.6 KiB
Plaintext
79 lines
1.6 KiB
Plaintext
|
#!/usr/bin/env bash
|
||
|
#-*-coding:utf-8 -*-
|
||
|
#Auto updated?
|
||
|
# Yes
|
||
|
#File:
|
||
|
# fzf_music
|
||
|
#Author:
|
||
|
# The-Repo-Club [wayne6324@gmail.com]
|
||
|
#Github:
|
||
|
# https://github.com/The-Repo-Club/
|
||
|
#
|
||
|
#Created:
|
||
|
# Wed 10 March 2021, 12:34:47 PM [GMT]
|
||
|
#Modified:
|
||
|
# Mon 21 November 2022, 07:44:23 AM [GMT]
|
||
|
#
|
||
|
#Description:
|
||
|
# fzf music player
|
||
|
#
|
||
|
#Dependencies:
|
||
|
# fzf
|
||
|
#
|
||
|
|
||
|
REPOMENU_MUSICPLAYER="ffplay -nodisp -loglevel quiet"
|
||
|
|
||
|
asksetting() {
|
||
|
playlist=$*
|
||
|
if [[ -z ${playlist} ]]; then
|
||
|
for Song in "$HOME"/Music/*; do
|
||
|
if [ -f "$Song" ]; then
|
||
|
Name=${Song##*/}
|
||
|
case $Name in
|
||
|
*.mp3 | *.flac | *.wav | .ogg)
|
||
|
options+=${Song##*/}$'\n'
|
||
|
;;
|
||
|
esac
|
||
|
fi
|
||
|
done
|
||
|
else
|
||
|
for Song in "$playlist"/*; do
|
||
|
if [ -f "$Song" ]; then
|
||
|
Name=${Song##*/}
|
||
|
case $Name in
|
||
|
*.mp3 | *.flac | *.wav | *.ogg)
|
||
|
options+=${Song##*/}$'\n'
|
||
|
;;
|
||
|
esac
|
||
|
fi
|
||
|
done
|
||
|
fi
|
||
|
echo -e "${options::-1}
|
||
|
|
||
|
Close music player" | fzf --prompt="Song Search: " --border=rounded --margin=1% --color=dark --height 100% --reverse --header=" MUSIC MENU " --info=hidden --header-first
|
||
|
}
|
||
|
|
||
|
LOOPSETTING="true"
|
||
|
while [ -n "$LOOPSETTING" ]; do
|
||
|
CHOICE="$(asksetting "$1")"
|
||
|
[ -n "$CHOICE" ] || exit
|
||
|
unset LOOPSETTING
|
||
|
case $CHOICE in
|
||
|
*.mp3 | *.flac | *.wav | *.ogg)
|
||
|
playlist=$*
|
||
|
if [[ -z ${playlist} ]]; then
|
||
|
folder=$HOME/Music
|
||
|
else
|
||
|
folder=$playlist
|
||
|
fi
|
||
|
$REPOMENU_MUSICPLAYER "$folder/$CHOICE" &
|
||
|
;;
|
||
|
*Close*)
|
||
|
pkill "${REPOMENU_MUSICPLAYER%% *}" &
|
||
|
;;
|
||
|
*)
|
||
|
echo "Program terminated." && exit
|
||
|
;;
|
||
|
esac
|
||
|
done
|