From: Simon Ruderich Date: Thu, 24 Oct 2013 00:24:26 +0000 (+0200) Subject: bin/battery.pl,setup.sh: Support different battery devices names. X-Git-Url: https://ruderich.org/simon/gitweb/?a=commitdiff_plain;h=03ca50de1ca1b158d17b6bd4458ff6acb9a5114f;p=config%2Fdotfiles.git bin/battery.pl,setup.sh: Support different battery devices names. --- diff --git a/bin/battery.pl b/bin/battery.pl index 0bdaae0..0a802e8 100755 --- a/bin/battery.pl +++ b/bin/battery.pl @@ -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; diff --git a/screenrc.in b/screenrc.in index ac210a5..e79065e 100644 --- a/screenrc.in +++ b/screenrc.in @@ -66,7 +66,7 @@ sorendition = Bw # 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 diff --git a/setup.sh b/setup.sh index 243dce9..3edf5f4 100755 --- a/setup.sh +++ b/setup.sh @@ -30,6 +30,17 @@ terminal_info() { terminal_available() { terminal_info "$@" > /dev/null } +# Usage: +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.' @@ -176,14 +187,24 @@ if installed rxvt; then 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. diff --git a/tmux.conf.in b/tmux.conf.in index abd6dfd..ea82d37 100644 --- a/tmux.conf.in +++ b/tmux.conf.in @@ -67,7 +67,9 @@ set-option -g status-bg colour12 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.