This repository has been archived on 2025-01-31. You can view files and clone it, but cannot push or open issues or pull requests.
Files
.bin
.config
autostart
dunst
gtk-3.0
htop
liferea
mpd
neofetch
polybar
config
launch.sh
pulse
qt5ct
rofi
syncthing-gtk
xfce4
zim
compton.conf
dircolors
redshift.conf
user-dirs.dirs
user-dirs.locale
.local
.ssh
.vim
.bashrc
.functions
.gitconfig
.gitmodules
.gtkrc-2.0
.inputrc
.kshrc
.profile
.vimrc
.xsessionrc
.zshrc
home/.config/polybar/launch.sh

75 lines
1.4 KiB
Bash
Executable File

#! /bin/bash
#
# launch.sh
# A Polybar launch script with a heck of a lot of compat
# Copyright (C) 2019 Vintage Salt <rehashedsalt@cock.li>
#
# 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"
local secondary_monitors=$(xrandr -q | grep ' connected' | grep -v 'primary' | awk '{print $1}')
[ -z "$secondary_monitors" ] && return 0
for monitor in $secondary_monitors; do
export 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 "$@"