def usage(): tx_bytes, rx_bytes = 0, 0 for i in network.interfaces: tx_bytes += readint(f'/sys/class/net/{i}/statistics/tx_bytes') rx_bytes += readint(f'/sys/class/net/{i}/statistics/rx_bytes') tx_old, rx_old = network.usage rx_rate = rx_bytes - rx_old tx_rate = tx_bytes - tx_old network.usage = (tx_bytes, rx_bytes) if not any((tx_rate, rx_rate)): return None return ' '.join([ f'↑ {human_readable(tx_rate)}', f'↓ {human_readable(rx_rate)}', ])
def backlight_percentage() -> str: bl_now = readint(glob('/sys/class/backlight/*/brightness')[0]) percent = (100 / bl_max) * bl_now return label('bl', meter(percent))
'''Backlight level percentage.''' from glob import glob from lib_pybar import Block, label, meter, readint try: bl_max = readint(glob('/sys/class/backlight/*/max_brightness')[0]) has_backlight_info = True except (FileNotFoundError, IndexError): has_backlight_info = False def backlight_percentage() -> str: bl_now = readint(glob('/sys/class/backlight/*/brightness')[0]) percent = (100 / bl_max) * bl_now return label('bl', meter(percent)) def main(): return Block( prerequisite=has_backlight_info, source=backlight_percentage, sleep_ms=500, weight=95, )
'''Memory usage.''' from lib_pybar import Block, label, meter, readint swap_percent = 100 - readint('/proc/sys/vm/swappiness') def memory_usage(): mem = {} with open('/proc/meminfo', 'r') as f: for line in f.readlines(): line = line.strip().split() if len(line) == 3: key, val, _ = line key = key[:-1] elif len(line) == 2: key, val = line key = key[:-1] mem[key] = int(val) # memory usage as calculated by `free(1)` percent = (100 / mem['MemTotal']) * ( mem['MemTotal'] - mem['Buffers'] - mem['Cached'] - mem['MemFree'] ) # Only show memory usage when we are more than halfway to swapping if percent > (swap_percent / 2):
def charging(self): return readint('/sys/class/power_supply/AC/online')
def power_levels(self): for battery in self.batteries: full = readint(f'{battery}/energy_full') now = readint(f'{battery}/energy_now') power = ((100 / full) * now) yield power