[modules/battery] Fix ac and unknown display
If the computer runs on AC, display that instead of showing "100%" in the status. Also, if reading the charging status fails for some reason (except the computer being on AC), go into critical state and display "n/a". see #23
This commit is contained in:
parent
2cc2cf8282
commit
d91294f010
3 changed files with 19 additions and 5 deletions
|
@ -19,11 +19,15 @@ class Module(bumblebee.engine.Module):
|
|||
super(Module, self).__init__(engine, config,
|
||||
bumblebee.output.Widget(full_text=self.capacity)
|
||||
)
|
||||
battery = self.parameter("device", "BAT1")
|
||||
battery = self.parameter("device", "BAT0")
|
||||
self._path = "/sys/class/power_supply/{}".format(battery)
|
||||
self._capacity = 100
|
||||
|
||||
def capacity(self):
|
||||
if self._ac:
|
||||
return "ac"
|
||||
if self._capacity == -1:
|
||||
return "n/a"
|
||||
return "{:03d}%".format(self._capacity)
|
||||
|
||||
def update(self, widgets):
|
||||
|
@ -31,16 +35,22 @@ class Module(bumblebee.engine.Module):
|
|||
self._ac = False
|
||||
if not os.path.exists(self._path):
|
||||
self._ac = True
|
||||
self._capacity = 100
|
||||
return
|
||||
|
||||
try:
|
||||
with open(self._path + "/capacity") as f:
|
||||
self._capacity = int(f.read())
|
||||
except IOError:
|
||||
self._capacity = 100
|
||||
self._capacity = -1
|
||||
self._capacity = self._capacity if self._capacity < 100 else 100
|
||||
|
||||
def state(self, widget):
|
||||
state = []
|
||||
|
||||
if self._capacity < 0:
|
||||
return ["critical", "unknown"]
|
||||
|
||||
if self._capacity < int(self.parameter("critical", 10)):
|
||||
state.append("critical")
|
||||
elif self._capacity < int(self.parameter("warning", 20)):
|
||||
|
|
|
@ -121,8 +121,9 @@ class Theme(object):
|
|||
|
||||
state_themes = []
|
||||
# avoid infinite recursion
|
||||
if name not in widget.state():
|
||||
for state in widget.state():
|
||||
states = widget.state()
|
||||
if name not in states:
|
||||
for state in states:
|
||||
state_themes.append(self._get(widget, state, {}))
|
||||
|
||||
value = self._defaults.get(name, default)
|
||||
|
|
|
@ -1,5 +1,8 @@
|
|||
{
|
||||
"defaults": { "separator": "", "padding": " " },
|
||||
"defaults": {
|
||||
"separator": "", "padding": " ",
|
||||
"unknown": { "prefix": "" }
|
||||
},
|
||||
"date": { "prefix": "" },
|
||||
"time": { "prefix": "" },
|
||||
"memory": { "prefix": "" },
|
||||
|
|
Loading…
Reference in a new issue