Exemplo n.º 1
0
def analog(draw, width, height):
    now = datetime.datetime.now()
    today_date = now.strftime("%d %b %y")

    y_offset = 16
    margin = 3

    cx = width / 2
    cy = y_offset + ((height - y_offset - margin) / 2)

    left = (width - (min(height, 64) - y_offset - margin)) / 2
    right = width - left
    radius = (right - left) / 2
    top = cy - radius
    bottom = cy + radius

    hrs_angle = 270 + (30 * (now.hour + (now.minute / 60.0)))
    hrs = posn(hrs_angle, radius - 8)

    min_angle = 270 + (6 * now.minute)
    mins = posn(min_angle, radius - 3)

    sec_angle = 270 + (6 * now.second)
    secs = posn(sec_angle, radius - 3)

    draw.ellipse((left, top, right, bottom), outline="white")
    draw.line((cx, cy, cx + hrs[0], cy + hrs[1]), fill="white")
    draw.line((cx, cy, cx + mins[0], cy + mins[1]), fill="white")
    draw.line((cx, cy, cx + secs[0], cy + secs[1]), fill="red")
    draw.ellipse((cx - 1, cy - 1, cx + 1, cy + 1), fill="white", outline="white")
    title_text(draw, margin, width, today_date)
Exemplo n.º 2
0
def analog(draw, width, height):
    now = datetime.datetime.now()
    today_date = now.strftime("%d %b %y")

    top = 16
    margin = 3

    cx = width / 2
    cy = top + ((height - top - margin) / 2)

    left = (width - (height - top - margin)) / 2
    right = width - left

    hrs_angle = 270 + (30 * (now.hour + (now.minute / 60.0)))
    hrs = posn(hrs_angle, cx - 16)

    min_angle = 270 + (6 * now.minute)
    mins = posn(min_angle, cx - 10)

    sec_angle = 270 + (6 * now.second)
    secs = posn(sec_angle, cx - 10)

    draw.ellipse((left, top, right, height - margin), outline="white")
    draw.line((cx, cy, cx + hrs[0], cy + hrs[1]), fill="white")
    draw.line((cx, cy, cx + mins[0], cy + mins[1]), fill="white")
    draw.line((cx, cy, cx + secs[0], cy + secs[1]), fill="red")
    draw.ellipse((cx - 1, cy - 1, cx + 1, cy + 1), fill="white", outline="white")
    title_text(draw, margin, width, today_date)
Exemplo n.º 3
0
def render(draw, width, height):
    percentages = psutil.cpu_percent(interval=None, percpu=True)

    margin = 3
    top_margin = 3
    bottom_margin = 3

    title_text(draw, top_margin, width, "Net: wlan0")
    address = psutil.net_if_addrs()["wlan0"][0].address
    counters = psutil.net_io_counters(pernic=True)["wlan0"]

    draw.text((margin, 20), text=address, font=tiny_font, fill="white")
    draw.text((margin, 30), text="Rx:", font=tiny_font, fill="white")
    draw.text((margin, 40), text="Tx:", font=tiny_font, fill="white")
    right_text(draw, 30, width, margin, text=bytes2human(counters.bytes_recv))
    right_text(draw, 40, width, margin, text=bytes2human(counters.bytes_sent))

    x = (width - draw.textsize("CPU Load")[0]) / 2
    draw.text((x, 55), text="CPU Load", fill="yellow")
    bar_height = (height - 15 - top_margin - bottom_margin) / 2
    width_cpu = width / len(percentages)
    bar_width = 0.5 * width_cpu
    bar_margin = (width_cpu - bar_width) / 2

    x = bar_margin

    for cpu in percentages:
        cpu_height = bar_height * (cpu / 100.0)
        y2 = height - bottom_margin
        vertical_bar(draw, x, y2 - bar_height - 1, x + bar_width, y2,
                     y2 - cpu_height)

        x += width_cpu
