Merge pull request #490 from piyueh/battery-upower-imprv

Improve battery-upower
This commit is contained in:
tobi-wan-kenobi 2019-12-22 14:03:48 +01:00 committed by GitHub
commit d52b2906e4
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
4 changed files with 82 additions and 11 deletions

View file

@ -1,4 +1,5 @@
"""Check updates to Arch Linux."""
"""Check updates to Arch Linux.
"""
import subprocess

View file

@ -3,9 +3,9 @@
"""Displays battery status, remaining percentage and charging information.
Parameters:
* battery.warning : Warning threshold in % of remaining charge (defaults to 20)
* battery.critical : Critical threshold in % of remaining charge (defaults to 10)
* battery.showremaining : If set to true (default) shows the remaining time until the batteries are completely discharged
* battery-upower.warning : Warning threshold in % of remaining charge (defaults to 20)
* battery-upower.critical : Critical threshold in % of remaining charge (defaults to 10)
* battery-upower.showremaining : If set to true (default) shows the remaining time until the batteries are completely discharged
"""
import dbus
@ -204,9 +204,8 @@ class Module(bumblebee.engine.Module):
engine.input.register_callback(self, button=bumblebee.input.LEFT_MOUSE,
cmd="gnome-power-statistics")
def remaining(self):
estimate = int(self.power.get_full_device_information(self.device)['TimeToEmpty'])
return bumblebee.util.durationfmt(estimate, shorten=True, suffix=True) # estimate is in minutes
self._showremaining = bumblebee.util.asbool(
self.parameter("showremaining", True))
def capacity(self, widget):
widget.set("capacity", -1)
@ -218,13 +217,25 @@ class Module(bumblebee.engine.Module):
widget.set("capacity", capacity)
output = "{}%".format(capacity)
widget.set("theme.minwidth", "100%")
if bumblebee.util.asbool(self.parameter("showremaining", True)) \
and self.power.get_state(self.device) == "Discharging":
output = "{} {}".format(output, self.remaining())
except Exception as e:
logging.exception("unable to get battery capacity: {}".format(str(e)))
if self._showremaining:
try:
p = self.power # an alias to make each line of code shorter
proxy = p.bus.get_object(p.UPOWER_NAME, self.device)
interface = dbus.Interface(proxy, p.DBUS_PROPERTIES)
state = int(interface.Get(p.UPOWER_NAME+".Device", "State"))
# state: 1 => charging, 2 => discharging, other => don't care
remain = int(interface.Get(
p.UPOWER_NAME+".Device", ["TimeToFull", "TimeToEmpty"][state-1]))
remain = bumblebee.util.durationfmt(remain, shorten=True, suffix=True)
output = "{} {}".format(output, remain)
except IndexError:
pass
except Exception as e:
logging.exception("unable to get battery remaining time: {}".format(str(e)))
return output
def state(self, widget):

View file

@ -93,6 +93,45 @@
"prefix": "tun"
}
},
"battery-upower": {
"charged": {
"suffix": "full"
},
"charging": {
"suffix": "chr"
},
"AC": {
"suffix": "ac"
},
"discharging-10": {
"prefix": "!",
"suffix": "dis"
},
"discharging-25": {
"suffix": "dis"
},
"discharging-50": {
"suffix": "dis"
},
"discharging-80": {
"suffix": "dis"
},
"discharging-100": {
"suffix": "dis"
},
"unknown-25": {
"suffix": "?"
},
"unknown-50": {
"suffix": "?"
},
"unknown-80": {
"suffix": "?"
},
"unknown-100": {
"suffix": "?"
}
},
"battery": {
"charged": {
"suffix": "full"

View file

@ -82,6 +82,26 @@
"OFF": { "prefix": "" },
"?": { "prefix": "" }
},
"battery-upower": {
"charged": { "prefix": "", "suffix": "" },
"AC": { "suffix": "" },
"charging": {
"prefix": ["", "", "", "", ""],
"suffix": ""
},
"discharging-10": { "prefix": "", "suffix": "" },
"discharging-25": { "prefix": "", "suffix": "" },
"discharging-50": { "prefix": "", "suffix": "" },
"discharging-80": { "prefix": "", "suffix": "" },
"discharging-100": { "prefix": "", "suffix": "" },
"unlimited": { "prefix": "", "suffix": "" },
"estimate": { "prefix": "" },
"unknown-10": { "prefix": "", "suffix": "" },
"unknown-25": { "prefix": "", "suffix": "" },
"unknown-50": { "prefix": "", "suffix": "" },
"unknown-80": { "prefix": "", "suffix": "" },
"unknown-100": { "prefix": "", "suffix": "" }
},
"battery": {
"charged": { "prefix": "", "suffix": "" },
"AC": { "suffix": "" },