#!/bin/bash # +SPDX:MIT ## Based on https://github.com/Alexays/Waybar/issues/961#issuecomment-753533975 ## WE NEED SOME DEPENDENCIES depcheck() { if ! command -v "$1" &> /dev/null ; then echo "Missing dependency $1" exit 1 fi } depcheck waybar depcheck inotifywait COMPOSITOR="$1" PYWAL="$2" WATCHEDFILES="" CONFIG_FILE="$XDG_CONFIG_HOME/waybar/config" CONFIG_FILE_HYPRLAND="$XDG_CONFIG_HOME/waybar/config.hyprland.conf" COLOR_FILE="$XDG_CONFIG_HOME/waybar/colours.css" COLOR_FILE_PYWAL="$XDG_CACHE_HOME/wal/colors-waybar.css" STYLE_FILE="$XDG_CONFIG_HOME/waybar/style.css" STYLE_FILE_PYWAL="$XDG_CONFIG_HOME/waybar/style.pywal.css" case "$COMPOSITOR" in "hyprland") WATCHEDFILES+=$CONFIG_FILE_HYPRLAND RUNCONFIG=$CONFIG_FILE_HYPRLAND ;; *) WATCHEDFILES+=$CONFIG_FILE RUNCONFIG=$CONFIG_FILE ;; esac WATCHEDFILES+=" " case "$PYWAL" in "y"|"Y"|"yes") WATCHEDFILES+=$COLOR_FILE_PYWAL WATCHEDFILES+=" " WATCHEDFILES+=$STYLE_FILE_PYWAL RUNSTYLE=$STYLE_FILE_PYWAL ;; *) WATCHEDFILES+=$COLOR_FILE WATCHEDFILES+=" " WATCHEDFILES+=$STYLE_FILE RUNSTYLE=$STYLE_FILE ;; esac trap "killall waybar" EXIT while true; do waybar -c $RUNCONFIG -s $RUNSTYLE & inotifywait -e create,modify $WATCHEDFILES killall waybar done