From 3ca875145db71de3accff038a728d153f4c9927a Mon Sep 17 00:00:00 2001 From: Salt Date: Wed, 15 Apr 2020 10:16:24 -0500 Subject: [PATCH] Polybar: Re-add launch.sh --- .config/polybar/launch.sh | 76 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 76 insertions(+) create mode 100755 .config/polybar/launch.sh diff --git a/.config/polybar/launch.sh b/.config/polybar/launch.sh new file mode 100755 index 00000000..387322de --- /dev/null +++ b/.config/polybar/launch.sh @@ -0,0 +1,76 @@ +#! /bin/bash +# +# launch.sh +# A Polybar launch script with a heck of a lot of compat +# Copyright (C) 2019 Vintage Salt +# +# Distributed under terms of the MIT license. +# + +log() { + [ -z "$1" ] && return 1 + printf "$1\\n" +} + +# Trap our exit +die() { + kill $(jobs -p) +} +trap die EXIT + +# Steps +step_fallback() { + if ! command -v polybar > /dev/null 2>&1; then + if command -v tint2 > /dev/null 2>&1; then + log "Executing fallback" + exec tint2 + fi + log "No valid bars found" + exit 51 + fi +} +step_configure_restack() { + # Restack compatibility + if pgrep -U "$UID" bspwm > /dev/null 2>&1; then + export PB_WM_RESTACK="bspwm" + elif pgrep -U "$UID" i3 > /dev/null 2>&1; then + export PB_WM_RESTACK="i3" + fi +} +step_spawn_primary() { + # Spawn bars on the primary monitor + log "Spawning primary bars" + export PB_MONITOR=$(xrandr -q | awk '/primary/{print $1}') + polybar -r primary & + polybar -r primary-2 & +} +step_spawn_secondary() { + # Spawn more for each secondary + log "Spawning secondary bars" + export secondary_monitors=$(xrandr -q | grep ' connected' | grep -v 'primary' | awk '{print $1}') + if [ "$secondary_monitors" == "" ]; then + return 0 + fi + for monitor in $secondary_monitors; do + PB_MONITOR=$monitor + polybar -r secondary & + polybar -r secondary-2 & + done +} +step_wait() { + # And wait + log "Waiting" + wait +} + +# Main +main() { + step_fallback + step_configure_restack + step_spawn_primary + step_spawn_secondary + step_wait +} + +main "$@" +