diff options
| author | Ja.KooLit <jimmielovejay@gmail.com> | 2023-11-27 13:53:48 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-11-27 13:53:48 +0900 |
| commit | 8eeed24b9579cf4cc76cc67dc4b5c73b2ef34573 (patch) | |
| tree | 2115df3ef73ea54d71ba9ff84364c690b591af44 /config/hypr/scripts/WaybarLayout.sh | |
| parent | 4502d47a44dd46306e0803ec0b27a0db48b2819c (diff) | |
| parent | f981d4fbbfb5f853b491a062e6e9017669102115 (diff) | |
Merge pull request #37 from JaKooLit/v2.1.10
V2.1.10
Diffstat (limited to 'config/hypr/scripts/WaybarLayout.sh')
| -rwxr-xr-x | config/hypr/scripts/WaybarLayout.sh | 45 |
1 files changed, 28 insertions, 17 deletions
diff --git a/config/hypr/scripts/WaybarLayout.sh b/config/hypr/scripts/WaybarLayout.sh index dd5fc387..dbe0ee7f 100755 --- a/config/hypr/scripts/WaybarLayout.sh +++ b/config/hypr/scripts/WaybarLayout.sh @@ -1,26 +1,42 @@ #!/bin/bash -CONFIG="$HOME/.config/waybar/configs" -WCONFIG="$HOME/.config/waybar/config" +set -euo pipefail +IFS=$'\n\t' +# Define directories +config_dir="$HOME/.config/waybar/configs" +waybar_config="$HOME/.config/waybar/config" +scripts_dir="$HOME/.config/hypr/scripts" +rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi" + +# Function to display menu options menu() { - # List only files (excluding directories) in the directory and sort alphabetically options=() while IFS= read -r file; do - if [ -f "$CONFIG/$file" ]; then - options+=("$file") - fi - done < <(find "$CONFIG" -maxdepth 1 -type f -exec basename {} \; | sort) - + options+=("$(basename "$file")") + done < <(find "$config_dir" -maxdepth 1 -type f -exec basename {} \; | sort) + printf '%s\n' "${options[@]}" } +# Apply selected configuration apply_config() { - ln -sf "$CONFIG/$1" "$WCONFIG" + ln -sf "$config_dir/$1" "$waybar_config" + restart_waybar_if_needed +} + +# Restart Waybar +restart_waybar_if_needed() { + if pgrep -x "waybar" >/dev/null; then + pkill waybar + sleep 0.1 # Delay for Waybar to completely terminate + fi + "${scripts_dir}/Refresh.sh" & } +# Main function main() { - choice=$(menu | rofi -dmenu -config ~/.config/rofi/config-waybar-layout.rasi) + choice=$(menu | rofi -dmenu -config "$rofi_config") if [[ -z "$choice" ]]; then echo "No option selected. Exiting." @@ -29,10 +45,7 @@ main() { case $choice in "no panel") - if pgrep -x "waybar" >/dev/null; then - pkill waybar - fi - exit 0 + pgrep -x "waybar" && pkill waybar || true ;; *) apply_config "$choice" @@ -40,12 +53,10 @@ main() { esac } -# Check if rofi is already running +# Kill Rofi if already running before execution if pgrep -x "rofi" >/dev/null; then pkill rofi exit 0 fi main - -~/.config/hypr/scripts/Refresh.sh & |
