summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Sima <ben@bsima.me>2021-05-04 14:44:35 -0400
committerBen Sima <ben@bsima.me>2021-05-04 14:44:35 -0400
commit1fc79aae91ec9ac54794b37a4e3edf10e537cc65 (patch)
treeacac47156a8c1e892dcfe07f1da7566f9f459e05
parentc9ad53d4ab12cdf742a5f42d1e1bb6cf8946dd1c (diff)
add mpc control script
-rwxr-xr-xm34
1 files changed, 34 insertions, 0 deletions
diff --git a/m b/m
new file mode 100755
index 0000000..9bbe291
--- /dev/null
+++ b/m
@@ -0,0 +1,34 @@
+#!/usr/bin/env bash
+cmd_list="play stop next prev toggle add insert volume seek repeat single consume random clear crop shop-start shop-stop"
+
+# TODO: dmenu integration. idk how to detect I'm in dmenu and switch to that...
+menu() {
+ prompt=$1
+ shift
+ fzf \
+ --preview 'mpc status && echo queue: && mpc queued' \
+ --prompt "$prompt> " \
+ $@
+}
+
+select_song() {
+ file=$(mpc listall | menu "enqueue")
+ [[ -z $file ]] && exit 1
+ mpc "$1" "$file"
+ mpc play
+}
+
+cmd=$(echo $cmd_list | sed 's/ /\n/g' | menu "mpd")
+
+[[ -z $cmd ]] && exit 1
+
+needs_selection=(add insert)
+if [[ " ${needs_selection[@]} " =~ $cmd ]]; then
+ select_song $cmd
+elif [[ $cmd == shop-stop ]]; then
+ systemctl --user stop shop-music.service
+elif [[ $cmd == shop-start ]]; then
+ systemctl --user start shop-music.service
+else
+ mpc $cmd
+fi