diff --git a/i3/i3.dotfile/status.py b/i3/i3.dotfile/status.py index 92b668d..4fc5e5f 100644 --- a/i3/i3.dotfile/status.py +++ b/i3/i3.dotfile/status.py @@ -1,67 +1,82 @@ # -*- coding: utf-8 -*- import subprocess +import os.path +import multiprocessing + from i3pystatus import Status status = Status(standalone=True) -# Displays clock like this: -# Tue 30 Jul 11:59:46 PM KW31 -# ^-- calendar week +COLORS = { + 'Black': '#252525', + 'DarkRed': '#f92672', + 'DarkGreen': '#a6e22e', + 'DarkYellow': '#f4bf75', + 'DarkBlue': '#66d9ef', + 'DarkMagenta': '#ae81ff', + 'DarkCyan': '#a1efe4', + 'LightGrey': '#f8f8f2', + 'DarkGrey': '#75715e', + 'Red': '#f92672', + 'Green': '#a6e22e', + 'Yellow': '#f4bf75', + 'Blue': '#66d9ef', + 'Magenta': '#ae81ff', + 'Cyan': '#a1efe4', + 'White': '#f9f8f5', +} + status.register("clock", - format="%a %Y-%m-%d %H:%M:%S",) + format="%a %Y-%m-%d %H:%M:%S", + color=COLORS['Magenta']) -# Shows the average load of the last minute and the last 5 minutes -# (the default value for format is used) -status.register("load", critical_limit=4) +status.register("load", + critical_limit=multiprocessing.cpu_count(), + critical_color=COLORS['Red']) -# # Shows your CPU temperature, if you have a Intel CPU -# status.register("temp", -# format="{temp:.0f}°C",) - -# The battery monitor has many formatting options, see README for details - -# This would look like this, when discharging (or charging) -# ↓14.22W 56.15% [77.81%] 2h:41m -# And like this if full: -# =14.22W 100.0% [91.21%] -# -# This would also display a desktop notification (via dbus) if the percentage -# goes below 5 percent while discharging. The block will also color RED. -status.register("battery", - battery_ident="BAT1", - format="{status}/{consumption:.2f}W {percentage:.2f}% [{percentage_design:.2f}%] {remaining:%E%h:%M}", - alert=True, - alert_percentage=5, - status={ - "DIS": "↓", - "CHR": "↑", - "FULL": "=", - },) - -# Has all the options of the normal network and adds some wireless specific things -# like quality and network names. -# -# Note: requires both netifaces and basiciw -status.register("wireless", - interface="wlp0s29u1u7i2", - format_up="{essid} {quality:03.0f}%",) - -# Shows disk usage of / -# Format: -# 42/128G [86G] status.register("disk", path="/", - format="{avail}G",) + format="{avail}G", + display_limit=15, + critical_limit=10, + critical_color=COLORS['Red']) -status.register("mem") - -# Shows pulseaudio default sink volume -# -# Note: requires libpulseaudio from PyPI status.register("pulseaudio", - format="♪{volume}%",) + format="♪{volume}%{muted}", + muted="M") + +if os.path.exists("/sys/class/power_supply/BAT1"): + status.register("battery", + battery_ident="BAT1", + format="{consumption:.1f}W {percentage_design:.1f}%{status} {remaining:%E%h:%M}", + alert=True, + alert_percentage=20, + charging_color=COLORS['Yellow'], + full_color=COLORS['Green'], + critical_color=COLORS['Red'], + status={ + "DIS": "↓", + "CHR": "↑", + "FULL": "=", + }) + +if os.path.exists("/sys/class/net/wlp0s29u1u7i2"): + status.register("wireless", + interface="wlp0s29u1u7i2", + format_up="{essid} {quality:.0f}%", + color_up=COLORS['Green'], + color_down=COLORS['Red']) + +if os.path.exists("/sys/class/net/eth0"): + status.register("network", + interface="eth0", + color_up=COLORS['Green'], + color_down=COLORS['Red']) + +status.register("mem", + color=COLORS['Green']) status.run()