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_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_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['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()