This is my attempt to live with NixOS as a daily driver. Be cautious that I'm still trying to figure Nix out and fit in. There might be serious idiomatic & structural flaws.
| Machine | System | Status |
|---|---|---|
| Desktop | NixOS | Done |
| Framework 13 | NixOS | Done |
| ThinkPad x220 | NixOs | WIP |
| SteamDeck | SteamOS + Nix | WIP |
| PinePhone Pro | NixOS | TBD |
- Universal navigation for Hyprland & nvim (vim-hypr-nav)
- "Legacy" nix commands follow this flake (registry + channels)
General:
- Make repo usable by multiple machines (see Wimpy's repo)
- Make usable for non ZFS machines
- Adopt encryption or a way to store secrets separately (see agenix)
- Document the way(s) this repo is used
Using Flake means that nixpkgs are no longer controlled by nix-channel of NixOS.
Instead, nixpkgs are locked to flake input.
To update the system one needs to update the inputs:
nix flake update --commit-lock-fileNext step is checking, what exactly was updated:
doas nixos-rebuild build --flake '/etc/nixos#' && nvd diff /run/current-system resultThe final step is to switch to the new system:
sudo nixos-rebuild switch --flake '/etc/nixos#'Before deciding if a given package is going to stick with my system I prefer to use it without adding it to my config.
So I add in to the nix-env.
These packages are not updated with the rest of the system through flake lock mechanism.
Instead, they are using nix channel configured for the root user (nixos-unstable).
First one needs to update a channel, info about available package:
sudo nix-channel --updateThen update packages themselves:
nix-env -u '*'