forked from tliron/install-gnome-themes
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinstall-gnome-themes
executable file
·379 lines (322 loc) · 11.5 KB
/
install-gnome-themes
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
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
#!/bin/bash
#
# This script installs the latest versions of some fine GNOME themes into the current user's ".themes" folder.
#
# Get the most recent version of this script at:
#
# https://github.com/tliron/install-gnome-themes
#
# Copyright 2016 by Tal Liron. MIT-style license:
#
# https://github.com/tliron/install-gnome-themes/blob/master/LICENSE
#
set -e
#
# To skip installation of requirements:
#
# REQUIREMENTS=0 ./install-gnome-themes
#
# Build output is supressed by default. If you want to see it, set the LOG environment var:
#
# LOG=/dev/stdout ./install-gnome-themes
#
# Or:
#
# LOG=output.log ./install-gnome-themes
#
HERE=$(dirname "$(readlink -f "$0")")
LOG=${LOG:-/dev/null}
REQUIREMENTS=${REQUIREMENTS:-1}
THEMES=~/.themes
CACHE_FILE=${CACHE_FILE:-$THEMES/.install-gnome-themes-cache}
WORK=/tmp/install-gnome-themes
. "$HERE/utils.sh"
#
# Preparation
#
GNOME_VERSION=$(gnome-version)
GTK_VERSION=$(gtk-version)
if [ -z "$GNOME_VERSION" ]; then
message "Detected GTK $GTK_VERSION."
else
message "Detected GNOME $GNOME_VERSION, GTK $GTK_VERSION."
fi
if [ "$GTK_VERSION" != '3.24' ] &&
[ "$GTK_VERSION" != '3.22' ] &&
[ "$GTK_VERSION" != '3.20' ] &&
[ "$GTK_VERSION" != '3.18' ]; then
message "This script only GTK version 3.18 up to 3.24."
exit 1
fi
if [ "$GTK_VERSION" = '3.18' ]; then
GTK_LEGACY=1
else
GTK_LEGACY=0
fi
OS=$(os-name)
message "Detected $OS operating system."
if [ "$REQUIREMENTS" == 1 ]; then
message "Verifying that build requirements are installed..."
if [ "$OS" == 'Debian' ] ||
[ "$OS" == 'Ubuntu' ] ||
[ "$OS" == 'LinuxMint' ] ||
[ "$OS" == 'SPERIX-OS' ]; then
# Ubuntu GNOME comes with Numix (for 3.18) preinstalled, we will remove it to avoid confusion
sudo apt remove numix-gtk-theme
# Install our build and usage requirements
sudo apt install \
git autoconf automake pkg-config parallel \
libgtk-3-dev libgdk-pixbuf2.0-dev libglib2.0-dev libglib2.0-bin \
libxml2-utils librsvg2-dev \
gnome-themes-standard gtk2-engines-murrine gtk2-engines-pixbuf \
ruby ruby-bundler ruby-dev \
inkscape \
fonts-roboto-hinted fonts-noto-hinted
else
message "This script currently only supports Debian, Ubuntu, and LinuxMint." "$RED"
exit 1
fi
# sass is used by many themes to generate CSS
gem install --user-install sass
export PATH="$(ruby -rubygems -e 'puts Gem.user_dir')/bin:$PATH"
# sassc is used specifically by Adapta
if [ ! -f /usr/bin/sassc ]; then
if apt show sassc &>> /dev/null; then
sudo apt install sassc
else
# Older versions of Ubuntu do not have sassc
echo "Building and installing sassc..."
rm --recursive --force "$WORK/libsass" "$WORK/sassc"
mkdir --parents "$WORK"
cd "$WORK"
git clone https://github.com/sass/libsass.git --depth 1 libsass &>> "$LOG"
git clone https://github.com/sass/sassc.git --depth 1 sassc &>> "$LOG"
cd "$WORK/sassc"
SASS_LIBSASS_PATH="$WORK/libsass" make --jobs="$(nproc)" &>> "$LOG"
sudo cp "$WORK/sassc/bin/sassc" /usr/bin/
rm --recursive --force "$WORK/libsass" "$WORK/sassc"
fi
fi
fi
mkdir --parents "$THEMES"
#
# Themes
#
# Adapta
# https://github.com/tista500/Adapta
# Requirements: autoconf automake inkscape libgdk-pixbuf2.0-dev libglib2.0-dev librsvg2-dev libsass0 libxml2-utils pkg-config sassc
#
# Supports configurations settings, e.g. a variant with colors red500, red300, bluegrey300, bluegrey500:
#
# ADAPTA_ARGS='
# --with-selection_color=#F44336
# --with-second_selection_color=#E57373
# --with-accent_color=#90A4AE
# --with-suggestion_color=#607D8B' \
# --with-destruction_color=#FF5252' \
# ./install-gnome-themes
AUTOGEN_ARGS="--disable-flashback --disable-unity --disable-xfce --disable-mate --disable-openbox --enable-chrome $ADAPTA_ARGS" \
theme-autogen-prefix tista500 Adapta master Adapta Adapta-Eta Adapta-Nokto Adapta-Nokto-Eta
# Adwaita Tweaks
# https://github.com/Jazqa/adwaita-tweaks
theme-mv Jazqa adwaita-tweaks master Adwaita-tweaks
# Arc
# https://github.com/horst3180/arc-theme
# Requirements: autoconf automake pkg-config libgtk-3-dev gtk2-engines-murrine
#
# Supports configurations settings, e.g. a variant with transparency disabled:
#
# ARC_ARGS='
# --disable-transparency' \
# ./install-gnome-themes
AUTOGEN_ARGS=$ARC_ARGS \
theme-autogen-prefix horst3180 arc-theme master Arc Arc-Dark Arc-Darker
# Arc-Flatabulous
# https://github.com/andreisergiu98/arc-flatabulous-theme
# Requirements: autoconf automake pkg-config libgtk-3-dev gtk2-engines-murrine
#
# Supports configurations settings, e.g. a variant with transparency disabled:
#
# ARC_FLATABULOUS_ARGS='
# --disable-transparency' \
# ./install-gnome-themes
AUTOGEN_ARGS=$ARC_FLATABULOUS_ARGS \
theme-autogen-prefix andreisergiu98 arc-flatabulous-theme master Arc-Flatabulous Arc-FlatabulousDark Arc-Flatabulous-Darker
# Arc-Red
# https://github.com/mclmza/arc-theme-Red
# Requirements: autoconf automake pkg-config libgtk-3-dev gtk2-engines-murrine
#
# Supports configurations settings, e.g. a variant with transparency disabled:
#
# ARC_RED_ARGS='
# --disable-transparency' \
# ./install-gnome-themes
AUTOGEN_ARGS=$ARC_RED_ARGS \
theme-autogen-prefix mclmza arc-theme-Red master Arc-Red Arc-Red-Dark Arc-Red-Darker
# Blue-Face
# https://github.com/Vistaus/Blue-Face
theme-mv Vistaus Blue-Face master Blue-Face
# Breeze
# https://github.com/dirruk1/gnome-breeze
# Requirements: gtk2-engines-pixbuf
theme-cp dirruk1 gnome-breeze master Breeze-gtk Breeze-dark-gtk
# Candra
# https://github.com/killhellokitty/Candra-Themes-3.20
# Requirements: gnome-themes-standard gtk2-engines-murrine gtk2-engines-pixbuf
if [ "$GTK_LEGACY" = 0 ]; then
theme-cp killhellokitty Candra-Themes-3.20 master Candra-Theme-3.20 Candra-Theme-3.20-Dark Candra-Theme-3.20-Darker
fi
# Ceti-2
# https://github.com/horst3180/ceti-2-theme
# Requirements: autoconf automake pkg-config libgtk-3-dev gtk2-engines-murrine
if [ "$GTK_LEGACY" = 1 ]; then
theme-autogen-prefix horst3180 ceti-2-theme master Ceti-2
fi
# Chrome-OS
# https://github.com/Elbullazul/Chrome-OS
theme-mv Elbullazul Chrome-OS master Chrome-OS
# Ciliora-Secunda
# https://github.com/zagortenay333/ciliora-secunda-shell
theme-cp zagortenay333 ciliora-secunda-shell master Ciliora-Secunda
# Ciliora-Tertia
# https://github.com/zagortenay333/ciliora-tertia-shell
theme-cp zagortenay333 ciliora-tertia-shell master Ciliora-Tertia
# Cloak
# https://github.com/killhellokitty/Cloak-3.22
# Requirements: gnome-themes-standard gtk2-engines-murrine gtk2-engines-pixbuf
if [ "$GTK_LEGACY" = 0 ]; then
theme-cp killhellokitty Cloak-3.22 master Cloak-3.22
fi
# Delorean Dark
# https://github.com/killhellokitty/DeLorean-Dark-3.18
# Requirements: gnome-themes-standard gtk2-engines-murrine gtk2-engines-pixbuf
if [ "$GTK_LEGACY" = 1 ]; then
theme-cp killhellokitty DeLorean-Dark-3.18 master DeLorean-Dark-3.18
fi
# EvoPop
# https://github.com/solus-cold-storage/evopop-gtk-theme
theme-autogen-destdir solus-cold-storage evopop-gtk-theme master evopop
# Flat-Plat
# https://github.com/nana-4/Flat-Plat
if [ "$GTK_LEGACY" = 0 ]; then
theme-mv nana-4 Flat-Plat 3.20 Flat-Plat
else
theme-mv nana-4 Flat-Plat 3.18 Flat-Plat
fi
# Flatabulous
# https://github.com/anmoljagetia/Flatabulous
if [ "$GTK_LEGACY" = 1 ]; then
theme-mv anmoljagetia Flatabulous master Flatabulous
fi
# Flattiance
# https://github.com/IonicaBizau/Flattiance
if [ "$GTK_LEGACY" = 1 ]; then
theme-cp IonicaBizau Flattiance master Flattiance
fi
# Fresh-Finesse
# https://github.com/Vistaus/Fresh-Finesse
theme-cp Vistaus Fresh-Finesse master Fresh-Finesse
# Greybird
# https://github.com/shimmerproject/Greybird
# Requirements: autoconf automake libgdk-pixbuf2.0-dev libglib2.0-bin sass
theme-autogen-prefix shimmerproject Greybird master Greybird
# macOS-Sierra
# https://github.com/Elbullazul/macOS-Sierra
theme-mv Elbullazul macOS-Sierra master macOS-Sierra
# Minwaita
# https://github.com/godlyranchdressing/Minwaita
theme-mv godlyranchdressing Minwaita master Minwaita
# Numix
# https://github.com/numixproject/numix-gtk-theme
# Requirements: automake libglib2.0-bin libgdk-pixbuf2.0-dev sass
theme-make numixproject numix-gtk-theme master Numix
# OSX-Arc-Darker
# https://github.com/LinxGem33/OSX-Arc-Darker
# Requirements: gnome-themes-standard gtk2-engines-murrine
theme-mv LinxGem33 OSX-Arc-Darker master OSX-Arc-Darker OSX-Arc-Darker
# OSX-Arc-Plus
# https://github.com/LinxGem33/OSX-Arc-Plus
# Requirements: gnome-themes-standard gtk2-engines-murrine
theme-mv LinxGem33 OSX-Arc-Plus master OSX-Arc-Plus OSX-Arc-Plus
# OSX-Arc-Shadow
# https://github.com/LinxGem33/OSX-Arc-Shadow
# Requirements: gnome-themes-standard gtk2-engines-murrine
theme-mv LinxGem33 OSX-Arc-Shadow master OSX-Arc-Shadow OSX-Arc-Shadow
# OSX-Arc-White
# https://github.com/LinxGem33/OSX-Arc-White
# Requirements: gnome-themes-standard gtk2-engines-murrine
theme-mv LinxGem33 OSX-Arc-White master OSX-Arc-White OSX-Arc-White
# Paper
# https://github.com/snwh/paper-gtk-theme
# Requirements: automake automake
theme-autogen-destdir snwh paper-gtk-theme master Paper
# Plano
# https://github.com/lassekongo83/plano-theme
# Requirements: gtk2-engines-murrine gtk2-engines-pixbuf fonts-roboto
if [ "$GTK_LEGACY" = 0 ]; then
theme-mv lassekongo83 plano-theme master Plano
fi
# Pop
# https://github.com/system76/pop-gtk-theme
# Requirements: automake sassc
#
theme-make-destdir system76 pop-gtk-theme master Pop Pop-compact Pop-dark Pop-dark-compact Pop-light Pop-light-compact
# Redmond-Themes
# https://github.com/Elbullazul/Redmond-Themes
if [ "$GTK_LEGACY" = 0 ]; then
theme-cp Elbullazul Redmond-Themes master "Windows 3.x" "Windows 9x"
else
theme-cp Elbullazul Redmond-Themes master "Windows 3.x" "Windows 9x" "Windows XP Embedded" "Windows XP Zune" "Windows Vista"
fi
# United GNOME
# https://github.com/godlyranchdressing/United-GNOME
if [ "$GTK_LEGACY" = 0 ]; then
theme-script godlyranchdressing United-GNOME master "
tar xf Compiled.tar.gz &>> "$LOG" &&
cp --recursive "Compiled/United-$OS/"* "Compiled/United-$OS-alt/"* "$THEMES/" &>> "$LOG"
" "United-$OS" "United-$OS-Light" "United-$OS-Darker" "United-$OS-Dark" "United-$OS-alt" "United-$OS-alt-Light" "United-$OS-alt-Darker" "United-$OS-alt-Dark"
fi
# Unity7
# https://github.com/B00merang-Project/unity7
theme-mv B00merang-Project unity7 master Unity7
# Unity8
# https://github.com/B00merang-Project/unity8
theme-mv B00merang-Project unity8 master Unity8
# Vertex
# https://github.com/horst3180/vertex-theme
# Requirements: autoconf automake pkg-config libgtk-3-dev gtk2-engines-murrine
theme-autogen-prefix horst3180 vertex-theme master Vertex Vertex-Light Vertex-Dark
# Vimix
# https://github.com/vinceliuice/vimix-gtk-themes
# Requirements: gtk2-engines-murrine gtk2-engines-pixbuf
theme-execute vinceliuice vimix-gtk-themes master Install \
VimixDark \
VimixDark-Beryl \
VimixDark-Doder \
VimixDark-Laptop \
VimixDark-Laptop-Beryl \
VimixDark-Laptop-Doder \
VimixDark-Laptop-Ruby \
VimixDark-Ruby \
VimixLight \
VimixLight-Beryl \
VimixLight-Doder \
VimixLight-Laptop \
VimixLight-Laptop-Beryl \
VimixLight-Laptop-Doder \
VimixLight-Laptop-Ruby \
VimixLight-Ruby
# Yosembiance
# https://github.com/bsundman/Yosembiance
if [ "$GTK_LEGACY" = 1 ]; then
theme-cp bsundman Yosembiance master Yosembiance-Atomic-Blue Yosembiance-Atomic-Orange Yosembiance-Kraken-Blue Yosembiance-Ubuntu-Blue Yosembiance-Ubuntu-Orange
fi
# Zuki
# https://github.com/lassekongo83/zuki-themes
# Requirements: gtk2-engines-murrine gtk2-engines-pixbuf fonts-roboto
if [ "$GTK_LEGACY" = 0 ]; then
theme-cp lassekongo83 zuki-themes master Zukitre Zukitwo Zuki-shell
else
theme-cp lassekongo83 zuki-themes 3.18 Zukitre Zukitwo Zuki-shell
fi
message "Done!"