aboutsummaryrefslogtreecommitdiffstats
path: root/config/hypr/scripts/WaybarLayout.sh
diff options
context:
space:
mode:
Diffstat (limited to 'config/hypr/scripts/WaybarLayout.sh')
-rwxr-xr-xconfig/hypr/scripts/WaybarLayout.sh45
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 &
send patches to the email below
yukais@pinapelz.com
include the subject [PATCH repo_name]
pinapelz.com
homepage