/config

Personal configuration files

Primary LanguageNix

Setup (August 2020)

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.

Details

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.

Terminal setup

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. :-)