/nix

Primary LanguageNixMIT LicenseMIT

NixOS configs

A (not so) Good Flake

Convention Specification

The pattern I follow easily permits adding more hosts or users, pending a little elbow grease on the flake. Host definitions live under hosts/ and user configurations live under home/. Home Manager handles dotfiles and host's user configurations. The file pattern allows to create additional users under home/<host>.

System Configuration

The core flake is written to bootstrap my specific system(s):

  • wayward: Laptop with Wayland + Hyprland
  • nord: VPS

Example

wayward is my Framework laptop running hyprland. Its configuration is found in the following directories:

Host Path: hosts/<host>/ Home-Manager Path: home/crutonjohn/<host>/ Home-Manager Common: home/crutonjohn/common/

Current look for Wayland on my laptop:

Wayland

Example NixOS bootrapping

## Install Wayland + Hyprland
sudo nixos-rebuild switch --flake github:crutonjohn/nixos#wayward

Example home-manager bootstrapping

## Install Wayland + Hyprland
home-manager switch --flake github:crutonjohn/nixos#bjohn@work

Actions

My configs follow the stable channel. A GitHub action updates flake.lock nightly.

Attribution

TODO

  • migrate from stinky crusty X11 to shiny beautiful Wayland
  • create nixpkg for kns PR submitted: NixOS/nixpkgs#193995
  • re-create Home Manager config for non-NixOS machines
  • create linode nixos image
  • nix-ify VPS
  • nix-ify Headscale VPN
  • nix-ify blog
  • nix-ify the k8s cluster
  • edit $PATH for pkgs.fish to enable krew plugins (set -gx PATH $PATH $HOME/.krew/bin)
  • create multi-user pattern in flake.nix