37 lines
1.4 KiB
Python
37 lines
1.4 KiB
Python
from ..utils import BasicSegment, warn
|
|
import os
|
|
|
|
|
|
class Segment(BasicSegment):
|
|
def add_to_powerline(self):
|
|
# See discussion in https://github.com/banga/powerline-shell/pull/204
|
|
# regarding the directory where battery info is saved
|
|
if os.path.exists("/sys/class/power_supply/BAT0"):
|
|
dir_ = "/sys/class/power_supply/BAT0"
|
|
elif os.path.exists("/sys/class/power_supply/BAT1"):
|
|
dir_ = "/sys/class/power_supply/BAT1"
|
|
else:
|
|
warn("battery directory could not be found")
|
|
return
|
|
|
|
with open(os.path.join(dir_, "capacity")) as f:
|
|
cap = int(f.read().strip())
|
|
with open(os.path.join(dir_, "status")) as f:
|
|
status = f.read().strip()
|
|
if status == "Full":
|
|
if self.powerline.segment_conf("battery", "always_show_percentage", False):
|
|
pwr_fmt = u" {cap:d}% \U0001F50C "
|
|
else:
|
|
pwr_fmt = u" \U0001F50C "
|
|
elif status == "Charging":
|
|
pwr_fmt = u" {cap:d}% \u26A1 "
|
|
else:
|
|
pwr_fmt = " {cap:d}% "
|
|
|
|
if cap < self.powerline.segment_conf("battery", "low_threshold", 20):
|
|
bg = self.powerline.theme.BATTERY_LOW_BG
|
|
fg = self.powerline.theme.BATTERY_LOW_FG
|
|
else:
|
|
bg = self.powerline.theme.BATTERY_NORMAL_BG
|
|
fg = self.powerline.theme.BATTERY_NORMAL_FG
|
|
self.powerline.append(pwr_fmt.format(cap=cap), fg, bg)
|