From 4fe40862718d1b890d5b70dec680ae4b8cecafcb Mon Sep 17 00:00:00 2001 From: retrilzzy Date: Fri, 23 May 2025 00:21:42 +0500 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D1=80=D0=B0=D0=B1=D0=BE=D1=82?= =?UTF-8?q?=D0=B0=D0=BD=20=D1=81=D0=BA=D1=80=D0=B8=D0=BF=D1=82=20=D1=83?= =?UTF-8?q?=D1=81=D1=82=D0=B0=D0=BD=D0=BE=D0=B2=D0=BA=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- README.md | 61 +++++++++++------ Scripts/install.sh | 162 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 201 insertions(+), 22 deletions(-) create mode 100755 Scripts/install.sh diff --git a/README.md b/README.md index 303139b..8412f8e 100644 --- a/README.md +++ b/README.md @@ -29,25 +29,38 @@ ## Установка -```diff -+ Обновление системы и установка Git -sudo pacman -Syu git +0. Обновление системы -+ Клонирование репозитория c конфигами -git clone https://github.com/retrilzzy/dotfiles.git ~/dotfiles && cd ~/dotfiles + ``` + sudo pacman -Syu + ``` -+ Запуск скрипта установки пакетов -chmod +x ./Scripts/install_packages.sh -./Scripts/install_packages.sh +1. Установка Git -+ Копирование старых конфигов в отдельную директорию -mkdir -p ~/.config_backup -cp -r ~/.config ~/.config_backup/ -cp ~/{.zshrc,.p10k.zsh,.nanorc} ~/.config_backup/ 2>/dev/null + ``` + sudo pacman -S git + ``` -+ Копирование новых конфигов из dotfiles -cp -r ~/dotfiles/Configs/.config/* ~/.config/ -cp ~/dotfiles/Configs/.zshrc ~/dotfiles/Configs/.p10k.zsh ~/dotfiles/Configs/.nanorc ~/ +2. Клонирование репозитория + + ``` + git clone https://github.com/retrilzzy/dotfiles.git ~/dotfiles && cd ~/dotfiles + ``` + +3. Запуск скрипта установки + + _Автоматически создаст резервную копию старых конфигов `~/.config/` в `~/.config-backups/`_ + + ``` + chmod +x ./Scripts/install.sh + ./Scripts/install.sh + ``` + +### Восстановление резервной копии конфигов + +``` +chmod +x ~/dotfiles/Scripts/restore.sh +~/dotfiles/Scripts/restore.sh ``` ## Обзор риса @@ -58,8 +71,8 @@ cp ~/dotfiles/Configs/.zshrc ~/dotfiles/Configs/.p10k.zsh ~/dotfiles/Configs/.na ``` sudo pacman -S --needed git base-devel \ - && git clone https://aur.archlinux.org/yay.git \ - && cd yay && makepkg -si + && git clone https://aur.archlinux.org/yay.git \ + && cd yay && makepkg -si ``` ## Hyprland @@ -80,9 +93,9 @@ sudo pacman -S --needed git base-devel \ ``` sudo pacman -S network-manager-applet \ - bluez bluez-tools blueman \ - brightnessctl xdg-utils wf-recorder grim \ - && yay -S hyprshot + bluez bluez-tools blueman \ + brightnessctl xdg-utils wf-recorder grim \ + && yay -S hyprshot ``` ### Бинды @@ -212,8 +225,6 @@ sudo pacman -S hypridle Экран блокировки [[конфиг](./Configs/.config/hypr/hyprlock.conf)] -_в конфиге надо поменять путь к изображению_ - ``` sudo pacman -S hyprlock ``` @@ -294,6 +305,12 @@ yay -S wlogout sudo pacman -S kitty zsh ``` +Смена оболочки + +``` +chsh -s $(which zsh) +``` + Установка Oh My Zsh ``` diff --git a/Scripts/install.sh b/Scripts/install.sh new file mode 100755 index 0000000..c5e3783 --- /dev/null +++ b/Scripts/install.sh @@ -0,0 +1,162 @@ +#!/bin/env bash + +install() { + echo "" + read -r -p "❔ Установить $1? (y/N): " choice + case "$choice" in + y|Y|yes|Yes|YES ) + echo -e "\033[1;34m▶ \033[0m $2" + eval "$2" + ;; + * ) + echo "⏭️ Пропущено: $1" + ;; + esac +} + + +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/" + fi + done + + cp ~/{.zshrc,.p10k.zsh,.nanorc} "$BACKUP_DIR/" 2>/dev/null || true + + echo "✅ Бэкап сохранён в $BACKUP_DIR" +} + + +copy_new_configs() { + echo "📂 Копирование новых конфигураций..." + cp -r ~/dotfiles/Configs/.config/* ~/.config/ + cp ~/dotfiles/Configs/.zshrc ~/dotfiles/Configs/.p10k.zsh ~/dotfiles/Configs/.nanorc ~/ + echo "✅ Новый конфигурации скопированы!" +} + + +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 "Шрифты (Noto, JetBrains Mono, Nerd Fonts)" \ + "sudo pacman -S --noconfirm noto-fonts noto-fonts-cjk noto-fonts-emoji ttf-jetbrains-mono ttf-nerd-fonts-symbols" + + +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)\" \ + && chsh -s $(which zsh)" + +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 "✅ Установка пакетов завершена!" + + +backup_configs +copy_new_configs + + +echo "ℹ️ Для полного применения новых конфигураций потребуется перезагрузка системы." + +echo "✅ Установка завершена! Если потребуется восстановить старую конфигурацию, запустите:" +echo " ~/dotfiles/Scripts/restore.sh"