# my little nix system ## installation ### linux - desktop 1. Boot up NixOS live iso on a system. 2. Clone flake 3. Make a folder for the system under hosts/ 4. Run `nixos-generate-config --dir hosts/HOSTNAME` 6. Set LUKS encryption passphrase via `sudo nano /tmp/secret.key` 7. Run disko `sudo nix --experimental-features "nix-command flakes" run github:nix-community/disko/latest -- --mode destroy,format,mount /path/to/disko-config.nix` 8. Copy over flake directory to new system 9. Install system with `sudo nixos-install --flake .#HOSTNAME` - set a password for root 10. Reboot into new system. 11. Open a terminal and run `passwd` 12. Log into normal user and configure networking via `nmtui` 13. Apply dotfiles via `stow stow` in the base of the dotfiles directory. 14. Download a wallpaper and apply it via `matugen image` #### Secure boot If a system has a secure boot, install the system WITHOUT the secureboot module. Once the steps above have been completed return here. 1. Generate secureboot signing keys with `sudo nix run nixpkgs#sbctl create-keys` 2. Rebuild the system WITH the secureboot module. 3. Run `sudo sbctl verify` to check if SOME of the files are signed. 4. Reboot your system, in the UEFI enable onboarding secureboot keys, usually a setting called 'Reset to setup mode'. 5. Boot into your NixOS system and run `sudo sbctl enroll-keys --microsoft` to enroll your keys. 6. Reboot into your UEFI again and enable secure boot. ### macOS 1. Install xcode developer tools, determinate nix and brew. ```sh xcode-select --install curl -fsSL https://install.determinate.systems/nix | sh -s -- install --determinate /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" ``` 2. Install Nix flake to system. `nix run nix-darwin/master#darwin-rebuild -- switch` 3. Reboot 4. Install OpenUTAU `https://github.com/stakira/OpenUtau/releases/latest/download/OpenUtau-osx-x64.dmg` 5. Configure non-automated settings - set accent colour - set display to be spacious - customise spotlight settings - disable bluetooth - enable firewall - set wallpaper - enable switching workspace keybinds