Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/usr/bin/env sh
- # expects a line from monsterwm's output as argument ("$1")
- # prints formatted output to be used as input for bar
- # reference: bar by LemonBoy -- https://github.com/LemonBoy/bar
- # desktop status
- for desk; do
- d="${desk%%:*}" desk="${desk#*:}" # desktop id
- w="${desk%%:*}" desk="${desk#*:}" # window count
- l="${desk%%:*}" desk="${desk#*:}" # layout mode
- c="${desk%%:*}" desk="${desk#*:}" # is current desktop
- u="$desk" # has urgent hint
- # desktop id
- case "$d" in
- 0) d=" \f2\\fr term" ;; 1) d=" \f4\\fr web" ;;
- 2) d=" \f3\\fr japan " ;; 3) d=" \f1\\fr files " ;;
- esac
- # current desktop
- if [ $c -ne 0 ]
- then bg="\b0" un="\u6" fg="\f9"
- case "$l" in
- 0) s="" ;; 1) s="" ;; 2) s="" ;;
- 3) s="" ;; 4) s="" ;; 5) s="" ;;
- esac && s="\b8\u8 $s \br\ur"
- fi
- # has urgent hint or no windows
- [ $u -ne 0 ] && un="\u2"
- [ $w -eq 0 ] && w="-"
- in="$in$bg$fg$un $d \f5[$w] \ur\br\fr"
- unset bg fg un
- done
- # torrent status
- torrent_status="$(transmission-remote -l | awk '$2!="100%"&&$5~/^[[:digit:]]+$/{t=$5" "$6;s=$(11);for(i=12; i<=NF; ++i)s=s" "$i;exit}END{if(s)print t" :: "s}')"
- [ -z "$torrent_status" ] && torrent_status="Idle"
- # music status
- music=$(cmus-remote -Q | awk '$2 == "artist"{a=substr($0,12)} $2 == "title"{t=substr($0,11); exit} END{printf("%s - %s\n",a,t); exit(!t)}')
- [ $? -ne 0 ] && mstat="\f3\fr" music="Not playing" || mstat="\f3\fr"
- # volume status
- if [ "$(amixer get Master | sed -nr '$ s:.*\[(.+)]$:\1:p')" == "off" ]
- then vol="[m]" vstat="volume:"
- else
- vol="$(amixer get PCM | sed -nr '$ s:.*\[(.+%)].*:\1:p')"
- if [ "${vol%\%}" -le 10 ]; then vstat=""
- elif [ "${vol%\%}" -le 20 ]; then vstat="";
- else vstat=""; fi
- fi
- # window title
- wname=$(xtitle)
- # date and time
- date="$(date +"%a %d %b %R")" dstat="\f6\fr"
- # symbols
- arrow=""
- tor="\f4\fr"
- # left statusbar info
- printf '\\l'
- printf '%s ' "$in" "$arrow" "$s"
- # center statusbar info
- printf '\\c'
- printf '\\b7\\u7 %s \\br\\ur\\fr' "$wname"
- # right statusbar info
- printf '\\r'
- printf '\\b7\\u0\\f1 %s \\br\\ur\\fr %s ' \
- "$tor" "$torrent_status" \
- "$mstat" "$music" \
- "$vstat" "$vol" \
- "$dstat" "$date"
- # end of statusbar info
- printf '\n'
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement