Улучшение скрипта install.sh
This commit is contained in:
1 parent
594ab4de0f
commit
ca030b3491
1 file changed
+82
-44
+82
-44
@@ -1,17 +1,19 @@
|
||||
#!/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
DOTFILES_DIR="$HOME/dotfiles"
|
||||
|
||||
CYAN='\033[1;36m'
|
||||
BLUE='\033[1;34m'
|
||||
GREEN='\033[1;32m'
|
||||
YELLOW='\033[1;33m'
|
||||
RESET='\033[0m'
|
||||
CYAN='[1;36m'
|
||||
BLUE='[1;34m'
|
||||
GREEN='[1;32m'
|
||||
YELLOW='[1;33m'
|
||||
RESET='[0m'
|
||||
|
||||
|
||||
print_section() {
|
||||
echo -e "\n${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo -e "🔧 $1"
|
||||
echo -e "${CYAN}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
||||
echo -e "$1"
|
||||
echo -e "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━${RESET}"
|
||||
}
|
||||
|
||||
@@ -45,6 +47,7 @@ install_yay() {
|
||||
ensure_yay() {
|
||||
if ! command -v yay &>/dev/null; then
|
||||
print_section "🚀 Установка AUR помощника yay"
|
||||
|
||||
sudo pacman -S --noconfirm --needed base-devel git
|
||||
git clone https://aur.archlinux.org/yay.git
|
||||
pushd yay
|
||||
@@ -59,45 +62,92 @@ ensure_yay() {
|
||||
|
||||
|
||||
backup_configs() {
|
||||
print_section "🗃️ Резервное копирование конфигураций"
|
||||
DATE=$(date +%Y-%m-%d_%H:%M:%S)
|
||||
BACKUP_DIR=~/.config-backups/"$DATE"
|
||||
mkdir -p "$BACKUP_DIR"
|
||||
print_section "🗃️ Резервное копирование существующих конфигураций"
|
||||
|
||||
for dir in ~/dotfiles/Configs/.config/*; do
|
||||
local date_now
|
||||
date_now=$(date +%Y-%m-%d_%H-%M-%S)
|
||||
local backup_dir=~/.config-backups/"$date_now"
|
||||
mkdir -p "$backup_dir/.config"
|
||||
|
||||
for dir in "$DOTFILES_DIR"/Configs/.config/*; do
|
||||
local name
|
||||
name=$(basename "$dir")
|
||||
if [ -d ~/.config/"$name" ]; then
|
||||
cp -r ~/.config/"$name" "$BACKUP_DIR/"
|
||||
echo -e "${BLUE}↳ Копирование ~/.config/$name в $backup_dir/.config/${RESET}"
|
||||
cp -r ~/.config/"$name" "$backup_dir/.config/"
|
||||
fi
|
||||
done
|
||||
|
||||
cp ~/{.zshrc,.p10k.zsh,.nanorc} "$BACKUP_DIR/" || true
|
||||
echo -e "${GREEN}✅ Бэкап сохранён в $BACKUP_DIR${RESET}"
|
||||
local home_files=(".zshrc" ".p10k.zsh" ".nanorc")
|
||||
for file in "${home_files[@]}"; do
|
||||
if [ -f ~/"$file" ]; then
|
||||
echo -e "${BLUE}↳ Копирование ~/$file в $backup_dir/${RESET}"
|
||||
cp ~/"$file" "$backup_dir/"
|
||||
fi
|
||||
done
|
||||
|
||||
echo -e "${GREEN}✅ Бэкап сохранён в $backup_dir${RESET}"
|
||||
}
|
||||
|
||||
|
||||
|
||||
clone_repo() {
|
||||
print_section "📂 Клонирование репозитория"
|
||||
git clone https://github.com/retrilzzy/dotfiles.git ~/dotfiles
|
||||
echo -e "${GREEN}✅ Репозиторий склонирован в ~/dotfiles!${RESET}"
|
||||
|
||||
git clone https://github.com/retrilzzy/dotfiles.git "$DOTFILES_DIR" || true
|
||||
}
|
||||
|
||||
|
||||
copy_new_configs() {
|
||||
apply_new_configs() {
|
||||
print_section "📂 Применение новых конфигураций"
|
||||
cp -r ~/dotfiles/Configs/.config/* ~/.config/
|
||||
cp ~/dotfiles/Configs/.zshrc ~/dotfiles/Configs/.p10k.zsh ~/dotfiles/Configs/.nanorc ~/ || true
|
||||
cp -a "$DOTFILES_DIR/Configs/.config/." ~/.config/
|
||||
|
||||
cp "$DOTFILES_DIR/Configs/.zshrc" "$DOTFILES_DIR/Configs/.p10k.zsh" "$DOTFILES_DIR/Configs/.nanorc" ~/
|
||||
echo -e "${GREEN}✅ Новые конфигурации применены.${RESET}"
|
||||
}
|
||||
|
||||
|
||||
setup_theme() {
|
||||
print_section "🎨 Применение темы"
|
||||
|
||||
mkdir -p ~/.themes/Adwaita-Dark/gtk-3.0
|
||||
echo '@import url("resource:///org/gtk/libgtk/theme/Adwaita/gtk-contained-dark.css");' > ~/.themes/Adwaita-Dark/gtk-3.0/gtk.css
|
||||
gsettings set org.gnome.desktop.interface color-scheme prefer-dark || echo -e "${YELLOW}⚠️ Не удалось установить color-scheme через gsettings.${RESET}"
|
||||
gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark || echo -e "${YELLOW}⚠️ Не удалось установить gtk-theme через gsettings.${RESET}"
|
||||
nwg-look -a || echo -e "${YELLOW}⚠️ Не удалось применить тему через nwg-look.${RESET}"
|
||||
echo -e "${GREEN}✅ Тема GTK настроена.${RESET}"
|
||||
}
|
||||
|
||||
|
||||
setup_wallpapers() {
|
||||
local wallpaper_dest=~/Pictures/Wallpapers
|
||||
mkdir -p "$wallpaper_dest"
|
||||
cp -r "$DOTFILES_DIR/Assets/wallpapers/"* "$wallpaper_dest/"
|
||||
echo -e "${GREEN}✅ Обои скопированы в $wallpaper_dest${RESET}"
|
||||
|
||||
waypaper --backend swww --random --folder "$wallpaper_dest" || echo -e "${YELLOW}⚠️ Не удалось установить обои через waypaper.${RESET}"
|
||||
echo -e "${GREEN}✅ Обои установлены.${RESET}"
|
||||
}
|
||||
|
||||
|
||||
reload_services() {
|
||||
if pgrep -x "waybar" > /dev/null; then
|
||||
killall waybar && sleep 1
|
||||
fi
|
||||
uwsm app -- waybar -c ~/.config/waybar/config.jsonc -s ~/.config/waybar/styles.css > /dev/null 2>&1 & disown || waybar -c ~/.config/waybar/config.jsonc -s ~/.config/waybar/styles.css > /dev/null 2>&1 & disown
|
||||
echo -e "${GREEN}✅ Waybar перезапущен.${RESET}"
|
||||
}
|
||||
|
||||
|
||||
main() {
|
||||
echo -e "${CYAN} Запуск установки. 3...${RESET}"
|
||||
sleep 1
|
||||
echo -e "${CYAN}2...${RESET}"
|
||||
sleep 1
|
||||
echo -e "${CYAN}1...${RESET}"
|
||||
sleep 1
|
||||
if [ -z "${WAYLAND_DISPLAY:-}" ]; then
|
||||
echo -e "${YELLOW}⚠️ Скрипт должен запускаться в активной Wayland-сессии (Hyprland).${RESET}"
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo -e "${CYAN}Запуск установки. 3...${RESET}" && sleep 1
|
||||
echo -e "${CYAN}2...${RESET}" && sleep 1
|
||||
echo -e "${CYAN}1...${RESET}" && sleep 1
|
||||
|
||||
print_section "🛠️ Git"
|
||||
install_pacman git
|
||||
@@ -143,7 +193,7 @@ main() {
|
||||
print_section "🐚 Zsh и плагины"
|
||||
install_pacman zsh
|
||||
if [ ! -d ~/.oh-my-zsh ]; then
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" || true
|
||||
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)" "" --unattended || true
|
||||
fi
|
||||
sudo chsh -s /bin/zsh "$USER"
|
||||
git clone https://github.com/romkatv/powerlevel10k.git "${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k" || true
|
||||
@@ -153,24 +203,12 @@ main() {
|
||||
print_section "🎛️ GTK и Qt оформление"
|
||||
install_pacman nwg-look qt5ct qt6ct
|
||||
|
||||
|
||||
print_section "🏁 Финал"
|
||||
backup_configs
|
||||
|
||||
clone_repo
|
||||
copy_new_configs
|
||||
|
||||
mkdir -p ~/.themes/Adwaita-Dark/gtk-3.0
|
||||
echo '@import url("resource:///org/gtk/libgtk/theme/Adwaita/gtk-contained-dark.css");' > ~/.themes/Adwaita-Dark/gtk-3.0/gtk.css
|
||||
gsettings set org.gnome.desktop.interface color-scheme prefer-dark || true
|
||||
gsettings set org.gnome.desktop.interface gtk-theme Adwaita-dark || true
|
||||
nwg-look -a || true
|
||||
|
||||
mkdir -p ~/Pictures/Wallpapers
|
||||
cp -r ~/dotfiles/Assets/wallpapers/* ~/Pictures/Wallpapers/ || curl -o ~/Pictures/Wallpapers/retrilz-dots_0.jpg https://raw.githubusercontent.com/retrilzzy/dotfiles/refs/heads/main/Assets/wallpapers/retrilz-dots_0.jpg
|
||||
waypaper --backend swww --random --folder ~/Pictures/Wallpapers || true
|
||||
|
||||
killall waybar && waybar -c $HOME/.config/waybar/config.jsonc -s $HOME/.config/waybar/styles.css || true
|
||||
backup_configs
|
||||
apply_new_configs
|
||||
setup_theme
|
||||
setup_wallpapers
|
||||
reload_services
|
||||
|
||||
echo -e "${GREEN}✅ Установка завершена!${RESET}"
|
||||
echo -e "${CYAN}🔁 Перезагрузите систему для полного применения изменений.${RESET}"
|
||||
|
||||
Reference in new issue
Block a user