nixos-config

My NixOS configuration files

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
{
  config,
  lib,
  pkgs,
  ...
}:

{
  # We enable Nix on the microVM too for nix run and because it doesn't add much space
  nix.settings = {
    # Don't trash my $HOME please like come on it's not 2005 anymore
    use-xdg-base-directories = true;
    # Fancy stuff yay
    experimental-features = [
      # The new CLI is so much nicer
      "nix-command"
      # I still have no idea what a "flake" is
      "flakes"
      # Leanify Nix
      "pipe-operators"
    ];
  };

  boot = {
    # Instant boot
    loader.timeout = 0;
    # This is what literally every other distro does
    tmp.useTmpfs = true;
  };

  # Download more RAM
  zramSwap.enable = true;

  users.users.a = {
    # Am I really that normal?
    isNormalUser = true;
    extraGroups = [ "wheel" ];
    # I can't bash you know
    shell = pkgs.fish;
  };

  # Enable the boring stuff
  programs = {
    fish.enable = true;
    git.enable = true;
  };

  environment.systemPackages = with pkgs; [
    btop
    # Apparently hugo is mission-critical software now
    hugo
    micro
    # Usually installed by default but not on my microVM because of the docker-container profile
    rsync
  ];

  # BLAZINGLY FAST MEMORY SAFE
  security.sudo-rs.enable = true;

  # This option defines the first version of NixOS you have installed on this particular machine,
  # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions.
  #
  # Most users should NEVER change this value after the initial install, for any reason,
  # even if you've upgraded your system to a new NixOS release.
  #
  # This value does NOT affect the Nixpkgs version your packages and OS are pulled from,
  # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how
  # to actually do that.
  #
  # This value being lower than the current NixOS release does NOT mean your system is
  # out of date, out of support, or vulnerable.
  #
  # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration,
  # and migrated your data accordingly.
  #
  # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion .
  system.stateVersion = "24.11"; # Did you read the comment?
}