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.47 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 -sf ${SRC_PATH}/gnome-shell/${GNOME_VERSION}/{extensions,pad-osd.css} ${THEME_DIR}/gnome-shell
49
ln -sfT ${SRC_PATH}/gnome-shell/${GNOME_VERSION}/assets${ELSE_DARK} ${THEME_DIR}/gnome-shell/assets
50
ln -sfT ${SRC_PATH}/gnome-shell/${GNOME_VERSION}/gnome-shell${color}${size}.css ${THEME_DIR}/gnome-shell/gnome-shell.css
51
52
mkdir -p ${THEME_DIR}/gtk-2.0
53
ln -sf ${SRC_PATH}/gtk-2.0/{apps.rc,hacks.rc,main.rc} ${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
57
mkdir -p ${THEME_DIR}/gtk-common
58
ln -sf ${SRC_PATH}/gtk-3.0/gtk-common/assets ${THEME_DIR}/gtk-common
59
60
mkdir -p ${THEME_DIR}/gtk-3.0
61
ln -sf ${SRC_PATH}/gtk-3.0/3.18/assets ${THEME_DIR}/gtk-3.0
62
ln -sfT ${SRC_PATH}/gtk-3.0/3.18/gtk${color}.css ${THEME_DIR}/gtk-3.0/gtk.css
63
[[ ${color} != '-dark' ]] && \
64
ln -sfT ${SRC_PATH}/gtk-3.0/3.18/gtk-dark.css ${THEME_DIR}/gtk-3.0/gtk-dark.css
65
66
for version in '3.20' '3.22'; do
67
mkdir -p ${THEME_DIR}/gtk-${version}
68
ln -sf ${SRC_PATH}/gtk-3.0/${version}/assets ${THEME_DIR}/gtk-${version}
69
ln -sfT ${SRC_PATH}/gtk-3.0/${version}/gtk${color}${size}.css ${THEME_DIR}/gtk-${version}/gtk.css
70
[[ ${color} != '-dark' ]] && \
71
ln -sfT ${SRC_PATH}/gtk-3.0/${version}/gtk-dark${size}.css ${THEME_DIR}/gtk-${version}/gtk-dark.css
72
done
73
74
mkdir -p ${THEME_DIR}/metacity-1
75
ln -sf ${SRC_PATH}/metacity-1/assets ${THEME_DIR}/metacity-1
76
ln -sfT ${SRC_PATH}/metacity-1/metacity-theme-2${ELSE_LIGHT}.xml ${THEME_DIR}/metacity-1/metacity-theme-2.xml
77
ln -sfT ${SRC_PATH}/metacity-1/metacity-theme-3${ELSE_LIGHT}.xml ${THEME_DIR}/metacity-1/metacity-theme-3.xml
78
79
mkdir -p ${THEME_DIR}/unity
80
ln -sf ${SRC_PATH}/unity/{*.svg,*.png,dash-widgets.json} ${THEME_DIR}/unity
81
ln -sfT ${SRC_PATH}/unity/assets${ELSE_LIGHT} ${THEME_DIR}/unity/assets
82
83
mkdir -p ${THEME_DIR}/xfwm4
84
ln -sf ${SRC_PATH}/xfwm4/{*.svg,themerc} ${THEME_DIR}/xfwm4
85
ln -sfT ${SRC_PATH}/xfwm4/assets${ELSE_LIGHT} ${THEME_DIR}/xfwm4/assets
86
87
echo Installed to ${THEME_DIR}
88
}
89
90
case "${1}" in
91
"")
92
test '' ''
93
;;
94
compact)
95
test '' '-compact'
96
;;
97
dark)
98
test '-dark' ''
99
;;
100
dark-compact)
101
test '-dark' '-compact'
102
;;
103
light)
104
test '-light' ''
105
;;
106
light-compact)
107
test '-light' '-compact'
108
;;
109
all)
110
test '' ''
111
test '' '-compact'
112
test '-dark' ''
113
test '-dark' '-compact'
114
test '-light' ''
115
test '-light' '-compact'
116
;;
117
uninstall)
118
rm -rf ${THEMES_DIR}/${THEME_NAME}{,-compact,-dark,-dark-compact,-light,-light-compact}
119
;;
120
*)
121
echo "Invalid argument: ${1}"
122
echo "Valid arguments are: compact dark dark-compact light light-compact all uninstall"
123
;;
124
esac
125