def battery_info(self): if not self.battery.exists(): return status = self.battery.status() info = PanelStrip('battery') if status == 'Full': info.icon('battery_max') elif status == 'Charging': info.icon('battery_charging') else: info.icon('battery') if self.battery.percent() < 15: background = PanelVisual.urgent else: background = None info.text( str(self.battery.percent()) + '%', background=background ) info.text(' (' + str(self.battery.current_charge()) + 'mAh') if self.battery.status() == 'Discharging': info.text(' at ' + str(self.battery.current()) + 'mA') info.text(') ') return info
def refresh_workspaces(self, events): info = PanelStrip('workspaces') for workspace in self.i3.get_workspaces(): colour, background = None, None if workspace.visible: colour = PanelVisual.semiactive if workspace.focused: colour = PanelVisual.active if workspace.urgent: background = PanelVisual.urgent info.click('i3-msg workspace ' + workspace.name) info.text(workspace.name, colour, background).text(' ') info.click() events.put(info)
def render(self): status = self.mpd.status() song = self.mpd.currentsong() info = PanelStrip("music") if status["state"] not in ("play", "pause"): return info.text("DON'T PANIC!") info.icon("music") info += PanelStrip().text(song["artist"]).trim(200).text(" - ") if status["state"] == "play": colour = PanelVisual.active else: colour = None info += PanelStrip().text(song["title"], colour).trim(200) info.move(8).icon("volume").move(3) return info.text(status["volume"])
def render_notification(self, notification): info = PanelStrip('notification') if not notification: return info if self.stacked_notifications > 1: info.text( '[' + str(self.stacked_notifications) + ']', background=PanelVisual.urgent ).text(' ') info.text( self.remove_html(notification['summary']), colour=PanelVisual.active ).text(' ') info.text(self.remove_html(notification['body'])) return info