-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathdynamic_theme.sh
executable file
·73 lines (68 loc) · 1.9 KB
/
dynamic_theme.sh
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
#!/usr/bin/env bash
_DIR="$(cd "$(dirname "$0")" && pwd)"
export PATH="${_DIR}:${PATH}"
# 3 groups of colors from light to deep
# the colors are generated by palette.py
PLACE_HOLDERS=(
"PALE_RED"
"LIGHT_RED"
"MIDDLE_RED"
"STRONG_RED"
"DARK_RED"
"DEEP_RED"
"PALE_PURPLE"
"LIGHT_PURPLE"
"MIDDLE_PURPLE"
"STRONG_PURPLE"
"DARK_PURPLE"
"DEEP_PURPLE"
"PALE_ORANGE"
"LIGHT_ORANGE"
"MIDDLE_ORANGE"
"STRONG_ORANGE"
"DARK_ORANGE"
"DEEP_ORANGE"
"PALE_GREEN"
"LIGHT_GREEN"
"MIDDLE_GREEN"
"STRONG_GREEN"
"DARK_GREEN"
"DEEP_GREEN"
"PALE_BLUE"
"LIGHT_BLUE"
"MIDDLE_BLUE"
"STRONG_BLUE"
"DARK_BLUE"
"DEEP_BLUE"
"PALE_GRAY"
"LIGHT_GRAY"
"MIDDLE_GRAY"
"STRONG_GRAY"
"DARK_GRAY"
"DEEP_GRAY"
)
palette=$(python3 -c "import palette; palette = palette.create_theme_palette(); print(palette)")
tmpfile=$(mktemp)
colors=$(echo $palette | grep -iEo '#[[:alnum:]]{6}' > ${tmpfile})
dynamic_theme_name=$(head /dev/urandom | tr -dc A-Za-z0-9 | head -c 8)
dynamic_theme_name="dynamic"
dynamic_theme_file_name="${dynamic_theme_name}.theme.yaml"
dynamic_config_file_name="${dynamic_theme_name}.violet.yaml"
tmux set-option -gq "@dynamic_theme_name" "${dynamic_theme_name}"
tmux set-option -gq "@dynamic_config_file_name" "${dynamic_config_file_name}"
if [ -e "${dynamic_theme_file_name}" ];then
rm -f "${dynamic_theme_file_name}"
fi
if [ -e "${dynamic_config_file_name}" ];then
rm -f "${dynamic_config_file_name}"
fi
cp "template.theme.yaml" "${dynamic_theme_file_name}"
cp "violet.yaml" "${dynamic_config_file_name}"
# trap "rm -f ${dynamic_theme_file_name}" EXIT INT TERM
index=1
while read -r _color;do
sed -i "s/${PLACE_HOLDERS[$index]}/${_color}/g" "${dynamic_theme_file_name}"
sed -i "s/${PLACE_HOLDERS[$index]}/${_color}/g" "${dynamic_config_file_name}"
((index++))
done < "${tmpfile}"
source violet.tmux