Add .local/bin/fix-loopback Add .local/bin/hyprtoggle Add .local/bin/localhost Add .local/bin/low-battery-warn Add .local/bin/make-pwa Add .local/bin/niri-cycle Add .local/bin/push-chezmoi Add .local/bin/tmux-sessionizer Add .local/bin/hooks/generic
46 lines
1.3 KiB
Bash
46 lines
1.3 KiB
Bash
#!/usr/bin/env bash
|
|
# Toggle a specific optional Hyprland config in ~/.config/hypr/hyprland.conf
|
|
|
|
RESET="\033[0m"
|
|
RED="\033[1m\033[031m"
|
|
GREEN="\033[1m\033[032m"
|
|
|
|
CONFIG="$HOME/.config/hypr/hyprland.conf"
|
|
|
|
hyprtoggle_list() {
|
|
grep -E "^[[:space:]#]*source = .*opts/.*\.conf" "$CONFIG" | while read -r line; do
|
|
name=$(basename "$(echo "$line" | grep -oE "[^/]+\.conf$")" .conf)
|
|
if [[ "$line" =~ ^# ]]; then
|
|
echo -e " ${RED}✗${RESET} $name"
|
|
else
|
|
echo -e " ${GREEN}✓${RESET} $name"
|
|
fi
|
|
done
|
|
}
|
|
|
|
if [ ! -f "$CONFIG" ]; then
|
|
echo -e "${RED}✗${RESET}config not found at $CONFIG"
|
|
exit 1
|
|
fi
|
|
|
|
if [ -z "$1" ]; then
|
|
echo "usage: hyprtoggle <option_name>"
|
|
hyprtoggle_list
|
|
exit 1
|
|
fi
|
|
|
|
OPT="$1"
|
|
|
|
# Check if the line is currently active or commented
|
|
if grep -qE "^[[:space:]]*source = .*${OPT}\.conf" "$CONFIG"; then
|
|
echo -e "${RED}disabling${RESET} $OPT..."
|
|
sed -i "s|^[[:space:]]*source = \(.*${OPT}\.conf\)|# source = \1|" "$CONFIG"
|
|
elif grep -qE "^#\s*source = .*${OPT}\.conf" "$CONFIG"; then
|
|
echo -e "${GREEN}enabling${RESET} $OPT..."
|
|
sed -i "s|^#\s*source = \(.*${OPT}\.conf\)|source = \1|" "$CONFIG"
|
|
else
|
|
echo -e "${RED}✗ no matching source${RESET} for '$OPT'"
|
|
exit 1
|
|
fi
|
|
|
|
hyprtoggle_list
|