#!/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" bg1="#223350" bg2="#405070" # 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() { nodeid=$(bspc query -T -n | sed 's/.*id\":// ; s/,\"split.*//' 2> /dev/null) && \ [[ -n $nodeid ]] && \ title=$(xprop -id $nodeid | grep "WM_NAME(STRING)" | sed 's/.*=// ; s/\"//g') || title="Blank Screen" 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 "%{l}%{B$bg1}%{F$c2} $(work) %{B$bg1} $(title) %{r}%{F$c1}%{B$bg2} $(mem) %{B$bg1} $(temp) %{B$bg2} $(bat) %{B$bg1} $(vol) %{B$bg2} $(dte) %{B$bg1}" } while (true); do update sleep 1 done