diff --git a/.vscode/settings.json b/.vscode/settings.json index ea281fb..b718839 100644 --- a/.vscode/settings.json +++ b/.vscode/settings.json @@ -54,6 +54,8 @@ "waypaper", "wlogout", "wpctl", - "XCURSOR" + "XCURSOR", + "конфигов", + "бэкапов" ] } diff --git a/Scripts/backup.sh b/Scripts/backup.sh new file mode 100755 index 0000000..c1421be --- /dev/null +++ b/Scripts/backup.sh @@ -0,0 +1,23 @@ +#!/bin/env bash + +backup_configs() { + echo "📦 Создание резервной копии текущих конфигураций..." + echo "ℹ️ Копируются только те, которые затрагиваются этим репозиторием." + + DATE=$(date +%Y-%m-%d_%H:%M:%S) + BACKUP_DIR=~/.config-backups/"$DATE" + mkdir -p "$BACKUP_DIR" + + for dir in ~/dotfiles/Configs/.config/*; do + name=$(basename "$dir") + if [ -d ~/.config/"$name" ]; then + cp -r ~/.config/"$name" "$BACKUP_DIR/.config/" + fi + done + + cp ~/{.zshrc,.p10k.zsh,.nanorc} "$BACKUP_DIR/" 2>/dev/null || true + + echo "✅ Бэкап сохранён в $BACKUP_DIR" +} + +backup_configs diff --git a/Scripts/full-backup.sh b/Scripts/full-backup.sh new file mode 100755 index 0000000..a744421 --- /dev/null +++ b/Scripts/full-backup.sh @@ -0,0 +1,22 @@ +#!/bin/env bash + +backup_configs() { + echo "📦 Создание полной резервной копии ~/.config..." + + DATE=$(date +%Y-%m-%d_%H:%M:%S) + BACKUP_DIR=~/.config-backups/"$DATE" + mkdir -p "$BACKUP_DIR" + + if command -v rsync >/dev/null 2>&1; then + rsync -a ~/.config/ "$BACKUP_DIR/.config/" + else + cp -a ~/.config "$BACKUP_DIR/" + fi + + cp ~/{.zshrc,.p10k.zsh,.nanorc} "$BACKUP_DIR/" 2>/dev/null || true + + echo "✅ Бэкап сохранён в $BACKUP_DIR" +} + + +backup_configs diff --git a/Scripts/install_packages.sh b/Scripts/install_packages.sh deleted file mode 100755 index cdcf7e6..0000000 --- a/Scripts/install_packages.sh +++ /dev/null @@ -1,119 +0,0 @@ -#!/bin/bash - -set -e -cd ~ - -install() { - read -r -p "❔ Установить $1? (y/N): " choice - case "$choice" in - y|Y|yes|Yes|YES ) eval "$2" ;; - * ) echo "🛫 Пропущено: $1" ;; - esac -} - - -echo "📥️ Обновление репозиториев и системы..." -sudo pacman -Syu - - -echo "⚠️ Учтите, что отсутствие некоторых пакетов приведет к некорректной работе системы!" - - -install "Git, Curl (жизненно необходимые пакеты)" \ - "sudo pacman -S --noconfirm git curl" - - -install "Yay (AUR помощник) [Без Yay вы не сможете установить часть пакетов!]" \ - "sudo pacman -S --needed base-devel && git clone https://aur.archlinux.org/yay.git && cd yay && makepkg -si" - - -install "Network Manager (сетевые инструменты)" \ - "sudo pacman -S --noconfirm network-manager network-manager-applet" - - -install "Bluez, Blueman (bluetooth инструменты)" \ - "sudo pacman -S --noconfirm bluez bluez-tools blueman" - - -install "Xdg-utils, Xdg-desktop-portal (интеграция приложений с рабочим столом)" \ - "sudo pacman -S --noconfirm xdg-utils xdg-desktop-portal-hyprland xdg-desktop-portal-gtk xdg-desktop-portal-wlr xdg-desktop-portal" - - -install "Brightnessctl (управления яркостью)" \ - "sudo pacman -S --noconfirm brightnessctl" - - -install "playerctl (управление медиа плеером)" \ - "sudo pacman -S --noconfirm playerctl" - - -install "Rose Pine (тема курсора)" \ - "yay -S --noconfirm rose-pine-cursor rose-pine-hyprcursor" - - -install "Papirus (иконки)" \ - "sudo pacman -S --noconfirm papirus-icon-theme" - - -install "Grim, Hyprshot (cкриншоты)" \ - "sudo pacman -S --noconfirm grim && yay -S --noconfirm hyprshot" - - -install "wf-recorder (запись экрана)" \ - "sudo pacman -S --noconfirm wf-recorder" - - -install "Wlogout (меню выключения)" \ - "yay -S --noconfirm wlogout" - - -install "Waybar (wayland бар)" \ - "sudo pacman -S --noconfirm waybar" - - -install "Rofi (меню запуска + меню буфера обмена)" \ - "sudo pacman -S --noconfirm rofi" - - -install "Cliphist (буфер обмена)" \ - "sudo pacman -S --noconfirm wl-clipboard cliphist" - - -install "Kitty (эмулятор терминала)" \ - "sudo pacman -S --noconfirm kitty" - -install "Zsh + Oh My Zsh (оболочка + менеджер плагинов)" \ - "sudo pacman -S --noconfirm zsh \ - && sh -c \"$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)\"" - -install "Powerlevel10k (тема для Zsh)" \ - "git clone --depth=1 https://github.com/romkatv/powerlevel10k.git \${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k" - -install "Плагины для Zsh" \ - "git clone https://github.com/zsh-users/zsh-syntax-highlighting.git \${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting && \ - git clone https://github.com/zsh-users/zsh-autosuggestions \${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions" - - -install "Nwg-look (настройка GTK)" "sudo pacman -S --noconfirm nwg-look" - - -install "Swaync (уведомления похожие на GNOME)" "sudo pacman -S --noconfirm swaync" - - -install "Waypaper (интерфейс для управления обоями)" "yay -S --noconfirm waypaper" - -install "Swww (бэкенд для статичных обоев)" "sudo pacman -S --noconfirm swww" - -install "Mpvpaper (бэкенд для видео обоев)" "sudo pacman -S --noconfirm mpvpaper" - - -install "Emote (выбор эмодзи)" "yay -S --noconfirm emote" - - -install "Flameshot (мощная утилита для скриншотов)" "sudo pacman -S --noconfirm flameshot" - - -install "Fastfetch (похвастаться линуксом)" "sudo pacman -S --noconfirm fastfetch" - - -echo "✅ Установка завершена!" diff --git a/Scripts/restore.sh b/Scripts/restore.sh new file mode 100755 index 0000000..a30c847 --- /dev/null +++ b/Scripts/restore.sh @@ -0,0 +1,24 @@ +#!/bin/env bash + +BACKUP_DIR="$HOME/.config-backups" + +if [ ! -d "$BACKUP_DIR" ]; then + echo "❌ Резервные копии не найдены: $BACKUP_DIR" + exit 1 +fi + +echo "📦 Доступные резервные копии:" +ls "$BACKUP_DIR" + +read -rp "Введите имя папки для восстановления (YYYY-MM-DD_HH:MM:SS): " folder + +if [ ! -d "$BACKUP_DIR/$folder" ]; then + echo "❌ Директория $folder не найдена в резервных копиях" + exit 1 +fi + +echo "♻️ Восстановление конфигураций..." +cp -r "$BACKUP_DIR/$folder/.config" ~/ +cp "$BACKUP_DIR/$folder"/.{zshrc,p10k.zsh,nanorc} ~/ 2>/dev/null || true + +echo "✅ Конфигурации восстановлены!"