Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Welcome

Hi! Welcome to the documentation site for my (Owais) dotfiles & flakes. More specifically, my NixOS workstation, dotfiles, editor setup, terminal workflow, and the parts that can be reused outside NixOS.

The repo is written for two audiences:

  • me, when I need to rebuild a machine or remember why something is configured a certain way
  • anyone trying to copy pieces of the setup on NixOS, Fedora, Ubuntu, Debian, or another Linux distro

Summary

What I use

The working set, not a full package inventory. The program pages cover the settings and failure modes I think are worth remembering.

AreaCurrent choice
SystemNixOS or Fedora, flakes, Home Manager, and host-specific modules
DesktopGNOME, or Umbriel with Noctalia
TerminalGhostty, usually running Zellij
ShellZsh with Starship
EditorNeovim and Zed in vim mode
NotesNeovim and Obsidian
ReadingZathura with a compact dark interface
NetworkingTailscale for stable hostnames and private services

Entrypoints

  • Guides: common commands, checks, secrets, and migration notes
  • Nix concepts: flakes, modules, and the language itself
  • NixOS: hosts, rebuilds, and SOPS
  • Programs: per-application config and dotfiles
  • Other distros: how to recreate the setup without NixOS
  • Tools: small command-line notes and scripts

Where to start

If you are on NixOS, start with NixOS, then read Hosts and Secrets.

If the underlying Nix ideas are unclear, read Nix concepts.

If you are not on NixOS, start with Other distros. Then use the program pages for the tools you want to copy.

If you are editing this repo, read Development and Writing docs.

Structure

conf/
├── machines/      # host-specific NixOS config
├── modules/       # app config and focused modules
├── secrets/       # SOPS-encrypted secrets
└── shared.nix     # shared NixOS and Home Manager modules

docs/src/          # This book's source (mdBook)
shells/            # project shell helpers