Workstation · NixOS
Cozy
An evolving NixOS workstation shaped around reproducible configuration, practical workflows, and making the tools I use every day feel like my own.
01 · Philosophy
A workstation that grows with how I use it.
Cozy is my everyday computer, so its configuration grows from actual use rather than from trying to design a perfect system in advance. When something becomes repetitive, awkward, or difficult to understand, I look for a way to make it clearer.
The goal is not to produce the most abstract or elaborate NixOS configuration possible. I want a system that is reproducible, but also one I can still read, reason about, repair, and comfortably use every day.
02 · Configuration
Declarative where it makes the system easier to understand.
NixOS gives me a way to describe much of the workstation as configuration rather than a collection of changes I have to remember making. Home Manager extends that idea into the tools and environment I use as a user.
Reproducibility is part of the appeal, but it is not the only goal. Keeping the configuration readable matters too. I would rather understand a slightly repetitive piece of configuration than hide it behind an abstraction I cannot easily explain later.
03 · Workflow
Small friction is worth noticing.
Because Cozy is a daily-use system, ergonomics are part of the project. The shell, terminal, prompt, development tools, and small helper functions all influence how the machine feels to work with.
Fish, Ghostty, Starship, and small workflow helpers have gradually become part of that environment. I tend to add them in response to something I actually do repeatedly, rather than customising the system simply because I can.
04 · Learning in practice
The configuration is also a record of what I understand.
Working on Cozy regularly takes me across the boundaries between package configuration, the Linux desktop, shells, services, Git, and Nix itself. A change that starts as a small annoyance can become an excuse to understand another part of the system properly.
It also gives me somewhere safe to revise my assumptions. Some configuration survives because it continues to make sense; other parts are replaced as I learn better ways to solve the same problem.
05 · Next
Still becoming Cozy.
This project is intentionally unfinished. I expect the configuration, tooling, and structure to keep changing alongside the way I use the machine and what I learn.
Rather than documenting every setting, this page will grow around the decisions that become interesting enough to explain.