Skip to content

Atemo-C/NixOS-configuration

Repository files navigation

[1] General information

This is an almost identical version of the NixOS configuration that I use. It is made for single-user use on a desktop or laptop system.
It does not use Flakes, but does make use of Home Manager and some unstable packages whilst on a stable version.
It is an overhaul of my previous NixOS configuration, which can still be found here.
(An update on the 11th of January 2025 cleaned up and changed the structure slightly, most things are a bit neater now.)
If you want to use this configuration (or rather, a version of it), on your own system, it is hightly recommended that you read what each module does and edit them if needed.
 

[2] To do when using this configuration

[2.1] Name.

In configuration.nix, you can set your user's name and title at custom.name and custom.title. They will automatically be applied to the modules that need them; They will use the ${config.custom.name} and ${config.custom.title} values using the User/Name-module.nix module.

[2.2] Hostname.

In configuration.nix, you can set your computer's name on the network at networking.hostName.

[2.3] NixOS state version.

If you have installed a NixOS version higher/lower than the value currently used here (24.11), you must change the value of system.stateVersion in configuration.nix. After that, you should never need to change it, unless you install NixOS from scratch with a different (higher) version. You do not have to nor should change this number if you keep the same installation, even when upgrading NixOS version.

[2.4] BIOS or EFI boot.

CIn configuration.nix, comment/uncomment the desired boot mode. You can tweak the Boot/EFI and Boot/BIOS modules on their own for futher configuration if needed.

[2.5] Graphics drivers, etc.

There are other modules imported in configuration.nix that you may wish to comment/uncommend, and individually tweak. Be sure to check relevant ones out.

[2.6] Home Manager version

The User/Home-manager.nix module fetches the tarball of the desired Home Manager version, which should ideally be the same version as the NixOS version currently running. In it, if needed, change the 24.11 part in "https://github.com/nix-community/home-manager/archive/release-24.11.tar.gz" to the appropriate version.

[2.7] Flatpaks with Flathub

Currently, the Flathub Flatpak repository cannot be declaratively defined in NixOS nor Home Manager without using a custom Nix Flake. As such, you have to manually add it with a shell command after installation. If you are using the FISH shell, there should already be an abbreviation to do so, being the following: enable-flathub

[3] Use cases and feature implementation

[3.1] Targeted use case

  • Single user
  • Personal computing
  • Desktops and laptops

[3.2] Not yet implemented or tested, including but not limited to

  • Secure Boot
  • Accessibility
  • Touchscreen
  • Non-offload Nvidia PRIME
  • Remote desktop
  • Snap packaging system
  • Computers with:
    • A non-x86_64 (AMD64) CPU architecture
    • No adequate GPU acceleration (Hyprland)
    • Hybrid GPU setup (NVIDIA PRIME, etc)
    • Less than 2 GiB of RAM (Swap can be heavily used with less than 4, 8-16 GiB is recommended)
    • Less than 64 GiB of storage (Some Nix storage optimizations are already enabled)
       

[4] Other NixOS resources

Help is available in:

  • The configuration.nix(5) man page
  • The on-device manual by running the nixos-help command
  • The online manual
    Online manual
  • The NixOS Wiki
    NixOS Wiki
  • The Nix.dev documentation for the Nix ecosystem.
    Nix.dev

A searchable list of available packages for NixOS can be found here.
NixOS package search
Alternatively, we can use nix search in a terminal.

A searchable list of available options for NixOS can be found here.
NixOS options search

A (slow) list of available options for Home Manager can be found here.
Home Manager search
 

About

My NixOS configuration.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published