Exemplo n.º 4
0
 def render(draw, width, height):
     margin = 3
     playing = ''
     playing2 = ''
     current = 0
     length = 0
     if 'state' in roonapid.zones[dac_zone]:
         state = roonapid.zones[dac_zone]['state']
         title_text(
             draw, margin, width,
             "%s - %s" % (roonapid.zones[dac_zone]['display_name'], state))
         if "now_playing" in roonapid.zones[dac_zone]:
             playing = roonapid.zones[dac_zone]['now_playing']['two_line'][
                 'line1']
             playing2 = roonapid.zones[dac_zone]['now_playing']['two_line'][
                 'line2']
             if "length" in roonapid.zones[dac_zone]['now_playing']:
                 length = roonapid.zones[dac_zone]['now_playing']['length']
             if state == "playing" and 'seek_position' in roonapid.zones[
                     dac_zone]:
                 current = roonapid.zones[dac_zone]['seek_position']
             elif "seek_position" in roonapid.zones[dac_zone][
                     'now_playing']:
                 current = roonapid.zones[dac_zone]['now_playing'][
                     'seek_position']
             if current:
                 draw.text((margin, 50),
                           text="%s / %s" %
                           (str(datetime.timedelta(seconds=current)),
                            str(datetime.timedelta(seconds=length))))
         draw.text((margin, 20), text=playing, font=tiny_font)
         draw.text((margin, 35), text=playing2, font=tiny_font)
Exemplo n.º 5
0
def render(draw, width, height):
    df = psutil.disk_usage("/")

    margin = 3

    title_text(draw, margin, width, text="Disk")
    draw.text((margin, 20), text="Used:", font=tiny_font, fill="white")
    draw.text((margin, 30), text="Free:", font=tiny_font, fill="white")
    draw.text((margin, 40), text="Total:", font=tiny_font, fill="white")

    right_text(draw, 20, width, margin, text="{0:0.1f}%".format(df.percent))
    right_text(draw, 30, width, margin, text=bytes2human(df.free, "{0:0.0f}"))
    right_text(draw, 40, width, margin, text=bytes2human(df.total, "{0:0.0f}"))

    mem = psutil.virtual_memory()
    swap = psutil.swap_memory()
    mem_used_pct = (mem.total - mem.available) * 100.0 / mem.total

    x = (width - draw.textsize("Memory")[0]) / 2
    draw.text((x, 55), text="Memory", fill="yellow")
    draw.text((margin, 75), text="Used:", font=tiny_font, fill="white")
    draw.text((margin, 85), text="Phys:", font=tiny_font, fill="white")
    draw.text((margin, 95), text="Swap:", font=tiny_font, fill="white")

    right_text(draw, 75, width, margin, text="{0:0.1f}%".format(mem_used_pct))
    right_text(draw, 85, width, margin, text=bytes2human(mem.used))
    right_text(draw, 95, width, margin, text=bytes2human(swap.used))
def render_disk_memory_battery(draw, width, height):
    global input_data
    if not input_data:
        return

    logging.info('Rendering Disk and Memory...')
    margin = 3

    # Disk
    title_text(draw, margin, width, text="Disk")
    draw.text((margin, 15), text="Used:", font=tiny_font, fill="white")
    draw.text((margin, 25), text="Free:", font=tiny_font, fill="white")
    draw.text((margin, 35), text="Total:", font=tiny_font, fill="white")
    right_text(draw,
               15,
               width,
               margin,
               text="{0:0.1f}%".format(input_data["disk"]["used_pct"]))
    right_text(draw,
               25,
               width,
               margin,
               text=bytes2human(input_data["disk"]["free"], "{0:0.0f}"))
    right_text(draw,
               35,
               width,
               margin,
               text=bytes2human(input_data["disk"]["total"], "{0:0.0f}"))

    # Memory
    x = (width - draw.textsize("Memory")[0]) / 2
    draw.text((x, 45), text="Memory", fill="yellow")
    draw.text((margin, 57), text="Used:", font=tiny_font, fill="white")
    draw.text((margin, 67), text="Phys:", font=tiny_font, fill="white")
    draw.text((margin, 77), text="Swap:", font=tiny_font, fill="white")
    right_text(draw,
               57,
               width,
               margin,
               text="{0:0.1f}%".format(input_data["memory"]["mem_used_pct"]))
    right_text(draw,
               67,
               width,
               margin,
               text=bytes2human(input_data["memory"]["mem_used"]))
    right_text(draw,
               77,
               width,
               margin,
               text=bytes2human(input_data["memory"]["swap_used"]))

    # Battery
    draw.text((x, 90), text="Battery", fill="yellow")
    battery_pct = input_data["battery"]["battery_pct"]
    draw.text((margin, 105),
              text="{} %".format(battery_pct),
              font=tiny_font,
              fill="white")
