Описание работы установщика
Предустановка
Заголовок раздела «Предустановка»При запуске install.sh начинается процесс предустановки билдера:
-
Установка базовых пакетов
Устанавливаются пакеты
pythonиpython-pip, необходимые для корректной работы основной части билдера. -
Установка Python библиотек
Устанавливаются библиотеки, необходимые как для билдера, так и для работы системы:
- inquirer
- loguru
- psutil
- gputil
- pyamdgpuinfo
- pyyaml
- pillow
- colorama
-
Запуск основной части билдера
После успешной установки всех зависимостей запускается основная часть билдера, инициализируется процесс опроса пользователя.
Основной процесс установки
Заголовок раздела «Основной процесс установки»Этапы установки:
-
Создание резервной копии конфигураций
- Запускается, если пользователь выбрал опцию резервного копирования.
- Копируются конфигурации и важные файлы в директорию
./backup.
-
Создание папок и копирование dotfiles
- Создаются базовые папки в домашней директории пользователя.
- Копируются dotfiles в зависимости от выбранного WM (bspwm или Hyprland).
-
Настройка Pacman и установка AUR менеджера
- Файл конфигурации pacman обновляется для включения новых функций и multilib (если выбрано).
- Устанавливается yay или paru для управления AUR пакетами.
-
Установка пакетов и драйверов
- Устанавливаются все базовые пакеты из
packages.py. - Выбираются и устанавливаются драйверы, основываясь на автоопределении оборудования.
- Устанавливаются все базовые пакеты из
-
Конфигурация приложений
- Настройка GRUB: добавление кастомной темы.
- Настройка SDDM: установка кастомной темы приветствия.
- Настройка Firefox: установка выбранных плагинов, конфигураций, а так-же тем.
- Настройка VS Code: установка плагина
meowrch-code-themeдля адаптации vscode под темы meowrch.
-
Настройка демонов
- Включение и запуск основных демонов системы:
NetworkManager,bluetooth,SDDM.
- Включение и запуск основных демонов системы:
-
Пост-установка
- Изменение оболочки на fish.
- Добавление пользователя в группы: gamemode.
- Установка
kittyв качестве терминала по умолчанию. - Установка локали
en_US.UTF-8. - Печатается отчет о не установленных пакетах и предлагается перезагрузка компьютера.
Структура директории билдера
Заголовок раздела «Структура директории билдера»ДиректорияBuilder/
- __init__.py
- install.py
- packages.py
- question.py
Директорияmanagers/
- __init__.py
- apps_manager.py
- drivers_manager.py
- filesystem_manager.py
- package_manager.py
- post_install_manager.py
Директорияutils/
- __init__.py
- banner.py
- schemes.py
Организация пакетов
Заголовок раздела «Организация пакетов»Файл packages.py содержит разные категории пакетов:
Это основные пакеты, необходимые для работы всей системы:
- pacman common:
pacman-contrib,downgrade,libnotify,ffmpeg,ffmpegthumbnailer,jq,parallel,kitty,fastfetch,lsd,bat,
brightnessctl,automake,blueman,bluez,bluez-utils,dunst,fakeroot,firefox,fish,fisher,dpkg,gcc,
git,gnu-netcat,btop,micro,mat2,nemo,papirus-icon-theme,pavucontrol,pamixer,pipewire,pipewire-pulse,
pipewire-audio,pipewire-jack,pipewire-alsa,wireplumber,python-pyalsa,ranger,redshift,reflector,sudo,tree,
unrar,zip,unzip,uthash,ark,cmake,clang,gzip,imagemagick,make,openssh,shellcheck,vlc,loupe,
usbutils,openvpn,networkmanager-openvpn,p7zip,gparted,sshfs,wget,netctl,
libreoffice,ttf-jetbrains-mono,ttf-jetbrains-mono-nerd,ttf-fira-code,ttf-iosevka-nerd,playerctl,
starship,upower,udiskie,zenity,gvfs,qt5ct,qt6ct,timeshift,sddm,qt5-graphicaleffects,qt5-svg,
qt5-quickcontrols2,clipnotify,xdg-desktop-portal-gtk,gnome-disk-utility,evince,neovim,tmux,cowsay,
polkit-gnome,rofimoji,wmname,pyenv,xdg-desktop-portal,ttf-hack-nerd,networkmanager,noto-fonts,
noto-fonts-cjk,noto-fonts-emoji,noto-fonts-extra
xorg,bspwm,sxhkd,xorg-xinit,xclip,feh,lxappearance,polybar,xorg-xrandr,xsettingsd
hyprland
Заголовок раздела «hyprland»hyprland,waybar,swww,cliphist,wl-clipboard,xdg-desktop-portal-hyprland,qt5-wayland,qt6-wayland,
xdg-desktop-portal-wlr,hypridle
Пакеты, которые можно выбрать в зависимости от потребностей:
-
games:
steam,gamemode,mangohud,portproton -
development:
obsidian,postgresql,pgadmin4-desktop,redis -
social_media:
telegram-desktop,discord,vesktop -
entertainment:
yandex-music,spotify -
office:
libreoffice-fresh,onlyoffice-bin
DRIVERS
Заголовок раздела «DRIVERS»Драйвера для различных вендоров:
-
intel:
lib32-mesa,vulkan-intel,lib32-vulkan-intel,vulkan-icd-loader,lib32-vulkan-icd-loader,intel-media-driver,
libva-intel-driver,xf86-video-intel -
amd:
lib32-mesa,vulkan-radeon,lib32-vulkan-radeon,vulkan-icd-loader,lib32-vulkan-icd-loader -
nvidia:
nvidia-dkms,nvidia-utils,lib32-nvidia-utils,nvidia-settings,vulkan-icd-loader,lib32-vulkan-icd-loader,
lib32-opencl-nvidia,opencl-nvidia,libxnvctrl
Когда устанавливаются?
Заголовок раздела «Когда устанавливаются?»- BASE устанавливаются всегда.
- bspwm и hyprland устанавливаются в зависимости от выбранного оконного менеджера.
- CUSTOM и DRIVERS выбираются в процессе установки билдером.
Компоненты билдера
Заголовок раздела «Компоненты билдера»- PackageManager: управляет установкой пакетов, обновлением базы данных, настройкой pacman.
- DriversManager: автоматическое определение и установка драйверов для GPU и CPU.
- FileSystemManager: управление файловой системой, создание резервных копий и копирование dotfiles.
- AppsManager: настройка приложений, включая GRUB, SDDM, Firefox, VS Code.
- PostInstallation: финальная настройка системы после установки. Применяет настройки по умолчанию для терминала, оболочки, локалей и добавляет пользователя в группу
gamemode.
Вопросы перед установкой
Заголовок раздела «Вопросы перед установкой»Билдер задает ряд вопросов, чтобы настроить установку:
-
Резервное копирование конфигураций
- Ответы: Да, Нет
- Детали: Если выбрано “Да”, создается резервная копия всех конфигурационных файлов.
-
Выбор оконного менеджера (WM)
- Ответы: bspwm, hyprland
- Детали: Выбор WM определяет, какие пакеты будут установлены (bspwm или hyprland и связанные компоненты).
-
Выбор AUR менеджера
- Ответы: yay, paru
- Детали: Определяет, какой AUR помощник будет установлен для управления пакетами из Arch User Repository.
-
Активация multilib репозитория
- Ответы: Да, Нет
- Детали: Включает репозиторий для поддержки 32-битных приложений.
-
Обновление базы данных пакетов
- Ответы: Да, Нет
- Детали: Если выбрано “Да”, будет обновлена база пакетов до актуальной версии.
-
Установка драйверов
- Ответы: Intel, Nvidia, AMD
- Детали: Выбор драйверов в зависимости от оборудования. Автоопределение рекомендуется для правильного выбора.
-
Выбор плагинов для Firefox
- Ответы: Dark Reader, uBlock Origin, TWP, Unpaywall, Tamper Monkey
- Детали:
- Dark Reader: Изменяет светлые темы сайтов на темные, улучшая визуальное восприятие и снижая нагрузку на глаза.
- uBlock Origin: Блокирует рекламу, повышает скорость загрузки страниц и защищает от вредоносного ПО.
- TWP: Инструмент для перевода текста и целых страниц, полезен для пользователей, работающих с многими языками.
- Unpaywall: Позволяет получать доступ к контенту платных статей легально через альтернативные источники.
- Tamper Monkey: Менеджер пользовательских скриптов для персонализации работы браузера, например, для добавления новых функций или изменения существующих. В нашем случае - используется для добавления перевода видео в реальном времени с помощью модели от Yandex Browser.