From e5117980de84a8402c7e18fd7b24f9ba0de4f129 Mon Sep 17 00:00:00 2001 From: Gregory Pakosz Date: Sat, 28 Mar 2015 10:17:43 +0100 Subject: [PATCH] pimped the battery indicator with a heat palette --- .tmux.conf | 67 +++++++++++++++++++++++++++++++++-------------- .tmux.conf.local | 3 +++ README.md | 7 ++++- screenshot.png | Bin 25280 -> 0 bytes 4 files changed, 56 insertions(+), 21 deletions(-) delete mode 100644 screenshot.png diff --git a/.tmux.conf b/.tmux.conf index fd7ff27..3b4cfa9 100644 --- a/.tmux.conf +++ b/.tmux.conf @@ -244,13 +244,16 @@ run 'for name in $(printenv | grep -Eo ^tmux_conf_[^=]+); do tmux setenv -gu $na # window_status_last_attr=default # tmux setw -g window-status-last-style $window_status_last_attr,fg=$window_status_last_fg # -# time_date_fg=colour245 # light gray -# time_date_bg=colour232 # dark gray -# whoami_fg=colour254 # white -# whoami_bg=colour160 # red -# host_fg=colour16 # black -# host_bg=colour254 # white -# status_right="${tmux_conf_battery:-#(cut -c3- ~/.tmux.conf | sh -s battery ${tmux_conf_battery_symbol:-block} ${tmux_conf_battery_symbol_count:-auto})} #[fg=$time_date_fg,nobold]$right_separator %R $right_separator %d %b #[fg=$whoami_bg,bg=$time_date_bg,nobold]$right_separator_black#[fg=$whoami_fg,bg=$whoami_bg,nobold] #(whoami) $right_separator_black#[fg=$host_fg,bg=$host_bg,bold] #h " +# battery_full_fg=colour160 # red +# battery_empty_fg=colour254 # white +# battery_bg=colour160 # black +# time_date_fg=colour245 # light gray +# time_date_bg=colour232 # dark gray +# whoami_fg=colour254 # white +# whoami_bg=colour160 # red +# host_fg=colour16 # black +# host_bg=colour254 # white +# status_right="${tmux_conf_battery:-#(cut -c3- ~/.tmux.conf | sh -s battery ${tmux_conf_battery_symbol:-block} ${tmux_conf_battery_symbol_count:-auto} ${tmux_conf_battery_palette:-colour160,colour254,colour16})} #[fg=$time_date_fg,nobold]$right_separator %R $right_separator %d %b #[fg=$whoami_bg,bg=$time_date_bg,nobold]$right_separator_black#[fg=$whoami_fg,bg=$whoami_bg,nobold] #(whoami) $right_separator_black#[fg=$host_fg,bg=$host_bg,bold] #h " # tmux set -g status-right-length 64 \; set -g status-right "$status_right" # # # clock @@ -314,6 +317,7 @@ run 'for name in $(printenv | grep -Eo ^tmux_conf_[^=]+); do tmux setenv -gu $na # battery() { # battery_symbol=$1 # battery_symbol_count=$2 +# battery_palette=$3 # if [ $battery_symbol_count = auto ]; then # columns=$(tmux display -p '#{client_width}' || echo 80) # if [ $columns -ge 80 ]; then @@ -322,11 +326,6 @@ run 'for name in $(printenv | grep -Eo ^tmux_conf_[^=]+); do tmux setenv -gu $na # battery_symbol_count=5 # fi # fi -# battery_full_fg=colour160 -# battery_full_bg=colour16 -# battery_empty_fg=colour254 -# battery_empty_bg=colour16 -# # battery_symbol_heart_full=♥ # battery_symbol_heart_empty=♥ # battery_symbol_block_full=◼ @@ -352,14 +351,42 @@ run 'for name in $(printenv | grep -Eo ^tmux_conf_[^=]+); do tmux setenv -gu $na # charge="$(cat $batnow) / $(cat $batfull)" || return # fi # -# full=$(printf %.0f $(echo "$charge * $battery_symbol_count" | bc -l)) -# [ $full -gt 0 ] && \ -# printf '#[fg=%s,bg=%s]' $battery_full_fg $battery_full_bg && \ -# printf "%0.s$battery_symbol_full" $(seq 1 $full) -# empty=$(($battery_symbol_count - $full)) -# [ $empty -gt 0 ] && \ -# printf '#[fg=%s,bg=%s]' $battery_empty_fg $battery_empty_bg && \ -# printf "%0.s$battery_symbol_empty" $(seq 1 $empty) +# if echo $battery_palette | grep -q -E '^(colour[0-9]{1,3},?){3}$'; then +# battery_full_fg=$(echo $battery_palette | cut -d, -f1) +# battery_empty_fg=$(echo $battery_palette | cut -d, -f2) +# battery_bg=$(echo $battery_palette | cut -d, -f3) +# +# full=$(printf %.0f $(echo "$charge * $battery_symbol_count" | bc -l)) +# [ $full -gt 0 ] && \ +# printf '#[fg=%s,bg=%s]' $battery_full_fg $battery_bg && \ +# printf "%0.s$battery_symbol_full" $(seq 1 $full) +# empty=$(($battery_symbol_count - $full)) +# [ $empty -gt 0 ] && \ +# printf '#[fg=%s,bg=%s]' $battery_empty_fg $battery_bg && \ +# printf "%0.s$battery_symbol_empty" $(seq 1 $empty) +# elif echo $battery_palette | grep -q -E '^heat(,colour[0-9]{1,3})?$'; then +# battery_bg=$(echo $battery_palette | cut -s -d, -f2) +# battery_bg=${battery_bg:-colour16} +# heat="233 234 235 237 239 241 243 245 247 144 143 142 184 214 208 202 196" +# heat_count=$(echo $(echo $heat | wc -w)) +# +# eval set -- "$heat" +# heat=$(eval echo $(eval echo $(printf "\\$\{\$(expr %s \* $heat_count / $battery_symbol_count)\} " $(seq 1 $battery_symbol_count)))) +# +# full=$(printf %.0f $(echo "$charge * $battery_symbol_count" | bc -l)) +# printf '#[bg=%s]' $battery_bg +# [ $full -gt 0 ] && \ +# printf "#[fg=colour%s]$battery_symbol_full" $(echo $heat | cut -d' ' -f1-$full) +# empty=$(($battery_symbol_count - $full)) +# if [ x"$battery_symbol" = x"heart" ]; then +# [ $empty -gt 0 ] && \ +# printf '#[fg=%s]' $battery_bg && \ +# printf "%0.s$battery_symbol_empty" $(seq 1 $empty) +# else +# [ $empty -gt 0 ] && \ +# printf "#[fg=colour%s]$battery_symbol_empty" $(echo $heat | cut -d' ' -f$full-$(expr $full + $empty)) +# fi +# fi # } # # apply_configurable_bindings() { diff --git a/.tmux.conf.local b/.tmux.conf.local index f064dde..0b45006 100644 --- a/.tmux.conf.local +++ b/.tmux.conf.local @@ -5,6 +5,9 @@ #tmux_conf_battery_symbol=heart #tmux_conf_battery_symbol_count=5 +# use the heat palette for the battery status +#tmux_conf_battery_palette=heat + # or alternatively use an external tool, e.g. https://github.com/Goles/Battery #tmux_conf_battery='#(battery -t) ' diff --git a/README.md b/README.md index e1d3c1c..3f4c8e1 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ Self-contained, opinionated `.tmux.conf` configuration file. -![Screenshot](screenshot.png) +![Screenshot](https://cloud.githubusercontent.com/assets/553208/6979291/36999f48-d9e2-11e4-8815-449f7372b496.png) The `master` branch targets tmux 1.9+. You may want to use the `1.7` or `1.8` branch. @@ -58,6 +58,11 @@ Edit your `~/.tmux.conf.local` file and uncomment the following lines: #tmux_conf_battery_symbol=heart #tmux_conf_battery_symbol_count=5 +To use a heat palette for the battery indicator, edit your `~/.tmux.conf.local` +file and uncomment the following line: + + #tmux_conf_battery_palette=heat + See `~/.tmux.conf.local` for more details. ### Configuring new windows and new panes creation diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index 4d99a2c5108603e36fcdbdf766ed28cf8275d047..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25280 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