38 lines
1.4 KiB
Python
38 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)
|