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 • 6.19 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
THEME_NAME=Materia.dev
16
THEMES_DIR=~/.themes
17
18
if [[ $(which gnome-shell 2> /dev/null) ]]; then
19
GNOME_VERSION_MAJOR=$(gnome-shell --version | cut -d ' ' -f 3 | cut -d . -f 1)
20
GNOME_VERSION_MINOR=$(gnome-shell --version | cut -d ' ' -f 3 | cut -d . -f 2)
21
22
if [[ -e ${SRC_PATH}/gnome-shell/${GNOME_VERSION_MAJOR}.${GNOME_VERSION_MINOR} ]]; then
23
GNOME_VERSION=${GNOME_VERSION_MAJOR}.${GNOME_VERSION_MINOR}
24
elif [[ -e ${SRC_PATH}/gnome-shell/${GNOME_VERSION_MAJOR}.$((${GNOME_VERSION_MINOR} + 1)) ]]; then
25
GNOME_VERSION=${GNOME_VERSION_MAJOR}.$((${GNOME_VERSION_MINOR} + 1))
26
elif [[ -e ${SRC_PATH}/gnome-shell/${GNOME_VERSION_MAJOR}.$((${GNOME_VERSION_MINOR} - 1)) ]]; then
27
GNOME_VERSION=${GNOME_VERSION_MAJOR}.$((${GNOME_VERSION_MINOR} - 1))
28
else
29
GNOME_VERSION=3.18
30
fi
31
else
32
GNOME_VERSION=3.18
33
fi
34
35
test() {
36
local color=${1}
37
local size=${2}
38
39
[[ ${color} == '-dark' ]] && local ELSE_DARK=${color}
40
[[ ${color} == '-light' ]] && local ELSE_LIGHT=${color}
41
42
local THEME_DIR=${THEMES_DIR}/${THEME_NAME}${color}${size}
43
44
mkdir -p ${THEME_DIR}
45
ln -sfT ${SRC_PATH}/index${color}${size}.theme ${THEME_DIR}/index.theme
46
47
mkdir -p ${THEME_DIR}/gnome-shell
48
ln -sfT ${SRC_PATH}/gnome-shell/${GNOME_VERSION}/assets${ELSE_DARK} ${THEME_DIR}/gnome-shell/assets
49
ln -sfT ${SRC_PATH}/gnome-shell/${GNOME_VERSION}/extensions ${THEME_DIR}/gnome-shell/extensions
50
ln -sfT ${SRC_PATH}/gnome-shell/${GNOME_VERSION}/gnome-shell${color}${size}.css ${THEME_DIR}/gnome-shell/gnome-shell.css
51
# ln -sfT ${SRC_PATH}/gnome-shell/${GNOME_VERSION}/pad-osd.css ${THEME_DIR}/gnome-shell/pad-osd.css
52
53
mkdir -p ${THEME_DIR}/gtk-2.0
54
ln -sfT ${SRC_PATH}/gtk-2.0/assets${ELSE_DARK} ${THEME_DIR}/gtk-2.0/assets
55
ln -sfT ${SRC_PATH}/gtk-2.0/gtkrc${color} ${THEME_DIR}/gtk-2.0/gtkrc
56
ln -sfT ${SRC_PATH}/gtk-2.0/apps.rc ${THEME_DIR}/gtk-2.0/apps.rc
57
ln -sfT ${SRC_PATH}/gtk-2.0/hacks.rc ${THEME_DIR}/gtk-2.0/hacks.rc
58
ln -sfT ${SRC_PATH}/gtk-2.0/main.rc ${THEME_DIR}/gtk-2.0/main.rc
59
60
mkdir -p ${THEME_DIR}/gtk-common
61
ln -sfT ${SRC_PATH}/gtk-3.0/gtk-common/assets ${THEME_DIR}/gtk-common/assets
62
63
mkdir -p ${THEME_DIR}/gtk-3.0
64
ln -sfT ${SRC_PATH}/gtk-3.0/3.18/assets ${THEME_DIR}/gtk-3.0/assets
65
ln -sfT ${SRC_PATH}/gtk-3.0/3.18/gtk${color}.css ${THEME_DIR}/gtk-3.0/gtk.css
66
[[ ${color} != '-dark' ]] && \
67
ln -sfT ${SRC_PATH}/gtk-3.0/3.18/gtk-dark.css ${THEME_DIR}/gtk-3.0/gtk-dark.css
68
69
for version in '3.20' '3.22'; do
70
mkdir -p ${THEME_DIR}/gtk-${version}
71
ln -sfT ${SRC_PATH}/gtk-3.0/${version}/assets ${THEME_DIR}/gtk-${version}/assets
72
ln -sfT ${SRC_PATH}/gtk-3.0/${version}/gtk${color}${size}.css ${THEME_DIR}/gtk-${version}/gtk.css
73
[[ ${color} != '-dark' ]] && \
74
ln -sfT ${SRC_PATH}/gtk-3.0/${version}/gtk-dark${size}.css ${THEME_DIR}/gtk-${version}/gtk-dark.css
75
done
76
77
mkdir -p ${THEME_DIR}/metacity-1
78
ln -sfT ${SRC_PATH}/metacity-1/assets ${THEME_DIR}/metacity-1/assets
79
ln -sfT ${SRC_PATH}/metacity-1/metacity-theme-2${ELSE_LIGHT}.xml ${THEME_DIR}/metacity-1/metacity-theme-2.xml
80
ln -sfT ${SRC_PATH}/metacity-1/metacity-theme-3${ELSE_LIGHT}.xml ${THEME_DIR}/metacity-1/metacity-theme-3.xml
81
82
mkdir -p ${THEME_DIR}/unity
83
ln -sfT ${SRC_PATH}/unity/assets${ELSE_LIGHT} ${THEME_DIR}/unity/assets
84
ln -sf ${SRC_PATH}/unity/*.svg ${THEME_DIR}/unity
85
ln -sfT ${SRC_PATH}/unity/launcher_bfb.png ${THEME_DIR}/unity/launcher_bfb.png
86
ln -sfT ${SRC_PATH}/unity/dash-widgets.json ${THEME_DIR}/unity/dash-widgets.json
87
88
mkdir -p ${THEME_DIR}/xfwm4
89
ln -sfT ${SRC_PATH}/xfwm4/assets${ELSE_LIGHT} ${THEME_DIR}/xfwm4/assets
90
ln -sf ${SRC_PATH}/xfwm4/*.svg ${THEME_DIR}/xfwm4
91
ln -sfT ${SRC_PATH}/xfwm4/themerc ${THEME_DIR}/xfwm4/themerc
92
93
echo Installed to ${THEME_DIR}
94
}
95
96
case "${1}" in
97
"")
98
test '' ''
99
;;
100
compact)
101
test '' '-compact'
102
;;
103
dark)
104
test '-dark' ''
105
;;
106
dark-compact)
107
test '-dark' '-compact'
108
;;
109
light)
110
test '-light' ''
111
;;
112
light-compact)
113
test '-light' '-compact'
114
;;
115
all)
116
test '' ''
117
test '' '-compact'
118
test '-dark' ''
119
test '-dark' '-compact'
120
test '-light' ''
121
test '-light' '-compact'
122
;;
123
uninstall)
124
rm -rf ${THEMES_DIR}/${THEME_NAME}{,-compact,-dark,-dark-compact,-light,-light-compact}
125
;;
126
*)
127
echo "Invalid argument: ${1}"
128
echo "Valid arguments are: compact dark dark-compact light light-compact all uninstall"
129
;;
130
esac
131