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;
# Display current battery charge if running on a laptop. Redisplay every 3
# minutes.
-backtick 1 180 180 $HOME/.shell/bin/battery.pl -s # (BATTERY)
+backtick 1 180 180 $HOME/.shell/bin/battery.pl -s BATTERY # (BATTERY)
# Make sure the temporary variable we use is empty. Thanks to
# http://gist.github.com/133000 for the idea to use setenv and to TauPan in
terminal_available() {
terminal_info "$@" > /dev/null
}
+# Usage: <file> <name> <grep-string> <value>
+apply_optional_replacement() {
+ if test -n "$4"; then
+ echo "$1: using $2 $4"
+ generate "$1" '' simple_cpp \
+ "$3" -- "$4"
+ else
+ echo "$1: removing $2 display"
+ grep_i -v "$3" "$1"
+ fi
+}
# Check if `infocmp` is available.
if ! infocmp >/dev/null 2>&1; then
echo 'Warning: `infocmp` not available! 256color checks will fail.'
sed_i 's/attrcolor b ".I"/#attrcolor b ".I"/' screenrc
fi
# Display current battery charge on computers with a battery. Necessary lines
-# are marked as "(BATTERY)".
-if test ! -d /sys/class/power_supply/BAT0; then
- echo 'screenrc: removing battery display'
- grep_i -v '(BATTERY)' screenrc
-fi
+# are marked as "(BATTERY)". Also used for Tmux.
+battery=
+for x in /sys/class/power_supply/BAT*; do
+ test -d "$x" || continue
+ battery="$x"
+done
+apply_optional_replacement screenrc \
+ battery BATTERY "$battery"
+
if installed tmux; then
- generate tmux.conf .in perl ./bin/remove-continuation.pl
+ generate tmux.conf .in cat
+
+ apply_optional_replacement tmux.conf \
+ battery BATTERY "$battery"
+
+ # Old Tmux versions can't handle that.
+ generate tmux.conf '' ./bin/remove-continuation.pl
# Add mappings to switch to windows 10-29 quickly. See tmux-window.pl for
# details.
set-option -g status-left ""
# Current load average and hostname (#H) on the right.
set-option -g status-right "#(uptime | sed 's/^.*load averages*: //; s/,//g') \
- #H"
+ #H \
+ #[] #(~/.shell/bin/battery.pl -t BATTERY)\
+ "
# Format for windows in the window list in the status line. #I window index,
# #W window number, #F window flags.