#!/bin/sh ### Created by Amdac @ www.amdac.net ### This script was written to populate lemonbar ### OpenBSD / bspwm version c1="#f0f0f0" c2="#99ccee" c3="#ffff60" # yellow bg="#343850" # trap 'update' 5 work() { set -A workspaces $(bspc wm -g | sed 's/WMeDP-1:// ; s/9.*/9/ ; s/:/ /g') for i in ${workspaces[*]} do case $(echo $i | cut -c1-1) in F) i=$(echo $i | sed 's/F/%{F#ffff60}/') ;; # Focused no content O) i=$(echo $i | sed 's/O/%{F#ffff60}/') ;; # Focused with content o) i=$(echo $i | sed 's/o/%{F#99ccee}/') ;; # Unfocused with content f) i=$(echo $i | sed 's/f/%{F#777777}/') ;; # Not in use %) i=$(echo $i | sed 's/%/%{F#ff8888}/') ;; # Other, flagged red esac [[ -n $i ]] && work="$work $i" done echo "["$work "%{F$c2}]" } title() { # class=$(bspc query -T -n | sed 's/.*className\":\"// ; s/\",\"instanceName.*//') nodeid=$(bspc query -T -n | sed 's/.*id\":// ; s/,\"split.*//') && \ title=$(xprop -id $nodeid | grep "WM_NAME(STRING)" | sed 's/.*=// ; s/\"//g') # instance=$(bspc query -T -n | sed 's/.*instanceName":"// ; s/","borderWidth.*//') echo $title } vol() { mute=$(sndioctl -n output.mute) if [ $mute = "1" ]; then echo "VOL: [mute]" else volume=$(sndioctl -n output.level | sed 's/\.// ; s/^0*//') [[ -n $volume ]] || volume=0 echo "VOL: [$((${volume} /10))%]" fi } mem() { memused=$(top -d 1 | awk '/^Memory/ {print $3}' | sed 's/\/.*//') case $(echo $memused | tail -c 2) in M) echo "MEM: [$(echo $memused | sed 's/.$//') MB]" ;; G) echo "MEM: [$(echo $memused | sed 's/.$//') GB]" ;; esac } temp() { zone0="$(sysctl hw.sensors.cpu0.temp0 | sed 's/.*=// ; s/\..*/°C/')" echo "TEMP: [$zone0]" } bat() { level="$(apm | awk '/^Battery/ {print $4}')" charging="$(apm | awk '/^A\/C/ {print $4}')" [[ $charging = "not" ]] && echo "BAT: ${level}[v]" || echo "BAT: ${level}[^]" } dte() { dte=$(date +'%a %b %d [%R]') echo $dte } update() { echo "%{B$bg}%{l} %{F$c2}$(work) %{F$c3}>>%{F$c1} %{r} %{F$c1}$(mem) %{F$c3}>>%{F$c2} $(temp) %{F$c3}>>%{F$c1} $(bat) %{F$c3}>>%{F$c2} $(vol) %{F$c3}>>%{F$c1} $(dte) " } while (true); do update sleep 1 done