MrOnePunchMelon

Untitled

Aug 12th, 2025 (edited)
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 3.70 KB | None | 0 0
  1. #!/usr/bin/env bash
  2. #   install.sh – «автоматизация» Arch-системы + мои dotfiles
  3. #   Автор: alechilczenko, правки: ChatGPT
  4. #   Не запускайте из-под root, скрипт сам вызовет sudo, где нужно.
  5.  
  6. set -euo pipefail
  7.  
  8. # ───────────────────────────────────────
  9. # 0. Проверки окружения
  10. # ───────────────────────────────────────
  11. [[ $EUID -eq 0 ]] && {
  12.   echo "⛔  Не запускайте этот скрипт от root."
  13.   exit 1
  14. }
  15.  
  16. if ! command -v yay &>/dev/null; then
  17.   echo "⛔  AUR-помощник 'yay' не найден. Установите его и запустите скрипт снова."
  18.   exit 1
  19. fi
  20.  
  21. # ───────────────────────────────────────
  22. # 1. Выбор VirtualBox-модуля под ядро
  23. # ───────────────────────────────────────
  24. if uname -r | grep -q lts; then
  25.   VBOX_MODULE="virtualbox-host-modules-lts"
  26. else
  27.   VBOX_MODULE="virtualbox-host-modules-arch"
  28. fi
  29.  
  30. # ───────────────────────────────────────
  31. # 2. Списки пакетов
  32. # ───────────────────────────────────────
  33. pacman_packages=(
  34.   # основные
  35.   i3lock i3-gaps blueman thunar alacritty vlc firefox scrot
  36.   zsh geeqie nano flameshot feh lxappearance asciiquarium cmatrix
  37.   gpick virtualbox "$VBOX_MODULE"
  38.   filezilla pavucontrol brightnessctl nitrogen geany arandr xorg-xrandr
  39.   gparted pamixer papirus-icon-theme rofi
  40. )
  41.  
  42. yay_packages=(
  43.   polybar autotiling picom-ibhagwan-git nerd-fonts-complete
  44.   pipes.sh rofi-bluetooth-git rofi-wifi-menu-git
  45.   qpdfview-qt6 neofetch
  46. )
  47.  
  48. # ───────────────────────────────────────
  49. # 3. Функции
  50. # ───────────────────────────────────────
  51. update_and_install() {
  52.   echo "🚀  Обновляю систему и ставлю пакеты…"
  53.   sudo pacman -Syu --noconfirm
  54.   sudo pacman -S --needed --noconfirm "${pacman_packages[@]}"
  55.   yay  -S --needed --noconfirm "${yay_packages[@]}"
  56. }
  57.  
  58. copy_dotfiles() {
  59.   local SRC="$HOME/dotfiles/config"
  60.   local DST="$HOME/.config"
  61.   if [[ ! -d $SRC ]]; then
  62.     echo "⛔  Каталог $SRC не найден. Склонируйте репозиторий dotfiles перед запуском!"
  63.     exit 1
  64.   fi
  65.   echo "📂  Копирую конфиги в $DST …"
  66.   mkdir -p "$DST"
  67.   cp -rT "$SRC" "$DST"
  68. }
  69.  
  70. install_papirus_folders() {
  71.   echo "🎨  Настраиваю цвет папок Papirus…"
  72.   git clone --depth=1 https://github.com/PapirusDevelopmentTeam/papirus-folders.git \
  73.             "$HOME/papirus-folders"
  74.   "$HOME/papirus-folders/papirus-folders" -t ePapirus -C violet
  75. }
  76.  
  77. # ───────────────────────────────────────
  78. # 4. Главный ход выполнения
  79. # ───────────────────────────────────────
  80. main() {
  81.   update_and_install
  82.   copy_dotfiles
  83.   install_papirus_folders
  84.   echo -e "\n✅  Готово! Перезайдите в сессию i3 (Win+Shift+E → Exit) или перезапустите ПК."
  85. }
  86.  
  87. main "$@"
Advertisement
Add Comment
Please, Sign In to add comment