Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

To make use of this flake, you can use it as follows - we assume flakes to be enabled:

{
  description = "My configuration";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable";
    garuda.url = "gitlab:garuda-linux/garuda-nix-subsystem/stable";
  };

  outputs = { garuda, nixpkgs, ... }: {
    nixosConfigurations = {
      hostname = garuda.lib.garudaSystem {
        system = "x86_64-linux";
        modules = [
          ./configuration.nix # Your system configuration.
        ];
      };
    };
  };
}

You may notice that we are using garuda.lib.garudaSystem to build the derivation. garudaSystem provides an opinionated system configuration similar to what Garuda Linux provides out of the box. It also exposes our modules which can then be referenced in our modules like garuda.*. Then, build your configuration as usual. GNS defaults are generally lower priority than your settings, therefore it’s easy to override most settings if needed.

You may also use any of the Chaotic Nyx’s module or home-manager options. Garuda Nix’ nixpkgs input follows Nyx’ nyxpkgs-unstable (which updates daily and shouldn’t be overridden to profit from their binary cache).

An exemplary configuration.nix could look as follows:

{ ... }: {
  # Your hardware configuration
  imports = [ ./hardware-configuration.nix ];

  # Hostname
  networking.hostName = "yourmachine";

  # Enabling the dr460nized desktop version
  # options and applications
  garuda = {
    dr460nized.enable = true;
    gaming.enable = true;
    performance-tweaks = {
      enable = true;
    };
  };
}