Code: Select all
convert ${COVER#*//} '/tmp/tmp.png'
Code: Select all
convert "${COVER#*//}" '/tmp/tmp.png'
Code: Select all
convert ${COVER#*//} '/tmp/tmp.png'
Code: Select all
convert "${COVER#*//}" '/tmp/tmp.png'
You may change the rules whenever you wish Oh Learned One.
Code: Select all
logansfury@OptiPlex-5040:~$ qdbus org.mpris.MediaPlayer2.qmmp /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata
mpris:artUrl: file:///home/logansfury/Music/album/KISS - Love Gun.jpg
mpris:length: 280704000
mpris:trackid:
xesam:album: The Wall
xesam:albumArtist: Pink Floyd
xesam:artist: Pink Floyd
xesam:contentCreated: 1979
xesam:genre: Progressive Rock
xesam:title: Hey You
xesam:trackNumber: 14
xesam:url: file:///home/logansfury/Music/Pink Floyd 14 - Hey You 320.mp3
logansfury@OptiPlex-5040:~$
Code: Select all
conky: desktop window (2400010) is subwindow of root window (6cb)
conky: window type - normal
conky: drawing to created window (0x7000001)
conky: drawing to double buffer
Cannot find 'org.freedesktop.DBus.Properties.Get' in object /org/mpris/MediaPlayer2 at org.mpris.MediaPlayer2.qmmp
Cannot find 'org.freedesktop.DBus.Properties.Get' in object /org/mpris/MediaPlayer2 at org.mpris.MediaPlayer2.qmmp
Very Cool!
Not at all
Code: Select all
#!/bin/bash
#
# Bleys 2023
# dependencies: urlencode, qdbus
# sudo apt install gridsite-client qdbus
#
#
Player=$1
if [ $(ps -C $Player -o pid=) ]; then
convertsec()
{
x=`expr $1 / 1000000`
s=`expr $x % 60`
x=`expr $x / 60`
m=`expr $x % 60`
printf "%02d:%02d\n" $m $s
}
POS=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Position)
TOTAL=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep "^mpris:length" | awk '{print $2}')
if [ -z $TOTAL ]
then
positionTime="00:00"
lengthTime="00:00"
length="stopped"
position=1
else
positionTime=$(convertsec $POS)
lengthTime=$(convertsec $TOTAL)
length=$(($TOTAL/1000000))
position=$(($POS/1000000))
fi
TEMP=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep "artist:")
artist=${TEMP##*:}
TEMP=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep "title:")
title=${TEMP##*:}
TEMP=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep "album:")
album=${TEMP##*:}
COVER=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep "artUrl:")
str="'"
if [ -n "$COVER" -a $position -ge 1 ]; then
if [ "$Player" == "vlc" ]; then
uri=$(urlencode -d "$COVER")
COVER=${uri#*//}
convert "$COVER" '/tmp/tmp.png'
else
convert "${COVER#*//}" '/tmp/tmp.png'
fi
fi
vol=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Volume)
echo $length";"$position";"$artist";"$title";"$positionTime";"$lengthTime";"$vol";"$album
fi
exit 0
Code: Select all
write_text(cr, 130,84,daten[3], {font="Dyuthi", size=22, align="l"}) --artist
write_text(cr, 134,110,daten[8], {font="Dyuthi", size=16, align="l"}) --album
write_text(cr, 134,126,daten[4], {font="Dyuthi", size=16, align="l"}) --titel
write_text(cr, 145,22,daten[5], {font="Dyuthi", size=12, align="l"}) --position
write_text(cr, 410,22,daten[6], {font="Dyuthi", size=12, align="r"}) --length
Far out!!Bleys wrote: ⤴Mon Feb 19, 2024 6:34 pmNot at all
Screen Capture_select-area_20240219233006.png
mpris.sh:now.lua: replace all write_text calls with the new ones:Code: Select all
#!/bin/bash # # Bleys 2023 # dependencies: urlencode, qdbus # sudo apt install gridsite-client qdbus # # Player=$1 if [ $(ps -C $Player -o pid=) ]; then convertsec() { x=`expr $1 / 1000000` s=`expr $x % 60` x=`expr $x / 60` m=`expr $x % 60` printf "%02d:%02d\n" $m $s } POS=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Position) TOTAL=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep "^mpris:length" | awk '{print $2}') if [ -z $TOTAL ] then positionTime="00:00" lengthTime="00:00" length="stopped" position=1 else positionTime=$(convertsec $POS) lengthTime=$(convertsec $TOTAL) length=$(($TOTAL/1000000)) position=$(($POS/1000000)) fi TEMP=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep "artist:") artist=${TEMP##*:} TEMP=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep "title:") title=${TEMP##*:} TEMP=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep "album:") album=${TEMP##*:} COVER=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Metadata | grep "artUrl:") str="'" if [ -n "$COVER" -a $position -ge 1 ]; then if [ "$Player" == "vlc" ]; then uri=$(urlencode -d "$COVER") COVER=${uri#*//} convert "$COVER" '/tmp/tmp.png' else convert "${COVER#*//}" '/tmp/tmp.png' fi fi vol=$(qdbus org.mpris.MediaPlayer2.$Player /org/mpris/MediaPlayer2 org.freedesktop.DBus.Properties.Get org.mpris.MediaPlayer2.Player Volume) echo $length";"$position";"$artist";"$title";"$positionTime";"$lengthTime";"$vol";"$album fi exit 0
Code: Select all
write_text(cr, 130,84,daten[3], {font="Dyuthi", size=22, align="l"}) --artist write_text(cr, 134,110,daten[8], {font="Dyuthi", size=16, align="l"}) --album write_text(cr, 134,126,daten[4], {font="Dyuthi", size=16, align="l"}) --titel write_text(cr, 145,22,daten[5], {font="Dyuthi", size=12, align="l"}) --position write_text(cr, 410,22,daten[6], {font="Dyuthi", size=12, align="r"}) --length
Code: Select all
#!/bin/bash
# replace clementine with your player
clementine &
sleep 1
cd $HOME/.conky/NowPlaying
conky -c conkyrc &
echo $! > /tmp/pid
exit 0
Code: Select all
#!/bin/bash
f=$(</tmp/pid)
kill -15 $f
Code: Select all
sudo apt install menulibre
Code: Select all
if result == player then
.
.
.
end
Code: Select all
if result == player then
.
.
.
else
stop=conky_parse('${exec bash stop.sh}')
end
Code: Select all
if result == player then
daten = mysplit (conky_parse('${exec bash ./mpris.sh '..player..'}')) -- length pos artist titel postime lengthtime vol album
if (daten[1]~="stopped") then
color=0xffffff alpha=0.1 typ=1
draw_bg(cr,color,alpha,typ) -- Funktion Hintergrund Conky Bereich / Function Backgrounds Conky Area
color=0xffffff alpha=0.8 typ=2
draw_bg(cr,color,alpha,typ) --zeichne Linie um den Bereich / Draw line around Conky Area
if daten[4] == daten [8] then
daten[8]=" Single"
end
write_text(cr, 130,84,daten[3], {font="Dyuthi", size=22, align="l"}) --artist
write_text(cr, 134,110,daten[8], {font="Dyuthi", size=16, align="l"}) --album
write_text(cr, 134,126,daten[4], {font="Dyuthi", size=16, align="l"}) --titel
write_text(cr, 145,22,daten[5], {font="Dyuthi", size=12, align="l"}) --position
write_text(cr, 410,22,daten[6], {font="Dyuthi", size=12, align="r"}) --length
value=tonumber(daten[2])
total=tonumber(daten[1])
if (value == nil or total == nil) then
pct=1
else
pct=value/total
draw_bar(cr,pct,pt)
fDrawImage(cr,'/tmp/tmp.png',70,70,120,120)
end
end
else
stop=conky_parse('${exec bash stop.sh}') --Conky suicid
end
https://vimeo.com/914939284?share=copyLogansfury wrote: ⤴Tue Feb 20, 2024 3:27 pm I am trying to see which players I have that will work with this conky.
So Clementine, VLC, Audacious, and Qmmp are the only 4?Bleys wrote: ⤴Tue Feb 20, 2024 5:32 pmhttps://vimeo.com/914939284?share=copyLogansfury wrote: ⤴Tue Feb 20, 2024 3:27 pm I am trying to see which players I have that will work with this conky.
no... thats the 4 i've testet. Just tested celluloid. Has a "special" mpris feature. But it also works.
Code: Select all
io.github.celluloid_player.Celluloid.instance-1
Code: Select all
if [ $Player == "celluloid" ]; then Player="io.github.celluloid_player.Celluloid.instance-1"; fi
Code: Select all
if [ $(ps -C $Player -o pid=) ]; then
if [ $Player == "celluloid" ]; then Player="io.github.celluloid_player.Celluloid.instance-1"; fi
convertsec()
This got my Celluloid working, but like Qmmp, it doesnt correctly display the album art, being stuck on whatever art was last displayed. Only Audacious is working reliably. I am going to grab clementine from the software manager and see how that works for me. I would give real money to know what it is about my system that my players aren't working for me like they are for other users.Bleys wrote: ⤴Tue Feb 20, 2024 6:11 pmno... thats the 4 i've testet. Just tested celluloid. Has a "special" mpris feature. But it also works.
For reasons unknown to me, the Celluloid developers have made it difficult for others by choosing an almost impossible name under which the mpris metadata can be retrieved:For Celluloid to work, a line must be inserted in mpris.sh directly after the "Player active?" line:Code: Select all
io.github.celluloid_player.Celluloid.instance-1
view with the before and after line:Code: Select all
if [ $Player == "celluloid" ]; then Player="io.github.celluloid_player.Celluloid.instance-1"; fi
Screen Capture_select-area_20240220230130.jpgCode: Select all
if [ $(ps -C $Player -o pid=) ]; then if [ $Player == "celluloid" ]; then Player="io.github.celluloid_player.Celluloid.instance-1"; fi convertsec()
Code: Select all
sudo apt install playerctl
Code: Select all
playerctl -l