Chaotic's Nyx

Six frogs with capes, aligned like the NixOS logo, with intercalated shades of green
GitHub's menu buttons re-ordered and re-labeled to say: Make Pull requests Not Issues. Sounding like Make Love Not War

Nix flake for "too much bleeding-edge" and unreleased packages (e.g., mesa_git, linux_cachyos, firefox_nightly, sway_git, gamescope_git). And experimental modules (e.g., HDR, duckdns).

From the Chaotic Linux User Group (LUG), the same one that maintains Chaotic-AUR! 🧑🏻‍💻

The official source-code repository is available as "chaotic-cx/nyx" at GitHub.

PLEASE AVOID POSTING ISSUES IN NIXOS' MATRIX, DISCOURSE, DISCORD, ETC. USE OUR REPO'S ISSUES, TELEGRAM GROUP, OR #chaotic-nyx:ubiquelambda.dev ON MATRIX INSTEAD.

News

A news channel can be found on Telegram.

How to use it

On NixOS unstable

This tutorial does not apply for users using NixOS 24.11 and other stable channels. This tutorial is for unstable users.

We recommend integrating this repo using Flakes:


# flake.nix
{
  description = "My configuration";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; # IMPORTANT
  };

  outputs = { nixpkgs, chaotic, ... }: {
    nixosConfigurations = {
      hostname = nixpkgs.lib.nixosSystem { # Replace "hostname" with your system's hostname
        system = "x86_64-linux";
        modules = [
          ./configuration.nix
          chaotic.nixosModules.default # IMPORTANT
        ];
      };
    };
  };
}

In your configuration.nix enable the packages and options that you prefer:


# configuration.nix
{ pkgs, ... }:
{
  environment.systemPackages = [ pkgs.lan-mouse_git ];
  chaotic.mesa-git.enable = true;
}

On NixOS stable

This tutorial does not apply for users using NixOS unstable channel. This tutorial is for 24.11 and other stable channels.

You won't have access to all the modules and options available to unstable users, as those are prone to breaking due to the divergence between the channels. But you'll have access to all packages, the cache, and the registry.

We recommend integrating this repo using Flakes:


# flake.nix
{
  description = "My configuration";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-24.11";
    chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
  };

  outputs = { nixpkgs, chaotic, ... }: {
    nixosConfigurations = {
      hostname = nixpkgs.lib.nixosSystem { # Replace "hostname" with your system's hostname
        system = "x86_64-linux";
        modules = [
          ./configuration.nix # Your system configuration.
          chaotic.nixosModules.nyx-cache
          chaotic.nixosModules.nyx-overlay
          chaotic.nixosModules.nyx-registry
        ];
      };
    };
  };
}

In your configuration.nix enable the packages that you prefer:


# configuration.nix
{ pkgs, ... }:
{
  environment.systemPackages = [ pkgs.lan-mouse_git ];
  boot.kernelPackages = pkgs.linuxPackages_cachyos;
}

On Home-Manager

This method is for home-manager setups without NixOS.

We recommend integrating this repo using Flakes:


# flake.nix
{
  description = "My configuration";

  inputs = {
    nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
    chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable"; # IMPORTANT
    home-manager = {
      url = "github:nix-community/home-manager";
      inputs.nixpkgs.follows = "nixpkgs";
    };
  };

  outputs = { nixpkgs, chaotic, ... }: {
    # ... other outputs
    homeConfigurations = {
      # ... other configs
      configName = home-manager.lib.homeManagerConfiguration { # Replace "configName" with a significant unique name
        pkgs = nixpkgs.legacyPackages.x86_64-linux;
        modules = [
          ./home-manager/default.nix
          chaotic.homeManagerModules.default # IMPORTANT
        ];
      };
    };
  };
}

In your home-manager/default.nix add a nix.package, and enable the desired packages:


# configuration.nix
{ pkgs, ... }:
{
  nix.package = pkgs.nix;
  home.packages = [ pkgs.lan-mouse_git ];
}

Running packages (without installing)

Besides using our module/overlay, you can run packages (without installing them) using:


nix run github:chaotic-cx/nyx/nyxpkgs-unstable#firefox_nightly

Binary Cache notes

You'll get the binary cache added to your configuration as soon as you add our default module. We do this automatically, so we can gracefully update the cache's address and keys without prompting you for manual work.

If you dislike this behavior for any reason, you can disable it with chaotic.nyx.cache.enable = false.

Remember: If you want to fetch derivations from our cache, you'll need to enable our module and rebuild your system before adding these derivations to your configuration.

Commands like nix run ..., nix develop ..., and others, when using our flake as input, will ask you to add the cache interactively when missing from your user's nix settings.

If you want to use the cache right from the installation media, install your system using nixos-install --flake /mnt/etc/nixos#mymachine --option 'extra-substituters' 'https://chaotic-nyx.cachix.org/' --option extra-trusted-public-keys "chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8=" (replace mymachine with your new host's name).

