aboutsummaryrefslogtreecommitdiff
path: root/.local/share/bin/mode
blob: 30d94d5c610729f00ab364ab1562a6f74e25c2d6 (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
#!/bin/sh

get_color() {
	xrdb -query | grep $1 | head -n1 | cut -f2
}

switch_xrdb() {
	cat ~/.config/X11/base ~/.config/X11/$1 | xrdb
}

switch_dunst() {
	read -r -d '' conf << EOF
	frame_color = "$(get_color color1)"

	[urgency_low]
	background = "$(get_color background)"
	foreground = "$(get_color color1)"
	timeout = 10

	[urgency_normal]
	background = "$(get_color background)"
	foreground = "$(get_color foreground)"
	timeout = 10

	[urgency_critical]
	background = "$(get_color color1)"
	foreground = "$(get_color background)"
	frame_color = "$(get_color color1)"
	timeout = 0
EOF
	echo "$conf" | cat ~/.config/dunst/base - > ~/.config/dunst/dunstrc
}

reload_terms() {
	read -r -d '' escape_msgs << EOF
	\033]11;$(get_color background)\007
	\033]10;$(get_color foreground)\007
	\033]12;$(get_color foreground)\007
	\033]14;$(get_color background)\007
	\033]13;$(get_color foreground)\007
	\033]17;$(get_color color8)\007
	\033]708;$(get_color background)\007
	\033]4;0;$(get_color color0)\007
	\033]4;1;$(get_color color1)\007
	\033]4;2;$(get_color color2)\007
	\033]4;3;$(get_color color3)\007
	\033]4;4;$(get_color color4)\007
	\033]4;5;$(get_color color5)\007
	\033]4;6;$(get_color color6)\007
	\033]4;7;$(get_color color7)\007
	\033]4;8;$(get_color color8)\007
	\033]4;9;$(get_color color9)\007
	\033]4;10;$(get_color color10)\007
	\033]4;11;$(get_color color11)\007
	\033]4;12;$(get_color color12)\007
	\033]4;13;$(get_color color13)\007
	\033]4;14;$(get_color color14)\007
	\033]4;15;$(get_color color15)\007
EOF
	escape_msgs=$(printf "$escape_msgs" | tr -d '\n')
	find /dev/pts -exec sh -c "printf \"$escape_msgs\n\" > {}" \; 2> /dev/null
}

reload_dunst() {
	killall dunst
	dunst & disown
}

reload_polybar() {
	polybar-msg cmd restart
}

switch_cfgs() {
	echo "switching to $1 mode..."
	
	switch_xrdb $1
	switch_dunst $1

	echo $1 > ~/.local/share/mode/active
	rm ~/.local/share/mode/dark ~/.local/share/mode/light
	touch ~/.local/share/mode/$1
}

[[ $1 == "dark" || $1 == "light" ]] && switch_cfgs $1

reload_apps() {
	echo "reloading programs..."

	reload_polybar
	reload_dunst
	reload_terms
}

reload_apps