diff options
Diffstat (limited to 'blog/posts/2026-03-05-how-i-use-nixos.md')
| -rw-r--r-- | blog/posts/2026-03-05-how-i-use-nixos.md | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/blog/posts/2026-03-05-how-i-use-nixos.md b/blog/posts/2026-03-05-how-i-use-nixos.md new file mode 100644 index 0000000..38e057f --- /dev/null +++ b/blog/posts/2026-03-05-how-i-use-nixos.md @@ -0,0 +1,23 @@ +# How I Actually Use NixOS + +After a year of daily driving NixOS, I finally have a setup that just works. Fast, stable, reproducible, and exactly the way I want it. + +Everything is declarative. Every package, service, and dotfile is defined in code. Reinstalling my system, moving to a new machine, or testing something experimental is now painless. I don’t need scripts, I don’t forget tweaks, and I can roll back anything that goes wrong. + +I structure my system in layers: + +1. **System Configuration** – All the core system settings live in `configuration.nix`. Bootloader, networking, users, graphics, services, and packages. If I enable a new service, it’s declared here, and `nixos-rebuild switch` applies it safely. + +2. **Environment-Specific System** – I have separate configs for different environments, like i3wm or Hyprland. These import additional modules for X11 or Wayland, keyboard layouts, window managers, and display settings. Switching environments is just commenting/uncommenting a line in `configuration.nix`. + +3. **Home-Manager Configuration** – My personal settings, shell configs, editors, and fonts live in `mun.nix`. Everything I want in my environment is defined and version-controlled. Clone it to a new machine, run a rebuild, and I’m back to my workflow. + +4. **Environment-Specific Home Config** – For Hyprland or i3wm, I have orchestrators that import all related modules like dunst notifications, kitty terminal, polybar, neovim, picom, rofi, and custom scripts. Each visual rice, like my "chernobyl" setup, is fully modular. Switching or adding rices is trivial. + +The magic is in Nix’s atomic generations. Every change can be applied safely, and rolling back is a single command. No more hours spent fixing a broken system or chasing dependencies. + +Development environments are reproducible too. Each project has its own isolated shell defined in `shell.nix`. Jump between projects without conflicts. No pollution, no surprises. + +Even after a year, I’m still learning. I break things, experiment, and tweak my setup. But NixOS doesn’t punish me. Every change is auditable, reversible, and tracked in Git. The system finally feels *mine*—exactly how I imagine it: fast, clean, and under control. + +If you wish to take a loot at my dots yourself you can find them [here in this Gitlab repo](https://gitlab.com/natasha-linux/nixos/dots) |
