#!/bin/sh barwidth=20 # remove all current statusbars # pgrep doesn't handle arguments for running commands # shellcheck disable=2009 processes="$(ps aux | grep 'st -c' | grep 'status' | awk -F' ' '{print $2}')" for i in $processes; do pkill -P "$i" >/dev/null 2>&1 kill "$i" done # get all screens screens="$(xrandr | grep ' connected' | sed 's/ primary//g' | awk -F' ' '{print $1 " " $3}')" # for every screen, create a statusbar IFS=" " for i in $screens; do screenstring=$(echo "$i" | awk -v a="$barwidth" -F'[ x+]' '{print $2 "x" a "+" $4 "+" $5}') st -c statusbar -p -g "$screenstring" -e status & done