We offer cache for x86_64-linux, aarch64-linux, and aarch64-darwin.

FlakeHub notes

FlakeHub

Add chaotic to your flake.nix, make sure to use the rolling *.tar.gz to keep using the latest packages:


# flake.nix
{
  # ... description
  inputs = {
    # ... nixpkgs, home-manager, etc
    chaotic.url = "https://flakehub.com/f/chaotic-cx/nyx/*.tar.gz";
  };
  # ... outputs
}

Then follow one of the guides above.

Using sched-ext schedulers

From version 6.12 onwards, sched-ext support is officially available on the upstream kernel. You can use the latest kernel (pkgs.linuxPackages_latest) or our provided CachyOS kernel (pkgs.linuxPackages_cachyos).

Just add this to your configuration:


# configuration.nix
{
  boot.kernelPackages = pkgs.linuxPackages_cachyos;
  services.scx.enable = true; # by default uses scx_rustland scheduler
}

Then, reboot with the new configuration, check if the scheduler is running:


╰─λ systemctl status scx.service

If this is not working, check if the current kernel support sched-ext feature.


╰─λ ls /sys/kernel/sched_ext/
enable_seq  hotplug_seq  nr_rejected  root  state  switch_all

You can also manually start a scheduler like:


╰─λ sudo scx_rusty
21:38:53 [INFO] CPUs: online/possible = 24/32
21:38:53 [INFO] DOM[00] cpumask 00000000FF03F03F (20 cpus)
21:38:53 [INFO] DOM[01] cpumask 0000000000FC0FC0 (12 cpus)
21:38:53 [INFO] Rusty Scheduler Attached

You can choose a different scheduler too.


# configuration.nix
{
  services.scx.scheduler = "scx_rusty";
}

We also provide a git version of scx to stay up to date on the latest features.


# configuration.nix
{
  services.scx.package = pkgs.scx_git.full;
}

There are other scx_* binaries for you to play with, or head to github.com/sched-ext/scx for instructions on how to write one of your own.

Using with read-only pkgs

If you use nixpkgs.nixosModules.readOnlyPkgs in your setup, you need to disable our overlay module, and import the cache-friendly overlay directly instead.


# flake.nix
{
  # ... description, inputs
  outputs = { nixpkgs, chaotic, ... }: {
    nixosConfigurations = {
      # ... other systems
      hostname = nixpkgs.lib.nixosSystem { # Replace "hostname" with your system's hostname
        modules = [
          nixpkgs.nixosModules.readOnlyPkgs
          # ... ./configuration.nix, ./hardware-configuration.nix, etc
          {
            nixpkgs.pkgs = import nixpkgs {
              system = "x86_64-linux";
              config = { allowUnfree = true; };
              overlays = [ chaotic.overlays.cache-friendly ]; # IMPORTANT
            };
            chaotic.nyx.overlay.enable = false; # IMPORTANT
          }
          chaotic.nixosModules.default # IMPORTANT
        ];
      };
    };
  };
}

Using with Jovian

We provide binary cache for most packages in Jovian NixOS.

Remember to read all our Binary Cache notes, and you must follow jovian through chaotic to avoid hash mismatches:


# flake.nix
{
    # ... description
    inputs = {
      # ... nixpkgs, home-manager, etc
      chaotic.url = "github:chaotic-cx/nyx/nyxpkgs-unstable";
      jovian.follows = "chaotic/jovian";
    };
    # ... outputs
}

Lists of options and packages

Built and cached against github:nixos/nixpkgs/d89fc19e405cb2d55ce7cc114356846a0ee5e956 (20250510191037Z).

Packages

