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.
A news channel can be found on Telegram.
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.lan-mouse_git ];
chaotic.mesa-git.enable = true;
}
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 = [
./home-manager/default.nix
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.lan-mouse_git ];
}
Besides using our module/overlay, you can run packages (without installing them) using:
nix run github:chaotic-cx/nyx/nyxpkgs-unstable#firefox_nightly
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).
Add chaotic to your flake.nix
, make sure to use the rolling *.tar.gz
to keep using the latest packages:
{
inputs.chaotic.url = "https://flakehub.com/f/chaotic-cx/nyx/*.tar.gz";
}
Then follow one of the guides above.
Built and cached against github:nixos/nixpkgs/5e4fbfb6b3de1aa2872b76d49fafc942626e2add
(20241115130734Z
).
Name | Version | Description |
---|---|---|
alacritty_git |
unstable-20241102214347-1063706 |
Cross-platform, GPU-accelerated terminal emulator https://github.com/alacritty/alacritty |
ananicy-rules-cachyos_git |
unstable-20241118140810-570fa95 |
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.11.8 |
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-20241018063434-5f8fd42 |
An advanced yet user friendly Java reverse engineering suite https://bytecodeviewer.com/ |
conduwuit_git |
unstable-20241025035102-16014e1 |
Matrix homeserver written in Rust, forked from conduit https://conduwuit.puppyirl.gay/ |
discord-krisp |
0.0.74 |
All-in-one cross-platform voice and text chat for gamers https://discordapp.com/ |
distrobox_git |
unstable-20241029141208-18053c2 |
Wrapper around podman or docker to create and start containers https://distrobox.it/ |
dr460nized-kde-theme |
unstable-20241118232010-744f3e1 |
The default Garuda dr460nized theme https://gitlab.com/garuda-linux/themes-and-settings/settings/garuda-dr460nized |
droid-sans-mono-nerdfont |
3.2.1 |
Provides "DroidSansM Nerd Font" font family. https://nerdfonts.com/ |
firedragon |
11.20.0-1 |
Floorp fork build using custom branding & settings https://firedragon.garudalinux.org |
firedragon-unwrapped |
11.20.0-1 |
Floorp fork build using custom branding & settings https://firedragon.garudalinux.org |
firefox-unwrapped_nightly |
133.0a1 |
A web browser built from Firefox Nightly source tree http://www.mozilla.com/en-US/firefox/ |
firefox_nightly |
133.0a1 |
A web browser built from Firefox Nightly source tree http://www.mozilla.com/en-US/firefox/ |
gamescope-wsi32_git |
unstable-20241029234350-7dd1bcd |
SteamOS session compositing window manager https://github.com/ValveSoftware/gamescope |
gamescope-wsi_git |
unstable-20241029234350-7dd1bcd |
SteamOS session compositing window manager https://github.com/ValveSoftware/gamescope |
gamescope_git |
unstable-20241029234350-7dd1bcd |
SteamOS session compositing window manager https://github.com/ValveSoftware/gamescope |
jovian-chaotic.linux_jovian |
6.8.12-valve7 |
The Linux kernel (with patches: bridge-stp-helper, request-key-helper, export-rt-sched-migrate) https://www.kernel.org/ |
jovian-chaotic.mesa-radeonsi-jupiter |
24.2.6 |
Open source 3D graphics library https://www.mesa3d.org/ |
jovian-chaotic.mesa-radv-jupiter |
24.3.0.steamos-24.11.1 |
- |
jujutsu_git |
unstable-20241119135752-173c11c |
Git-compatible DVCS that is both simple and powerful https://github.com/martinvonz/jj |
lan-mouse_git |
unstable-20241110143856-31366f4 |
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-20241119060009-bfc9770 |
Library for loading eBPF programs and reading and manipulating eBPF objects from user-space https://github.com/libbpf/libbpf |
libdrm32_git |
f314a43 |
Direct Rendering Manager library and headers https://gitlab.freedesktop.org/mesa/drm |
libdrm_git |
f314a43 |
Direct Rendering Manager library and headers https://gitlab.freedesktop.org/mesa/drm |
libportal_git |
unstable-20241030115452-c6eb27b |
Flatpak portal library https://github.com/flatpak/libportal |
linuxPackages_cachyos |
6.12.0+C503f483+P9884b05 |
Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS with other patches and improvements |
linuxPackages_cachyos-hardened |
6.11.7+C650e285+Pa67f3e9 |
Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS with other patches and improvements |
linuxPackages_cachyos-lto |
6.12.0+C503f483+P9884b05 |
Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS built with LLVM and Thin LTO |
linuxPackages_cachyos-rc |
6.12-rc7+Cb173616+P1ef4dcb |
Kernel and modules for Linux EEVDF-BORE scheduler Kernel by CachyOS with other patches and improvements |
linuxPackages_cachyos-server |
6.12.0+C503f483+P9884b05 |
Kernel and modules for Linux EEVDF scheduler Kernel by CachyOS targeted for Servers |
linux_cachyos-rc |
6.12-rc7 |
The Linux kernel (with patches: 0001-cachyos-base-all.patch) https://www.kernel.org/ |
luxtorpeda |
71.0.0 |
Steam Play compatibility tool to run games using native Linux engines https://github.com/luxtorpeda-dev/luxtorpeda |
mangohud32_git |
unstable-20241117083644-a109f0b |
Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more https://github.com/flightlessmango/MangoHud |
mangohud_git |
unstable-20241117083644-a109f0b |
Vulkan and OpenGL overlay for monitoring FPS, temperatures, CPU/GPU load and more https://github.com/flightlessmango/MangoHud |
mesa32_git |
86795a |
Open source 3D graphics library https://www.mesa3d.org/ |
mesa_git |
86795a |
Open source 3D graphics library https://www.mesa3d.org/ |
mpv-vapoursynth |
- |
General-purpose media player, fork of MPlayer and mplayer2 (includes vapoursynth) https://mpv.io |
niri_git |
unstable-20241114090530-1a0612c |
Scrollable-tiling Wayland compositor https://github.com/YaLTeR/niri |
nix-flake-schemas_git |
unstable-20240712141454-e1ed2d1 |
Nix from the branch with flake-schemas https://determinate.systems/posts/flake-schemas |
nix-top_abandoned |
0.3.0 |
Tracks what nix is building https://github.com/samueldr/nix-top |
nordvpn |
3.16.5 |
CLI client for NordVPN https://www.nordvpn.com |
nss_git |
unstable-20241031145424-88b4b72 |
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-20241117123639-b624145 |
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.70.0 |
Open re-implementation of Medal of Honor: Allied Assault https://github.com/openmoh/openmohaa |
openmohaa_git |
unstable-20241118210358-acb08b8 |
Open re-implementation of Medal of Honor: Allied Assault https://github.com/openmoh/openmohaa |
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. |
plasma6-applet-window-buttons |
0.13.0 |
Plasma 6 applet in order to show window buttons in your panels https://github.com/moodyhunter/applet-window-buttons6 |
proton-ge-custom |
9.20 |
Compatibility tool for Steam Play based on Wine and additional components https://github.com/GloriousEggroll/proton-ge-custom |
pwvucontrol_git |
unstable-20241103195742-8ca9b40 |
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-20241108235620-a2a5e8f |
Dynamic tiling wayland compositor https://codeberg.org/river/river |
scx_git.bpfland |
unstable-20241102152003-20c0372 |
Sched-ext Rust userspace scheduler https://github.com/sched-ext/scx |
scx_git.cscheds |
unstable-20241102152003-20c0372 |
Sched-ext C userspace schedulers https://github.com/sched-ext/scx |
scx_git.full |
unstable-20241102152003-20c0372 |
Sched-ext C and Rust userspace schedulers https://github.com/sched-ext/scx |
scx_git.lavd |
unstable-20241102152003-20c0372 |
Sched-ext Rust userspace scheduler https://github.com/sched-ext/scx |
scx_git.layered |
unstable-20241102152003-20c0372 |
Sched-ext Rust userspace scheduler https://github.com/sched-ext/scx |
scx_git.rlfifo |
unstable-20241102152003-20c0372 |
Sched-ext Rust userspace scheduler https://github.com/sched-ext/scx |
scx_git.rustland |
unstable-20241102152003-20c0372 |
Sched-ext Rust userspace scheduler https://github.com/sched-ext/scx |
scx_git.rusty |
unstable-20241102152003-20c0372 |
Sched-ext Rust userspace scheduler https://github.com/sched-ext/scx |
sdl_git |
unstable-20241119053623-7a074f5 |
Cross-platform multimedia library http://www.libsdl.org/ |
spirv-headers_git |
unstable-20241113201233-45b3140 |
Machine-readable components of the Khronos SPIR-V Registry https://github.com/KhronosGroup/SPIRV-Headers |
sway-unwrapped_git |
unstable-20241117210335-5312376 |
I3-compatible tiling Wayland compositor https://swaywm.org |
sway_git |
unstable-20241117210335-5312376 |
I3-compatible tiling Wayland compositor https://swaywm.org |
swaylock-plugin_git |
unstable-20241118224421-c112872 |
Screen locker for Wayland https://github.com/swaywm/swaylock |
telegram-desktop-unwrapped_git |
unstable-20241119103215-c04f68f |
Telegram Desktop messaging app https://desktop.telegram.org/ |
telegram-desktop_git |
unstable-20241119103215-c04f68f |
Telegram Desktop messaging app https://desktop.telegram.org/ |
tg-owt_git |
unstable-20241116052729-3008950 |
Fork of Google's webrtc library for telegram-desktop https://github.com/desktop-app/tg_owt |
torzu_git |
unstable-20241115-bb142c9 |
The TOR branch of an experimental Nintendo Switch emulator written in C++ http://vub63vv26q6v27xzv2dtcd25xumubshogm67yrpaz2rculqxs7jlfqad.onion/torzu-emu/torzu |
vulkanPackages_latest.gfxreconstruct |
1.3.296.0 |
Graphics API Capture and Replay Tools https://github.com/LunarG/gfxreconstruct/ |
vulkanPackages_latest.glslang |
15.0.0 |
Khronos reference front-end for GLSL and ESSL https://github.com/KhronosGroup/glslang |
vulkanPackages_latest.spirv-cross |
1.3.296.0 |
Tool designed for parsing and converting SPIR-V to other shader languages https://github.com/KhronosGroup/SPIRV-Cross |
vulkanPackages_latest.spirv-headers |
unstable-20241023-22c4d1b |
Machine-readable components of the Khronos SPIR-V Registry https://github.com/KhronosGroup/SPIRV-Headers |
vulkanPackages_latest.spirv-tools |
unstable-20241024-ce92630 |
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.3.300 |
Layers providing Vulkan features when native support is unavailable https://github.com/KhronosGroup/Vulkan-ExtensionLayer/ |
vulkanPackages_latest.vulkan-headers |
1.3.301 |
Vulkan Header files and API registry https://www.lunarg.com |
vulkanPackages_latest.vulkan-loader |
1.3.301 |
LunarG Vulkan loader https://www.lunarg.com |
vulkanPackages_latest.vulkan-tools |
1.3.301 |
Khronos official Vulkan Tools and Utilities https://github.com/KhronosGroup/Vulkan-Tools |
vulkanPackages_latest.vulkan-tools-lunarg |
1.3.298 |
LunarG Vulkan Tools and Utilities https://github.com/LunarG/VulkanTools |
vulkanPackages_latest.vulkan-utility-libraries |
1.3.301 |
Set of utility libraries for Vulkan https://github.com/KhronosGroup/Vulkan-Utility-Libraries |
vulkanPackages_latest.vulkan-validation-layers |
1.3.301 |
Official Khronos Vulkan validation layers https://github.com/KhronosGroup/Vulkan-ValidationLayers |
vulkanPackages_latest.vulkan-volk |
1.3.296.0 |
Meta loader for Vulkan API https://github.com/zeux/volk |
wayland-protocols_git |
unstable-20241107214715-fe3d544 |
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-20241118092520-10df74c |
Core Wayland window system code and protocol https://wayland.freedesktop.org/ |
wlroots_git |
unstable-20241116190501-f233d25 |
Modular Wayland compositor library https://gitlab.freedesktop.org/wlroots/wlroots/ |
xdg-desktop-portal-wlr_git |
unstable-20240522135608-d9ada84 |
xdg-desktop-portal backend for wlroots https://github.com/emersion/xdg-desktop-portal-wlr |
yt-dlp_git |
unstable-20241118054505-f919729 |
Command-line tool to download videos from YouTube.com and other sites (youtube-dl fork) https://github.com/yt-dlp/yt-dlp/ |
zed-editor_git |
unstable-20241119152312-6a2c712 |
High-performance, multiplayer code editor from the creators of Atom and Tree-sitter https://zed.dev |
zfs_cachyos |
2.3.0-rc3 |
ZFS Filesystem Linux Userspace Tools https://github.com/openzfs/zfs |
Key | Default | Description |
---|---|---|
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 |
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.method |
"GBM_BACKENDS_PATH" |
There are three available methods to replace your video drivers system-wide: - GBM_BACKENDS_PATH: 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. |
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.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.scheduler |
The scx.scheduler package to use. |
chaotic.scx.scheduler |
"scx_rustland" |
Which of the SCX's schedulers to use. Enum: one of "scx_bpfland", "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.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" |
Key | Default | Description |
---|---|---|
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: { |
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" |
Some packages are harder to use, I'll go into details in the following paragraphs.
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
CONFIG_SCHED_CLASS_EXT=y
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 github.com/sched-ext/scx for instructions on how to write one of your own.
: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.
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.
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.
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;
.
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.
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.
Generated for github:chaotic-cx/nyx/d3ec352824dbec68aa0c17851f7424fdc735ecc4
from (20241119201312Z
).