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. GNS nixpkgs input follows the Nyx's nyxpkgs-unstable (which updates daily from nixos-stable after caching has been successful) and shouldn't be overridden to profit from their package cache on Cachix.

An exemplary configuration.nix could look as follows:

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

  # Hostname
  networking.hostName = "yourmachine";

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