Chaotic's Nyx

Six frogs with capes, aligned like the NixOS logo, with intercalated shades of green

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.



A news channel can be found on Telegram.

How to use it

On NixOS

We recommend integrating this repo using Flakes:

  description = "My configuration";

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

  outputs = { nixpkgs, chaotic, ... }: {
    nixosConfigurations = {
      hostname = nixpkgs.lib.nixosSystem {
        system = "x86_64-linux";
        modules = [
          ./configuration.nix # Your system configuration.
          chaotic.nixosModules.default # OUR DEFAULT MODULE

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

{ pkgs, ... }:
  environment.systemPackages = [ pkgs.input-leap-git ];
  chaotic.mesa-git.enable = true;

On Home-Manager

This method is for home-manager setups without NixOS.

We recommend integrating this repo using Flakes:

  description = "My configuration";

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

  outputs = { nixpkgs, chaotic, ... }: {
    homeConfigurations = {
      hostname = home-manager.lib.homeManagerConfiguration {
        pkgs = nixpkgs.legacyPackages.x86_64-linux;
        modules = [
          chaotic.homeManagerModules.default # OUR DEFAULT MODULE

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

{ pkgs, ... }:
  nix.package = pkgs.nix;
  home.packages = [ pkgs.input-leap-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' '' --option extra-trusted-public-keys "" (replace mymachine with your new host's name).

FlakeHub notes


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

  inputs.chaotic.url = "*.tar.gz";

Then follow one of the guides above.

Lists of options and packages

Built and cached against github:nixos/nixpkgs/57d6973abba7ea108bac64ae7629e7431e0199b6 (20240612024548Z).


alacritty_git unstable-20240608122851-64ba0b8 Cross-platform, GPU-accelerated terminal emulator
ananicy-cpp-rules unstable-20240610183105-8113203 CachyOS' ananicy-rules meant to be used with ananicy-cpp
applet-window-title 0.5 Plasma 6 applet that shows the application title and icon for active window
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
blurredwallpaper 3.0.1 Plasma 6 wallpaper plugin that blurs the wallpaper when a window is active
bpftools_full 6.8.12 Debugging/program analysis tools for the eBPF subsystem
busybox_appletless 1.36.1 Tiny versions of common UNIX utilities in a single small executable (without applets' symlinks)
bytecode-viewer_git unstable-20240413064922-4399f05 An advanced yet user friendly Java reverse engineering suite
conduwuit_git unstable-20240612210609-1f9225e Matrix homeserver written in Rust
discord-krisp 0.0.54 All-in-one cross-platform voice and text chat for gamers
distrobox_git unstable-20240613095409-9575b95 Wrapper around podman or docker to create and start containers
dr460nized-kde-theme unstable-20240603172255-3f250a4 The default Garuda dr460nized theme
droid-sans-mono-nerdfont 3.2.1 Provides "DroidSansM Nerd Font" font family.
extra-cmake-modules_git unstable-20240602122909-ad89593 Extra modules and scripts for CMake.
firedragon 11.13.0-1 Floorp fork build using custom branding & settings
firedragon-unwrapped 11.13.0-1 Floorp fork build using custom branding & settings
firefox-unwrapped_nightly 129.0a1 A web browser built from Firefox Nightly source tree
firefox_nightly 129.0a1 A web browser built from Firefox Nightly source tree
gamescope-wsi_git unstable-20240611014146-9badb5c SteamOS session compositing window manager
gamescope_git unstable-20240611014146-9badb5c SteamOS session compositing window manager
input-leap_git unstable-20240610191134-3ffbff2 Open-source KVM software
jovian-chaotic.linux_jovian 6.5.0-valve11 The Linux kernel (with patches: bridge-stp-helper, request-key-helper, export-rt-sched-migrate)
jovian-chaotic.mesa-radeonsi-jupiter 24.0.7 Open source 3D graphics library
jovian-chaotic.mesa-radv-jupiter 24.1.0.steamos-24.4.0 Open source 3D graphics library
jujutsu_git unstable-20240612001457-4cca845 Git-compatible DVCS that is both simple and powerful
kf6coreaddons_git unstable-20240611012331-02f310a Qt addon library with a collection of non-GUI utilities
latencyflex-vulkan unstable-2023-07-03 Vulkan Layer for LatencyFleX
libbpf_git unstable-20240606213909-42065ea Library for loading eBPF programs and reading and manipulating eBPF objects from user-space
libdrm32_git 7f20912 Direct Rendering Manager library and headers
libdrm_git 7f20912 Direct Rendering Manager library and headers
libportal_git unstable-20240509202544-26f96a1 Flatpak portal library
linuxPackages_cachyos 6.9.3+Cb08ba86+P0a20112 Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS with other patches and improvements
linuxPackages_cachyos-hardened 6.9.2+Cb08ba86+P0a20112 Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS with other patches and improvements
linuxPackages_cachyos-lto 6.9.3+Cb08ba86+P0a20112 Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS built with LLVM and Thin LTO
linuxPackages_cachyos-rc 6.10-rc2+Cb08ba86+P994b6d9 Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS with other patches and improvements
linuxPackages_cachyos-server 6.9.3+Cb08ba86+P0a20112 Kernel and modules for Linux EEVDF scheduler Kernel by CachyOS targeted for Servers
linux_cachyos-rc 6.10-rc2 The Linux kernel (with patches: 0001-cachyos-base-all.patch, 0001-Add-extra-version-CachyOS.patch)
luxtorpeda 70.0.0 Steam Play compatibility tool to run games using native Linux engines
mangohud32_git unstable-20240611130424-41b8761 Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
mangohud_git unstable-20240611130424-41b8761 Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more
mesa32_git fa6345 Open source 3D graphics library
mesa_git fa6345 Open source 3D graphics library
mpv-vapoursynth - General-purpose media player, fork of MPlayer and mplayer2 (includes vapoursynth)
niri_git unstable-20240610150751-22a948c Scrollable-tiling Wayland compositor
nix-flake-schemas_git unstable-20240311143851-d76e5fb Nix from the branch with flake-schemas
nordvpn 3.16.5 CLI client for NordVPN
nss_git unstable-20240612154235-e962c44 Set of libraries for development of security-enabled client and server applications
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.61.0 Open re-implementation of Medal of Honor: Allied Assault
openmohaa_git unstable-20240611214650-de02c86 Open re-implementation of Medal of Honor: Allied Assault
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
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_v3-core.acl 2.3.2 Library and tools for manipulating access control lists
pkgsx86_64_v3-core.attr 2.5.2 Library and tools for manipulating extended attributes
pkgsx86_64_v3-core.audit 3.1.2 Audit Library
pkgsx86_64_v3-core.bash 5.2p26 GNU Bourne-Again Shell, the de facto standard shell on Linux
pkgsx86_64_v3-core.binutils 2.41 Tools for manipulating binaries (linker, assembler, etc.) (wrapper script)
pkgsx86_64_v3-core.bison 3.8.2 Yacc-compatible parser generator
pkgsx86_64_v3-core.brotli 1.1.0 Generic-purpose lossless compression algorithm and tool
pkgsx86_64_v3-core.bzip2 1.0.8 High-quality data compression program
pkgsx86_64_v3-core.coreutils 9.5 GNU Core Utilities
pkgsx86_64_v3-core.cracklib 2.9.11 Library for checking the strength of passwords
pkgsx86_64_v3-core.cryptsetup 2.7.1 LUKS for dm-crypt
pkgsx86_64_v3-core.curl 8.7.1 Command line tool for transferring files with URL syntax
pkgsx86_64_v3-core.dash 0.5.12 POSIX-compliant implementation of /bin/sh that aims to be as small as possible
pkgsx86_64_v3-core.db 5.3.28 Berkeley DB
pkgsx86_64_v3-core.dbus 1.14.10 Simple interprocess messaging system
pkgsx86_64_v3-core.debugedit 5.0 Provides programs and scripts for creating debuginfo and source file distributions, collect build-ids and rewrite source paths in DWARF data for debugging, tracing and profiling
pkgsx86_64_v3-core.dialog 1.3-20231002 Display dialog boxes from shell
pkgsx86_64_v3-core.diffutils 3.10 Commands for showing the differences between files (diff, cmp, etc.)
pkgsx86_64_v3-core.elfutils 0.191 Set of utilities to handle ELF objects
pkgsx86_64_v3-core.expat 2.6.2 Stream-oriented XML parser library written in C
pkgsx86_64_v3-core.file 5.45 Program that shows the type of files
pkgsx86_64_v3-core.findutils 4.9.0 GNU Find Utilities, the basic directory searching utilities of the GNU operating system
pkgsx86_64_v3-core.flex 2.6.4 Fast lexical analyser generator
pkgsx86_64_v3-core.gawk 5.2.2 GNU implementation of the Awk programming language
pkgsx86_64_v3-core.gcc 13.2.0 GNU Compiler Collection, version 13.2.0 (wrapper script)
pkgsx86_64_v3-core.gdbm 1.23 GNU dbm key/value database library
pkgsx86_64_v3-core.gettext 0.21.1 Well integrated set of translation tools and documentation
pkgsx86_64_v3-core.glib 2.80.2 C library of programming buildings blocks
pkgsx86_64_v3-core.glibc 2.39 GNU C Library
pkgsx86_64_v3-core.gmp 6.3.0 GNU multiple precision arithmetic library
pkgsx86_64_v3-core.gnugrep 3.11 GNU implementation of the Unix grep command
pkgsx86_64_v3-core.gnumake 4.4.1 Tool to control the generation of non-source files from sources
pkgsx86_64_v3-core.gnused 4.9 GNU sed, a batch stream editor
pkgsx86_64_v3-core.gnutar 1.35 GNU implementation of the `tar' archiver
pkgsx86_64_v3-core.gnutls 3.8.5 GNU Transport Layer Security Library
pkgsx86_64_v3-core.gpgme 1.23.2 Library for making GnuPG easier to use
pkgsx86_64_v3-core.gpm unstable-2020-06-17 Daemon that provides mouse support on the Linux console
pkgsx86_64_v3-core.groff 1.23.0 GNU Troff, a typesetting package that reads plain text and produces formatted output
pkgsx86_64_v3-core.gsasl 2.2.1 GNU SASL, Simple Authentication and Security Layer library
pkgsx86_64_v3-core.guile 3.0.9 Embeddable Scheme implementation
pkgsx86_64_v3-core.gzip 1.13 GNU zip compression program
pkgsx86_64_v3-core.hwdata 0.382 Hardware Database, including Monitors, pci.ids, usb.ids, and video cards
pkgsx86_64_v3-core.iana-etc 20240318 IANA protocol and port number assignments (/etc/protocols and /etc/services) - Unicode and globalization support library
pkgsx86_64_v3-core.inetutils 2.5 Collection of common network programs
pkgsx86_64_v3-core.inih 58 Simple .INI file parser in C, good for embedded systems
pkgsx86_64_v3-core.iproute2 6.8.0 Collection of utilities for controlling TCP/IP networking and traffic control in Linux
pkgsx86_64_v3-core.iptables 1.8.10 Program to configure the Linux IP packet filtering ruleset
pkgsx86_64_v3-core.iputils 20240117 Set of small useful utilities for Linux networking
pkgsx86_64_v3-core.isl 0.20 Library for manipulating sets and relations of integer points bounded by linear constraints
pkgsx86_64_v3-core.jansson 2.14 C library for encoding, decoding and manipulating JSON data
pkgsx86_64_v3-core.jfsutils 1.1.15 IBM JFS utilities
pkgsx86_64_v3-core.json_c 0.17 JSON implementation in C
pkgsx86_64_v3-core.kbd 2.6.4 Linux keyboard tools and keyboard maps
pkgsx86_64_v3-core.keyutils 1.6.3 Tools used to control the Linux kernel key management system
pkgsx86_64_v3-core.kmod 31 Tools for loading and managing Linux kernel modules
pkgsx86_64_v3-core.krb5 1.21.2 MIT Kerberos 5
pkgsx86_64_v3-core.ldns 1.8.3 Library with the aim of simplifying DNS programming in C
pkgsx86_64_v3-core.lemon 1.69 LALR(1) parser generator
pkgsx86_64_v3-core.less 643 More advanced file pager than 'more'
pkgsx86_64_v3-core.libaio 0.3.113 Library for asynchronous I/O in Linux
pkgsx86_64_v3-core.libarchive 3.7.4 Multi-format archive and compression library
pkgsx86_64_v3-core.libargon2 20190702 Key derivation function that was selected as the winner of the Password Hashing Competition in July 2015
pkgsx86_64_v3-core.libcap 2.69 Library for working with POSIX capabilities
pkgsx86_64_v3-core.libedit 20230828-3.1 Port of the NetBSD Editline library (libedit)
pkgsx86_64_v3-core.libelf 0.8.13 ELF object file access library
pkgsx86_64_v3-core.libevent 2.1.12 Event notification library
pkgsx86_64_v3-core.libffi 3.4.6 Foreign function call interface library
pkgsx86_64_v3-core.libgcc 13.2.0 GNU Compiler Collection, version 13.2.0
pkgsx86_64_v3-core.libgccjit 13.2.0 GNU Compiler Collection, version 13.2.0
pkgsx86_64_v3-core.libgcrypt 1.10.3 General-purpose cryptographic library
pkgsx86_64_v3-core.libgpg-error 1.48 Small library that defines common error values for all GnuPG components
pkgsx86_64_v3-core.libgssglue 0.4 Exports a gssapi interface which calls other random gssapi libraries
pkgsx86_64_v3-core.libidn2 - Free software implementation of IDNA2008 and TR46
pkgsx86_64_v3-core.libksba 1.6.6 CMS and X.509 access library
pkgsx86_64_v3-core.libmicrohttpd 0.9.77 Embeddable HTTP server library
pkgsx86_64_v3-core.libmnl 1.0.5 Minimalistic user-space library oriented to Netlink developers
pkgsx86_64_v3-core.libmpc 1.3.1 Library for multiprecision complex arithmetic with exact rounding
pkgsx86_64_v3-core.libnetfilter_conntrack 1.0.9 Userspace library providing an API to the in-kernel connection tracking state table
pkgsx86_64_v3-core.libnfnetlink 1.0.2 Low-level library for netfilter related kernel/userspace communication
pkgsx86_64_v3-core.libnftnl 1.2.6 Userspace library providing a low-level netlink API to the in-kernel nf_tables subsystem
pkgsx86_64_v3-core.libnghttp2 1.61.0 HTTP/2 C library and tools
pkgsx86_64_v3-core.libnl 3.8.0 Linux Netlink interface library suite
pkgsx86_64_v3-core.libnsl 2.0.1 Client interface library for NIS(YP) and NIS+
pkgsx86_64_v3-core.libpcap 1.10.4 Packet Capture Library
pkgsx86_64_v3-core.libpipeline 1.5.7 C library for manipulating pipelines of subprocesses in a flexible and convenient way
pkgsx86_64_v3-core.libpsl 0.21.5 C library for the Publix Suffix List
pkgsx86_64_v3-core.libseccomp 2.5.5 High level library for the Linux Kernel seccomp filter
pkgsx86_64_v3-core.libsecret 0.21.4 Library for storing and retrieving passwords and other secrets
pkgsx86_64_v3-core.libssh2 1.11.0 Client-side C library implementing the SSH2 protocol
pkgsx86_64_v3-core.libtasn1 4.19.0 ASN.1 library
pkgsx86_64_v3-core.libtirpc 1.3.4 Transport-independent Sun RPC implementation (TI-RPC)
pkgsx86_64_v3-core.libtool 2.4.7 GNU Libtool, a generic library support script
pkgsx86_64_v3-core.libunistring 1.1 Unicode string library
pkgsx86_64_v3-core.libusb 1.0.27 cross-platform user-mode USB device library
pkgsx86_64_v3-core.libuv 1.48.0 Multi-platform support library with a focus on asynchronous I/O
pkgsx86_64_v3-core.libverto 0.3.2 Asynchronous event loop abstraction library
pkgsx86_64_v3-core.libxcrypt 4.4.36 Extended crypt library for descrypt, md5crypt, bcrypt, and others
pkgsx86_64_v3-core.libxml2 2.12.7 XML parsing library for C
pkgsx86_64_v3-core.links2 2.29 Small browser with some graphics support
pkgsx86_64_v3-core.logrotate 3.22.0 Rotates and compresses system logs
pkgsx86_64_v3-core.lz4 1.9.4 Extremely fast compression algorithm
pkgsx86_64_v3-core.lzo 2.10 Real-time data (de)compression library
pkgsx86_64_v3-core.m4 1.4.19 GNU M4, a macro processor 2.12.1 Implementation of the standard Unix documentation system accessed using the man command
pkgsx86_64_v3-core.mdadm 4.3 Programs for managing RAID arrays under Linux
pkgsx86_64_v3-core.minizip 1.3.1 Compression library implementing the deflate compression method found in gzip and PKZIP
pkgsx86_64_v3-core.mlocate 0.26 Merging locate is an utility to index and quickly search for files
pkgsx86_64_v3-core.mpfr 4.2.1 Library for multiple-precision floating-point arithmetic
pkgsx86_64_v3-core.ncurses 6.4 Free software emulation of curses in SVR4 and more
pkgsx86_64_v3-core.nettools 2.10 Set of tools for controlling the network subsystem in Linux
pkgsx86_64_v3-core.npth 1.7 New GNU Portable Threads Library
pkgsx86_64_v3-core.nspr 4.35 Netscape Portable Runtime, a platform-neutral API for system-level and libc-like functions
pkgsx86_64_v3-core.nss 3.90.2 Set of libraries for development of security-enabled client and server applications
pkgsx86_64_v3-core.openssl 3.0.13 Cryptographic library that implements the SSL and TLS protocols
pkgsx86_64_v3-core.p11-kit 0.25.3 Library for loading and sharing PKCS#11 modules
pkgsx86_64_v3-core.patch 2.7.6 GNU Patch, a program to apply differences to files
pkgsx86_64_v3-core.pciutils 3.12.0 Collection of programs for inspecting and manipulating configuration of PCI devices
pkgsx86_64_v3-core.pcre 8.45 Library for Perl Compatible Regular Expressions
pkgsx86_64_v3-core.pcre2 10.43 Perl Compatible Regular Expressions
pkgsx86_64_v3-core.perl 5.38.2 Standard implementation of the Perl 5 programming language
pkgsx86_64_v3-core.python3 3.11.9 High-level dynamically-typed programming language
pkgsx86_64_v3-core.readline 8.2p10 Library for interactive line editing
pkgsx86_64_v3-core.rpcbind 1.2.6 ONC RPC portmapper
pkgsx86_64_v3-core.sqlite 3.45.3 Self-contained, serverless, zero-configuration, transactional SQL database engine
pkgsx86_64_v3-core.texinfo 7.0.3 GNU documentation system
pkgsx86_64_v3-core.tzdata 2024a Database of current and historical time zones
pkgsx86_64_v3-core.util-linux 2.40.1 Set of system utilities for Linux
pkgsx86_64_v3-core.which 2.21 Shows the full path of (shell) commands
pkgsx86_64_v3-core.xz 5.4.6 General-purpose data compression software, successor of LZMA
pkgsx86_64_v3-core.zlib 1.3.1 Lossless data-compression library
pkgsx86_64_v3-core.zstd 1.5.6 Zstandard real-time compression algorithm
pkgsx86_64_v4 - Nixpkgs + Chaotic_nyx packages built for the x86-64-v4 microarchitecture.
plasma6-applet-window-buttons 0.11.1 Plasma 6 applet in order to show window buttons in your panels
proton-ge-custom 9.7 Compatibility tool for Steam Play based on Wine and additional components
qtile-extras_git Extra modules and widgets for the Qtile tiling window manager
qtile-module_git Small, flexible, scriptable tiling window manager written in Python
qtile_git Small, flexible, scriptable tiling window manager written in Python
river_git unstable-20240523142102-c5b1d1d Dynamic tiling wayland compositor
scx 0.1.10 sched_ext schedulers and tools
sdl_git unstable-20240613063616-bf27269 Cross-platform multimedia library
spirv-headers_git unstable-20240612154114-2acb319 Machine-readable components of the Khronos SPIR-V Registry
sway-unwrapped_git unstable-20240610143231-cc34210 I3-compatible tiling Wayland compositor
sway_git unstable-20240610143231-cc34210 I3-compatible tiling Wayland compositor
swaylock-plugin_git unstable-20240223235827-1dd15b6 Screen locker for Wayland
telegram-desktop_git unstable-20240607025727-6c0ea0e Telegram Desktop messaging app
tg-owt_git unstable-20231221162300-afd9d5d -
vulkanPackages_latest.gfxreconstruct 1.0.4 Graphics API Capture and Replay Tools
vulkanPackages_latest.glslang 14.2.0 Khronos reference front-end for GLSL and ESSL
vulkanPackages_latest.spirv-cross Tool designed for parsing and converting SPIR-V to other shader languages
vulkanPackages_latest.spirv-headers Machine-readable components of the Khronos SPIR-V Registry
vulkanPackages_latest.spirv-tools SPIR-V Tools project provides an API and commands for processing SPIR-V modules
vulkanPackages_latest.vulkan-extension-layer 1.3.287 Layers providing Vulkan features when native support is unavailable
vulkanPackages_latest.vulkan-headers 1.3.287 Vulkan Header files and API registry
vulkanPackages_latest.vulkan-loader 1.3.287 LunarG Vulkan loader
vulkanPackages_latest.vulkan-tools 1.3.287 Khronos official Vulkan Tools and Utilities
vulkanPackages_latest.vulkan-tools-lunarg LunarG Vulkan Tools and Utilities
vulkanPackages_latest.vulkan-utility-libraries 1.3.287 Set of utility libraries for Vulkan
vulkanPackages_latest.vulkan-validation-layers snapshot-2024wk23 Official Khronos Vulkan validation layers
vulkanPackages_latest.vulkan-volk Meta loader for Vulkan API
wayland-protocols_git 1.35 Wayland protocol extensions
wayland-scanner_git unstable-20240530190724-1d5772b Core Wayland window system code and protocol
wayland_git unstable-20240530190724-1d5772b Core Wayland window system code and protocol
waynergy_git unstable-20240425172827-7f014df Synergy client for Wayland compositors
wlroots_git unstable-20240612164025-213bd88 Modular Wayland compositor library
xdg-desktop-portal-wlr_git unstable-20240522135608-d9ada84 xdg-desktop-portal backend for wlroots
yt-dlp_git unstable-20240611230958-add96eb Command-line tool to download videos from and other sites (youtube-dl fork)
zed-editor_git unstable-20240601013615-94c3101 High-performance, multiplayer code editor from the creators of Atom and Tree-sitter
zfs_cachyos 2.2.4-unstable-2024-05-29 ZFS Filesystem Linux Userspace Tools

NixOS Options

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

Example: true
chaotic.duckdns.certs.enable false Whether to enable generate HTTPS cert via ACME/Let's Encrypt.
Example: true "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
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.

Example: false
chaotic.mesa-git.method "GBM_BACKENDS_PATH" There are three available methods to replace your video drivers system-wide:

  The default one that tricks any package linked against nixpkgs' libgbm to
  load our newer one;
- replaceRuntimeDependencies:
  The second most recommended, which impurely replaces nixpkgs' libgbm with
  ours in the nix store (requires "--impure");

Enum: one of "replaceRuntimeDependencies", "GBM_BACKENDS_PATH"

Example: "replaceRuntimeDependencies"
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.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.qtile.enable false Whether to enable a wayland-session package and a `start-qtile` binary for using with `services.xserver.windowManager.qtile` options.
Example: true
chaotic.scx.enable false Whether to enable scx service,
    a scheduler daemon with wide variety of
    scheduling algorithms, that can be used to
    improve system performance. Requires a kernel
    with the SCX patchset applied. Currently
    all cachyos kernels have this patchset applied.
Example: true
chaotic.scx.package pkgs.scx The scx package to use.
chaotic.scx.scheduler "scx_rustland" Which of the SCX's schedulers to use.

Enum: one of "scx_central", "scx_flatcg", "scx_lavd", "scx_layered", "scx_nest", "scx_pair", "scx_qmap", "scx_rlfifo", "scx_rustland", "scx_rusty", "scx_simple", "scx_userland"

Example: "scx_rusty"
chaotic.steam.extraCompatPackages [ ] Extra packages to be used as compatibility tools for Steam on Linux. Packages will be included
in the `STEAM_EXTRA_COMPAT_TOOLS_PATHS` environmental variable.

Example: with pkgs; [

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

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

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;

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"

Harder stuff

Some packages are harder to use, I'll go into details in the following paragraphs.

Using linux-cachyos with sched-ext

Since sched-ext patches have been added to linux-cachyos, you can just use that kernel.

First, add this to your configuration:

  boot.kernelPackages = pkgs.linuxPackages_cachyos;
  chaotic.scx.enable = true; # by default uses scx_rustland scheduler

Then, with the new kernel booted, check if the correct kernel booted:

╰─λ zgrep 'SCHED_CLASS' /proc/config.gz

If the scheduler is not working for some reason, you can manually start it 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.

  chaotic.scx.scheduler = "scx_rusty";

There are other scx_* binaries for you to play with, or head to for instructions on how to write one of your own.

Using qtile from git

  services.xserver.windowManager.qtile = {
    enable = true;
    backend = "wayland";
    package = pkgs.qtile-module_git;
    extraPackages = _pythonPackages: [ pkgs.qtile-extras_git ];
  # if you want a proper wayland+qtile session, and/or a "start-qtile" executable in PATH:
  chaotic.qtile.enable = true;


Our branches

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

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


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.


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;.

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 eval 'chaotic#linuxPackages_cachyos.kernel.outPath'

╰─λ nix eval '/etc/nixos#nixosConfigurations.{{HOSTNAME}}.config.boot.kernelPackages.kernel.outPath'

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 ''
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
Deriver: snb6mg44fflzp3vm5fh4ybxa5j4nlfa5-linux-6.8.7.drv

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 =
trusted-public-keys =

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.


The code in the devshells directory is used to automate our CIs and maintainence processes.

Build them all

To build all the packages and push their cache usptream, use:

nix develop . -c chaotic-nyx-build

This commands will properly skip already-known failures, evaluation failures, building failures, and even skip any chain of failures caused by internal-dependecies. It will also avoid to download what it's already in our cache and in the upstream nixpkgs' cache.

A list of what successfully built, failed to build, hashes of all failures, paths to push to cache and logs will be available at the /tmp/nix-shell.*/tmp.*/ directory. This directory can be specified with the NYX_WD envvar.

Check for evaluation differerences

You can compare a branch with another like this:

machine=$(uname -m)-linux

nix build --impure --expr \
  "(builtins.getFlake \"$A\").devShells.$machine.comparer.passthru.any \"$B\""

After running, you'll find all the derivations that changed in the result file.

Known failures

All the hashes that are known to produce build-time failures are kept in devshells/failures.nix.

Our builder produces a new-failures.nix that must be used to update this file in every PR.

Banished and rejected packages

There are none (so far).

About this page

Generated for github:chaotic-cx/nyx/edbd85ef842fad14b8fe26cad2067868674dcf8d from (20240613151510Z).