-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy path01-install_extensions.sh
executable file
·142 lines (125 loc) · 5.36 KB
/
01-install_extensions.sh
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
#!/bin/bash
################################################################################
# Description:
# Script that install all extensions that i use in my gnome
#
################################################################################
# Autor: Frank Junior <[email protected]>
# Desde: 02-04-2020
# Versão: 1
################################################################################
# ============================================
# Função de debug
# ============================================
function log(){
echo "[LOG] $*"
}
# ============================================
# Função de inicialização
# ============================================
function init(){
gnome_site="https://extensions.gnome.org"
current_folder=$(pwd)
ubuntu_version=$(grep "DISTRIB_RELEASE" /etc/lsb-release | cut -d "=" -f2)
# extensions folder
log "Criando diretório de extensões"
extensions_path="$HOME/.local/share/gnome-shell/extensions"
test -d "$extensions_path" || mkdir -p "$extensions_path"
# move todos os arquivos de schema para os diretórios locais e compila
# isso é ncessaŕio principalmente para algumas extebnsões serem configuradas através do gsettings
log "Criando diretório de schemas"
local_schema_path="$HOME/.local/share/glib-2.0/schemas/"
test -d "$local_schema_path" || mkdir -p "$local_schema_path"
# desabilita todas as extensões
log "Desabilitando todas as extensões"
gsettings set org.gnome.shell enabled-extensions "[]"
}
# ============================================
# Função auxiliar, que move todos os arquivos de schemas
# para o diretório $local_schema_path
# ============================================
function _move_schema_files(){
export XDG_DATA_DIRS=~/.local/share:/usr/share
find "$extensions_path" -name *gschema.xml -exec ln {} -sfn "$local_schema_path" \;
glib-compile-schemas "$local_schema_path"
}
# ============================================
# Função auxiliar, que instala genericamente
# qualquer extension individualmente
# Params:
# $1 - URL da extensão
# ============================================
function _install_extension(){
local extension_url="$1"
# install all array extensions
wget -q "$extension_url" -O "get_uuid_file.zip"
local uuid=$(unzip -c "get_uuid_file.zip" metadata.json | grep uuid | cut -d \" -f4 | grep -v "Archive")
rm -rf "get_uuid_file.zip"
# verify if extension already is installed
if [ ! -d "${extensions_path}/$uuid" ];then
local json="${gnome_site}/extension-info/?uuid=${uuid}&shell_version=3.22"
extension_url=${gnome_site}$(curl -s "${json}" | sed -e 's/^.*download_url[\": ]*\([^\"]*\).*$/\1/')
wget --header='Accept-Encoding:none' -O "extensao.zip" "${extension_url}"
unzip "extensao.zip" -d "$uuid"
rm -rf "extensao.zip"
mv "$uuid" "$extensions_path"
fi
if [ "$ubuntu_version" == "18.04" ];then
gnome-shell-extension-tool --enable-extension "$uuid"
elif [ "$ubuntu_version" == "20.04" ];then
gnome-extensions enable "$uuid"
fi
}
# ============================================
# Função que dá refresh no Gnome
# ============================================
function refresh_gnome(){
# o refresh no Gnome só é necessário no Ubuntu 18.04.
# No Ubuntu 20.04, ele já dá refresh sozinho
if [ "$ubuntu_version" == "18.04" ];then
log "refreshing Gnome..."
gnome-shell --replace &>/dev/null & disown
elif [ "$ubuntu_version" == "20.04" ];then
gnome-session-quit
fi
}
# ============================================
# Função que instala todas as extensões
# ============================================
function install_all_extensions(){
# The version of Gnome-Shell in Ubuntu 18.04 is equal to 3.28
# and Gnome-Shell version in Ubuntu 20.04 is equal to 3.36
if [ "$ubuntu_version" == "18.04" ];then
# The extensions: "Activities-Configurator" and "User-Theme" was wrong in Ubuntu 18.04
extensions=(
${gnome_site}/extension-data/dash-to-dockmicxgx.gmail.com.v65.shell-extension.zip
${gnome_site}/extension-data/blyryozoon.dev.gmail.com.v7.shell-extension.zip
${gnome_site}/extension-data/apt-update-indicator%40franglais125.gmail.com.v20.shell-extension.zip
${gnome_site}/extension-data/glassygnomeemiapwil.v17.shell-extension.zip
${gnome_site}/extension-data/openweather-extension%40jenslody.de.v97.shell-extension.zip
)
elif [ "$ubuntu_version" == "20.04" ];then
extensions=(
${gnome_site}/extension-data/dash-to-dockmicxgx.gmail.com.v68.shell-extension.zip
${gnome_site}/extension-data/blyryozoon.dev.gmail.com.v7.shell-extension.zip
${gnome_site}/extension-data/apt-update-indicator%40franglais125.gmail.com.v20.shell-extension.zip
${gnome_site}/extension-data/activities-confignls1729.v84.shell-extension.zip
${gnome_site}/extension-data/glassygnomeemiapwil.v17.shell-extension.zip
${gnome_site}/extension-data/openweather-extension%40jenslody.de.v97.shell-extension.zip
${gnome_site}/extension-data/user-themegnome-shell-extensions.gcampax.github.com.v40.shell-extension.zip
)
fi
# instala todas as extensões
log "Install all extensions"
for extension_url in "${extensions[@]}";do
_install_extension "$extension_url"
done
# linka os schemas
_move_schema_files
}
# ============================================
# Main
# ============================================
init
install_all_extensions
refresh_gnome