A fork of the Materia GTK theme.

Important information: Google announced that, from September 2026, Android devices will require ALL apps to be signed by Google, effectively leading to an iOS situation. Value your right to a computer that does what you want; do not tolerate this monopolistic practice! Contact me if you don't understand why it is bad. Click to learn more.

 test.sh

View raw Download
text/x-shellscript • 5.24 kiB
Bourne-Again shell script, ASCII text executable
        
            
1
#!/bin/bash
2
#
3
# Once run the script, no need to run ./install.sh for testing. ;)
4
# Without an argument, this will install only normal variant.
5
# Valid arguments are:
6
#
7
# compact dark dark-compact light light-compact all uninstall
8
#
9
# FIXME: `unity` and `xfwm4` are not fully supported for now since `*.svg` link incorrect locales (with '-light' variant).
10
# FIXME: Multiple arguments should be allowed.
11
12
REPO_DIR=$(cd $(dirname $0) && pwd)
13
SRC_PATH=${REPO_DIR}/src
14
15
DEST_DIR=~/.themes
16
THEME_NAME=Materia.dev
17
COLOR_VARIANTS=('' '-dark' '-light')
18
SIZE_VARIANTS=('' '-compact')
19
20
GTK_VERSIONS=('3.18' '3.20' '3.22')
21
GS_VERSIONS=('3.18' '3.20' '3.22' '3.24' '3.26')
22
LATEST_GS_VERSION=${GS_VERSIONS[@]: -1}
23
24
# Set a proper gnome-shell theme version
25
if [[ $(which gnome-shell 2> /dev/null) ]]; then
26
CURRENT_GS_VERSION=$(gnome-shell --version | cut -d ' ' -f 3 | cut -d . -f -2)
27
for version in "${GS_VERSIONS[@]}"; do
28
if (( $(echo "$CURRENT_GS_VERSION <= $version" | bc) )); then
29
GS_VERSION=${version}
30
break
31
elif (( $(echo "$CURRENT_GS_VERSION > $LATEST_GS_VERSION" | bc) )); then
32
GS_VERSION=${LATEST_GS_VERSION}
33
break
34
fi
35
done
36
else
37
GS_VERSION=${LATEST_GS_VERSION}
38
fi
39
40
test() {
41
local color=${1}
42
local size=${2}
43
44
[[ ${color} == '-dark' ]] && local ELSE_DARK=${color}
45
[[ ${color} == '-light' ]] && local ELSE_LIGHT=${color}
46
47
local THEME_DIR=${DEST_DIR}/${THEME_NAME}${color}${size}
48
49
mkdir -p ${THEME_DIR}
50
ln -sfT ${SRC_PATH}/index${color}${size}.theme ${THEME_DIR}/index.theme
51
52
mkdir -p ${THEME_DIR}/gnome-shell
53
ln -sf ${SRC_PATH}/gnome-shell/{extensions,pad-osd.css} ${THEME_DIR}/gnome-shell
54
ln -sfT ${SRC_PATH}/gnome-shell/assets${ELSE_DARK} ${THEME_DIR}/gnome-shell/assets
55
ln -sfT ${SRC_PATH}/gnome-shell/${GS_VERSION}/gnome-shell${color}${size}.css ${THEME_DIR}/gnome-shell/gnome-shell.css
56
57
mkdir -p ${THEME_DIR}/gtk-2.0
58
ln -sf ${SRC_PATH}/gtk-2.0/{apps.rc,hacks.rc,main.rc} ${THEME_DIR}/gtk-2.0
59
ln -sfT ${SRC_PATH}/gtk-2.0/assets${ELSE_DARK} ${THEME_DIR}/gtk-2.0/assets
60
ln -sfT ${SRC_PATH}/gtk-2.0/gtkrc${color} ${THEME_DIR}/gtk-2.0/gtkrc
61
62
for version in "${GTK_VERSIONS[@]}"; do
63
if [[ ${version} == '3.18' ]]; then
64
mkdir -p ${THEME_DIR}/gtk-3.0
65
ln -sf ${SRC_PATH}/gtk/assets ${THEME_DIR}/gtk-3.0
66
ln -sfT ${SRC_PATH}/gtk/${version}/gtk${color}.css ${THEME_DIR}/gtk-3.0/gtk.css
67
[[ ${color} != '-dark' ]] && \
68
ln -sfT ${SRC_PATH}/gtk/${version}/gtk-dark.css ${THEME_DIR}/gtk-3.0/gtk-dark.css
69
else
70
mkdir -p ${THEME_DIR}/gtk-${version}
71
ln -sf ${SRC_PATH}/gtk/assets ${THEME_DIR}/gtk-${version}
72
ln -sfT ${SRC_PATH}/gtk/${version}/gtk${color}${size}.css ${THEME_DIR}/gtk-${version}/gtk.css
73
[[ ${color} != '-dark' ]] && \
74
ln -sfT ${SRC_PATH}/gtk/${version}/gtk-dark${size}.css ${THEME_DIR}/gtk-${version}/gtk-dark.css
75
fi
76
done
77
78
mkdir -p ${THEME_DIR}/metacity-1
79
ln -sf ${SRC_PATH}/metacity-1/assets ${THEME_DIR}/metacity-1
80
ln -sfT ${SRC_PATH}/metacity-1/metacity-theme-2${ELSE_LIGHT}.xml ${THEME_DIR}/metacity-1/metacity-theme-2.xml
81
ln -sfT ${SRC_PATH}/metacity-1/metacity-theme-3${ELSE_LIGHT}.xml ${THEME_DIR}/metacity-1/metacity-theme-3.xml
82
83
mkdir -p ${THEME_DIR}/unity
84
ln -sf ${SRC_PATH}/unity/{*.svg,*.png,dash-widgets.json} ${THEME_DIR}/unity
85
ln -sfT ${SRC_PATH}/unity/assets${ELSE_LIGHT} ${THEME_DIR}/unity/assets
86
87
mkdir -p ${THEME_DIR}/xfwm4
88
ln -sf ${SRC_PATH}/xfwm4/{*.svg,themerc} ${THEME_DIR}/xfwm4
89
ln -sfT ${SRC_PATH}/xfwm4/assets${ELSE_LIGHT} ${THEME_DIR}/xfwm4/assets
90
91
echo Installed to ${THEME_DIR}
92
}
93
94
case "${1}" in
95
"")
96
test '' ''
97
;;
98
compact)
99
test '' '-compact'
100
;;
101
dark)
102
test '-dark' ''
103
;;
104
dark-compact)
105
test '-dark' '-compact'
106
;;
107
light)
108
test '-light' ''
109
;;
110
light-compact)
111
test '-light' '-compact'
112
;;
113
all)
114
test '' ''
115
test '' '-compact'
116
test '-dark' ''
117
test '-dark' '-compact'
118
test '-light' ''
119
test '-light' '-compact'
120
;;
121
uninstall)
122
rm -rf ${DEST_DIR}/${THEME_NAME}{,-compact,-dark,-dark-compact,-light,-light-compact}
123
;;
124
*)
125
echo "Invalid argument: ${1}"
126
echo "Valid arguments are: compact dark dark-compact light light-compact all uninstall"
127
;;
128
esac
129