#!/bin/bash # Terminate already running bar instances killall -q polybar # Wait until the processes have been shut down while pgrep -x polybar >/dev/null; do sleep 1; done host=$(hostname) # My monitors: # DP-2-2 # HDMI-2 # eDP-1 LAPTOP_BUILT_IN_MONITOR="eDP-1" NETWORK_INTERFACES=`nmcli -t device | grep -v bridge` ETHERNET_INTERFACES=`echo "$NETWORK_INTERFACES" | grep ":ethernet:"` ETHERNET_COUNT=`echo "$ETHERNET_INTERFACES" | wc -l` ETHER_IFACE= if [[ "$ETHERNET_COUNT" == "1" ]]; then ETHER_IFACE=`echo "$ETHERNET_INTERFACES" | cut -d ':' -f1` else ETHER_IFACE=`echo "$ETHERNET_INTERFACES" | grep ":connected" | cut -d ':' -f1` fi WIFI_INTERFACES=`echo "$NETWORK_INTERFACES" | grep ":wifi:"` WIFI_COUNT=`echo "$WIFI_INTERFACES" | wc -l` WIFI_IFACE= if [[ "$WIFI_COUNT" == "1" ]]; then WIFI_IFACE=`echo "$WIFI_INTERFACES" | cut -d ':' -f1` else WIFI_IFACE=`echo "$WIFI_INTERFACES" | grep ":connected" | cut -d ':' -f1` fi # Launch polybar CONNECTED_MONITORS=`xrandr -q | grep -w connected | cut -d ' ' -f1` MONITORS_COUNT=`echo "$CONNECTED_MONITORS" | wc -l` if [[ "$MONITORS_COUNT" == "1" ]]; then PRIMARY_MONITOR="$CONNECTED_MONITORS" ETHER_IFACE="$ETHER_IFACE" WIFI_IFACE="$WIFI_IFACE" polybar primary-monitor & else PRIMARY_MONITOR=`echo "$CONNECTED_MONITORS" | grep -v "$LAPTOP_BUILT_IN_MONITOR" | head -n1` ETHER_IFACE="$ETHER_IFACE" WIFI_IFACE="$WIFI_IFACE" polybar primary-monitor & SECONDARY_MONITOR="$LAPTOP_BUILT_IN_MONITOR" polybar secondary-monitor & fi