-
Notifications
You must be signed in to change notification settings - Fork 0
/
arch-package-installer.sh
executable file
Β·398 lines (369 loc) Β· 11.3 KB
/
arch-package-installer.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
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
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
#! /usr/bin/bash
printf "\n\e[1;31m Welcome To Arch \e[0m\n\n"
# Functions
# Ask For Options
function optionsList() {
case "$1" in [yY] | [yY][eE][sS])
printf "\n\e[1;32m $2: \e[0m\n\n"
options="$3"
counter=1
for option in $options; do
read -p "$counter. Do you want to $option β y/n: " $option
((counter++))
done
;;
*)
printf ""
;;
esac
}
# Install Package Pacman
function installPackagePacman() {
case "$1" in [yY] | [yY][eE][sS])
printf "\n\nπ₯\e[1;32m Installing $2\e[0m\n"
sudo pacman -S $2
printf "\nβ
\e[1;32m $2\e[0m\n"
;;
*)
printf ""
;;
esac
}
# Install Package Yay
function installPackageYay() {
case "$1" in [yY] | [yY][eE][sS])
printf "\n\nπ₯\e[1;32m Installing $2\e[0m\n"
printf "\n\nπ₯\e[1;32m Adding YAY\e[0m\n"
sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/yay-git.git
cd yay-git
makepkg -si
printf "\nβ
\e[1;32m YAY\e[0m\n"
yay -S $2
printf "\nβ
\e[1;32m $2\e[0m\n"
;;
*)
printf ""
;;
esac
}
# Install Package With Flatpack
function installPackageFlatpack() {
case "$1" in [yY] | [yY][eE][sS])
printf "\n\nπ₯\e[1;32m Installing $2\e[0m\n"
flatpak install -y flathub $2
printf "\nβ
\e[1;32m $2\e[0m\n"
;;
*)
printf ""
;;
esac
}
# A. Ask
QUESTIONS="UPDATE ADD_REPOSITORIES INSTALL_PACKAGES"
for QUESTION in $QUESTIONS; do
read -p "Do you want to $QUESTIONβ y/n: " $QUESTION
done
# A.2. π§° Add ADD_REPOSITORIES
optionsList "$ADD_REPOSITORIES" "π§° Repositories" "YAY FLATPAK SANP"
# A.3 π οΈ Install Packages
optionsList "$INSTALL_PACKAGES" "π οΈ Choose Packages Categories" "DESKTOP_ENVIRONMENT DEV_TOOLS OFFICE MESSAGING MEDIA BROWSERS PHOTO_EDITING TERMINAL OTHER"
# π¨ A.3.1. Choose Desktop Environment
optionsList "$DESKTOP_ENVIRONMENT" "π¨ Choose Desktop Environment(s)" "AWESOME BUDGIE CINNAMON GNOME KDE MATE XFCE"
# π¨βπ» A.3.2 DEV_TOOLS
optionsList "$DEV_TOOLS" "π¨βπ» Choose Developer Tools" "VSCODE CODEOSS CODIUM SUBLIME PULSAR VIM NVM NODE NPM YARN TYPESCRIPT NodeCheckUpdate DOTNET GIT"
# Ask for Git config
case "$GIT" in [yY] | [yY][eE][sS])
read -p "What is git user name β " GIT_NAME
read -p "What is git user Email β " GIT_EMAIL
# echo " $GIT_NAME"
;;
*)
printf ""
;;
esac
# π¬ A.3.3 Choose Messaging
optionsList "$MESSAGING" "π¬ Choose Messaging Packages" "SIGNAL WHATSAPP"
# π A.3.3 Choose Office
optionsList "$OFFICE" "π Choose Office Packages" "LIBREOFFICE OKULAR THUNDERBIRD MAILSPRING FONTS"
# πΊ A.3.4 Choose Media
optionsList "$MEDIA" "πΊ Choose Media Packages" "AUDACIOUS VLC MPV CLEMENTINE RHYTHMBOX OBS_STUDIO MP3INFO YOUTUBE_DL FFMPEG"
# π A.3.5 Choose Browsers
optionsList "$BROWSERS" "π Choose Browsers" "CHROMIUM UNGOOGLEDCHROMIUM CHROME FALKON FIREFOX FIREFOX_DEV BRAVE MIDORI VIVALDI EDGE WATERFOX LIBREWOLF GNOME_BROWSER"
# πΌοΈ A.3.6 Choose PHOTO_EDITING
optionsList "$PHOTO_EDITING" "πΌοΈ Choose Photo Editing" "GIMP INKSCAPE"
# π» A.3.7 Choose Terminal
optionsList "$TERMINAL" "π» Choose TERMINAL" "BPYTOP HTOP SL CMATRIX LOLCAT NEOFETCH TREE TERMINATOR ZSH RETRO_TERM"
# πΎ A.3.8 Choose OTHER
optionsList "$OTHER" "πΎ Choose OTHER" "ROFI PLANK EXFAT QT5CT FLATSEAL"
# B. Process
# B.1. Update the System
case "$UPDATE" in [yY] | [yY][eE][sS])
printf "\n\nπ₯\e[1;32m Update \e[0m\n"
sudo pacman -Syyu -y
printf "\nβ
\e[1;32m Update\e[0m\n"
;;
*)
printf ""
;;
esac
# B.2. ADD_REPOSITORIES
# YAY
case "$YAY" in [yY] | [yY][eE][sS])
read -p "Do you want to install Pamacβ y/n: " $PAMAC
printf "\n\nπ₯\e[1;32m Adding YAY\e[0m\n"
sudo pacman -S --needed base-devel git
git clone https://aur.archlinux.org/yay-git.git
cd yay-git
makepkg -si
printf "\nβ
\e[1;32m YAY\e[0m\n"
case "$PAMAC" in [yY] | [yY][eE][sS])
printf "\n\nπ₯\e[1;32m Pamac \e[0m\n"
yay -S pamac-aur
printf "\nβ
\e[1;32m Pamac\e[0m\n"
;;
*)
printf ""
;;
esac
;;
*)
printf ""
;;
esac
# Snap
case "$SANP" in [yY] | [yY][eE][sS])
printf "\n\nπ₯\e[1;32m Adding Snap\e[0m\n"
git clone https://aur.archlinux.org/snapd.git
cd snapd
makepkg -si
sudo systemctl enable --now snapd.socket
sudo ln -s /var/lib/snapd/snap /snap
printf "\nβ
\e[1;32m Reboot to use Sanp\e[0m\n"
;;
*)
printf ""
;;
esac
# Flatpak
case "$FLATPAK" in [yY] | [yY][eE][sS])
printf "\n\nπ₯\e[1;32m Adding Flatpak\e[0m\n"
sudo pacman -S flatpak
printf "\nβ
\e[1;32m flatpak\e[0m\n"
;;
*)
printf ""
;;
esac
# B.3 Install Packages
# π¨ B.3.1. Install Desktop Environments
# 𧩠Install Awesome
installPackagePacman "$AWESOME" "awesome"
# 𧩠Install Budgie
installPackagePacman "$BUDGIE" "budgie-desktop"
# 𧩠Install Cinnamon
installPackagePacman "$CINNAMON" "cinnamon"
# 𧩠Install Gnome
installPackagePacman "$GNOME" "gnome chrome-gnome-shell"
# 𧩠Install KDE
installPackagePacman "$KDE" "plasma"
# 𧩠Install MATE
installPackagePacman "$MATE" "mate mate-extra mate-menu mate-applet-brisk-menu mate-applets mate-tweak"
# 𧩠Install Xfce
installPackagePacman "$XFCE" "xfce4 xfce4-goodies xfce4-clipman-plugin xfce4-systemload-plugin xfce4-whiskermenu-plugin"
# π¨βπ» B.3.2. Developer Tools
# 𧩠Install CODIUM
installPackageYay "$CODIUM" "vscodium-bin"
# 𧩠Install VSCODE
installPackageYay "$VSCODE" "visual-studio-code-bin"
# 𧩠Install CODEOSS
installPackageFlatpack "$CODEOSS" "com.visualstudio.code-oss"
# 𧩠Install SUBLIME
installPackageYay "$SUBLIME" "sublime-text-3"
# 𧩠Install VIM
installPackagePacman "$VIM" "vim"
# 𧩠Install DOCKER
# 𧩠Install NODE
# 𧩠Install NVM
case "$NVM" in [yY] | [yY][eE][sS])
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.1/install.sh | bash
source ~/.bashrc
source ~/.zshrc
nvm install node
nvm install --lts
nvm ls
;;
*)
printf ""
;;
esac
# 𧩠Install PULSAR
installPackageFlatpack "$PULSAR" "dev.pulsar_edit.Pulsar"
# 𧩠Install NPM
installPackagePacman "$NPM" "npm"
# 𧩠Install YARN
installPackagePacman "$YARN" "yarn"
# 𧩠Install TYPESCRIPT
case "$TYPESCRIPT" in [yY] | [yY][eE][sS])
printf "\nπ₯ \e[1;32m Installing Typescript\e[0m\n"
npm install -g typescript
printf "\nβ
\e[1;32m Typescript Installed\e[0m\n"
;;
*)
printf ""
;;
esac
# 𧩠Install NodeCheckUpdate
case "$NodeCheckUpdate" in [yY] | [yY][eE][sS])
printf "\nπ₯ \e[1;32m Installing npm Check Updates\e[0m\n"
npm install -g npm-check-updates
printf "\nβ
\e[1;32m npm Check Updates Installed\e[0m\n"
;;
*)
printf ""
;;
esac
# 𧩠Install DOTNET
case "$DOTNET" in [yY] | [yY][eE][sS])
printf "\nπ₯ \e[1;32m Installing .NET\e[0m\n"
cd ~/Documents/
wget https://dot.net/v1/dotnet-install.sh -O dotnet-install.sh
chmod +x ./dotnet-install.sh
./dotnet-install.sh --channel 7.0
sudo ln -s ~/.dotnet/dotnet /usr/bin
dotnet --version
printf "\nβ
\e[1;32m .NET Installed\e[0m\n"
;;
*)
printf ""
;;
esac
# 𧩠Install GIT
case "$GIT" in [yY] | [yY][eE][sS])
installPackagePacman "$GIT" "git"
# Add GIT NAME
printf "\n\e[1;32m Add Your Git user name $GIT_NAME\e[0m\n"
git config --global user.name $GIT_NAME
printf "\n\e[1;34m " && git config user.name && printf "\e[0m\n"
# Add GIT EMAIL
printf "\n\e[1;32m Add Your Git user Email $GIT_EMAIL\e[0m\n"
git config --global user.email $GIT_EMAIL
printf "\n\e[1;34m " && git config user.email && printf "\e[0m\n"
;;
*)
printf ""
;;
esac
# π¬ A.3.3 Choose Messaging
# 𧩠SIGNAL
installPackageFlatpack "$SIGNAL" "org.signal.Signal"
# 𧩠WHATSAPP
installPackageFlatpack "$WHATSAPP" "io.github.mimbrero.WhatsAppDesktop"
# π B.3.3. Office
# 𧩠LIBREOFFICE
installPackagePacman "$LIBREOFFICE" "libreoffice"
# 𧩠OKULAR
installPackagePacman "$OKULAR" "okular"
# 𧩠THUNDERBIRD
installPackagePacman "$THUNDERBIRD" "thunderbird"
# 𧩠MAILSPRING
installPackageFlatpack "$MAILSPRING" "com.getmailspring.Mailspring"
# 𧩠FONTS
installPackagePacman "$FONTS" "otf-cascadia-code ttf-joypixels woff2-cascadia-code ttf-droid ttf-cascadia-code noto-fonts-emoji noto-fonts-cjk awesome-terminal-fonts noto-fonts ttf-dejavu ttf-droid ttf-inconsolata ttf-indic-otf ttf-liberation "
# πΊ B.3.4. Media
# 𧩠AUDACIOUS
installPackagePacman "$AUDACIOUS" "audacious audacious-plugins"
# 𧩠VLC
installPackagePacman "$VLC" "vlc"
# 𧩠MPV
installPackagePacman "$MPV" "mpv"
# 𧩠CLEMENTINE
installPackagePacman "$CLEMENTINE" "clementine"
# 𧩠Rhythmbox
installPackage "$RHYTHMBOX" "rhythmbox"
# 𧩠OBS_STUDIO
installPackagePacman "$OBS_STUDIO" "obs-studio"
# 𧩠YOUTUBE_DL
installPackagePacman "$YOUTUBE_DL" "youtube-dl"
# 𧩠MP3INFO
installPackagePacman "$MP3INFO" "mp3info"
# 𧩠FFPROBE
installPackagePacman "$FFPROBE" "ffmpeg"
# π B.3.5. Browsers
# 𧩠CHROMIUM
installPackagePacman "$CHROMIUM" "chromium"
# 𧩠UNGOOGLEDCHROMIUM
installPackageFlatpack "$UNGOOGLEDCHROMIUM" "com.github.Eloston.UngoogledChromium"
# 𧩠CHROME
installPackageYay "$CHROME" "google-chrome"
# 𧩠FALKON
installPackagePacman "$FALKON" "falkon"
# 𧩠FIREFOX
installPackagePacman "$FIREFOX" "firefox-esr"
# 𧩠FIREFOX_DEV
installPackagePacman "$FIREFOX_DEV" "firefox-developer-edition"
# 𧩠BRAVE
installPackageYay "$BRAVE" "brave"
# 𧩠MIDORI
installPackagePacman "$MIDORI" "midori"
# 𧩠VIVALDI
installPackagePacman "$VIVALDI" "vivaldi"
# 𧩠LIBREWOLF
installPackageYay "$LIBREWOLF" "librewolf"
# 𧩠EDGE
installPackageYay "$EDGE" "microsoft-edge-stable-bin"
# 𧩠WATERFOX LIBREWOLF
installPackagePacman "$WATERFOX LIBREWOLF" "waterfox LIBREWOLF-g3"
# 𧩠LIBREWOLF
installPackageFlatpack "$LIBREWOLF" "io.gitlab.librewolf-community"
# 𧩠GNOME_BROWSER
installPackagePacman "$GNOME_BROWSER" "epiphany"
# πΌοΈ A.3.6 PHOTO_EDITE
# 𧩠GIMP
installPackagePacman "$GIMP" "gimp"
# 𧩠INKSCAPE
installPackagePacman "$INKSCAPE" "inkscape"
# π» TERMINAL
# 𧩠BPYTOP
installPackagePacman "$BPYTOP" "bpytop"
# 𧩠HTOP
installPackagePacman "$HTOP" "htop"
# 𧩠SL
installPackagePacman "$SL" "sl"
# 𧩠CMATRIX
installPackagePacman "$CMATRIX" "cmatrix"
# 𧩠LOLCAT
installPackagePacman "$LOLCAT" "lolcat"
# 𧩠NEOFETCH
installPackagePacman "$NEOFETCH" "neofetch"
# 𧩠TREE
installPackagePacman "$TREE" "tree"
# 𧩠TERMINATOR
installPackagePacman "$TERMINATOR" "terminator"
# 𧩠ZSH
installPackagePacman "$ZSH" "zsh"
# 𧩠RETRO_TERM
installPackagePacman "$RETRO_TERM" "cool-retro-term"
# πΎ OTHER
# 𧩠ROFI
installPackagePacman "$ROFI" "rofi"
# 𧩠PLANK
installPackagePacman "$PLANK" "plank"
# 𧩠BALENA_ETCHER
installPackagePacman "$BALENA_ETCHER" "etcher"
# 𧩠EXFAT
installPackagePacman "$EXFAT" "exfat-utils"
# 𧩠QT5CT
case "$QT5CT" in [yY] | [yY][eE][sS])
printf "\nπ₯ \e[1;32m Installing qt5ct\e[0m\n"
sudo pacman -S -y qt5ct
printf "\nβ
\e[1;32m qt5ct Installed\e[0m\n"
printf "\n\e[1;32m Set environment variables in ~/.profile\e[0m\n"
echo 'export QT_QPA_PLATFORMTHEME="qt5ct"' >>~/.profile
;;
*)
printf ""
;;
esac
# 𧩠FLATSEAL
installPackageFlatpack "$FLATSEAL" "com.github.tchx84.Flatseal"