]> ruderich.org/simon Gitweb - config/dotfiles.git/commitdiff
bin/battery.pl,setup.sh: Support different battery devices names.
authorSimon Ruderich <simon@ruderich.org>
Thu, 24 Oct 2013 00:24:26 +0000 (02:24 +0200)
committerSimon Ruderich <simon@ruderich.org>
Thu, 24 Oct 2013 00:24:26 +0000 (02:24 +0200)
bin/battery.pl
screenrc.in
setup.sh
tmux.conf.in

index 0bdaae04c1d8829a33a0edaf2e8a4fb709ae5289..0a802e8f31a7605dc37a2dbcfe28408c2dfe9f47 100755 (executable)
@@ -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] <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;
 
index ac210a5892e182d27e7be87da122e8a38d9b8562..e79065e37d0fc91de027c863eca44c2566959e49 100644 (file)
@@ -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
index 243dce9392647f31feec712ecbece2da9f903820..3edf5f4d15ad26460b95ee590224932238ad75bd 100755 (executable)
--- a/setup.sh
+++ b/setup.sh
@@ -30,6 +30,17 @@ terminal_info() {
 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.'
@@ -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.
index abd6dfde0b8475a9f59066fd77fb5b44eb0d0e94..ea82d371f34f5e081f630fa092044f3af13955f9 100644 (file)
@@ -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.