diff --git a/battery b/battery index 8309307..3f5135b 100755 --- a/battery +++ b/battery @@ -1,78 +1,40 @@ -#!/usr/bin/perl -# -# Copyright 2014 Pierre Mavro -# Copyright 2014 Vivien Didelot -# -# Licensed under the terms of the GNU GPL v3, or any later version. -# -# This script is meant to use with i3blocks. It parses the output of the "acpi" -# command (often provided by a package of the same name) to read the status of -# the battery, and eventually its remaining time (to full charge or discharge). -# -# The color will gradually change for a percentage below 85%, and the urgency -# (exit code 33) is set if there is less that 5% remaining. +#!/bin/bash -use strict; -use warnings; -use utf8; - -my $acpi; -my $status; -my $percent; -my $full_text; -my $short_text; -my $bat_number = $ENV{BLOCK_INSTANCE} || 0; - -# read the first line of the "acpi" command output -open (ACPI, "acpi -b | grep 'Battery $bat_number' |") or die; -$acpi = ; -close(ACPI); - -# fail on unexpected output -if ($acpi !~ /: (\w+), (\d+)%/) { - die "$acpi\n"; -} - -$status = $1; -$percent = $2; - -if ($status eq 'Discharging') { - $full_text = '↓'; -} elsif ($status eq 'Charging') { - $full_text = '⚡'; -} - - -$short_text = $full_text; - -if ($acpi =~ /(\d\d:\d\d):/) { - $full_text .= " $1"; -} else { - $full_text .= "$percent%"; -} - -# print text -print "$full_text\n"; -print "$short_text\n"; - -# consider color and urgent flag only on discharge -#if ($status eq 'Discharging') { - - if ($percent < 20) { - print "#FF0000\n"; - } elsif ($percent < 40) { - print "#FFAE00\n"; - } elsif ($percent < 60) { - print "#FFF600\n"; - } elsif ($percent < 85) { - print "#A8FF00\n"; - } else { - print "#04B431\n"; - } - - if ($percent < 5) { - exit(33); - } - #} - -exit(0); +[[ ${BLOCK_INSTANCE} == '' ]] && BATTERY=0 || BATTERY=${BLOCK_INSTANCE} +cat /sys/class/power_supply/BAT${BATTERY}/uevent | gawk -F '=' ' + /POWER_SUPPLY_STATUS=/ { + status=$2 + } + /POWER_SUPPLY_ENERGY_FULL=/ { + efull=$2 + } + /POWER_SUPPLY_ENERGY_NOW=/ { + enow=$2 + } + END { + charge=enow/efull*100 + if (status == "Discharging") { + status="↓" + } else if (status == "Charging") { + status="↑" + } else { + status="" + } + printf("%s%d%", status, charge) + print("\n") + if (charge < 20) { + print("#FF0000\n") + } else if (charge < 40) { + print("#FFAE00\n") + } else if (charge < 60) { + print("#FFF600\n") + } else if (charge < 85) { + print("#A8FF00\n") + } else { + print("#04B431\n") + } + if (charge < 5) { + exit 33 + } + } +' diff --git a/storage b/storage index 6a5ddb0..4d94784 100755 --- a/storage +++ b/storage @@ -5,12 +5,20 @@ df | gawk ' sfm=$4/1024 } END { - if (sfg > 5) { printf("%.1f GB", sfg) } - else { printf( "%.0f MB", sfm ) } + if (sfg > 5) { + printf("%.1f GB", sfg) + } else { + printf("%.0f MB", sfm) + } print("\n") - if (sfg > 15) { print("#04B431\n") } - else if (sfg > 5) { print("#FFA500\n") } - else if (sfg > 1) { print("#FF0000\n") } - else { exit 33 } + if (sfg > 15) { + print("#04B431\n") + } else if (sfg > 5) { + print("#FFA500\n") + } else if (sfg > 1) { + print("#FF0000\n") + } else { + exit 33 + } }'