diff --git a/local/bin/quodinfo b/local/bin/quodinfo
new file mode 100755
index 0000000..beb56bd
--- /dev/null
+++ b/local/bin/quodinfo
@@ -0,0 +1,8 @@
+#!/bin/bash
+
+status=$(quodlibet --status | cut -d' ' -f1)
+case "$status" in
+ "playing") quodlibet --print-playing "
" ;;
+ *) ;;
+esac
+
diff --git a/local/bin/soundinfo b/local/bin/soundinfo
new file mode 100755
index 0000000..4b1511e
--- /dev/null
+++ b/local/bin/soundinfo
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+if grep -q "\[on\]" <(amixer get Master); then
+ current="$(amixer get Master | sed -n '/%/s/.*\[\(.*\)%\].*/\1/p' | head -1)"
+ if (( current <= 25 )); then
+ echo "none"
+ elif (( current <= 50 )); then
+ echo "low"
+ elif (( current <= 75 )); then
+ echo "medium"
+ else
+ echo "high"
+ fi
+else
+ echo "mute"
+fi
+
diff --git a/xmobar/icons/sound.xcf b/xmobar/icons/sound.xcf
new file mode 100644
index 0000000..f442bab
Binary files /dev/null and b/xmobar/icons/sound.xcf differ
diff --git a/xmobar/icons/sound/high.xpm b/xmobar/icons/sound/high.xpm
new file mode 100644
index 0000000..c4fe06d
--- /dev/null
+++ b/xmobar/icons/sound/high.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static char * high_xpm[] = {
+"16 16 2 1",
+" c None",
+". c #FFFFFF",
+" ",
+" ",
+" ",
+" . . ",
+" .. . . ",
+" ... . . . ",
+" ..... . . . ",
+" ..... . . . ",
+" ..... . . . ",
+" ..... . . . ",
+" ... . . . ",
+" .. . . ",
+" . . ",
+" ",
+" ",
+" "};
diff --git a/xmobar/icons/sound/low.xpm b/xmobar/icons/sound/low.xpm
new file mode 100644
index 0000000..201972a
--- /dev/null
+++ b/xmobar/icons/sound/low.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static char * low_xpm[] = {
+"16 16 2 1",
+" c None",
+". c #FFFFFF",
+" ",
+" ",
+" ",
+" . ",
+" .. ",
+" ... . ",
+" ..... . ",
+" ..... . ",
+" ..... . ",
+" ..... . ",
+" ... . ",
+" .. ",
+" . ",
+" ",
+" ",
+" "};
diff --git a/xmobar/icons/sound/medium.xpm b/xmobar/icons/sound/medium.xpm
new file mode 100644
index 0000000..1c2bbb8
--- /dev/null
+++ b/xmobar/icons/sound/medium.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static char * medium_xpm[] = {
+"16 16 2 1",
+" c None",
+". c #FFFFFF",
+" ",
+" ",
+" ",
+" . ",
+" .. . ",
+" ... . . ",
+" ..... . . ",
+" ..... . . ",
+" ..... . . ",
+" ..... . . ",
+" ... . . ",
+" .. . ",
+" . ",
+" ",
+" ",
+" "};
diff --git a/xmobar/icons/sound/mute.xpm b/xmobar/icons/sound/mute.xpm
new file mode 100644
index 0000000..37305cb
--- /dev/null
+++ b/xmobar/icons/sound/mute.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static char * mute_xpm[] = {
+"16 16 2 1",
+" c None",
+". c #FFFFFF",
+" ",
+" ",
+" ",
+" . ",
+" .. ",
+" ... ",
+" ..... . . ",
+" ..... .. ",
+" ..... .. ",
+" ..... . . ",
+" ... ",
+" .. ",
+" . ",
+" ",
+" ",
+" "};
diff --git a/xmobar/icons/sound/none.xpm b/xmobar/icons/sound/none.xpm
new file mode 100644
index 0000000..64d052b
--- /dev/null
+++ b/xmobar/icons/sound/none.xpm
@@ -0,0 +1,21 @@
+/* XPM */
+static char * none_xpm[] = {
+"16 16 2 1",
+" c None",
+". c #FFFFFF",
+" ",
+" ",
+" ",
+" . ",
+" .. ",
+" ... ",
+" ..... ",
+" ..... ",
+" ..... ",
+" ..... ",
+" ... ",
+" .. ",
+" . ",
+" ",
+" ",
+" "};
diff --git a/xmobarrc b/xmobarrc
index 2bd8c29..a842c98 100644
--- a/xmobarrc
+++ b/xmobarrc
@@ -2,6 +2,7 @@
Config { font = "xft:Source Code Pro:size=9"
, iconRoot = ".config/xmobar/icons"
, commands = [ Run Date "%B, %a %0d, %l:%M" "date" 10
+ --, Run Mpris2 "org.mpris.quodlibet" [] 100
, Run Battery
[ "-t", ""
, "--"
@@ -32,7 +33,9 @@ Config { font = "xft:Source Code Pro:size=9"
, "--load-icon-patterns", ""
, "--load-icon-patterns", ""
] 50
+ , Run Com "quodinfo" [] "quodlibet" 10
+ , Run Com "soundinfo" [] "sound" 10
, Run StdinReader
]
- , template = " %StdinReader% } %date% { %multicpu% %wlp7s0wi%%enp9s0%%bright%%battery% "
+ , template = " %StdinReader%} %date% {%quodlibet% %multicpu% %wlp7s0wi% %enp9s0% %bright% %battery% "
}