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