moc: fix onstop script not working also add writing current playing song info to textfiles in /tmp so that they can be used in, say, obs.
la-ninpre leobrekalini@gmail.com
Tue, 21 Jun 2022 14:12:17 +0300
4 files changed,
88 insertions(+),
6 deletions(-)
M
moc/.config/moc/config
→
moc/.config/moc/config
@@ -668,7 +668,7 @@ # can do the job.
# # Example: OnSongChange = "/home/jack/.moc/myscript %a %r" # -OnSongChange = "/home/aaoth/.local/bin/mocpnotify next %a %t %d" +OnSongChange = "/home/aaoth/.local/bin/mocpnotify-next %a %t %d" # If RepeatSongChange is 'yes' then MOC will execute the command every time # a song starts playing regardless of whether or not it is just repeating.@@ -678,7 +678,7 @@ #RepeatSongChange = no
# Run the OnStop command (full path, no arguments) when MOC changes state # to stopped (i.e., when user stopped playing or changes a song). -OnStop = "/home/aaoth/.local/bin/mocpnotify stop" +OnStop = "/home/aaoth/.local/bin/mocpnotify-stop" # This option determines which song to play after finishing all the songs # in the queue. Setting this to 'yes' causes MOC to play the song which
M
moc/.local/bin/mocpnotify
→
moc/.local/bin/mocpnotify
@@ -1,11 +1,31 @@
-#!/bin/sh +#!/bin/sh -ex + +_mocp_args="-M $HOME/.config/moc" +_mocp_tmp="/tmp/mocp" +[ -d "$_mocp_tmp" ] || mkdir -p "$_mocp_tmp" -case $1 in +_mocp_write() { + mocp $_mocp_args -Q "%$1" > "$_mocp_tmp/$1.txt" +} + +_mocp_clear() { + echo "no song playing" > "$_mocp_tmp/song.txt" + echo "" > "$_mocp_tmp/artist.txt" + echo "" > "$_mocp_tmp/album.txt" +} + +case $(basename $0 | cut -d- -f2) in "next") - notify-send -a mocp -t 3000 "now playing" "$2 - $3 [$4]" + notify-send -a mocp -t 3000 "now playing" "$1 - $2 [$3]" + _mocp_write artist + _mocp_write album + _mocp_write song ;; "stop") notify-send -a mocp -t 3000 "mocp" "stopped playing" + _mocp_clear + ;; + *) + #passthrough ;; esac -
A
moc/.local/bin/mocpnotify-next
@@ -0,0 +1,31 @@
+#!/bin/sh -ex + +_mocp_args="-M $HOME/.config/moc" +_mocp_tmp="/tmp/mocp" +[ -d "$_mocp_tmp" ] || mkdir -p "$_mocp_tmp" + +_mocp_write() { + mocp $_mocp_args -Q "%$1" > "$_mocp_tmp/$1.txt" +} + +_mocp_clear() { + echo "no song playing" > "$_mocp_tmp/song.txt" + echo "" > "$_mocp_tmp/artist.txt" + echo "" > "$_mocp_tmp/album.txt" +} + +case $(basename $0 | cut -d- -f2) in + "next") + notify-send -a mocp -t 3000 "now playing" "$1 - $2 [$3]" + _mocp_write artist + _mocp_write album + _mocp_write song + ;; + "stop") + notify-send -a mocp -t 3000 "mocp" "stopped playing" + _mocp_clear + ;; + *) + #passthrough + ;; +esac
A
moc/.local/bin/mocpnotify-stop
@@ -0,0 +1,31 @@
+#!/bin/sh -ex + +_mocp_args="-M $HOME/.config/moc" +_mocp_tmp="/tmp/mocp" +[ -d "$_mocp_tmp" ] || mkdir -p "$_mocp_tmp" + +_mocp_write() { + mocp $_mocp_args -Q "%$1" > "$_mocp_tmp/$1.txt" +} + +_mocp_clear() { + echo "no song playing" > "$_mocp_tmp/song.txt" + echo "" > "$_mocp_tmp/artist.txt" + echo "" > "$_mocp_tmp/album.txt" +} + +case $(basename $0 | cut -d- -f2) in + "next") + notify-send -a mocp -t 3000 "now playing" "$1 - $2 [$3]" + _mocp_write artist + _mocp_write album + _mocp_write song + ;; + "stop") + notify-send -a mocp -t 3000 "mocp" "stopped playing" + _mocp_clear + ;; + *) + #passthrough + ;; +esac