From 3e94a3e724c36267fa2e4039e3759473c59e8510 Mon Sep 17 00:00:00 2001 From: Tom van der Lee Date: Sat, 25 Oct 2014 22:26:54 +0200 Subject: Restructured dotfile repo to take advantage of GNU Stow --- .config/herbstluftwm/panel.sh | 219 ------------------------------------------ 1 file changed, 219 deletions(-) delete mode 100755 .config/herbstluftwm/panel.sh (limited to '.config/herbstluftwm/panel.sh') diff --git a/.config/herbstluftwm/panel.sh b/.config/herbstluftwm/panel.sh deleted file mode 100755 index 24d0e12..0000000 --- a/.config/herbstluftwm/panel.sh +++ /dev/null @@ -1,219 +0,0 @@ -#!/bin/bash - -hc() { - "${herbstclient_command[@]:-herbstclient}" "$@" ; -} - -add_alpha_channel(){ - echo "$1" | \ - sed "s/.*#\([0-9a-fA-F]*\).*/#ff\1/" -} - -monitor=${1:-0} -panel_height=$2 -padding=$3 - -light=$(add_alpha_channel $WM_LIGHT) -llight=$(add_alpha_channel $WM_LLIGHT) -accent=$(add_alpha_channel $WM_ACCENT) -ldark=$(add_alpha_channel $WM_LDARK) -dark=$(add_alpha_channel $WM_DARK) - -font="-*-fixed-medium-*-*-*-14-*-*-*-*-*-*-*" -#font="" -selected_bg=$accent -normal_bg=$dark -selected_txt=$dark -normal_txt=$light -inactive_txt=$llight - -geometry=( $(herbstclient monitor_rect "$monitor") ) -if [ -z "$geometry" ] ;then - echo "Invalid monitor $monitor" - exit 1 -fi -# geometry has the format W H X Y -x=$(echo "${geometry[0]} + $padding" | bc) -y=$(echo "${geometry[1]} + $padding" | bc) -panel_width=$(echo "${geometry[2]} - (2 * $padding)" | bc) -bar_opts="-g ${panel_width}x${panel_height}+${x}+${y} -f ${font} -u 2 -B ${normal_bg} -F ${normal_txt}" - -hc pad $monitor $(echo "$panel_height + $padding" | bc) - -if awk -Wv 2>/dev/null | head -1 | grep -q '^mawk'; then - # mawk needs "-W interactive" to line-buffer stdout correctly - # http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=593504 - uniq_linebuffered() { - awk -W interactive '$0 != l { print ; l=$0 ; fflush(); }' "$@" - } -else - # other awk versions (e.g. gawk) issue a warning with "-W interactive", so - # we don't want to use it there. - uniq_linebuffered() { - awk '$0 != l { print ; l=$0 ; fflush(); }' "$@" - } -fi - -{ - ### Event generator ### - # \t [...] - # e.g. - # date ^fg(#efefef)18:33^fg(#909090), 2013-10-^fg(#efefef)29 - - while true ; do - # Volume - if pgrep pulseaudio > /dev/null ; then - volumes=$(\ - amixer get Master | \ - grep "Mono: Playback"\ - ) - vol=$(\ - echo $volumes | \ - sed "s/.*\[\([0-9]*\)%\].*/\1/"\ - ) - if [ -z $vol ] ; then - echo -e "volume\toff" - elif [ $vol -le 0 ] ; then - echo -e "volume\t%{F$normal_txt}Volume muted" - else - echo -e "volume\t%{F$normal_txt}Volume: $vol%%%{F-}" - fi - else - echo -e "volume\toff" - fi - - # Network - iwconfig=$(iwconfig wlp3s0) - if [ -z $iwconfig ] ; then - echo -e "net\toff" - else - ssid=$(\ - echo $iwconfig | \ - sed "s/.*ESSID:\(\".*\"\).*/\1/" | \ - sed "s/.*\(off\/any\).*/\"\1\"/" | \ - sed "s/.*\"\(.*\)\".*/\1/"\ - ) - if [ $ssid = "off/any" ] ; then - ifconf=$ - echo -e "net\t%{F$normal_txt}Net: No connection%{F-}" - else - echo -e "net\t%{F$normal_txt}Net: $ssid%{F-}" - fi - fi - - # Battery - if $(test -e /sys/class/power_supply/BAT1) ; then - bat_lvl=$(cat /sys/class/power_supply/BAT1/capacity) - if [ $bat_lvl -lt 15 ] ; then - bat_color=$accent - else - bat_color=$normal_txt - fi - state=$(cat /sys/class/power_supply/BAT1/status) - echo -e "battery\t%{F$normal_txt}$state: %{F$bat_color}$bat_lvl%{F$normal_txt}%%%{F-}" - else - echo -e "battery\toff" - fi - - # Time - echo -e $(date +$"date\t%{F$normal_txt}%H:%M:%S %{F$inactive_txt}(%d-%m-%Y)%{F-}") - sleep 1 || break - done > >(uniq_linebuffered) & - childpid=$! - hc --idle - kill $childpid -} 2> /dev/null | { - - IFS=$'\t' read -ra tags <<< "$(hc tag_status $monitor)" - visible=true - date="" - volume="" - battery="" - net="" - windowtitle="" - while true ; do - separator="%{F$accent}|%{F-}" - # draw tags - for i in "${tags[@]}" ; do - case ${i:0:1} in - '#') - echo -n "%{U$accent+u}%{B-}%{F$normal_txt}" - ;; - '+') - echo -n "%{B$accent}%{F$normal_bg}" - ;; - ':') - echo -n "%{B-}%{F$normal_txt}" - ;; - '!') - echo -n "%{B$normal_txt}%{F$normal_bg}" - ;; - *) - echo -n "%{B-}%{F$inactive_txt}" - ;; - esac - echo -n "%{A:tag,${i:1}:} ${i:1} %{A}%{F-}%{B-}%{U-u}" - done - echo -n "$separator" - echo -n "%{B-}%{F-} ${windowtitle//^/^^}" - - #Right part of panel - right="$volume$net$battery$date " - echo -n "%{r}$right" - echo - - # wait for next event - IFS=$'\t' read -ra cmd || break - case "${cmd[0]}" in - tag*) - #echo "resetting tags" >&2 - IFS=$'\t' read -ra tags <<< "$(hc tag_status $monitor)" - ;; - volume) - volume="${cmd[@]:1}" - if [ $volume == "off" ] ; then - volume="" - else - volume="$volume $separator%{B-} " - fi - ;; - net) - net="${cmd[@]:1}" - if [ $net = "off" ] ; then - net="" - else - net="$net $separator%{B-} " - fi - ;; - battery) - battery="${cmd[@]:1}" - if [ $battery == "off" ] ; then - battery="" - else - battery="$battery $separator%{B-} " - fi - ;; - date) - #echo "resetting date" >&2 - date="${cmd[@]:1}" - ;; - focus_changed|window_title_changed) - windowtitle="${cmd[@]:2}" - ;; - esac - done -} 2> /dev/null | bar $bar_opts | { - #Handle clickable areas - while read line; do - IFS=',' read -a c <<< $(echo $line) - case "${c[0]}" in - tag) - herbstclient use "${c[1]}" - echo "herbstclient use \"${c[1]}\"" - ;; - *) - echo "${c[0]}: not valid command" - ;; - esac - done -} -- cgit v1.2.3