[modules] re-enable amixer

This commit is contained in:
tobi-wan-kenobi 2020-04-13 09:14:22 +02:00
parent 53e2510a4c
commit f5c1c4975f

42
modules/contrib/amixer.py Normal file
View file

@ -0,0 +1,42 @@
"""get volume level
"""
import re
import bumblebee.input
import bumblebee.output
import bumblebee.engine
class Module(bumblebee.engine.Module):
def __init__(self, engine, config):
super(Module, self).__init__(engine, config,
bumblebee.output.Widget(full_text=self.volume)
)
self._level = "0"
self._muted = True
device = self.parameter("device", "Master,0")
self._cmdString = "amixer get {}".format(device)
def volume(self, widget):
m = re.search(r'([\d]+)\%', self._level)
self._muted = True
if m:
if m.group(1) != "0" and "[on]" in self._level:
self._muted = False
return "{}%".format(m.group(1))
else:
return "0%"
def update(self, widgets):
level = ""
try:
level = bumblebee.util.execute(self._cmdString)
except Exception as e:
level = ""
self._level = level
def state(self, widget):
if self._muted:
return ["warning", "muted"]
return ["unmuted"]