def blockify_volume(): """ Print the current volume. """ block = StatusUnit('volume') block.icon_block.set_name('toggle-volume') status = volume_control.status() if status == "on": volume = int(volume_control.get_volume()) if volume > 80: block.set_icon('') elif volume > 40: block.set_icon('') else: block.set_icon('') block.set_text(str(volume) + '%') color = get_color_gradient(volume, [ { 'threshold': 0, 'color': colors['urgent'] }, { 'threshold': 100, 'color': colors['blue'] }, { 'threshold': 101, 'color': colors['yellow'] }, { 'threshold': 200, 'color': colors['yellow'] } ]) block.set_border(color, 0, TOP_BORDER_WIDTH, 0, 0) block.status_block.set_min_width(40, 'right') else: block.set_icon('') block.set_text('muted') block.set_urgent() block.status_block.set_name('toggle-volume') return block.to_json()
def blockify_date(): """ Prints the date and time. """ now = datetime.datetime.now() calendar = StatusUnit('calendar') calendar.set_icon('') calendar.set_text(now.strftime('%a., %d. %b. %Y')) return calendar.to_json()
def blockify_time(): """ Prints the time. """ now = datetime.datetime.now() clock = StatusUnit('clock') clock.set_icon('') clock.set_text(now.strftime('%H:%M:%S')) return clock.to_json()
def blockify_time(): """ Prints the time. """ now = datetime.datetime.now() clock = StatusUnit('clock') clock.set_icon('') clock.set_text(' ' + now.strftime('%H:%M:%S') + ' ') return clock.to_json()
def blockify_date(): """ Prints the date and time. """ now = datetime.datetime.now() calendar = StatusUnit('calendar') calendar.set_icon('') calendar.set_text(' ' + now.strftime('%a., %d. %b. %Y') + ' ') return calendar.to_json()
def blockify_topprocess(): """ Print the top CPU consuming process """ block = StatusUnit("topcpu") block.set_icon("T") topprocess = executor.run("ps aux | sort -rk 3,3 | head -n 2 | tail -n 1 | rev | sed -e 's/^[[:space:]]*//' | cut -d' ' -f 1 | rev")[0] block.set_text(str(topprocess)) block.status_block.set_min_width(40, "right") return block.to_json()
def blockify_active_window(): """ Print the currently active window (or 'none'). """ active_window, return_code = executor.run('xdotool getactivewindow getwindowname') if return_code != 0: return None if len(active_window) > 100: active_window = active_window[:80] + '...' + active_window[-20:] block = StatusUnit('active-window') block.set_icon('') block.set_text(' ' + active_window) return block.to_json()
def blockify_active_window(): """ Print the currently active window (or 'none'). """ active_window, return_code = executor.run('xdotool getactivewindow getwindowname') if return_code != 0: return None if len(active_window) > 100: active_window = active_window[:80] + '...' + active_window[-20:] block = StatusUnit('active-window') block.set_icon('') block.set_text(active_window) return block.to_json()
def blockify_pidgin(): """ If pidgin is running, print the number of unread messages. For this to work, the pidgin option to set a X variable must be enabled. """ unread_messages, return_code = executor.run_script('pidgin-count') if return_code != 0: return None block = StatusUnit('pidgin') block.set_icon('') block.set_text(unread_messages) if int(unread_messages) != 0: block.set_urgent() return block.to_json()
def blockify_ethernet(): """ Prints information about the connected ethernet. """ interface = "eth0" try: with open('/sys/class/net/{}/operstate'.format(interface)) as operstate: status = operstate.read().strip() except: return None if status != 'up': return None block = StatusUnit('network') block.set_icon('') block.set_text(interface + ' @ ' + netifaces.ifaddresses(interface)[netifaces.AF_INET][0]['addr']) return block.to_json()
def blockify_ethernet(): """ Prints information about the connected ethernet. """ interface = "eth0" try: with open('/sys/class/net/{}/operstate'.format(interface)) as operstate: status = operstate.read().strip() except: return None if status != 'up': return None block = StatusUnit('network') block.set_icon('') block.set_text(' ' + interface + ' @ ' + netifaces.ifaddresses(interface)[netifaces.AF_INET][0]['addr']) return block.to_json()
def blockify_wifi(): """ Prints information about the connected wifi. """ interface = "wlan0" try: with open('/sys/class/net/{}/operstate'.format(interface)) as operstate: status = operstate.read().strip() except: return None if status != 'up': return None info = basiciw.iwinfo(interface) block = StatusUnit('network') block.set_icon('') block.set_text(info['essid']) return block.to_json()
def blockify_cpu(): """ Print the CPU load average and temperature """ block = StatusUnit("cpu") block.set_icon("C") cpuload = executor.run("uptime | awk -F'[a-z]:' '{ print $2}'")[0] oneminload = float(cpuload.split(",")[0] + "." + cpuload.split(",")[1]) cputemp = executor.run("cat /sys/class/thermal/thermal_zone7/temp")[0] temp = int(cputemp) / 1000 if oneminload > 3 or temp > 80: block.set_urgent() elif oneminload > 1 or temp > 60: block.set_border(colors["urgent"], 0, TOP_BORDER_WIDTH, 0, 0) block.set_text(str(oneminload) + "/" + str(temp)) block.status_block.set_min_width(40, "right") return block.to_json()
def blockify_battery(): """ Print the current battery level. """ block = StatusUnit('battery') block.set_icon('') acpi = executor.run('acpi -b')[0] battery = re.search('\d*%', acpi).group(0) battery_int = int(battery[:-1]) is_charging = bool(re.search('Charging|Unknown', acpi)) if is_charging: block.set_icon('') elif battery_int > 90: block.set_icon('') elif battery_int > 50: block.set_icon('') elif battery_int > 20: block.set_icon('') else: block.set_icon('') block.set_text(battery) if battery_int > 10 or is_charging: color = get_color_gradient(battery_int, [ { 'threshold': 0, 'color': colors['urgent'] }, { 'threshold': 20, 'color': colors['urgent'] }, { 'threshold': 80, 'color': colors['lime'] }, { 'threshold': 100, 'color': colors['lime'] } ]) #block.set_border(colors["blue"], 0, 1, 0, 1) else: #block.set_urgent() pass block.status_block.set_min_width(40, 'right') return block.to_json()
def blockify_battery(): """ Print the current battery level. """ block = StatusUnit('battery') block.set_icon('') acpi = executor.run('acpi -b')[0] battery = re.search('\d*%', acpi).group(0) battery_int = int(battery[:-1]) is_charging = bool(re.search('Charging|Unknown', acpi)) if is_charging: block.set_icon('') elif battery_int > 90: block.set_icon('') elif battery_int > 50: block.set_icon('') elif battery_int > 20: block.set_icon('') else: block.set_icon('') block.set_text(battery) if battery_int > 10 or is_charging: color = get_color_gradient(battery_int, [ { 'threshold': 0, 'color': colors['urgent'] }, { 'threshold': 20, 'color': colors['urgent'] }, { 'threshold': 80, 'color': colors['blue'] }, { 'threshold': 100, 'color': colors['blue'] } ]) block.set_border(color, 0, TOP_BORDER_WIDTH, 0, 0) else: block.set_urgent() block.status_block.set_min_width(40, 'right') return block.to_json()