51 lines
912 B
Plaintext
51 lines
912 B
Plaintext
|
#!/usr/bin/env bash
|
||
|
|
||
|
################################
|
||
|
# Shows info from media players.
|
||
|
#
|
||
|
# TODO: make output format configurable
|
||
|
#
|
||
|
# Dependencies:
|
||
|
# - playerctl
|
||
|
#
|
||
|
# @return {String}: Current media info
|
||
|
################################
|
||
|
|
||
|
dir=$(dirname $0)
|
||
|
source $dir/util.sh
|
||
|
|
||
|
full=""
|
||
|
short=""
|
||
|
status=0
|
||
|
|
||
|
# Exit if no player found
|
||
|
players=$(playerctl -l)
|
||
|
if [[ ! $players ]]; then exit 0; fi
|
||
|
|
||
|
artist=$(playerctl metadata artist)
|
||
|
title=$(playerctl metadata title)
|
||
|
album=$(playerctl metadata album)
|
||
|
state=$(playerctl status)
|
||
|
|
||
|
if [[ "$title" ]]; then
|
||
|
# Make icon mapping
|
||
|
declare -A icons
|
||
|
icons["Playing"]=""
|
||
|
icons["Paused"]=""
|
||
|
icons["Stopped"]=""
|
||
|
|
||
|
# Determine which icon to use
|
||
|
icon=${icons[$state]}
|
||
|
|
||
|
full="$title"
|
||
|
if [[ "$artist" ]]; then full="$artist - $full"; fi
|
||
|
|
||
|
short="$full $icon"
|
||
|
if [[ "$album" ]]; then full="$full [$album]"; fi
|
||
|
full="$full $icon"
|
||
|
fi
|
||
|
|
||
|
echo $full
|
||
|
echo $short
|
||
|
exit $status
|