rice/scripts/rofi-mpd
2021-07-28 23:44:53 -07:00

86 lines
2.0 KiB
Bash
Executable File

#!/usr/bin/env sh
m() { rofi -theme /home/sudacode/i3/rofi/rofi-mpd.rasi -dmenu -i "$@" ;}
mb() { rofi -theme /home/sudacode/i3/rofi/rofi-mpd.rasi -dmenu -i -kb-custom-1 "Alt+q" "$@" ;}
artist() {
lines="$(mpc list artist | wc -l)"
[ "$lines" -gt 30 ] && lines=30
mpc list artist | sort -f | m -p "Artists" -l $lines
}
a_album() {
artist="$1"
lines="$(mpc list album artist "$artist" | wc -l)"
[ "$lines" -gt 30 ] && lines=30
mpc list album artist "$artist" | sort -f | mb -p "Albums" -l $lines
}
album() {
lines="$(mpc list album | wc -l)"
[ "$lines" -gt 30 ] && lines=30
mpc list album | sort -f | mb -p "Album" -l $lines
}
song() {
lines="$(mpc list title | wc -l)"
[ "$lines" -gt 30 ] && lines=30
mpc list title | sort -f | mb -p "Song" -l 30
}
case "$1" in
-l | --library) mode=Library ;;
-A | --album) mode=Album ;;
-s | --song) mode=Song ;;
-a | --ask)
MODE=$(printf "Library\nAlbum\nSong" | m -p "Choose mode" -l 3)
mode=$MODE
;;
-h | --help)
echo "
usage: rofi-mpd [-h] [-l] [-s] [-a]
arguments:
-h, --help show this message and exit
-l, --library library mode (artist -> album)
-A, --album album mode
-s, --song song mode (select one song)
-a, --ask ask for mode
bindings:
enter play song/album now
Alt+q add song/album to queue
"
exit
;;
esac
case "$mode" in
Library)
artist=$(artist)
[ ! "$artist" ] && exit
album=$(a_album "$artist")
cod=$?
[ ! "$album" ] && exit
[ "$cod" -eq 10 ] || mpc clear
mpc find artist "$artist" album "$album" | mpc add
mpc play >/dev/null
;;
Song)
song=$(song)
cod=$?
[ ! "$song" ] && exit
[ "$cod" -eq 10 ] || mpc clear
mpc search "(title==\"$song\")" | mpc add
mpc play >/dev/null
;;
Album)
album=$(album)
cod=$?
[ ! "$album" ] && exit
[ "$cod" -eq 10 ] || mpc clear
mpc find album "$album" | mpc add
mpc play >/dev/null
;;
esac