#!/bin/bash FIFO="/tmp/bar.fifo" FORMAT_LEFT="%(music)s %(services)s %(diskspace)s" FORMAT_RIGHT="%(wifi)s %(battery)s %(clock)s " icon_color="#A0A57E" icon() { echo -n "%{F$icon_color}"; printf '%b' "\ue$1"; echo -n "%{F-}"; } icon_music=$(icon 05c) icon_music_paused=$(icon 059) icon_services=$(icon 040) icon_diskspace=$(icon 0ab) icon_wifi=$(icon 048) icon_battery=$(icon 033) icon_battery_charging=$(icon 042) icon_clock=$(icon 018) icon_updates=$(icon 060) color_service_running="#A0A57E" color_service_stopped="#C37561" color_battery_good="white" color_battery_low="#C37561" music() { info=$(mpc current -f '[%title%]') icon=$icon_music if [ -n "$info" ]; then if [ -n "$(mpc status | grep paused)" ]; then icon=$icon_music_paused fi echo -n "%{A:I "music 20":}$icon $info%{A}" else echo -n "$icon (-)" fi } serviceinfo() { service=$1 text=$2 systemctl is-active -q $service if [ "$?" -eq 0 ]; then echo -n "%{F$color_service_running}$text%{F-}" else echo -n "%{F$color_service_stopped}$text%{F-}" fi } services() { echo -n "$icon_services $(serviceinfo zomnet z) $(serviceinfo docker d)" } diskspace() { info=$(./cmdcache.sh 10 "df -h /" | awk '{if($6 == "/") { print $5 }}') echo -n "%{A:I "filesystem 30":}$icon_diskspace $info%{A}" } wifi() { info=$(wicd-cli --wireless --status | perl -e 'foreach $line (<>) { if($line =~ /Connected to (.+) at .+IP: ([0-9.]+)/ ) { print $1; break; } elsif($line =~ /Connecting to wireless network \"(.+)\"/) { print $1 . " - connecting"; break; } }') if [ -z "$info" ]; then info="(-)" fi echo -n "%{A:I "network 1061":}$icon_wifi $info%{A}" } battery() { level=$(./cmdcache.sh 5 "acpi -b" | awk -F, 'BEGIN { s=0 } { s+=$2 } END { print int(s/NR) }') charging=$(acpi -a | grep on-line) icon=$icon_battery if [ -n "$charging" ]; then icon=$icon_battery_charging fi info="%{F$color_battery_good}$level%%{F-}" if [ "$level" -lt 20 ]; then info="%{F$color_battery_low}$level%%{F-}" fi echo -n "%{A:I 'battery 1061':}$icon $info%{A}" } clock() { info=$(date +"%H:%M") echo -n "%{A:I "clock 1061":}$icon_clock $info%{A}" } updates() { updates=$(./cmdcache.sh 20 ./pkginfo.sh) echo -n "$icon_updates $updates" } run_handler() { while read type param; do case $type in I) ./barinfo.sh kill ./barinfo.sh $param & ;; esac done } run_worker() { SLEEP=$1 TAG=$2 COMMAND=$3 ( while true; do echo -n "$TAG " $COMMAND echo sleep $SLEEP done > $FIFO ) & } cd $(dirname $0) [ -e "$FIFO" ] && rm -f $FIFO mkfifo $FIFO run_worker 1 clock clock run_worker 5 battery battery ( while true; do cat $FIFO; done ) | python ./barformatter.py "$FORMAT_LEFT" "$FORMAT_RIGHT" # | lemonbar -g 1366x15 -f "Stlarch:size=6:style=regular" -f "Terminus:size=8" -B "#88000000" | run_handler