#!/usr/bin/env bash # Files and Directories # DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" BAR="Chad WM" POLYBAR_DIR="$HOME/.config/bspwm/polybar" SFILE="${POLYBAR_DIR}/utils/system" # Get system variable values for various modules # GET_VALUES() { CARD=$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3) BATTERY=$(upower -i `upower -e | grep 'BAT'` | grep 'native-path' | cut -d':' -f2 | tr -d '[:blank:]') ADAPTER=$(upower -i `upower -e | grep 'AC'` | grep 'native-path' | cut -d':' -f2 | tr -d '[:blank:]') INTERFACE=$(ip link | awk '/state UP/ {print $2}' | tr -d :) } # Write values to `system` file # SET_VALUES() { if [[ "$ADAPTER" ]]; then sed -i -e "s/adapter = .*/adapter = $ADAPTER/g" "${SFILE}" fi if [[ "$BATTERY" ]]; then sed -i -e "s/battery = .*/battery = $BATTERY/g" "${SFILE}" fi if [[ "$CARD" ]]; then sed -i -e "s/graphics_card = .*/graphics_card = $CARD/g" "${SFILE}" fi if [[ "$INTERFACE" ]]; then sed -i -e "s/network_interface = .*/network_interface = $INTERFACE/g" "${SFILE}" fi } # Launch Polybar with the selected style ONLY in the primary display # LAUNCH_SINGLE_BAR() { CARD=$(light -L | grep 'backlight' | head -n1 | cut -d'/' -f3) INTERFACE=$(ip link | awk '/state UP/ {print $2}' | tr -d :) if [[ -z "$CARD" ]]; then sed -i -e 's/backlight/bna/g' "$DIR"/config elif [[ "$CARD" != *"intel_"* ]]; then sed -i -e 's/backlight/brightness/g' "$DIR"/config fi # Close polybar # killall -q polybar # Wait until closing polybar # while pgrep -u $UID -x polybar >/dev/null; do sleep 1 done # Launch polybar # polybar -q main -c "$DIR"/config & } # Execute functions # GET_VALUES SET_VALUES LAUNCH_SINGLE_BAR