Skip to content

nicolkrit999/nix

Repository files navigation

❄️ Personal NixOS Config

⚠️ Screenshots may be outdated. Documentation is updated incrementally.

hyprland-showcase


✨ Features

Full feature descriptions

  • Adaptive host support via denix (per-host modules and constants)
  • Host-specific home-manager modules (/users + /modules) and manual-import templates (/templates)
  • Hybrid declarative + non-declarative modules (shells, caelestia, noctalia)
  • Theming: base16 + optional Catppuccin via stylix
  • Host-specific wallpapers tied to monitor list
  • Multiple desktop environments: Hyprland with waybar, Hyprland with caelestia, Hyprland with noctalia, niri with noctalia, MangoWM with mangowc, KDE, GNOME, Cosmic
  • NixOS specializations: guest (ephemeral RAM home), safe-mode (IceWM recovery shell), deep-focus (distraction-free workspaces), secure-travel (hardened, kill-switch VPN)
  • flakes & Home Manager integration
  • Multiple shells (bash, zsh, fish)
  • Optional BTRFS snapshots with per-host retention policy
  • SOPS-nix secret management
  • Impermanence (root wiped on reboot, /persist for state)
  • Cachix binary cache support
  • Multi-architecture: x86_64-linux, aarch64-linux, aarch64-darwin ⚠️ best-effort — no physical aarch64-linux or aarch64-darwin hardware available for testing

🚀 Installation

Common Steps (both methods)

  1. Boot a NixOS Minimal ISO from a USB stick (UEFI, Secure Boot off).
  2. Connect to the internet (sudo nmtui for WiFi).
  3. Download the config:
    nix-shell -p git
    git clone https://github.com/nicolkrit999/nix.git
    cd ~/nix
  4. Change homeManagerUser in flake.nix to your chosen username.
  5. Copy a host template, configure the minimal variables, such as user, homeManagerSystem, then proceed with your chosen method below.

Choose Your Installation Method

Method Guide
Disko (automated partitioning — recommended for fresh installs) Installation with disko
  ↳ Option A: No encryption disko.md — Option A
  ↳ Option B: LUKS + TPM 2.0 disko.md — Option B
Manual (dual boot or custom partitioning) Manual installation
  ↳ Option A: No encryption manual.md — Option A
  ↳ Option B: LUKS + encryption manual.md — Option B

🔄 Daily Usage

Daily usage guide

Alias Description
sw Rebuild everything
upd Update flake inputs and rebuild

❓ Troubleshooting

Troubleshooting guides

Quick reference:

  • path '.../hardware-configuration.nix' does not existgit add -f hosts/<hostname>/hardware-configuration.nix
  • permission denied on flake.locksudo chown -R $USER:users ~/nix
  • returned non-zero exit status 4 → usually a service restart failure after a successful build; try rebuilding again
  • Weird keyboard layout during install → loadkeys <layout> to fix temporarily
  • Caelestia/noctalia font issues → install the font in configuration.nix or home-packages.nix

📚 Other Resources

Resource Link
Showcase showcase.md
Features (in depth) features.md
Denix possibilities possibilities.md
Denix official docs denix-official-documentation.pdf
Impermanence guide impermanence.md
SOPS guide sops-guide.md
Cachix guide cachix.md
Tmux guide tmux-guide.md
Emergency recovery (GRUB) emergency-recovery-gnu-grub.md
Emergency recovery (script) recover.sh
Notes & project origin notes.md

About

Nix config. Support for x86 and arm pc, as well as macOS (nix-darwin), uses denix for simple enabling/disabling of modules, as well as many other features

Topics

Resources

License

Stars

Watchers

Forks

Contributors