The current setup tries to share the home.nix across different machines, some
running NixOS, some running some other OS while using nix as a package manager.
As such, home.nix contains all those packages that are relevant to all
machines, while configuration.nix contains packages that are necessary on
NixOS, such as GUI applications that you'd expect from your OS.
Ideally I would not want to nest the nixpkgs directory inside the nixos
directory. However, due to symbolically linking nixos in /etc, the
resolution of relative paths like ../nixpkgs/home.nix would try and find its
target at /etc/nixpkgs/home.nix, which is not what we want.
On a NixOS machine, it suffices to symbolically link:
/etc/nixos -> /home/<user>/config/nixos`
and run the usual sudo nixos-rebuild switch.
On a machine using nix as a package manager, it suffices to symbolically link:
`/home/<user>/.config/nixpkgs -> /home/<user>/config/nixpkgs`
and run the usual home-manager switch. Note that this must be bootstrapped
with an existing home-manager (say by using nix-env -i home-manager or
nix-shell -p home-manager), but from then on, it installs its own copy of
home-manager so that it is no longer required.
The current setup uses a minimal configuration.nix with home-manager providing
most packages. Dot-files should live in dotfiles/ and be linked by
home-manager in their expected locations.
Hardware-specific settings (generated by nix) should live in
hardware-configuration/, and each machine should have a symbolic link
machine-specific.nix pointing to their respective
hardware-configuration/<machine>.nix.
Machine-specific settings (handwritten by yours truly) should live in
machine-specific/, and each machine should have a symbolic link
machine-specific.nix pointing to their respective
machines-specific/<machine>.nix.
Unfortunately, getting powerlevel10k to look good is very hard, because of pixel-based rendering imperfections.
What currently works, though the text looks huge, is to use the Terminator terminal, and set its font to be Iosevka SS05 Regular, at size 22!
Modifying p10k to use separators that don't display poorly (avoiding all the rounded and slanted ones) may be an option to having a smaller terminal text size without infuriating pixel issues. :-)