Skip to content

HexoKnight/nixos

Repository files navigation

NixOS Config

This is my personal NixOS configuration and is not designed to be used directly by others (though that should be possible if you want to try :). Though feel free to take inspiration from any relevant modules.

See Use it yourself to well...

Overview

Lots of these could be switched out with relative ease, some... not so much :/

Essentially embedded

Quite configured but could be switched out easily

minimal to no configuration and could/should be switched out at a moment's notice

Other things of note

  • optional impermanence setup (tldr: / go BOOM on boot) which really displays the power of NixOS.
  • nice scripts (that can be run outside of this config easily: github:HexoKnight/nixos#<script-name> for use in nix shell/run/etc.) including:
    • configopts.sh - allows for easily making small (ba)sh scripts that have fully featured option parsing and help pages
    • nixos - essentially a more ergonomic nixos-rebuild, centred around flakes, I've tried my best to keep it general so that it works for managing any nixos flake, not just this one

Some nice modules

  • hyprbinds - a nixy?? interface to declare hyprland binds (submap support is missing but to be added eventually hopefully)
  • fzf - a few functions for generating complex fzf commands
  • neovim plugin stuff - not entirely standalone but provides a few functions for concisely importing and configuring plugins

Use it yourself

Create your own configuration in configurations/. See the other configurations in that directory for examples. (you can generate most of the hardware boilerplate with nixos-generate-config --show-hardware-config)

You will want to use the following to set your own password if you want to use sops to manage the password (you need a -- before any arguments to stop them being passed to nix run)

nix run github:HexoKnight/nixos#gen-sops-secrets -- --help
...
nix run github:HexoKnight/nixos#gen-sops-secrets -- [whatever args] >path/to/local/nixos/secrets.json

You probably want to disable impermanence, at least at first, because otherwise that requires reformatting your disk (unless you happen to have the exact setup already), which you can do with disko or manually.