Exemplo n.º 7
0
def digital(draw, width, height):
    margin = 3

    now = datetime.datetime.now()
    today_date = now.strftime("%d %b %y")
    current_time = now.strftime("%H:%m:%S")

    title_text(draw, margin, width, today_date)
    draw.text((margin + 10, 20), text=current_time, fill="white", font=tiny_font)
Exemplo n.º 8
0
def render(draw, width, height):
    boot_time = datetime.fromtimestamp(psutil.boot_time())
    elapsed = datetime.now() - boot_time
    margin = 3
    title_text(draw, margin, width, "Uptime")
    right_text(draw,
               20,
               width,
               margin,
               text="{0} s".format(int(elapsed.total_seconds())))
Exemplo n.º 9
0
def render(draw, width, height):
    df = psutil.disk_usage("/")

    margin = 3

    title_text(draw, margin, width, text="Disk")
    draw.text((margin, 20), text="Used:", font=tiny_font, fill="white")
    draw.text((margin, 35), text="Free:", font=tiny_font, fill="white")
    draw.text((margin, 45), text="Total:", font=tiny_font, fill="white")

    right_text(draw, 20, width, margin, text="{0:0.1f}%".format(df.percent))
    right_text(draw, 35, width, margin, text=bytes2human(df.free, "{0:0.0f}"))
    right_text(draw, 45, width, margin, text=bytes2human(df.total, "{0:0.0f}"))
Exemplo n.º 10
0
    def render(draw, width, height):
        margin = 3
        title_text(draw, margin, width, text="Net:{0}".format(interface))
        try:
            address = psutil.net_if_addrs()[interface][0].address
            counters = psutil.net_io_counters(pernic=True)[interface]

            draw.text((margin, 20), text=address, font=tiny_font, fill="white")
            draw.text((margin, 35), text="Rx:", font=tiny_font, fill="white")
            draw.text((margin, 45), text="Tx:", font=tiny_font, fill="white")

            right_text(draw, 35, width, margin, text=bytes2human(counters.bytes_recv))
            right_text(draw, 45, width, margin, text=bytes2human(counters.bytes_sent))
        except:
            draw.text((margin, 20), text="n/a", font=tiny_font, fill="white")
Exemplo n.º 11
0
def render(draw, width, height):
    mem = psutil.virtual_memory()
    swap = psutil.swap_memory()
    mem_used_pct = (mem.total - mem.available) * 100.0 / mem.total

    margin = 3

    title_text(draw, margin, width, text="Memory")
    draw.text((margin, 20), text="Used:", font=tiny_font, fill="white")
    draw.text((margin, 35), text="Phys:", font=tiny_font, fill="white")
    draw.text((margin, 45), text="Swap:", font=tiny_font, fill="white")

    right_text(draw, 20, width, margin, text="{0:0.1f}%".format(mem_used_pct))
    right_text(draw, 35, width, margin, text=bytes2human(mem.used))
    right_text(draw, 45, width, margin, text=bytes2human(swap.used))
Exemplo n.º 12
0
def render(draw, width, height):
    boot_time = datetime.fromtimestamp(psutil.boot_time())
    elapsed = datetime.now() - boot_time
    margin = 3
    title_text(draw, margin, width, "Uptime")
    right_text(draw, 20, width, margin, text="{0} s".format(int(elapsed.total_seconds())))

    if int(elapsed.total_seconds()) > 172800:
        days = str(int(elapsed.total_seconds())/86400) + " days"
    elif int(elapsed.total_seconds()) > 86400:
        days = "1 day"
    else:
        days = None

    if days:
        right_text(draw, 35, width, margin, days)