NameVersionDescription
alacritty_git unstable-20250502220522-def47a5 Cross-platform, GPU-accelerated terminal emulator
https://github.com/alacritty/alacritty
ananicy-rules-cachyos_git unstable-20250319200601-99693d5 CachyOS' ananicy-rules meant to be used with ananicy-cpp
https://github.com/CachyOS/ananicy-rules
applet-window-title 0.5 Plasma 6 applet that shows the application title and icon for active window
https://github.com/psifidotos/applet-window-title
appmenu-gtk3-module 0.7.6 Port of the Unity GTK 3 Module
beautyline-icons unstable-20240504163440-e13e5fa BeautyLine icon theme mixed with Sweet icons
https://gitlab.com/garuda-linux/themes-and-settings/artwork/beautyline
bpftools_full 6.14.6 Debugging/program analysis tools for the eBPF subsystem
https://github.com/libbpf/bpftool
busybox_appletless 1.36.1 Tiny versions of common UNIX utilities in a single small executable (without applets' symlinks)
https://busybox.net/
bytecode-viewer_git unstable-20250426165501-6d823ba An advanced yet user friendly Java reverse engineering suite
https://bytecodeviewer.com/
conduwuit_git unstable-20250409033854-d8311a5 Matrix homeserver written in Rust, forked from conduit
https://conduwuit.puppyirl.gay/
discord-krisp 0.0.94 All-in-one cross-platform voice and text chat for gamers
https://discordapp.com/
distrobox_git unstable-20250430083031-7c0c1e5 Wrapper around podman or docker to create and start containers
https://distrobox.it/
dr460nized-kde-theme unstable-20250303165954-23d86f1 The default Garuda dr460nized theme
https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-dr460nized
evil-helix_git unstable-20250422195441-3d33121 Post-modern modal text editor, with vim keybindings
https://github.com/usagi-flow/evil-helix
firedragon 11.26.0-1 Floorp fork build using custom branding & settings
https://firedragon.garudalinux.org
firedragon-unwrapped 11.26.0-1 Floorp fork build using custom branding & settings
https://firedragon.garudalinux.org
firefox-unwrapped_nightly 140.0a1 A web browser built from Firefox Nightly source tree
http://www.mozilla.com/en-US/firefox/
firefox_nightly 140.0a1 A web browser built from Firefox Nightly source tree
http://www.mozilla.com/en-US/firefox/
gamescope-wsi32_git unstable-20250505032817-3ab24ca SteamOS session compositing window manager
https://github.com/ValveSoftware/gamescope
gamescope-wsi_git unstable-20250505032817-3ab24ca SteamOS session compositing window manager
https://github.com/ValveSoftware/gamescope
gamescope_git unstable-20250505032817-3ab24ca SteamOS session compositing window manager
https://github.com/ValveSoftware/gamescope
helix_git unstable-20250510184846-63a1a94 Post-modern modal text editor
https://helix-editor.com
jovian-chaotic.decky-loader 3.1.5 A plugin loader for the Steam Deck
https://github.com/SteamDeckHomebrew/decky-loader
jovian-chaotic.decky-loader-prerelease 3.1.5 A plugin loader for the Steam Deck
https://github.com/SteamDeckHomebrew/decky-loader
jovian-chaotic.galileo-mura 0.9
https://github.com/Jovian-Experiments/galileo-mura
jovian-chaotic.gamescope 3.16.4 SteamOS session compositing window manager
https://github.com/ValveSoftware/gamescope
jovian-chaotic.gamescope-session 3.16.4-3 -
jovian-chaotic.gamescope-wsi 3.16.4 SteamOS session compositing window manager
https://github.com/ValveSoftware/gamescope
jovian-chaotic.inputplumber 0.57.0 Open source input router and remapper daemon for Linux
https://github.com/ShadowBlip/InputPlumber
jovian-chaotic.jovian-greeter - -
jovian-chaotic.jovian-hardware-survey - -
jovian-chaotic.jovian-steam-protocol-handler - -
jovian-chaotic.jovian-stubs - -
jovian-chaotic.jovian-updater-logo-helper - -
jovian-chaotic.jupiter-dock-updater-bin 20250220.02 -
jovian-chaotic.jupiter-fan-control 20240523.3 Steam Deck (Jupiter) userspace fan controller
jovian-chaotic.jupiter-hw-support 20250501.0 Steam OS's generic “hardware support” package. This package contains the hardware-agnostic files from the `jupiter-hw-support` package. For themes, as well as unfree firmware, see the `steamdeck-theme` and `steamdeck-firmware` packages.
jovian-chaotic.linux-firmware-jupiter 20250311.1 Binary firmware collection packaged by kernel.org
https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git
jovian-chaotic.linux_jovian 6.11.11-valve13 The Linux kernel (with patches: bridge-stp-helper, request-key-helper, export-rt-sched-migrate)
https://www.kernel.org/
jovian-chaotic.mangohud 0.8.1.r49 Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
https://github.com/flightlessmango/MangoHud
jovian-chaotic.mesa-radeonsi-jupiter 25.0.5 Open source 3D graphics library
https://www.mesa3d.org/
jovian-chaotic.mesa-radv-jupiter 24.3.0.steamos-24.11.9 -
jovian-chaotic.opensd unstable-2022-12-19 Userspace driver for Steam Deck input
jovian-chaotic.powerbuttond 3.1 Steam Deck power button daemon
jovian-chaotic.sdgyrodsu 2.1 Cemuhook DSU server for the Steam Deck Gyroscope
https://github.com/kmicki/SteamDeckGyroDSU
jovian-chaotic.steam - Steam dependencies (dummy package, do not use)
https://store.steampowered.com/
jovian-chaotic.steam-unwrapped 1.0.0.82 Digital distribution platform
https://store.steampowered.com/
jovian-chaotic.steam_notif_daemon 1.0.1 Steam notification daemon
jovian-chaotic.steamdeck-bios-fwupd - Steam Deck BIOS for fwupd
jovian-chaotic.steamdeck-dsp 0.61 Steamdeck Audio Processing
jovian-chaotic.steamdeck-firmware 20250501.0 Steam Deck BIOS and controller firmware
jovian-chaotic.steamdeck-hw-theme 20250501.0 Steam Deck themes (base)
jovian-chaotic.steamos-manager 25.4.1 -
jovian-chaotic.steamos-polkit-helpers 20250501.0 -
jovian-chaotic.wakehook 2.1 SteamOS CEC power management daemon
jovian-chaotic.wireplumber-jupiter 0.5.7 Modular session / policy manager for PipeWire
https://pipewire.org
jujutsu_git unstable-20250510153646-d08f19d Git-compatible DVCS that is both simple and powerful
https://github.com/jj-vcs/jj
lan-mouse_git unstable-20250402003949-b8063a8 Software KVM switch for sharing a mouse and keyboard with multiple hosts through the network
https://github.com/feschber/lan-mouse
latencyflex-vulkan unstable-2023-07-03 Vulkan Layer for LatencyFleX
https://github.com/ishitatsuyuki/LatencyFleX
libbpf_git unstable-20250429183337-374f780 Library for loading eBPF programs and reading and manipulating eBPF objects from user-space
https://github.com/libbpf/libbpf
libdrm32_git b65d6ed Direct Rendering Manager library and headers
https://gitlab.freedesktop.org/mesa/drm
libdrm_git b65d6ed Direct Rendering Manager library and headers
https://gitlab.freedesktop.org/mesa/drm
libportal_git unstable-20250328122118-796053d Flatpak portal library
https://github.com/flatpak/libportal
linuxPackages_cachyos 6.14.6+Cfa63177+Pd9bfde3 Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS with other patches and improvements
linuxPackages_cachyos-hardened 6.13.12+Caa6c9fb+Pc933702 Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS with other patches and improvements
linuxPackages_cachyos-lto 6.14.6+Cfa63177+Pd9bfde3 Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS built with LLVM and Thin LTO
linuxPackages_cachyos-rc 6.15-rc5+C9f82f52+P2c0ec4a Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS with other patches and improvements
linuxPackages_cachyos-server 6.14.6+Cfa63177+Pd9bfde3 Kernel and modules for Linux EEVDF scheduler Kernel by CachyOS targeted for Servers
linux_cachyos 6.14.6 The Linux kernel (with patches: 0001-cachyos-base-all.patch, 0001-bore-cachy.patch)
https://www.kernel.org/
linux_cachyos-hardened 6.15-rc5 The Linux kernel (with patches: 0001-cachyos-base-all.patch, 0001-bore-cachy.patch)
https://www.kernel.org/
linux_cachyos-rc 6.15-rc5 The Linux kernel (with patches: 0001-cachyos-base-all.patch, 0001-bore-cachy.patch)
https://www.kernel.org/
linux_cachyos-server 6.14.6 The Linux kernel (with patches: 0001-cachyos-base-all.patch)
https://www.kernel.org/
luxtorpeda 72.0.0 Steam Play compatibility tool to run games using native Linux engines
https://github.com/luxtorpeda-dev/luxtorpeda
mangohud32_git unstable-20250510153825-9004a14 Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
https://github.com/flightlessmango/MangoHud
mangohud_git unstable-20250510153825-9004a14 Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
https://github.com/flightlessmango/MangoHud
mesa32_git bb61a7 Open source 3D graphics library
https://www.mesa3d.org/
mesa_git bb61a7 Open source 3D graphics library
https://www.mesa3d.org/
mpv-vapoursynth - General-purpose media player, fork of MPlayer and mplayer2 (includes vapoursynth-mvtools)
https://mpv.io
mwc_git unstable-20250316235640-33b4968 tiling wayland compositor based on wlroots.
https://github.com/dqrk0jeste/mwc
niri_git unstable-20250510204300-89b7423 Scrollable-tiling Wayland compositor
https://github.com/YaLTeR/niri
nix-top_abandoned 0.3.0 Tracks what nix is building
https://github.com/samueldr/nix-top
nordvpn 3.19.2 CLI client for NordVPN
https://www.nordvpn.com
nss_git unstable-20250505100732-63eda55 Set of libraries for development of security-enabled client and server applications
https://developer.mozilla.org/en-US/docs/Mozilla/Projects/NSS
nut_git unstable-20250509165021-093e44b Network UPS Tools
https://networkupstools.org/
nyx-generic-git-update - Generic update-script for bleeding-edge GIT Nix derivations.
nyxUtils - Pack of functions that are useful for Chaotic-Nyx and might become useful for you too
openmohaa 0.81.1 Open re-implementation of Medal of Honor: Allied Assault
https://github.com/openmoh/openmohaa
openmohaa_git unstable-20250509212928-0ea8347 Open re-implementation of Medal of Honor: Allied Assault
https://github.com/openmoh/openmohaa
openrgb_git unstable-20250510005638-478cf4e Open source RGB lighting control
https://gitlab.com/CalcProgrammer1/OpenRGB
openvr_git unstable-20240326235357-ae46a8d API and runtime that allows access to VR hardware from multiple vendors without requiring that applications have specific knowledge of the hardware they are targeting
https://github.com/ValveSoftware/openvr
pkgsx86_64_v2 - Nixpkgs + Chaotic-Nyx packages built for the x86-64-v2 microarchitecture.
pkgsx86_64_v3 - Nixpkgs + Chaotic-Nyx packages built for the x86-64-v3 microarchitecture.
pkgsx86_64_v4 - Nixpkgs + Chaotic-Nyx packages built for the x86-64-v4 microarchitecture.
proton-ge-custom 9.27 Compatibility tool for Steam Play based on Wine and additional components
https://github.com/GloriousEggroll/proton-ge-custom
pwvucontrol_git unstable-20250323193748-a3e7a77 Pipewire Volume Control
https://github.com/saivert/pwvucontrol
qtile-extras_git 0.29.99 Extra modules and widgets for the Qtile tiling window manager
https://github.com/elParaguayo/qtile-extras
qtile-module_git 0.29.0.99 Small, flexible, scriptable tiling window manager written in Python
http://www.qtile.org/
qtile_git 0.29.0.99 Small, flexible, scriptable tiling window manager written in Python
http://www.qtile.org/
river_git unstable-20250329144456-46f77f3 Dynamic tiling wayland compositor
https://codeberg.org/river/river
scx-full_git unstable-20250512093032-cd952a7 Sched-ext C and Rust userspace schedulers
https://github.com/sched-ext/scx
scx_git.cscheds unstable-20250512093032-cd952a7 Sched-ext C userspace schedulers
https://github.com/sched-ext/scx
scx_git.full unstable-20250512093032-cd952a7 Sched-ext C and Rust userspace schedulers
https://github.com/sched-ext/scx
scx_git.rustscheds unstable-20250512093032-cd952a7 Sched-ext Rust userspace schedulers
https://github.com/sched-ext/scx
sdl_git unstable-20250510195012-84308e7 Cross-platform development library
https://libsdl.org
shadps4_git unstable-20250507215016-1aa7eb8 Early in development PS4 emulator
https://github.com/shadps4-emu/shadPS4
spirv-headers_git unstable-20250507154058-6d0784e Machine-readable components of the Khronos SPIR-V Registry
https://github.com/KhronosGroup/SPIRV-Headers
sway-unwrapped_git unstable-20250508172035-8d3a52a I3-compatible tiling Wayland compositor
https://swaywm.org
sway_git unstable-20250508172035-8d3a52a I3-compatible tiling Wayland compositor
https://swaywm.org
swaylock-plugin_git unstable-20250423132811-63e83bf Screen locker for Wayland
https://github.com/swaywm/swaylock
telegram-desktop-unwrapped_git unstable-20250424070656-635ed02 Telegram Desktop messaging app
https://desktop.telegram.org/
telegram-desktop_git unstable-20250424070656-635ed02 Telegram Desktop messaging app
https://desktop.telegram.org/
tg-owt_git unstable-20250501124727-c4192e8 Fork of Google's webrtc library for telegram-desktop
https://github.com/desktop-app/tg_owt
torzu_git unstable-20250422-fd90833 The TOR branch of an experimental Nintendo Switch emulator written in C++
http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu
vulkanPackages_latest.gfxreconstruct 1.4.309.0 Graphics API Capture and Replay Tools
https://github.com/LunarG/gfxreconstruct/
vulkanPackages_latest.glslang 1.4.309.0 Khronos reference front-end for GLSL and ESSL
https://github.com/KhronosGroup/glslang
vulkanPackages_latest.spirv-cross 1.4.313.0 Tool designed for parsing and converting SPIR-V to other shader languages
https://github.com/KhronosGroup/SPIRV-Cross
vulkanPackages_latest.spirv-headers 1.4.313.0 Machine-readable components of the Khronos SPIR-V Registry
https://github.com/KhronosGroup/SPIRV-Headers
vulkanPackages_latest.spirv-tools 1.4.313.0 SPIR-V Tools project provides an API and commands for processing SPIR-V modules
https://github.com/KhronosGroup/SPIRV-Tools
vulkanPackages_latest.vulkan-extension-layer 1.4.313.0 Layers providing Vulkan features when native support is unavailable
https://github.com/KhronosGroup/Vulkan-ExtensionLayer/
vulkanPackages_latest.vulkan-headers 1.4.314 Vulkan Header files and API registry
https://www.lunarg.com
vulkanPackages_latest.vulkan-loader 1.4.315 LunarG Vulkan loader
https://www.lunarg.com
vulkanPackages_latest.vulkan-tools 1.4.314 Khronos official Vulkan Tools and Utilities
https://github.com/KhronosGroup/Vulkan-Tools
vulkanPackages_latest.vulkan-tools-lunarg 1.4.313.0 LunarG Vulkan Tools and Utilities
https://github.com/LunarG/VulkanTools
vulkanPackages_latest.vulkan-utility-libraries 1.4.314 Set of utility libraries for Vulkan
https://github.com/KhronosGroup/Vulkan-Utility-Libraries
vulkanPackages_latest.vulkan-validation-layers 1.4.314 Official Khronos Vulkan validation layers
https://github.com/KhronosGroup/Vulkan-ValidationLayers
vulkanPackages_latest.vulkan-volk 1.4.313.0 Meta loader for Vulkan API
https://github.com/zeux/volk
wayland-protocols_git unstable-20250505104216-eda9bb4 Wayland protocol extensions
https://gitlab.freedesktop.org/wayland/wayland-protocols
wayland-scanner_git 1.23.1 C code generator for Wayland protocol XML files
https://wayland.freedesktop.org/
wayland_git unstable-20250315231207-6137c8c Core Wayland window system code and protocol
https://wayland.freedesktop.org/
wlroots_git unstable-20250508101357-2420bfe Modular Wayland compositor library
https://gitlab.freedesktop.org/wlroots/wlroots/
xdg-desktop-portal-wlr_git unstable-20250405165139-dfd2887 xdg-desktop-portal backend for wlroots
https://github.com/emersion/xdg-desktop-portal-wlr
yt-dlp_git unstable-20250510232253-cbcfe63 Command-line tool to download videos from YouTube.com and other sites (youtube-dl fork)
https://github.com/yt-dlp/yt-dlp/
zed-editor-fhs_git unstable-20250430150152-632f08d Wrapped variant of zed-editor which launches in a FHS compatible environment. Should allow for easy usage of extensions without nix-specific modifications.
https://zed.dev
zed-editor_git unstable-20250430150152-632f08d High-performance, multiplayer code editor from the creators of Atom and Tree-sitter
https://zed.dev
zfs_cachyos 2.3.2 ZFS Filesystem Linux Userspace Tools
https://github.com/openzfs/zfs
zon2nix_zig_0_13 0.1.2 Convert the dependencies in `build.zig.zon` to a Nix expression
https://github.com/nix-community/zon2nix

NixOS Options

KeyDefaultDescription
chaotic.appmenu-gtk3-module.enable false Sets the proper environment variable to use appmenu-gtk3-module.

Example: true
chaotic.conduwuit.enable false Whether to enable conduwuit service.
Example: true
chaotic.conduwuit.extraEnvironment { } Extra Environment variables to pass to the conduwuit server.
Example: {
  RUST_BACKTRACE = "yes";
}

chaotic.conduwuit.group "conduwuit" The group {command}`conduwuit` is run as.
chaotic.conduwuit.package pkgs.conduwuit_git The conduwuit_git package to use.
chaotic.conduwuit.settings { } Generates the conduwuit.toml configuration file. Refer to

for details on supported values.
chaotic.conduwuit.user "conduwuit" The user {command}`conduwuit` is run as.
chaotic.duckdns.certs.enable false Whether to enable generate HTTPS cert via ACME/Let's Encrypt.
Example: true
chaotic.duckdns.certs.group "acme" Group account under which the activation runs.
chaotic.duckdns.certs.httpPort 80 Port number.
chaotic.duckdns.certs.useHttpServer false Whether to enable use Lego's built-in HTTP server instead a request to DuckDNS.
Example: true
chaotic.duckdns.domain N/A Full domain to be updated, including the TLD.
chaotic.duckdns.enable false Whether to enable DuckDNS config.
Example: true
chaotic.duckdns.environmentFile "/etc/duckdns-updater/envs" Environment file from systemd, ensure it is set to 600 permissions.

Must contain DUCKDNS_TOKEN entry.
chaotic.duckdns.ipv6.device "eth0" Device to get IPv6.
chaotic.duckdns.ipv6.enable false Whether to enable enable IPv6.
Example: true
chaotic.duckdns.onCalendar "*:0/5" How often the DNS entry is updated.

The format is described in {manpage}`systemd.time(7)`.

Example: "hourly"
chaotic.hdr.enable false Whether to enable AMD-HDR as seen in
        https://lore.kernel.org/amd-gfx/20230810160314.48225-1-mwen@igalia.com/
.
Example: true
chaotic.hdr.specialisation.enable true Isolates the changes in a specialisation.

Example: false
chaotic.hdr.wsiPackage pkgs.gamescope-wsi Gamescope WSI package to use

Example: pkgs.gamescope-wsi_git
chaotic.mesa-git.enable false Whether to use latest Mesa drivers.

WARNING: It will break NVIDIA's libgbm, don't use with NVIDIA Optimus setups.

Example: true
chaotic.mesa-git.extraPackages [ ] Additional packages to add to OpenGL drivers.
This can be used to add OpenCL drivers, VA-API/VDPAU drivers etc.

WARNING: Don't use any of the `mesa.*`, replace with `pkgs.mesa_git.*`.

Example: with pkgs; [ mesa_git.opencl intel-media-driver intel-ocl vaapiIntel ]
chaotic.mesa-git.extraPackages32 [ ] Additional packages to add to 32-bit OpenGL drivers on 64-bit systems.

WARNING: Don't use any of the `mesa.*`, replace with `pkgs.mesa32_git.*`.

Example: with pkgs.pkgsi686Linux; [ pkgs.mesa32_git.opencl intel-media-driver vaapiIntel ]
chaotic.mesa-git.fallbackSpecialisation true Whether to add a specialisation with stable Mesa.
Recommended.

Example: false
chaotic.mesa-git.replaceBasePackage false Whether to impurely replace `mesa.out` with `mesa_git.out`.
Might increase compatibility. But you'll need `--impure` to build your configuration.

Example: false
chaotic.nordvpn.enable false Whether to enable the NordVPN daemon. Note that you'll have to set
`networking.firewall.checkReversePath = false;`, add UDP 1194
and TCP 443 to the list of allowed ports in the firewall and add your
user to the "nordvpn" group (`users.users..extraGroups`).
chaotic.nyx.cache.enable true Whether to add Chaotic-Nyx's binary cache to settings.

Example: false
chaotic.nyx.nixPath.enable true Whether to add Chaotic-Nyx to `nix.nixPath`.

Example: false
chaotic.nyx.overlay.enable true Whether to add Chaotic-Nyx's overlay to system's pkgs.

Example: false
chaotic.nyx.overlay.flakeNixpkgs.config pkgs.config Matches `nixpkgs.config` from the configuration of the Nix Packages collection.

Example: { allowBroken = true; allowUnfree = true; }

chaotic.nyx.overlay.onTopOf "flake-nixpkgs" Build Chaotic-Nyx's packages based on nyx's flake flakes or the system's pkgs.

Enum: one of "flake-nixpkgs", "user-pkgs"

Example: "user-pkgs"
chaotic.nyx.registry.enable true Whether to add Chaotic-Nyx to `nix.registry`.

Example: false
chaotic.owl-wlr.enable false Whether to enable Owl - tiling wayland compositor based on wlroots. 
Enabling this option will add owl to your system.
.
Example: true
chaotic.owl-wlr.extraPackages with pkgs; [
  kitty 
  rofi
];
Extra packages to be installed system wide.
Both pkgs.kitty and pkgs.rofi is required by default config.

Example: with pkgs; [
  foot
  fuzzel
  gtklock
  mako
  grimblast
];

chaotic.owl-wlr.package pkgs.owl-wlr_git The owl-wlr_git package to use. This option can provide different version of Owl compositor.
chaotic.zfs-impermanence-on-shutdown.enable false Whether to enable Impermanence on safe-shutdown through ZFS snapshots.
Example: true
chaotic.zfs-impermanence-on-shutdown.snapshot null Snapshot of the volume in an "empty" state to roll back to.

Example: "start"
chaotic.zfs-impermanence-on-shutdown.volume null Full description to the volume including pool.
This volume must have a snapshot to an "empty" state.

WARNING: The volume will be rolled back to the snapshot on every safe-shutdown.

Example: "zroot/ROOT/empty"

Home-Manager Options

KeyDefaultDescription
chaotic.nyx.cache.enable true Whether to add Chaotic-Nyx's binary cache to settings.

Example: false
chaotic.nyx.nixPath.enable true Whether to add Chaotic-Nyx to `nix.nixPath`.

Example: false
chaotic.nyx.overlay.enable true Whether to add Chaotic-Nyx's overlay to system's pkgs.

Example: false
chaotic.nyx.overlay.flakeNixpkgs.config pkgs.config Matches `nixpkgs.config` from the configuration of the Nix Packages collection.

Example: { allowBroken = true; allowUnfree = true; }

chaotic.nyx.overlay.onTopOf "flake-nixpkgs" Build Chaotic-Nyx's packages based on nyx's flake flakes or the system's pkgs.

Enum: one of "flake-nixpkgs", "user-pkgs"

Example: "user-pkgs"
chaotic.nyx.registry.enable true Whether to add Chaotic-Nyx to `nix.registry`.

Example: false

Notes

Our branches

:godmode: Our nyxpkgs-unstable branch is the one that's always cached.

:shipit: The main branch is the primary target for contribution.

Contributions

We do accept third-party authored PRs.

Upstream to nixpkgs

If you are interested in pushing any of these packages to the upstream nixpkgs, you have our blessing.

If one of our contributors is mentioned in the deveriation's mantainers list (in this repository) please keep it when pushing to nixpkgs. But, please, tag us on the PR so we can participate in the reviewing.

Forks and partial code-taking

You are free to use our code, or portions of our code, following the MIT license restrictions.

Suggestions

If you have any suggestion to enhance our packages, modules, or even the CI's codes, let us know through the GitHub repo's issues.

Building over the user's pkgs

For cache reasons, Chaotic-Nyx now defaults to always use nixpkgs as provider of its dependencies.

If you need to change this behavior, set chaotic.nyx.onTopOf = "user-pkgs";. Be warned that you mostly won't be able to benefit from our binary cache after this change.

You can also disable our overlay entirely by configuring chaotic.nyx.overlay.enable = false;.

CachyOS kernels

Even though we provide linuxPackages_cachyos-lto, we don't maintain the kernel modules in it. Nixpkgs, where the derivations originate from, doesn't provide kernels built with Clang. Consequentially, adding later support for all the kernel modules available in Nixpkgs wouldn't be easy. Presently, xone is the only one guaranteed to work, and ZFS is known to not work.

Other variations of linuxPackages_cachyos works without any issues. But, we don't build the ones in linuxPackages_cachyos-rc, they should work, but don't expect cache for them.

You may install the CachyOS kernel directly using the default modules and overlays with pkgs.linuxPackages_cachyos. Alternatively, use chaotic.legacyPackages.x86_64-linux.linuxPackages_cachyos if you would like to use the package directly without using modules and overlay

Why am I building a kernel? Basic cache troubleshooting

For starters, suppose you're using our linuxPackages_cachyos as the kernel and an up-to-date flake lock. Check if all these three hashes prompt the same:


╰─λ nix eval 'github:chaotic-cx/nyx/nyxpkgs-unstable#linuxPackages_cachyos.kernel.outPath'
"/nix/store/441qhriiz5fa4l3xvvjw3h4bps7xfk08-linux-6.8.7"

╰─λ nix eval 'chaotic#linuxPackages_cachyos.kernel.outPath'
"/nix/store/441qhriiz5fa4l3xvvjw3h4bps7xfk08-linux-6.8.7"

╰─λ nix eval '/etc/nixos#nixosConfigurations.{{HOSTNAME}}.config.boot.kernelPackages.kernel.outPath'
"/nix/store/441qhriiz5fa4l3xvvjw3h4bps7xfk08-linux-6.8.7"

If the second is different from the first, you're probably adding a inputs.nixpkgs.follows to chaotic, simply remove it.

If the third is different from the first, you're most likely using an overlay that's changing the kernel or one of its dependencies; check your nixpkgs.overlays config.


If they all match, and you're still rebuilding the kernel, copy the hash from the result above, then change it in the following curl command:


╰─λ curl -L 'https://chaotic-nyx.cachix.org/441qhriiz5fa4l3xvvjw3h4bps7xfk08.narinfo'
StorePath: /nix/store/441qhriiz5fa4l3xvvjw3h4bps7xfk08-linux-6.8.7
URL: nar/e5ccded34e4608448c49d3e9fdc92441cd564ae629a4b93fd3f8a334bca7c71d.nar.zst
Compression: zstd
FileHash: sha256:e5ccded34e4608448c49d3e9fdc92441cd564ae629a4b93fd3f8a334bca7c71d
FileSize: 172226528
NarHash: sha256:1v410bnc3qazxscwxvm80c40i0fxzp0amvp93y0y4x3kikdwz035
NarSize: 184989384
References:
Deriver: snb6mg44fflzp3vm5fh4ybxa5j4nlfa5-linux-6.8.7.drv
Sig: chaotic-nyx.cachix.org-1:L0D5GiJf/VEc1brcqYSB+vzYDDV6ZoDP59b+0mrX3bm2b5bbvtH3xOR4XEXy7QILYoIx2Pd64qWN+6okOMQZCA==

If the command above fails without an 404, then you have an issue with your internet connection. If it fails with 404, then tag pedrohlc (Matrix, Telegram or GitHub), he really broke the cache.

If the command succeeds, and you're still building the cache, it can happen because of two things: (1) you might have tried to fetch said package before we deployed, then Nix will cache the 404 and won't try again; (2) you might have a misconfigured /etc/nix/nix.conf or outdated nix-daemon.

For the second one, check if it looks like this (the word “chaotic” should appear three times):


╰─λ grep chaotic /etc/nix/nix.conf
substituters = https://nix-community.cachix.org/ https://chaotic-nyx.cachix.org/ https://cache.nixos.org/
trusted-public-keys = cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY= nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs= chaotic-nyx.cachix.org-1:HfnXSw4pj95iI/n17rIDy40agHj12WfF+Gqk6SonIT8

An outdated nix-daemon can happen when you change nix settings, then nixos-rebuilt your system, but you didn't restart the nix-daemon service. The easiest way to fix it is to reboot.

About this page

Generated for github:chaotic-cx/nyx/94fa4c38b919d150b095a3d1a628828e8324362e from (20250513012505Z).