Воспроизводимая конфигурация для компьютера Mart:
- Gigabyte B550M AORUS ELITE;
- AMD Ryzen 5 5600;
- AMD Radeon RX 7800 XT;
- ADATA LEGEND 960 1 TB —
/dev/nvme0n1; - 32 GiB RAM;
- UEFI;
- пользователь
mart; - Niri + iNiR + Home Manager;
- ext4 без Btrfs, сабволюмов и снапшотов.
hosts/desktop/disko.nix полностью очищает только:
/dev/nvme0n1 — ADATA LEGEND 960, примерно 1 TB
USB-накопитель:
/dev/sda — Kingston DataTraveler, примерно 115 GB
не указан в Disko и не должен изменяться.
Перед установкой сохрани все нужные данные с NVMe. Установка уничтожит существующий CachyOS и все разделы на /dev/nvme0n1.
- Niri;
- iNiR из upstream
snowarch/iNiR; - greetd/tuigreet;
- Home Manager;
- PipeWire;
- NetworkManager;
- Bluetooth;
- Flatpak и AppImage support;
- Dolphin как основной файловый менеджер;
- KeePassXC как менеджер паролей и
org.freedesktop.secretsprovider.
GNOME Keyring намеренно отключён. KeePassXC запускается автоматически и предоставляет приложениям Secret Service через DBus.
- VSCodium;
- Zen Browser;
- Discord с Equicord и OpenASAR через Nixcord;
- AyuGram Desktop;
- Steam;
- Proton-GE и Protontricks;
- Gamescope, GameMode, MangoHud, GOverlay и ProtonUp-Qt;
- KeePassXC;
- Pear Desktop — YouTube Music-клиент с поддержкой плагинов;
- Kitty;
- Dolphin, Ark и KDE thumbnailers;
- mpv, imv, FFmpeg, yt-dlp;
- pavucontrol и Helvum;
- GParted;
- инструменты диагностики AMD/Vulkan/OpenCL.
Equicord/OpenASAR изменяют официальный Discord-клиент. Использование клиентских модификаций может противоречить правилам Discord; используешь их на свой риск.
Disko создаёт простую GPT-разметку:
/dev/nvme0n1
├── ESP 2 GiB, FAT32, /boot
└── NixOS оставшееся место, ext4, /
Отдельных разделов /home, /nix и swap нет. Используется сжатый zram размером до 100% RAM.
Преимущества этой схемы:
- обычный ext4 без Copy-on-Write;
- простой ручной recovery из любого Linux Live ISO;
- все пользовательские данные лежат на одном корневом разделе;
- нет Btrfs-сабволюмов, scrub и snapshot tooling.
Для ручного монтирования из Live ISO:
sudo mount /dev/disk/by-label/nixos /mnt
sudo mkdir -p /mnt/boot
sudo mount /dev/disk/by-partlabel/ESP /mnt/bootЕсли второй путь не найден, посмотри точное имя EFI-раздела через:
lsblk -f
sudo blkidGraphical ISO подходит, но не запускай Calamares. Загрузись в live-систему и открой терминал.
Через интерфейс рабочего стола либо:
nmtuiПроверь сеть:
ping -c 3 cache.nixos.orgРепозиторий приватный, поэтому обычный анонимный git clone не сработает.
Самый простой вариант для первой установки — временно сделать репозиторий публичным, затем:
cd /tmp
git clone https://github.com/march-taylor/nix.git nix-config
cd nix-configПосле установки репозиторий можно снова сделать приватным.
Альтернатива: войти в GitHub через браузер live-системы, скачать ZIP репозитория, распаковать его и открыть распакованный каталог в терминале.
lsblk -d -o NAME,SIZE,MODEL,SERIAL,TRANОжидается:
nvme0n1 около 954G ADATA LEGEND 960
sda около 115G DataTraveler 3.0
Если имена или модель отличаются, не запускай установщик и сначала исправь hosts/desktop/disko.nix.
Из корня репозитория:
sudo bash ./install.shСкрипт выполняет действия в таком порядке:
-
Показывает все диски.
-
Создаёт или обновляет
flake.lock. -
Запускает
nix flake check --no-build. -
Только после успешной проверки просит ввести:
ERASE /dev/nvme0n1 -
Создаёт GPT, EFI и ext4 через Disko.
-
Копирует репозиторий в
/mnt/etc/nixos. -
Выполняет
nixos-install. -
Просит установить пароль пользователя
mart.
При любой ошибке оценки Nix диск ещё не изменяется.
После сообщения об успешной установке:
rebootИзвлеки флешку, когда компьютер начнёт перезагружаться.
Войди пользователем:
mart
После входа должны автоматически запуститься Niri, iNiR и KeePassXC.
Проверь iNiR:
systemctl --user status inir.service
inir logs --full
niri msg versionПроверка графики RX 7800 XT:
vulkaninfo --summary
glxinfo -B
vainfo
clinfoKeePassXC уже настроен как Secret Service provider, а GNOME Keyring отключён.
При первом запуске:
- Открой существующую
.kdbxбазу или создай новую. - Открой
Database → Database Settings → Secret Service Integration. - Выбери отдельную группу, которую приложениям разрешено видеть через Secret Service.
- Для Zen установи расширение KeePassXC-Browser и разреши соединение в
Tools → Settings → Browser Integration.
Рекомендуется создать в базе отдельную группу, например:
Secret Service
и хранить там только те записи, которые действительно должны быть доступны приложениям через org.freedesktop.secrets.
Проверить DBus provider можно так:
busctl --user list | grep org.freedesktop.secretsKeePassXC-конфиг создаётся как обычный изменяемый файл:
~/.config/keepassxc/keepassxc.ini
Home Manager создаёт только первоначальный вариант файла и не перезаписывает последующие настройки из GUI.
Dolphin установлен вместе с:
- Ark для архивов;
- KIO Admin;
- KIO Extras;
- thumbnails для видео, PDF и изображений.
Он установлен обработчиком каталогов по умолчанию. Бинд:
Mod+E → Dolphin
Конфигурация находится в:
/etc/nixos
Зафиксируй созданный установщиком lock-файл:
cd /etc/nixos
git status
git add flake.lock
git commit -m "chore: lock initial system inputs"
git pushflake.lock фиксирует точные версии Nixpkgs, Home Manager, Niri, iNiR, Zen, AyuGram, Nixcord и Disko.
Безопасная тестовая активация:
cd /etc/nixos
sudo nixos-rebuild test --flake .#desktopПостоянная активация:
sudo nixos-rebuild switch --flake .#desktopПеред переключением можно только собрать систему:
sudo nixos-rebuild build --flake .#desktopЧерез just:
just check
just build
just test
just switchОбновить только iNiR:
cd /etc/nixos
nix flake update inir
sudo nixos-rebuild test --flake .#desktop
sudo nixos-rebuild switch --flake .#desktop
git add flake.lock
git commit -m "chore: update iNiR"Обновить отдельные приложения:
nix flake update zen-browser
nix flake update ayugram-desktop
nix flake update nixcordОбновить всё:
nix flake update
sudo nixos-rebuild test --flake .#desktop
sudo nixos-rebuild switch --flake .#desktopДля Nix-установки iNiR не запускай inir update: версия управляется flake input.
sudo nixos-rebuild switch --rollbackПредыдущие поколения также доступны в меню systemd-boot.
Если проблема появилась после обновления inputs:
cd /etc/nixos
git restore --source=HEAD~1 flake.lock
sudo nixos-rebuild switch --flake .#desktop.
├── flake.nix
├── flake.lock
├── settings.nix
├── install.sh
├── hosts/
│ └── desktop/
│ ├── default.nix
│ ├── disko.nix
│ └── hardware-configuration.nix
├── modules/
│ ├── core/default.nix
│ ├── hardware/default.nix
│ ├── gaming/default.nix
│ └── desktop/
│ ├── default.nix
│ └── niri.nix
├── home/
│ └── mart/
│ ├── default.nix
│ ├── programs.nix
│ ├── discord.nix
│ └── niri.nix
├── installer/
│ ├── iso.nix
│ └── offline.nix
└── docs/RICE.md
Сейчас используется чистый upstream:
inir.url = "github:snowarch/iNiR";Системный репозиторий и исходники rice лучше не смешивать:
march-taylor/nix— система, пакеты, Home Manager, Disko и ISO;- будущий
march-taylor/inir-rice— fork iNiR с QML, JS и собственными модулями.
Для перехода на fork достаточно изменить input:
inir.url = "github:march-taylor/inir-rice";Локальная разработка без изменения flake.nix:
sudo nixos-rebuild test --flake .#desktop \
--override-input inir path:/home/mart/projects/inir-riceПодробности: docs/RICE.md.
Сетевой ISO:
nix build .#installer-isoOffline ISO с closure целевой системы:
nix build .#offline-installer-isoОбраз появится в:
result/iso/
Не добавляй напрямую в репозиторий:
- Wi-Fi пароли;
- API-токены;
- приватные SSH-ключи;
- пароли пользователей;
- KeePass-базу;
- browser profiles.
Для будущего декларативного управления системными секретами используй sops-nix или agenix. KeePassXC предназначен для пользовательских паролей и Secret Service, но не для подстановки секретов в NixOS-конфигурацию во время сборки.