summaryrefslogtreecommitdiff
path: root/.config/scripts/settings.sh
blob: 2a2c467a56db167c3c7bbc95080424823036abb0 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
#!/bin/bash

HYPR_CONF="$HOME/.config/hypr/hyprland.conf"
DUNST_CONF="$HOME/.config/dunst/dunstrc"
FUZZEL_CONF="$HOME/.config/fuzzel/fuzzel.ini"
BTOP_CONF="$HOME/.config/btop/btop.conf"

options="sharp/round toggle\nborder toggle\ngaps toggle"
choice=$(echo -e "$options" | fuzzel -d -p "> ")

[[ -z "$choice" ]] && exit

case "$choice" in
    *sharp/round*)
        if grep -q "rounding = 0 #" "$HYPR_CONF"; then
            sed -i '/@dynamic_rounding/c\    rounding = 15 # @dynamic_rounding' "$HYPR_CONF"
            sed -i '/@dynamic_power/c\    rounding_power = 10 # @dynamic_power' "$HYPR_CONF"
            sed -i '/@dynamic_dunst/c\    corner_radius = 15 # @dynamic_dunst' "$DUNST_CONF"
            sed -i '/@dynamic_smartgaps/s/^\([^#]\)/#\1/' "$HYPR_CONF"
            sed -i '/^radius=/c\radius=10' "$FUZZEL_CONF"
            sed -i '/^selection-radius=/c\selection-radius=5' "$FUZZEL_CONF"
            sed -i '/^rounded_corners =/c\rounded_corners = true' "$BTOP_CONF"

            if grep -q "gaps_in = 0 #" "$HYPR_CONF"; then
                sed -i '/@dynamic_gaps_in/c\    gaps_in = 5 # @dynamic_gaps_in' "$HYPR_CONF"
                sed -i '/@dynamic_gaps_out/c\    gaps_out = 10 # @dynamic_gaps_out' "$HYPR_CONF"
                hyprctl keyword general:gaps_in 5 > /dev/null
                hyprctl keyword general:gaps_out 10 > /dev/null
            fi

            hyprctl keyword decoration:rounding 15 > /dev/null
            hyprctl reload > /dev/null

            killall dunst && dunst &

            if pgrep -x "btop" > /dev/null; then
                pkill -x "btop"
                sleep 0.2
                kitty btop &
            fi

            sleep 0.2
            notify-send "toggled" "rounded"
        else
            sed -i '/@dynamic_rounding/c\    rounding = 0 # @dynamic_rounding' "$HYPR_CONF"
            sed -i '/@dynamic_power/c\    rounding_power = 0 # @dynamic_power' "$HYPR_CONF"
            sed -i '/@dynamic_dunst/c\    corner_radius = 0 # @dynamic_dunst' "$DUNST_CONF"
            sed -i '/@dynamic_smartgaps/s/^#//g' "$HYPR_CONF"
            sed -i '/^radius=/c\radius=0' "$FUZZEL_CONF"
            sed -i '/^selection-radius=/c\selection-radius=0' "$FUZZEL_CONF"
            sed -i '/^rounded_corners =/c\rounded_corners = false' "$BTOP_CONF"

            hyprctl keyword decoration:rounding 0 > /dev/null
            hyprctl reload > /dev/null

            killall dunst && dunst &

            if pgrep -x "btop" > /dev/null; then
                pkill -x "btop"
                sleep 0.2
                kitty btop &
            fi

            sleep 0.2
            notify-send "toggled" "sharp"
        fi
        ;;

    *border*)
        if grep -q "border_size = 0 #" "$HYPR_CONF"; then
            sed -i '/@dynamic_border/c\    border_size = 2 # @dynamic_border' "$HYPR_CONF"
            sed -i '/@dynamic_smartgaps/s/^\([^#]\)/#\1/' "$HYPR_CONF"
            hyprctl keyword general:border_size 2 > /dev/null
            hyprctl reload > /dev/null
            notify-send "borders" "enabled"
        else
            sed -i '/@dynamic_border/c\    border_size = 0 # @dynamic_border' "$HYPR_CONF"
            sed -i '/@dynamic_smartgaps/s/^#//g' "$HYPR_CONF"
            hyprctl keyword general:border_size 0 > /dev/null
            hyprctl reload > /dev/null
            notify-send "borders" "disabled"
        fi
        ;;

    *gaps*)
        if ! grep -q "rounding = 0 #" "$HYPR_CONF"; then
            notify-send "action denied" "gaps must stay on in rounded mode"
            exit
        fi

        if grep -q "gaps_in = 0 #" "$HYPR_CONF"; then
            sed -i '/@dynamic_gaps_in/c\    gaps_in = 5 # @dynamic_gaps_in' "$HYPR_CONF"
            sed -i '/@dynamic_gaps_out/c\    gaps_out = 10 # @dynamic_gaps_out' "$HYPR_CONF"
            hyprctl keyword general:gaps_in 5 > /dev/null
            hyprctl keyword general:gaps_out 10 > /dev/null
            notify-send "gaps" "on"
        else
            sed -i '/@dynamic_gaps_in/c\    gaps_in = 0 # @dynamic_gaps_in' "$HYPR_CONF"
            sed -i '/@dynamic_gaps_out/c\    gaps_out = 0 # @dynamic_gaps_out' "$HYPR_CONF"
            hyprctl keyword general:gaps_in 0 > /dev/null
            hyprctl keyword general:gaps_out 0 > /dev/null
            notify-send "gaps" "off"
        fi
        ;;
esac