polybar: avoid querying xrandr for changes too much

For some reason, this makes X probe again the monitors. Switch to
`xrandr --current` seems to make this problem goes away. Maybe, this
is also `polybar --list-monitors` keeping a grab while polybar is
starting.
This commit is contained in:
Vincent Bernat 2021-07-15 14:32:00 +02:00
parent dfb7cb555e
commit 390597ecd7

View file

@ -3,17 +3,18 @@
export DPI=$(xrdb -query | sed -nE 's/^Xft\.dpi:\s*//p')
export HEIGHT=$((20 * DPI / 96))
NUMS=$(polybar --list-monitors | wc -l)
PRIMARY=$(polybar --list-monitors | awk -F: '($0 ~ /primary/) {print $1; exit}')
MONITORS=$(xrandr --current | awk '($0 ~ / connected / && $0 ~ / [0-9]+x[0-9]+\+/) {print $1}')
PRIMARY=$(xrandr --current | awk '($0 ~ / primary /) {print $1; exit}')
NUMS=$(echo $MONITORS | wc -w)
case $NUMS in
1)
MONITOR=$PRIMARY polybar --reload alone &
;;
*)
MONITOR=$PRIMARY polybar --reload primary &
for MONITOR in $(polybar --list-monitors | awk -F: '($0 !~ /primary/) {print $1}'); do
export MONITOR
polybar --reload secondary &
for MONITOR in ${MONITORS}; do
[ $MONITOR != $PRIMARY ] || continue
MONITOR=$MONITOR polybar --reload secondary &
done
;;
esac