Установка
Поддерживаемые дистрибутивы
| Дистрибутив | Init | Особенность |
|---|---|---|
| Artix Linux | s6 | seatd (вместо elogind) |
| Void Linux | runit | musl (библиотека C, вместо glibc) |
Скоро
- Gentoo
- CRUX
- KISS
Перед установкой
- Пользователь в группе
wheel. Всё запускайте от него, не от root: от root install.sh не запустится. - Интернет.
Установка на Artix
Свежая базовая установка с init s6* (важно) и seatd* (важно) (выберите seatd-s6).
Как установить Artix (Artix wiki)
- Установите git:
sudo pacman -S git - Склонируйте репозиторий:
git clone https://github.com/kiran-why/Shh-dotfiles.git ~/Shh-dotfiles - Установите dotfiles:
Лог установки:cd ~/Shh-dotfiles sh install.sh~/.local/state/shh/install.log(только последний запуск, начиная после меню shh config). - Удалите репозиторий (по желанию), только в режиме copy (по умолчанию: конфиги скопированы, а не ссылаются на репозиторий)* (важно) в shh config;
shh updateскачает его заново:cd ~ && rm -rf ~/Shh-dotfiles - Перезагрузитесь и войдите на tty1: sway запустится сам.
Установка на Void
Свежая базовая установка с musl (библиотека C, вместо glibc)* (важно): проверено только на musl. seatd ставится вместе с пакетами (без elogind).
Как установить Void (Void handbook)
- Обновите xbps* (важно), на свежей системе это нужно сделать первым:
sudo xbps-install -Su xbps - Установите git:
sudo xbps-install -S git - Склонируйте репозиторий:
git clone https://github.com/kiran-why/Shh-dotfiles.git ~/Shh-dotfiles - Установите dotfiles:
Лог установки:cd ~/Shh-dotfiles sh install.sh~/.local/state/shh/install.log(только последний запуск, начиная после меню shh config). - Удалите репозиторий (по желанию), только в режиме copy (по умолчанию: конфиги скопированы, а не ссылаются на репозиторий)* (важно) в shh config;
shh updateскачает его заново:cd ~ && rm -rf ~/Shh-dotfiles - Перезагрузитесь и войдите на tty1: sway запустится сам.
Дополнительно
Проверка имён пакетов
cd ~/Shh-dotfiles
sh install.sh --check
Проверяет, что каждый пакет из списков есть в репозиториях, ничего не ставит. Проверяются все списки дистрибутива, а не только нужные этой машине: system/artix/packages, system/void/packages. Установлены ли пакеты, проверяет shh doctor.
Как работает скрипт
install.sh один для всех дистрибутивов. Он подключает к себе (., в том же процессе) lib/lib.sh и шаги своего дистрибутива, system/DISTRO/distro.sh.
Отдельными процессами запускает:
- scripts/hardware: тип виртуальной машины или видеокарты;
- shh config: что ставить, только при первом запуске;
- lib/link.sh (подробнее): кладёт конфиги в домашнюю папку;
scripts/vpn setup: служба sing-box, если sing-box не выключен в shh config.
Читает списки (DISTRO = artix или void):
system/DISTRO/packages/common.csv: пакеты для любой машины;system/DISTRO/packages/CARD.csv: драйвер для каждой найденной видеокарты (Artix: amd, intel, nvidia, nvidia-580xx; Void: amd, intel);system/DISTRO/services.txt: службы, которые запускаются при загрузке;components/DISTRO_components.txt: части, которые можно выключить в shh config.
Меняет системные файлы. Файл, который пишется целиком, сначала переименовывается в FILE.bak-DATE, если в нём было другое; в остальные только дописываются строки:
/etc/iwd/main.conf: iwd сам получает IP-адреса, DNS идёт через resolvconf;/etc/dhcpcd.conf: добавляетdenyinterfaces wl*, dhcpcd только для проводной сети, wifi за iwd;/etc/resolvconf.conf: DNS-серверы из shh config;/etc/modprobe.d/nvidia-modeset.conf: только с драйвером NVIDIA, kernel modesetting для sway;/etc/modprobe.d/nobeep.conf: выключает PC speaker (shh config: nobeep);/etc/udev/rules.d/90-shh-backlight.rules: группа video может менять яркость экрана;/etc/sudoers.d/shh-power: poweroff, reboot и сон без пароля;/etc/sudoers.d/dotfiles-temp: sudo без пароля, пока работает скрипт, удаляется в конце;- если sing-box включён:
/etc/sing-box/и его служба; - Artix:
/etc/pam.d/system-login: добавляет pam_rundir (XDG_RUNTIME_DIR при входе, без него sway не запустится); - Artix:
/etc/pacman.conf: репозитории Arch ([extra]), а с настройкой pacman в shh config цвета и параллельные загрузки;/etc/makepkg.conf: сборка из AUR на всех ядрах; - Void:
/etc/alsa/conf.d/: ALSA-программы играют через pipewire.
Ещё делает zsh оболочкой входа и добавляет вас в группы для seatd, звука и видео.
Шаги
check_system: не root, дистрибутив поддерживается, есть sudo, списки, интернет;choose_parts: меню shh config при первом запуске;start_log: копия вывода в~/.local/state/shh/install.log(только последний запуск);enable_nopasswd: временный sudo без пароля, чтобы сборка из AUR не спрашивала его снова и снова;distro_prepare: Artix: настройки pacman, репозитории Arch, AUR helper; Void: обновляет xbps и систему;vmware_clipboard: только в VMware, общий буфер обмена с хостом (Artix; для Void нет пакета). Скрипт: scripts/vmware-clipboard →~/.local/bin/vmware-clipboard, запускается вместе с sway;install_packages: пакеты из списков, кроме выключенных частей;configure_gpu: настройки, нужные драйверу видеокарты;configure_network: iwd, dhcpcd, DNS;enable_services: services.txt, служба sing-box, группы; выключает лишние консоли: tty3–tty6, на Artix ещё ttyS;configure_system: оболочка входа, XDG_RUNTIME_DIR, PC speaker, яркость;configure_power: poweroff, reboot, сон без пароля;link_dotfiles: lib/link.sh, режим copy или link из shh config;leftovers: пакеты выключенных частей, удаляются, только если ответить y.