diff options
Diffstat (limited to '.config/waybar/modules/mpris.awk')
| -rw-r--r-- | .config/waybar/modules/mpris.awk | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/.config/waybar/modules/mpris.awk b/.config/waybar/modules/mpris.awk new file mode 100644 index 0000000..af3a271 --- /dev/null +++ b/.config/waybar/modules/mpris.awk @@ -0,0 +1,57 @@ +BEGIN { + # system("jq -Mnc {}"); +} + +{ + gsub(/"/,"") + gsub(/'/,"\047") + # print "DEBUG: " $0 + + artist=$1 + album=$2 + title=$3 + position=$4 + player=$5 + status=$6 +} + +($0 == "") || (status ~ /stopped/) { + system("jq -Mnc {}") + exit +} +(status ~ /playing/) { + icon="" +} +(status ~ /paused/) { + icon="" +} +(artist != "") && (album != "") { + text=sprintf("%s - %s - %s (%s)", artist, album, title, position) + tooltip=sprintf("%s\nby %s\nfrom %s\n(%s)", title, artist, album, player) +} +(artist == "") { + text=sprintf("%s - %s (%s)", album, title, position) + tooltip=sprintf("%s\nfrom %s\n(%s)", title, album, player) +} +(album == "") { + text=sprintf("%s - %s (%s)", artist, title, position) + tooltip=sprintf("%s\nby %s\n(%s)", title, artist, player) +} +(artist == "") && (album == "") { + text=sprintf("%s (%s)", title, position) + tooltip=sprintf("%s\n(%s)", title, player) +} +# edge cases to beautify the output +(player == "tdesktop") && (title ~ /Unknown Track/) { + text="telegram voice message" +} + +{ + system(sprintf("jq -rMnc --arg class \"%s\" --arg text \"%s %s\" --arg tt \"%s\" '{ class: $class, text: $text|@html, tooltip: $tt|@html }'", \ + status, + icon, + text, + tooltip)) +} + +END {} |