Closed ram0973 closed 2 years ago
Думаю как сделать ее удобной. Пилю доки по хоткеям; хочу повесить отображение справки на "Win+?". Пока основные хоткеи можно посмотреть тут:
https://github.com/ksevelyar/dotfiles/blob/master/home/.xmonad/xmonad.hs#L275 https://github.com/ksevelyar/dotfiles/blob/master/home/.config/nvim/init.vim#L394
Этот репозиторий сборка модулей NixOS, поэтому идея простая:
Создается конфиг пользователя и хоста, примеры: пользователь, хост
В конфиг хоста добавляются нужные модули и пользователи. И специфичные для железа настройки, например драйвер видеокарты.
Live Usb
1) Установить nix: curl -L https://nixos.org/nix/install | sh
(https://nixos.org/download.html)
2) Склонировать репу или ее форк: git clone https://github.com/ksevelyar/dotfiles.git ~/ksevelyar-dotfiles && cd ~/ksevelyar-dotfiles
3) Сгенерировать live-usb: nix-build '<nixpkgs/nixos>' -A config.system.build.isoImage -I nixos-config=live-usb.nix
Запустить его в любой виртуалке или записать на флешку:
sudo dd bs=4M if=result/iso/nixos.iso of=/dev/sdX status=progress && sync
Где /dev/sdX
меняется на флешку из выхлопа lsblk
.
Установка основной системой
Загрузиться с live-usb, выполнить команду refresh-channels
.
Подготовить и примонтировать / и /boot в /mnt и /mnt/boot. Это можно сделать в gparted из иксов (команда x
). Я монтирую диски по меткам, поэтому даю им метки boot и nixos.
Склонировать репу в /mnt/etc/nixos:
sudo git clone https://github.com/ksevelyar/dotfiles.git /mnt/etc/nixos
Слинковать нужный хост: sudo ln -s /etc/nixos/hosts/hk47.nix /etc/nixos/configuration.nix
И установить систему: sudo nixos-install
После установки нужно задать пароль пользователю через passwd username
.
Сгенерировать конфиги для хоста/пользователя можно так:
sudo nixos-generate-config --root /tmp
, создаст hardware-configuration.nix
& configuration.nix
в папкe /tmp. Что Никсось может определить автоматически? Как минимум: примонтированные диски, сетевые интерфейсы, модули ядра. Возможно нужно будет указать драйвера видео / принтера.
Склеить их в новый хост, и слинковать его через sudo ln -s /etc/nixos/hosts/new-host.nix /etc/nixos/configuration.nix
Пользователь создается просто копированием конфига из users
c заменой переменной vars.user
: https://github.com/ksevelyar/dotfiles/blob/master/users/live-usb.nix#L3
Использовать конфиги в другом Линуксе
Конфиги хомяка держу текстовыми файлами и линкую через home-manager, поэтому они универсальны: https://github.com/ksevelyar/dotfiles/tree/master/home
Структура файлов повторяет ~.
Можно ли для простых смертных написать инструкцию, как ставить всё это великолепие.