-
Notifications
You must be signed in to change notification settings - Fork 0
/
hyprdots-install
279 lines (247 loc) · 10.3 KB
/
hyprdots-install
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
#!/bin/bash
prep_stage=(
qt5-wayland
qt6-wayland
qt5-svg
qt5-quickcontrols2
qt5-graphicaleffects
polkit-gnome
gtk3
wl-clipboard
cliphist
python-requests # для отображения погоды (waybar)
pacman-contrib # для отображения обновлений (waybar)
pipewire
pipewire-alsa
pipewire-audio
pipewire-jack
pipewire-pulse
gst-plugin-pipewire
wireplumber
networkmanager
network-manager-applet
bluez
bluez-utils
blueman
)
install_stage=(
dex # для запуска приложений из файлов .desktop
xwaylandvideobridge-bin # для нормальной работы показа экрана в Discord
zsh
kitty
mako
waybar
swww
hyprlock
hypridle
wofi
wlogout
xdg-desktop-portal-hyprland
swappy
grim
slurp
btop
imagemagick
pamixer
pavucontrol
thunar
gvfs
thunar-archive-plugin
file-roller
starship
ttf-jetbrains-mono
ttf-jetbrains-mono-nerd
noto-fonts-emoji
catppuccin-gtk-theme-mocha
tela-circle-icon-theme-dracula
bibata-cursor-theme
nwg-look-bin # для редактирования тем у приложений GTK
kvantum # для редактирования тем у приложений QT
sddm
firefox
telegram-desktop
visual-studio-code-bin
discord
betterdiscord-git
betterdiscordctl
qbittorrent
obsidian
)
# Установка цвета для лейблов
CNT="[\e[1;36mПРИМЕЧАНИЕ\e[0m]"
COK="[\e[1;32mУСПЕШНО\e[0m]"
CER="[\e[1;31mОШИБКА\e[0m]"
CAT="[\e[1;37mВНИМАНИЕ\e[0m]"
CWR="[\e[1;35mПРЕДУПРЕЖДЕНИЕ\e[0m]"
CAC="[\e[1;33mВОПРОС\e[0m]"
INSTLOG="install.log"
### Функции ###
# Функция, которая показывает индикатор выполнения
show_progress() {
while ps | grep $1 &> /dev/null;
do
echo -n "."
sleep 2
done
echo -en "Успешно!\n"
sleep 2
}
# Функция, которая будет проверять наличие пакета, если его нет, установит его
install_software() {
# First lets see if the package is there
if yay -Q $1 &>> /dev/null ; then
echo -e "$COK - $1 is already installed."
else
# no package found so installing
echo -en "$CNT - Now installing $1 ."
yay -S --noconfirm $1 &>> $INSTLOG &
show_progress $!
# test to make sure package installed
if yay -Q $1 &>> /dev/null ; then
echo -e "\e[1A\e[K$COK - $1 was installed."
else
# if this is hit then a package is missing, exit to review log
echo -e "\e[1A\e[K$CER - $1 install had failed, please check the install.log"
exit
fi
fi
}
# Очистка экрана
clear
# Сообщаем пользователю, что мы будем использовать sudo
echo -e "$CNT - Этот скрипт запустит некоторые команды, требующие sudo. Вам будет предложено ввести пароль."
sleep 1
# Подтверждаем начало установки
read -rep $'[\e[1;33mВОПРОС\e[0m] - Хотите ли вы продолжить установку (Да[Y], Нет[N]) ' CONTINST
if [[ $CONTINST =~ ^[Yy]$ ]]; then
echo -e "$CNT - Начало настройки..."
sudo touch /tmp/hyprv.tmp
else
echo -e "$CNT - Скрипт завершён, никаких изменений в системе не произошло."
exit
fi
#### Проверка наличия менеджера пакетов ####
if [ ! -f /sbin/yay ]; then
echo -en "$CNT - Настройка yay."
git clone https://aur.archlinux.org/yay.git &>> $INSTLOG
cd yay
makepkg -si --noconfirm &>> ../$INSTLOG &
show_progress $!
if [ -f /sbin/yay ]; then
echo -e "\e[1A\e[K$COK - yay настроен."
cd ..
# update the yay database
echo -en "$CNT - Обновление yay."
yay -Suy --noconfirm &>> $INSTLOG &
show_progress $!
echo -e "\e[1A\e[K$COK - yay обновлён."
else
# if this is hit then a package is missing, exit to review log
echo -e "\e[1A\e[K$CER - ошибка установки yay, пожалуйста посмотрите install.log"
exit
fi
fi
### Установка всех вышеупомянутых пакетов ###
read -rep $'[\e[1;33mВОПРОС\e[0m] - Хотите ли вы установить пакеты? (Да[Y], Нет[N]) ' INST
if [[ $INST =~ ^[Yy]$ ]]; then
# Подготовительный этап - Установка необходимых компонентов
echo -e "$CNT - Подготовительный этап - Установка необходимых компонентов, это может занять некоторое время..."
for SOFTWR in ${prep_stage[@]}; do
install_software $SOFTWR
done
# Установка hyprland
echo -e "$CNT - Установка Hyprland, это может занять некоторое время..."
install_software hyprland
# Этап 1 - основные компоненты
echo -e "$CNT - Установка основных компонентов, это может занять некоторое время..."
for SOFTWR in ${install_stage[@]}; do
install_software $SOFTWR
done
# Запуск службы NetworkManager
echo -e "$CNT - Запуск службы NetworkManager..."
sudo systemctl enable --now NetworkManager.service &>> $INSTLOG
sleep 2
# Запуск службы Bluetooth
echo -e "$CNT - Запуск службы Bluetooth..."
sudo systemctl enable --now bluetooth.service &>> $INSTLOG
sleep 2
# Включение службы менеджера входа sddm
echo -e "$CNT - Запуск службы SDDM..."
sudo systemctl enable sddm &>> $INSTLOG
sleep 2
# Очистка других порталов
echo -e "$CNT - Очистка конфликтующих порталов xdg..."
yay -R --noconfirm xdg-desktop-portal-gnome xdg-desktop-portal-gtk &>> $INSTLOG
fi
### Установка Oh-My-Zsh ###
read -rep $'[\e[1;33mВОПРОС\e[0m] - Хотите установить Oh-My-Zsh? (Да[Y], Нет[N]) ' OMZ
if [[ $OMZ =~ ^[Yy]$ ]]; then
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
fi
### Копирование файлов конфигурации ###
read -rep $'[\e[1;33mВОПРОС\e[0m] - Хотите ли вы скопировать файлы конфигурации? (Да[Y], Нет[N]) ' CFG
if [[ $CFG =~ ^[Yy]$ ]]; then
# Проверка наличия существующих папок конфигурации и резервное копирование в случае если они есть
for DIR in hypr kitty mako swaylock waybar wlogout wofi
do
DIRPATH=~/.config/$DIR
if [ -d "$DIRPATH" ]; then
echo -e "$CAT - Найдена конфигурация в $DIR, выполняется резервное копирование."
mv $DIRPATH $DIRPATH-back &>> $INSTLOG
echo -e "$COK - Конфигурация и $DIR сохранена в $DIRPATH-back."
fi
# Создание новых пустых папок
mkdir -p $DIRPATH &>> $INSTLOG
done
# Копирование файлов конфигурации
echo -e "$CNT - Копирование файлов конфигурации..."
cp -a -T Configs ~/
# Копирование темы SDDM
echo -e "$CNT - Настройка экрана входа в систему."
sudo cp -R Source/sdt /usr/share/sddm/themes/
sudo chown -R $USER:$USER /usr/share/sddm/themes/sdt
sudo mkdir -p /etc/sddm.conf.d
echo -e "[Theme]\nCurrent=sdt" | sudo tee -a /etc/sddm.conf.d/10-theme.conf &>> $INSTLOG
WLDIR=/usr/share/wayland-sessions
if [ ! -d "$WLDIR" ]; then
echo -e "$CWR - $WLDIR не найден, создание..."
sudo mkdir $WLDIR
else
echo -e "$COK - $WLDIR найден"
fi
# Копирование файла hyprland.desktop
sudo cp Source/hyprland.desktop /usr/share/wayland-sessions/
# Копирование фона SSDM
cp -f ~/.config/backgrounds/wallpaper-dark.jpg /usr/share/sddm/themes/sdt/wallpaper.jpg
fi
### Установка Starship ###
read -rep $'[\e[1;33mВОПРОС\e[0m] - Хотите активировать оболочку starship? (Да[Y], Нет[N]) ' STAR
if [[ $STAR =~ ^[Yy]$ ]]; then
# install the starship shell
echo -e "$CNT - 1..2..3, Поехали!"
echo -e "$CNT - копирование файла конфигурации starship в ~/.config ..."
cp Source/starship.toml ~/.config/
fi
### Установка для плагинов Oh-My-Zsh ###
read -rep $'[\e[1;33mВОПРОС\e[0m] - Хотите установить плагины для Oh-My-Zsh? (Да[Y], Нет[N]) ' OMZP
if [[ $OMZP =~ ^[Yy]$ ]]; then
echo -e "$CNT - установка zsh-autocomplete!"
git clone https://github.com/marlonrichert/zsh-autocomplete.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autocomplete
echo -e "$CNT - установка zsh-autosuggestions!"
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
echo -e "$CNT - установка zsh-syntax-highlighting!"
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
fi
### Установка BetterDiscord ###
read -rep $'[\e[1;33mВОПРОС\e[0m] - Хотите использовать BetterDiscord? (Да[Y], Нет[N]) ' BTD
if [[ $BTD =~ ^[Yy]$ ]]; then
betterdiscordctl -D /opt/BetterDiscord install
fi
### Скрипт завершён ###
echo -e "$CNT - Скрипт был завершен!"
read -rep $'[\e[1;33mВОПРОС\e[0m] - Хотите запустить Hyprland прямо сейчас? (Да[Y], Нет[N]) ' HYP
if [[ $HYP =~ ^[Yy]$ ]]; then
exec sudo systemctl start sddm &>> $INSTLOG
else
exit
fi