#!/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
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] <path/to/device>\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;
}
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) {
$color = 'b g';
}
- print "\005{+$color}$charge%\005{-}\n";
+ print "\005{+$color}$charge%\005{-}$charging\n";
# Same in tmux mode.
} elsif ($tmux_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";
}