def render_network_cpu(draw, width, height):
    global input_data
    if not input_data:
        return

    logging.info('Rendering Network and CPU...')
    margin = 3
    top_margin = 3
    bottom_margin = 3

    # Network
    title_text(draw, top_margin, width,
               "Net: {}".format(input_data["network"]["interface_name"]))
    # interface_address = input_data["network"]["interface_address"]
    ip_address = input_data["network"]["ip_address"]
    # draw.text((margin, 15), text=interface_address, font=tiny_font, fill="white")
    draw.text((margin, 15), text=ip_address, font=tiny_font, fill="white")
    draw.text((margin, 25), text="Rx:", font=tiny_font, fill="white")
    draw.text((margin, 35), text="Tx:", font=tiny_font, fill="white")
    right_text(draw,
               25,
               width,
               margin,
               text=bytes2human(input_data["network"]["bytes_recv"]))
    right_text(draw,
               35,
               width,
               margin,
               text=bytes2human(input_data["network"]["bytes_sent"]))

    # CPU
    x = (width - draw.textsize("CPU Load")[0]) / 2
    draw.text((x, 45), text="CPU Load", fill="yellow")
    bar_height = (height - 15 - top_margin - bottom_margin) / 1.95
    width_cpu = width / len(input_data["cpu"]["cpu_percent_each"])
    bar_width = 0.5 * width_cpu
    bar_margin = (width_cpu - bar_width) / 1.95
    cpu_percent_string = "{}%".format(str(input_data["cpu"]["cpu_percent"]))
    x = (width - draw.textsize(cpu_percent_string)[0]) / 1.7
    draw.text((x, 57), text=cpu_percent_string, font=tiny_font, fill="white")
    x = bar_margin
    for cpu in input_data["cpu"]["cpu_percent_each"]:
        cpu_height = bar_height * (cpu / 100.0)
        y2 = height - bottom_margin
        vertical_bar(draw, x, y2 - bar_height - 1, x + bar_width, y2,
                     y2 - cpu_height)
        x += width_cpu
Exemplo n.º 14
0
def render(draw, width, height):
    percentages = psutil.cpu_percent(interval=None, percpu=True)

    top_margin = 3
    bottom_margin = 3
    title_text(draw, top_margin, width, "CPU Load")

    bar_height = height - 15 - top_margin - bottom_margin
    width_cpu = width / len(percentages)
    bar_width = 0.5 * width_cpu
    bar_margin = (width_cpu - bar_width) / 2

    x = bar_margin

    for cpu in percentages:
        cpu_height = bar_height * (cpu / 100.0)
        y2 = height - bottom_margin
        vertical_bar(draw, x, y2 - bar_height - 1, x + bar_width, y2,
                     y2 - cpu_height)

        x += width_cpu
Exemplo n.º 15
0
def render(draw, width, height):
    tFile = open('/sys/class/thermal/thermal_zone0/temp')
    tempC = float(tFile.read()) / 1000
    tFile.close()

    fFile = open('/sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq')
    freqC = long(fFile.read()) / 1000
    fFile.close()

    margin = 3
    title_text(draw, margin, width, "CPU status")
    draw.text((margin, 20), text="Temp:", font=tiny_font, fill="white")
    draw.text((margin, 30), text="Freq:", font=tiny_font, fill="white")
    draw.text((margin, 40), text="Fan:", font=tiny_font, fill="white")
    draw.text((margin, 50), text="RPM:", font=tiny_font, fill="white")

    right_text(draw, 20, width, margin, text="{0:0.1f}C".format(tempC))
    right_text(draw, 30, width, margin, text="{0}k".format(int(freqC)))
    fan = fanOut()
    fanDC, fanRPM = fan.split(" ")
    if "Err" not in fanDC:
        fanDC += "%"
    right_text(draw, 40, width, margin, fanDC)
    right_text(draw, 50, width, margin, fanRPM)
Exemplo n.º 16
0
def render(draw, width, height):
    # dac_zone='160155895af4376afe74c12da20fdadfc027'
    title_text(draw, margin, width, "On Airplay" % interface)
    draw.text((margin, 20), text=artist, font=tiny_font)
    draw.text((margin, 35), text=track, font=tiny_font)