agsdotfilesdotshyprlandhyprland-configricerofirofi-configshell-scriptsswwwwallustwaybarwaybar-modulewaybar-themes
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
64 lines
1.4 KiB
64 lines
1.4 KiB
#!/bin/bash |
|
# /* ---- 💫 https://github.com/JaKooLit 💫 ---- */ ## |
|
# Script for waybar layout or configs |
|
|
|
set -euo pipefail |
|
IFS=$'\n\t' |
|
|
|
# Define directories |
|
waybar_layouts="$HOME/.config/waybar/configs" |
|
waybar_config="$HOME/.config/waybar/config" |
|
SCRIPTSDIR="$HOME/.config/hypr/scripts" |
|
rofi_config="$HOME/.config/rofi/config-waybar-layout.rasi" |
|
|
|
# Function to display menu options |
|
menu() { |
|
options=() |
|
while IFS= read -r file; do |
|
options+=("$(basename "$file")") |
|
done < <(find "$waybar_layouts" -maxdepth 1 -type f -exec basename {} \; | sort) |
|
|
|
printf '%s\n' "${options[@]}" |
|
} |
|
|
|
# Apply selected configuration |
|
apply_config() { |
|
ln -sf "$waybar_layouts/$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 |
|
"${SCRIPTSDIR}/Refresh.sh" & |
|
} |
|
|
|
# Main function |
|
main() { |
|
choice=$(menu | rofi -i -dmenu -config "$rofi_config") |
|
|
|
if [[ -z "$choice" ]]; then |
|
echo "No option selected. Exiting." |
|
exit 0 |
|
fi |
|
|
|
case $choice in |
|
"no panel") |
|
pgrep -x "waybar" && pkill waybar || true |
|
;; |
|
*) |
|
apply_config "$choice" |
|
;; |
|
esac |
|
} |
|
|
|
# Kill Rofi if already running before execution |
|
if pgrep -x "rofi" >/dev/null; then |
|
pkill rofi |
|
exit 0 |
|
fi |
|
|
|
main
|
|
|