示例#1
0
    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
示例#2
0
    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)
示例#3
0
文件: music.py 项目: DexterLB/ui
    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"])
示例#4
0
    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