X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=bin%2Fbattery.pl;h=c7e812ea505798b07702cd6e5567be56c58b8991;hb=8cffd758773fd50b2fafac75795677e7babce7ee;hp=0bdaae04c1d8829a33a0edaf2e8a4fb709ae5289;hpb=77e20192f619f168bd22c09757dc09580e533cea;p=config%2Fdotfiles.git diff --git a/bin/battery.pl b/bin/battery.pl index 0bdaae0..c7e812e 100755 --- a/bin/battery.pl +++ b/bin/battery.pl @@ -1,6 +1,6 @@ #!/usr/bin/perl -# Copyright (C) 2011-2012 Simon Ruderich +# Copyright (C) 2011-2013 Simon Ruderich # # This program is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by @@ -20,15 +20,26 @@ use strict; use warnings; -my $path = '/sys/class/power_supply/BAT0/uevent'; +if (scalar @ARGV != 1 and (scalar @ARGV != 2 or not $ARGV[0] =~ /-[st]/)) { + print STDERR "Usage: $0 [-s | -t] \n"; + print STDERR "\n"; + print STDERR "Normally this is /sys/class/power_supply/BAT*.\n"; + exit 1; +} +if (scalar @ARGV == 1) { + @ARGV = ('', $ARGV[0]); +} + +my $path = "$ARGV[1]/uevent"; # No battery available. -if (! -e $path) { +if (not -e $path) { + print STDERR "'$path' not found.\n"; exit 1; } -my $screen_mode = (defined $ARGV[0] and $ARGV[0] eq '-s'); -my $tmux_mode = (defined $ARGV[0] and $ARGV[0] eq '-t'); +my $screen_mode = ($ARGV[0] eq '-s'); +my $tmux_mode = ($ARGV[0] eq '-t'); my %battery; @@ -46,6 +57,10 @@ if (defined $battery{ENERGY_NOW}) { } my $charge = int($battery{CHARGE_NOW} / $battery{CHARGE_FULL} * 100); +my $charging = ''; +if ($battery{STATUS} eq 'Charging' or $battery{STATUS} eq 'Full') { + $charging = '^'; +} # GNU screen mode with colors: 0-20 red, 20-40 yellow, 40-100 green. if ($screen_mode) { @@ -58,7 +73,7 @@ if ($screen_mode) { $color = 'b g'; } - print "\005{+$color}$charge%\005{-}\n"; + print "\005{+$color}$charge%\005{-}$charging\n"; # Same in tmux mode. } elsif ($tmux_mode) { @@ -71,9 +86,9 @@ if ($screen_mode) { $color = 'green'; } - print "#[fg=$color,bold]$charge%#[default]\n"; + print "#[fg=$color,bold]$charge%#[default]$charging\n"; # Plain text output. } else { - print "$charge%\n"; + print "$charge%$charging\n"; }