███╗ ███╗██╗ ██╗ ███╗ ██╗██╗██╗ ██╗ ██████╗ ███████╗
████╗ ████║╚██╗ ██╔╝ ████╗ ██║██║╚██╗██╔╝██╔═══██╗██╔════╝
██╔████╔██║ ╚████╔╝ ██╔██╗ ██║██║ ╚███╔╝ ██║ ██║███████╗
██║╚██╔╝██║ ╚██╔╝ ██║╚██╗██║██║ ██╔██╗ ██║ ██║╚════██║
██║ ╚═╝ ██║ ██║ ██║ ╚████║██║██╔╝ ██╗╚██████╔╝███████║
╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚═══╝╚═╝╚═╝ ╚═╝ ╚═════╝ ╚══════╝
| Name | Arch | Notes |
|---|---|---|
erebor |
x86_64 | Laptop, LUKS-encrypted root |
imladris |
x86_64 | Laptop |
nixvm |
x86_64 | VM |
| Name | Description |
|---|---|
| my-shell | My shell dotfiles. |
| my-hyprland | My Hyprland dotfiles. |
| my-neovim | My NeoVim dotfiles. |
flake.nix # Entrypoint — nixpkgs-unstable + home-manager
configuration.nix # Shared NixOS config imported by all hosts
hosts/ # Per-host hardware configurations
system/ # NixOS modules (audio, hyprland, packages, plymouth, programs, users)
home.nix # Home Manager entrypoint
home/ # User-level config (bash, zsh, git, gtk, xdg, packages, dev tools)
- Hyprland — Wayland compositor with XWayland support
- Plymouth — Graphical boot splash (
lonepreset, silent boot, systemd initrd) - Home Manager — Declarative user environment (Neovim, Ghostty, Kitty, Waybar, Rofi, Starship, swww)
- Audio — PipeWire via
system/audio.nix - 1Password — System-level GUI + CLI integration
bat curl fzf hypridle hyprlock hyprsunset jq lsd power-profiles-daemon ripgrep stow tmux vim wget xdg-terminal-exec zoxide
Font: JetBrains Mono Nerd Font
Media: handbrake makemkv plexamp plex-desktop spotify vlc
Desktop: ghostty kitty libnotify nautilus nwg-look obsidian pinta rofi rustdesk signal-desktop swaynotificationcenter swayosd swww waybar
Utility: brightnessctl grimblast hyprlauncher hyprshutdown inotify-tools libsecret neovim pavucontrol playerctl starship wl-clipboard
IMPORTANT: I don't use a display manager like sddm. This hardware setup assumes your main disk is encrypted. While you
can certainly modify, unless you encrypt your disk and/or use a display manager, using this configuration leaves you vulnerable.
Basic LUKS encryption setup (Assuming UEFI boot, swap, and OS partitions on a modern NVME drive):
cryptsetup luksFormat /dev/nvme0n1p3
cryptsetup luksOpen /dev/nvme0n1p3 cryptroot
mkfs.ext4 /dev/mapper/cryptroot
# Build and switch (replace <host> with erebor, imladris, or nixvm)
sudo nixos-rebuild switch --flake .#<host>There are two utility aliases for bash and zsh that will rebuild and garbage collect, respectively. The hostname is determined in the alias, so you don't need to specify the host name.
Rebuild
nix-rbGarbage Collect
nix-gc