Introduction

Prior to my current installation on my Lenovo Legion 5i Pro and Dell G5, I had installed CachyOS sometime in 2024 on my secondary laptop, the Dell G5. I used it without any problems until an issue affecting Fedora and Arch based distributions with respect to resuming from sleep caused by to uninstall it.

Now that CachyOS has developed a reputation for high performance, I decided to try it again on the Legion. I was generally happy with the distribution initially, but was disappointed and frustrated by some of the choices made by the developers. Having resolved the issues I care about and having forgotten these issues since installing CachyOS over two months ago I have been happy with it, so much so I also installed it on the Dell G5.

Below are a review summary for readers not interested in the details, my recommendation, the review, and some fixes and enhancements to consider. For a basic benchmark comparison of the various CachyOS optimized kernels, see also A Benchmark Comparison of CachyOS's Performance Optimized Kernels.

Review Summary

For readers without the time to read the full review, here is a summary.

  • CachyOS uses a modified Calamares installer which includes two additional components, one to select from eighteen desktop environments and another to select or deselect from packages to be made available in the final installed system.
  • The installer also allows users to select from four firmware boot managers: systemd-boot, rEFInd, Limine, and GRUB, which is the most robust choice for installations on a Btrfs
  • The installer is buggy when attempting to reuse an existing Btrfs partition by overwriting it with the installation. In this scenario it allows specifying opotions for the installation, but during the actual installation fails with an error. It is necessary to make free space on target disks, reboot, then make partitions in the installer for the installation.
  • The default filesystem for the installation is Btrfs with a simple subvolume layout -- compared to openSUSE's. Snapper is integrated for system snapshots and rollbacks.
  • Automatic snapshot creation during package management transactions is integrated through the snap-pac package.
  • GRUB is integrated with Btrfs and Snapper via the grub-btrfs package providing additional items in the GRUB menu for selecting snapshots into which to boot.
  • The Btrfs Assistant GUI application is preinstalled for managing snpashots and the Btrfs filesystem.
  • Some packages and pre-configuration is missing for complete out-of-the-box functionality and maintainability of the Btrfs/Snapper system. Specifically, the optional package btrfsmaintenance which provides Btrfs maintenance scripts and systemd units for automatically, periodically running these scripts, and is optionally required for Btrfs Assistant to run these scripts is not installed automatically.
  • CachyOS optimizes software performance by custom compiling packages for processor features by processor level, a characteristic that serves to group generations of CPU architectures which share the same architectural features. Packages are also optimized during compilation/build by the LTO technique. Core packages are further optimized by PGO and BOLT
  • The distribution offers multiple kernels with various optimizations and CPU process schedulers. Some kernel variants are optimized with LTO. For both LTO and non-LTO optimzed kernels, multiple variants with different CPU process schedulers are available. The default kernel is optimized with LTO and uses the new (since Linux 6.12) default process scheduler EEVDF.
  • The default login shell is fish. It features an impressive -- visually and functinally -- autosuggestion and autocompletion capability fzf type display. If switching to zsh, CachyOS's configuration includes the oh-my-zsh configuration framework and the powerlevel10k interactive tool for customizing the prompt.
  • The only major problem I had with CachyOS, besides the installer issue mentioned above, involved the Nvidia packages and related tools.
    • the distribution selected the Nvidia open packages for installation on the Lenovo Legion 5i Pro, but strangely, selected the proprietary Nvidia driver package for the Dell G5
    • CachyOS does not offer any pre-built Nvidia proprietary driver packages for any of its kernels, relying instead on DKMS module packages
    • CachyOs's tool for managing driver kernel modules, CachyOS Hardware Detection Daemon and its CLI chwd do not have profiles for installing the proprietary Nvidia drivers, again only the open drivers, making it unusable to switch from the open to proprietary drivers.
  • A Cosmic DE installation on the Dell G5 could not use an external screen, but installing Plasma is able to use the screen. Other distributinos on the same laptop, such as Ultramarine and Arch do not have this problem.
  • A Wacom graphics tablet could not be detected by CachyOS, while a Siduction installation had no such problem.

Recommendation

I highly recommend CachyOS. It is built on top of the best distribution available at this time, in my opinion, Arch. CachyOS provides an easy installation of an Arch based system on a Btrfs filesystem with Snapper, GRUB, and pacman integration. It also adds value with numerous performance optimizations, and the choice of optimized kernels with various CPU process schedulers.

Besides these I features, I also recommend it for its reliability, the Wacom issue on the Legion and Cosmic DE problem on the G5 notwithstanding. Of the current set of distributions on my multi-booting Lenovo Legion 5i Pro (openSUSE Tumbleweed, Ultramarine, Siduction, Arch and CachyOS), CachyOS and Arch are the only distributions in which the ability to hibernate has not suddenly stopped working.

Review

Pre-Installation Experience

The pre-installation experience, mostly centered around website resources concerning downloading the installation medium and verifying the downloaded ISO, is better than most on CachyOS. the signatures and checksums for verifying download integrity and authenticity, as well as instructions on performing the verification are easy to find on the CachyOS website. The following set of images show the main link to the downloads page (Image 1) and the download dropdown menu (Image 2).

Download

The initial download link, which takes users to another page where the actual download links are located -- one for desktops, and another for handheld gaming devices -- is prominent on the distribution's website's main page. The download link on the second download page is a dropdown with alternative download sources as well as the ISO signature file and ISO checksum and signature files.


ISO Verification

Two of the three items necessary for verification of the ISO, the ISO SHA256 checksum (cachyos-desktop-linux-260308.iso.sha256) and the ISO GPG signature (cachyos-desktop-linux-260308.iso.sig)files, are downloadable from the same dropdown menu as that contains the download links. Instructions for obtaining the third item, the distribution's ISO signing public key, are included with the instructions for the verification on the CachyOS wiki.

The aspect of the pre-installation experience that could possibly be improved is finding the page in the wiki that contains the verification instructions. (Incidentally, the best experience in this regard is the Mageia download page which provides all of the necessary instructions in a pop-up once the download link is activated.)The main menu bar of the website opens the main page of the wiki. From this page the most likely link for finding verification instructions is the card labeled "Installation Guide", but this only takes the user to CachyOS Installation Desktop/Laptop general installation considerations. Finding the verification instructions requires navigating to the page from the contents sidebar.


Live ISO Environment

Booting the CachyOS 2600308 Live ISO will bring up a very basic GRUB menu, unlike the extremely polished and aesthetically pleasing GRUB menu of the installed system. Although unstyled, it does give choices some choices in kernel and kernel command line option combinations, giving users the highest chance of being able to boot the environment on their system, regardless of age or graphics hardware.

The menu offers the choice of booting into the default CachyOS kernel, the CachyOS LTS kernel, or into the default Cachy OS kernel with nomodeset added to the kernel command line. The menu also allows users to run a RAM test, launch the UEFI shell, or enter the computer's UEFI settings interface.

The CachyOS Live ISO Boot Menu
Amongst other items, the menu offers a choice of an environment that uses the standard CachyOS kernel, an LTS kernel, or the standard kernel with the nomodeset kernel command line option set.

After selecting one of the kernel options (in my case, the default option for both the Dell G5 and the Lenovo Legion Pro), the Plasma Desktop is presented with the distribution's welcome application, CachyOS Hello, automatically launched. The welcome application has links to various CachyOS resources such as, among others, release information, the distribution's wiki and, its forum. Most notable is the link to its online package browser, shown in the fourth image of the following set.

CachyOS Hello

The live ISO environment contains only the minimum set of applications to be useful during installation. It includes both GParted and KDE Partition Manager to manage partitions outside of the installation program, Firefox for getting information from the internet, and of course, Konsole, KDE's terminal program.


Installer/Installation

CachyOS uses the Calamares installer, as do many distributions. Cachy's implementation, however, includes three interesting capabilities not found in many distributions:

  • choice of eighteen desktop environments (or no desktop environment) for the installed system in a well made implementation in the installer component featuring previews and descriptions
  • selection/desection of important packages to be made available in the installed system as part of the OS installation process
  • choice of bootloader from systemd-boot, rEFInd, Limine, and GRUB

The package selection screen allows users to select from a set of packages to be included in the final installed system. It is something not found in most distribution's installers, but openSUSE's installer does have a similar feature that allows installation of any package available in its repositories.

The CachyOS Installer's Package Selection Screen
The installer allows users to select packages from a limited set of important programs organized in categories to be installed as part of the OS installation.

The desktop environment selection screen allows users to select one of eighteen desktop environments for the final installed system. Users can select from the major, mature, and popular desktop environments with stacking environments -- GNOME, Plasma, the less popular Xfce and Cinnamon, among others, the new and trendy Cosmic, from one of six tiling managers, or the scrolling and tiling Niri window manager.

In addition to the sheer number of items available for selection, this component of the installer provides a preview of the desktop environments -- for some of the available desktop environments, the preview is even a video (or GIF) preview. This component of the interface is shown in the following set of images with, each of which shows the preview displayed for the selected dekstop environment.

The CachyOS Installer Desktop Environment Selection Screen and DE Previews
The installer allows users to specify the desktop environment to be available on the system.

Despite the additions made to Calamares in terms of the choice of desktops and customization of the final system with desired packages during installation, the installer was not without what may characterize as serious problems, or at least major inconveniences, that will cause some users frustration and repeated installation attempts. The installer:

  • was buggy when attempting to reuse existing Btrfs partitions, even if deleting them and creating partitions in the installer's partitioning tool
  • complained of a 510MB EFI System Partition too small. A minimum size of 512MB is required.

During my first installation attempt, I simply selected an existing Btrfs partition that contained the root filesystem and subvolumes of the Garuda instance I chose to overwrite. The installer allowed me to make all of the configuration choices in the various screens of its interface and proceed with the installation, but failed to complete the installation at a later stage. After numerous attempts one of which involved recreating a Btrfs partition in KDE Partition Manager, rebooting the live ISO environment and restarting the installer, I deleted the existing partition, rebooted the system, started the installer, and created a partition within the installer from the new free space on the disk. Although it is true that the mkfs.btrfs program does not allow the overwrite of an existing filesystem, possibly the reason for the installation failure, it does have a -f option to force an overwrite. Perhaps CachyOS can modify the installer to use this option or implement a similar capability to allow the reuse of an existing Btrfs partition after user notification.

Desktop Environtments

As we saw above, one of the notable features of CachyOS is that the installer allows users to choose a desktop environment to make available in the final installed system.

Desktop Environemmnt Choices

The CachyOS Installer's Desktop Environment Selection Screen
The installer allows users to choose from eighteen desktop environments or window managers, or no desktop.

Theme and Settings

CauchyOS's Plasma visual experience is that of upstream Plasma with the default wallpaper, Plasmashell layout, and Plasma global theme (Breeze). It does however, provide its own custome global theme named CachyOSNord. Along with the colorscheme that corresponds to the global theme, it provides an additional colorscheme called CachyOSNordLightly although the Lightly application style is not included in the Application Styles section of Plasma appearance settings.

The CachyOSNord Global Theme
Along with the color scheme associated with this global theme, a similar color scheme is available called CachyOSNordLightly, although the Lightly application style is not listed in the Application Styles section of the appearance settings.

The terminal colorscheme, whcih some may consider an important part of the overall visual experience, does not match either the default Konsole theme nor the colors of the custom CachyOS Plasma colors.

The Default Appearacnce of Konsole in CachyOS Plasma

Btrfs

The CachyOS installation is on a Btrfs filesystem by default, with a usable subvolume layout created during installation. This is in contrast to what is done by some distributions that install on Btrfs filesystem, namely creating a Btrfs filesystem without making a subvolume layout, which consists of a set of subvolumes under the top level default subvolume that is automatically created by the filesystem creation utility. This set of additional subvolumes below the top level subvolume should inlcude one subvolume that is mounted at / for all parts of the root filesystem hierarchy that are to be included in snapshots, and one subvlolume for each part of the filesystem hierarchy that should not be included in snapshots; these subvolumes are mounted at their respective paths. These other distributions do not make the subvolume layout and simply install the OS on the top level subvolume.

The subvolume layout created by CachyOS is shown below as an output of

btrfs subvolume list /

CachyOS's Subvolume Layout

Subvolumes are created under the top level default subvolume (subvolume ID 5) in a flat layout, unlike openSUSE's -- the Btrfs pioneer -- hierarchical layout. The @ (subvolume ID 256) subvolume is mounted at / and a subvolume for Snapper snapshots named .snapshots is created during creation of the Snapper configuration in its standard location under subvolume mounted at / -- in this case the @ subvolume.

❯ sudo btrfs subvolume list /
[sudo] password for brook: 
ID 256 gen 3167 top level 5 path @
ID 257 gen 1509 top level 5 path @root
ID 258 gen 28 top level 5 path @srv
ID 259 gen 3135 top level 5 path @cache
ID 260 gen 3155 top level 5 path @tmp
ID 261 gen 3165 top level 5 path @log
ID 262 gen 2946 top level 256 path .snapshots
ID 331 gen 1008 top level 256 path var/lib/portables
ID 332 gen 1008 top level 256 path var/lib/machines
ID 361 gen 1307 top level 262 path .snapshots/95/snapshot
... excised ...
ID 386 gen 2862 top level 262 path .snapshots/120/snapshot
  

Snapper

CachyOS also confiures Snapper for snaphots and rollbacks of the / filesystem hierarchy not separated into separate subvolumes. All of the associated features provided by various tools are also configured out-of-the-box.

Snapper/pacman Integration

Snapper and pacman are integrated through snap-pac package, which automates the creation of Pre and Post snapshots during package managment transactions with pacman. The image below shows the Snapper snapshots created and remaining after automatic cleanup in six days of usage. It is apparent from the "Description" column of the output that the pre and post snapshots, according to the "Type" column of the output, are created during pacman transactions. The "pre" snapshot description lists the actual command used during the transaction and the "post" snapshot, simply lists the packages.

The Output of snapper list
The number and types of snapshots in the list is affected by the enablement of certain systemd timers affecting cleanup and creation of snapshots that are independent of package transactions.

Btrfs/Snapper/GRUB Integration

CachyOS also configures the GRUB menu to allow selection of read-only bootable snapshots. This capability is provided by the grub-btrfs, which adds a menu item in the main GRUB submenu to list available read-only Snapper Btrfs snapshots. Selecting a snapshot allows users to further select from kernel images available in the snapshot. The following set of images shows the menu, which incidentally has a very nice theme in my opinion.


Periodic and Boot Automatic Snapshot Creation

CachyOS does not enable the systemd timers for automatic perioidic or boot-time snapshot creation or periodic snapshot cleanup. The timers shown in the following listing must be enabled by the user.

❯ sudo systemctl status snapper-*.timer
[sudo] password for brook: 
● snapper-boot.timer - Take snapper snapshot of root on boot
Loaded: loaded (/usr/lib/systemd/system/snapper-boot.timer; enabled; preset: disabled)
Active: active (elapsed) since Sun 2026-04-12 15:14:10 EDT; 2h 44min ago
Invocation: 03a889929b7d4d44bd8eb97471f163bb
Trigger: n/a
Triggers: ● snapper-boot.service

Apr 12 15:14:10 cachyos-16ith6 systemd[1]: Started Take snapper snapshot of root on boot.

● snapper-cleanup.timer - Hourly Cleanup of Snapper Snapshots
Loaded: loaded (/usr/lib/systemd/system/snapper-cleanup.timer; enabled; preset: disabled)
Active: active (waiting) since Sun 2026-04-12 15:14:10 EDT; 2h 44min ago
Invocation: e0a90368d7784bd38d69ea215fa25d3a
Trigger: Sun 2026-04-12 18:28:15 EDT; 29min left
Triggers: ● snapper-cleanup.service
Docs: man:snapper(8)
man:snapper-configs(5)

Apr 12 15:14:10 cachyos-16ith6 systemd[1]: Started Hourly Cleanup of Snapper Snapshots.

● snapper-timeline.timer - Timeline of Snapper Snapshots
Loaded: loaded (/usr/lib/systemd/system/snapper-timeline.timer; enabled; preset: disabled)
Active: active (waiting) since Sun 2026-04-12 15:14:10 EDT; 2h 44min ago
Invocation: b1d010a679504eacb02a05d95eb6fd37
Trigger: Sun 2026-04-12 18:00:00 EDT; 1min 8s left
Triggers: ● snapper-timeline.service
Docs: man:snapper(8)
man:snapper-configs(5)

Apr 12 15:14:10 cachyos-16ith6 systemd[1]: Started Timeline of Snapper Snapshots.
  

Btrfs Assistant

The distribution installs the Btrfs Assistant GUI application for maintaining the Btrfs filesystem and maintaining snapshots by directly using btrfs-progs commands as opposed to using Snapper commands. I would prefer using Snapper commands directly instead, but the application works and is useful as an alternative to editing the Snapper configuration in an editor, for enabling automatic periodic maintenance commands provided by Btrfs, and setting up periodic snapshot creation and cleanup through systemd timers.

alt text
The Snapper Configuration File and Btrfs Assistant

The automation of the btrfs balance command is especially usefult to avoid the sutuation described in Not Enough Space on Btrfs Filesystem Due to Exhausted Metadata Block Group Allocation.

btrfsmaintenance

Unfortunately, the Btrfs maintenance commands require the optional dependency package, btrfsmaintenance, which CachyOS does not install by default.

alt text
The Btrfs Maintenance Scripts and systemd Units Provided by the btrfsmaintenance Package

Installation of the package and enablement of the systemd timers to periodically run btrfs balance and btrfs scrub and other commands the package also provides is discussed in Fixes and Enhancements, below. (The btrfs balance command is especially useful with mirrored disks or partitions to magically repair corrupted files.)

CachyOS Performance Optimizations

Of course, the standout feature of CachyOS, one of the reasons it is getting some attention -- especially from gamers -- is its focus on performance. In creating the distribution, it does two major things in order to optimize performance: it compiles packages for specific generations of the x86_64 processor architecture and it provides a variety of tuned process schedulers coupled with kernels that are themselves optimized during compilation with various compilation/build process techniques.

In the distribution's own words:

Every package is compiled with x86-64-v3, x86-64-v4, and Zen4 instruction sets plus LTO. Core packages receive additional PGO and BOLT optimization — no manual rebuilds required.

In addition, the

linux-cachyos kernel ships with a tuned scheduler for responsive interactivity, plus options for BORE, sched-ext, BMQ, and RT. All kernel builds are CPU-optimized with x86-64-v3/v4, Zen4 and LTO.

Processor Specific Packages

CachyOS, compiles packages specifically for each of the microprocessor architecture feature levels, x86-64-v3, x86-64-v4, defined collaboratively by AMD, Intel, Red Hat, and SUSE. Each of these levels is successively more recent with improvements in and added features compared to the previous level. The processor level can be determined from the last few lines of output of the command:

sudo /lib64/ld-linux-x86-64.so.2 --help

as shown in the following listing produced on the Lenovo Legion 5i Pro.

❯ sudo /lib64/ld-linux-x86-64.so.2 --help
Usage: /lib64/ld-linux-x86-64.so.2 [OPTION]... EXECUTABLE-FILE [ARGS-FOR-PROGRAM...]
You have invoked 'ld.so', the program interpreter for dynamically-linked
ELF programs.  Usually, the program interpreter is invoked automatically
when a dynamically-linked executable is started.

... excised ...

This program interpreter self-identifies as: /usr/lib/ld-linux-x86-64.so.2

Shared library search path:
(libraries located via /etc/ld.so.cache)
/usr/lib (system search path)

Subdirectories of glibc-hwcaps directories, in priority order:
x86-64-v4 (supported, searched)
x86-64-v3 (supported, searched)
x86-64-v2 (supported, searched)
  

The Dell G5 only supports up to x86-64-v3, as it is older. An AMD based computer may display something other than what is shown here, including Zen4.

CachyOS maintains three sets of repositories for packages compiled with processor level optimizations, one set for each supported processor level. There are also repositories for packages not optimized by processor level. The installer enables the appropriate optimized package repositories for the installation target, as well as the unoptimized package repositories. The following listing shows the enabled repositories for the processor level features in the Lenovo Legion 5i Pro's processor. The following listing shows the enabled repositories for the Lenovo Legion 5i Pro

❯ pacman-conf --repo-list
cachyos-v4
cachyos-core-v4
cachyos-extra-v4
cachyos
core
extra
multilib

LTO, PGO, AutoFDO and BOLT Optimizations

In addition to optimizations achieved by compiling packaged programs for specific microprocessor architecture feature level of CPUs, CachyOS also uses tools and methods that optimize genrated executable code. These are the LTO, PGO, AutoFDO, and BOLT. These are briefly described below.

LTO

In this optimization technique, which is also known as intermodular optimization or interprocedural optimization, first, the compiler creates an intermediate representation (IR) object, a unified object consisting of the various input source code files. Then, the linker performs optimizations of this unified object, increasing the speed of the final executable and reducing its size. The source of optimization compared to standard compilation linking is that optimizations can be performed on a unified view of the input source code files as opposed to the individual source code files. This allows the linker to reduce or eliminate duplicate calculations, improve inefficient memory use, simplify iterative loops, and eliminate code that is never executed.

A faster and less resource intensive mode of LTO also exists, where in addition to the intermediate representation is created by the compiler, as with regular LTO, a compact summary of each input is created. The actual optimization is performed using a combined summary index of code instead of the intermediate representation.

PGO
PGO operates on an instrumented program -- a program modified as source code or binary (object files) in order to allow analysis of its operation. A profile of the program's operation is created based on simulated executions of the program using a representative sample of inputs in likely usage scenarios. The profile is then used to make optimizations based on the frequency of execution of certain parts of the code. Reference 6 gives specific examples of the types of optimizations.
AutoFDO
AutoFDO is a profiling optimization technique similar to PGO but has lower overhead at the expense of some performance gain. Unlike PGO, it does not create a profile using instrumented program, but uses the perf command to create a profile which is directed back to the compiler.
BOLT
Binary optimization and layout tool operates after compilation and linking on executable files -- on Unix-like systems, the ELF (see References 7 and 8) -- to optimize the performance when they are executed. The optimizations are based on reordering, removing, and other manipulations of the contents of the executable file and recreating a new executable file. The details of the tool is described in a paper published by its creator, Meta, in Reference 9, which also provides performance improvement data.
Propeller
This optimization tool is a PLO similar to

Process Schedulers

CachyOS allows users to select a CPU process scheduler from a variety of choices in order to use the best performing scheduler for their use case. The distribution has two ways in which this can be done: by selecting a kenel variant which has incorporated in its build a particular process scheduler or by using a CachyOS custom GUI application that takes advantage of a Linux kernel capability to dynamically switch the running CPU process scheduler (see Section sched-ext, below).

In order to discuss the scheduler choices, the following diagram (Note this is a WIP) illustrates some of the concepts involved. There are four broad categories of CPU process schedulers called Generic Scheduler Classes, ranging in order from those involved with the lowest priority processes to those involved with the highest priority processes, these are Idle, Fair, Real-Time, Deadline, and Stop. (These are shown in the leftmost pane of the figure with a description of their scope of processes.) Each one of these is associated with a set of schedulers, where each scheduler is associated with one or more scheduler policies. (These are shown in the middle pane of the image.) Based on the policies of the scheduler in use for each level, all processes are ordered into an absolute prioritization of the process that will utilize the CPU next. (This is shown in the rightmost pane in the image.)

Process Scheduler Classes, Schedulers, and Scheduler Policies
CachyOS Linux kernel options incorporate EEVDF, BORE, or BMQ CPU Processor Schedulers

CachyOS's concern with respect to CPU process scheduler choice is limited to those in the Fair generic scheduler class which implement policies for most normal user processes. The image shows that for this class the schedulers are, for those schedulers incorporated into the kernel builds, EEVDF -- the default Linux process scheduler since kernel 6.6, BMQ, BOLT, and CFS -- the previous default Linux process scheduler. The process schedulers that can be chosen dynamically in a running kernel are not mainstream and not discussed here.

EEVDF

This FAIR scheduler class scheduler gradually replaced the previous default FAIR scheduler class CFS between Linux 6.6 and 6.12, when CFS code was removed from the kernel. EEVDF uses the core scheduler mechanism but extends it in order to remove the accumulated technical debt incurred by CFS through continuous development efforts to fix its problems while ultimately properly fixing CFS's limitations -- the primarily limitation being that it had no latency guarantee. (See Reference 14 for CFS's other limitations.)

BORE

The Solus forum describes the BORE process scheduler as this:

The BORE CPU scheduler is a modification of the default CFS scheduler but optimized for interactive desktops. It is designed so that under heavy CPU load the system will try to prioritize processes that it thinks are interactive, this should help keep your desktops responsive when you are doing something tasking on the system.

CachyOS does not have anything to say in its wiki bout this scheduler except to link to the GitHub page, which states:

BORE (Burst-Oriented Response Enhancer) is an enhanced versions of the EEVDF (Earliest Eligible Virtual Deadline First) Linux schedulers. Developed with the aim of maintaining these schedulers' high performance while delivering resilient responsiveness to user input under as versatile load scenario as possible. To achieve this, BORE introduces a dimension of flexibility known as "burstiness" for each individual tasks, partially departing from CFS's inherent "complete fairness" principle. Burstiness refers to the score derived from the accumulated CPU time a task consumes after explicitly relinquishing it, either by entering sleep, IO-waiting, or yielding. This score represents a broad range of temporal characteristics, spanning from nanoseconds to hundreds of seconds, varying across different tasks. Leveraging this burstiness metric, BORE dynamically adjusts scheduling properties such as weights and delays for each task. Consequently, in systems experiencing diverse types of loads, BORE prioritizes tasks requiring high responsiveness, thereby improving overall system responsiveness and enhancing the user experience.
BMQ

BMQ, based on Google's Fuchsia OS scheduler, is a scheduler supporting the Deadline, Real-Time, and Fair scheduler policies which is designed to improve latency on desktop systems. According to the notes in Gentoo's kernel patch that incorporates BMQ (Reference 16):

The intent in this system is to ensure that interactive threads are serviced quickly. These are usually the threads that interact directly with the user and cause user-perceivable latency. These threads usually do little work and spend most of their time blocked awaiting another user event. So they get the priority boost from unblocking while background threads that do most of the processing receive the priority penalty for using their entire timeslice.

Kernel Variants Optimized for Use Case

The default kernel installed by the installer is linux-cachyos, which is compiled using Clang as opposed to GCC, allowing for ThinLTO optimization instead of LTO, and further optimized with AutoFDO. It also sets the largest timer frequency rate for increased responsiveness.

In addition to the default linux-cachyos, the distribution offers a variety of Linux kernels, some of which offer alternative CPU process schedulers for the FAIR scheduling class (for regular user processes), compilation with Clang or GCC, various timer frequency options (specifies how often the scheduler reorders processes), and compilation/build by different PGO optimization techniques.

The table below attempts to summarize the features of the various kernels based on information found on the kernel page of the CachyOS wiki. Note that for each of the kernels in the table, with the exception of the default kernel, there is a variant available compiled with Clang using ThinLTO optimization; these kernels have names like the non-LTO variant, but suffixed with -lto.

CachyOS Kernel Variants and Process Schedulers
Kernel Variant Process Scheduler Optimizations Patch Set Use Case
linux-cachyos Default scheduler (EEVDF since kernel 6.6) ThinLTO, AutoFDO, 1MHz timer frequency
linux-cachyos-bore BORE
linux-cachyos-bmq BMQ
linux-cachyos-deckify BORE patches specifically for handheld devices Only for handheld devices
linux-cachyos-eevdf Enhanced EEVDF
linux-cachyos-lts BORE minimally patched for increased stability Stability
linux-cachyos-hardened BORE linux-hardened patchset
linux-cachyos-rc BORE mainline kernel use to test new features
linux-cachyos-server Default scheduler (EEVDF since kernel 6.6) no preemption, 300Hz timer
linux-cachyos-rt-bore BORE real-time preemption

sched-ext

In addition to the various CPU process schedulers, incorporated into kernel variants, CachyOS includes another interesting tool that allows user to select alternative schedulers, independently from the kernel to suit their particular workload. This capability is provided by a GUI application whose window title appears as CachyOS Configure sched-ext GUI application, but is actually the program scx-manager. It is shown in the following image, along with the CachyOS Wiki page documenting it.

From the CachyOS Wiki:

Extensible Scheduler Class (better known as sched-ext) is a Linux kernel feature which enables implementing kernel thread schedulers in BPF (Berkeley Package Filter) and dynamically loading them. Essentially, this allows end-users to change their schedulers in userspace without the need to build another kernel just to have a different scheduler.
The sched-ext GUI Application
This application allows users to change the CPU process scheduler to an alternative one dynamically and independently of the loaded kerenl.

Other Optimizations

The distribution also makes some other choices of lesser importance and effect for the sake of performance. One such choice is to disable the kernel's watchdog, a system heartbeat monitoring system. The distribution uses the kernel command line parameter nowatchdog. Disabling the wathcdog does indeed reduce the overhead due to the continuous system monitoring, and it does prevent the "Watchdog did not stop!" error message when powering down the system. However, this particular optimization and its resulting marginal increase in performance is not worth the loss in reliability of the system as the watchdog's intended functionality is to ensure the system recovers after errors. A performance optimization, a marginal one at that, is not worth a decrease in reliability, in my opinion. (See Section Fixes and Enhancements, below on how to reenable the watchdog.)

CachyOS Programs

CachyOS provides three custom GUI applications to assist users in managing the system. These are the CachyOS Kernel Manager, CachyOS Package Installer, and CachyOS Configure sched-ext, shown in the Image 1 of the following set of images.

CachyOS Kernel Manager
This application is the most impressive of the three. Not only does it show all kernels available from the CachyOS repositories and effect their installation, but it allows users to build a custom kernel, specifying a profile (e.g., for handhelds, hardened) or the scheduler to use, and many other configuration options. The application is shown in Images 2 - 4 of the following set.
CachyOS Configure sched-ext
This application, technically called scx-manager (its command name and the name of the GitHub repository hosting its development) alloes users to select from about a dozen non-mainstream schedulers optimized for specific use-cases. It is a simple application that consists of a list-box control for selecting from the available alternative shedulers. It could be imporved with integrated descriptions and use cases, to make selecting a scheduler without consulting the CachyOS Wiki sched-ext page.
CachyOS Package Installer
This package management GUI application allows users to browse or search for popular packages from a categorized list, and select them for installation. It also allows searching or selecting from the complete set of packages available from the repos, optionally limiting displayed results from installed, upgradable, or not-installed packages: this tab of the application is reminiscent of Octopi. It can also uninstall packages, refresh the package cache, and remove orphan packages.

Shells

fish is the default login shell, an atypical choice for default login shell. It does however operate very well in interactive use due to its fzf type list of auto-suggestions and completions. It is not the best choice for compatibility with Bourne type shells, so I switched the default login shell to zsh with chsh -s /usr/bin/zsh, which propagated to Konsole and Alacritt settings.

The first time using Konsole after changing the shell, an interactive dialog for setting up powerlevel10k, a utiltiy to configure the zsh prompt, shown in the following set of images.

The Powerlevel10k Interactive Configuration Utility
This utility is presented to the user the first time a zsh interactive session is opened.
Click on any of the thumbnails to view a slideshow of the images.

The utility is sourced from the global zsh configuration, itself sourced from the user's ~/.zshrc. The configuration also sources oh-my-zsh. Unfortunately, the resulting configuration is not complete enough to handle globs similarly to Bash, nor are all of the necessary key mappings (pressing delete may prodice <>/Del> and other unintended artifacts), nor does it produce fzf style completions list simirar to Cachy's fish configuration, which is also possoble with zsh (see the Arch wiki on zsh for details).

Nvidia Graphics

On the Lenovo Legion 5i Pro with an Nvidia GeForce RTX 3050, I had no issues initially with the graphics setup. The default Wayland session was worked even with an external monitor connected through USB-C/Thunerbolt. Later I discovered issues (see below) caused by CachyOS's choices with respect to graphics driver packages.

The problem was: selecting the default option in the live ISO GRUB menu installs the Nvidia open drivers, something that is not obvious or prominently advertised on the CachyOS wiki or website. (For some reason this was not the case on the Dell G5, on which selecting the default option in the live ISO GRUB menu resulted in the installation of the proprietary Nvidia driver kernel modules.) In my experience, the Nvidia open drivers work fine for the simplest graphics display functionality, but they cause issues with more complex uses and also cause problems with other aspects of the system. For example on openSUSE, the open Nvidia driver modules caused big issues when trying to use an external monitor, a problem that was only resolved by replacing the open Nvidia modules with the proprietary Nvidia modules.

In my use of CachyOS, the particular issue I had with openSUSE due to the use of Nvidia open drivers was not apparent, but there was another issue that was serious, namely that the open drivers do not allow reliable hibernation. For most users this may not be an the issue, but I prefer hibernating my Legion as opposed to suspending it in order to reduce the number of battery charge cycles over time, thus increasing the battery longevity.

Not only does the distribution choose to not install the proprietary driver by default, it does not make it easy to correct this for users that prefer or need the proprietary drivers; it does not offer pre-built proprietary Nvidia driver packages for any of its kernels. Examining the pacman output below shows that the only pre-built Nvidia kernel module is linux-cachyos-rc-gcc-nvidia intended for use with the linux-cachyos-rc-gcc, not for the default installed linux-cachyos kernel, for which the only prebuilt Nvidia driver package is linux-cachyos-nvidia-open. Like linux-cachyos-nvidia-open all other pre-built Nvidia driver packages are open packages, not the proprietary version.

❯ sudo pacman -Ss nvidia
cachyos-v4/lib32-nvidia-utils 595.58.03-1
NVIDIA drivers utilities (32-bit)
cachyos-v4/lib32-opencl-nvidia 595.58.03-1
OpenCL implemention for NVIDIA (32-bit)
cachyos-v4/libxnvctrl 595.58.03-1 [installed]
NVIDIA NV-CONTROL X extension
cachyos-v4/linux-cachyos-bmq-lto-nvidia-open 6.19.9-2
nvidia open modules of 595.58.03 driver for the linux-cachyos-bmq-lto kernel
cachyos-v4/linux-cachyos-bmq-nvidia-open 6.19.9-2
nvidia open modules of 595.58.03 driver for the linux-cachyos-bmq kernel
cachyos-v4/linux-cachyos-bore-lto-nvidia-open 6.19.11-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-bore-lto kernel
cachyos-v4/linux-cachyos-bore-nvidia-open 6.19.12-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-bore kernel
cachyos-v4/linux-cachyos-deckify-lto-nvidia-open 6.19.11-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-deckify-lto kernel
cachyos-v4/linux-cachyos-deckify-nvidia-open 6.19.11-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-deckify kernel
cachyos-v4/linux-cachyos-eevdf-lto-nvidia-open 6.19.11-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-eevdf-lto kernel
cachyos-v4/linux-cachyos-eevdf-nvidia-open 6.19.12-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-eevdf kernel
cachyos-v4/linux-cachyos-gcc-nvidia-open 6.19.12-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-gcc kernel
cachyos-v4/linux-cachyos-hardened-lto-nvidia-open 6.19.11-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-hardened-lto kernel
cachyos-v4/linux-cachyos-hardened-nvidia-open 6.19.12-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-hardened kernel
cachyos-v4/linux-cachyos-lts-lto-nvidia-open 6.12.69-2
nvidia open modules of 590.48.01 driver for the linux-cachyos-lts-lto kernel
cachyos-v4/linux-cachyos-lts-nvidia-open 6.18.22-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-lts kernel
cachyos-v4/linux-cachyos-nvidia-open 6.19.12-1
nvidia open modules of 595.58.03 driver for the linux-cachyos kernel
cachyos-v4/linux-cachyos-rc-gcc-nvidia 6.15.rc7-6
nvidia module of 570.153.02 driver for the linux-cachyos-rc-gcc kernel
cachyos-v4/linux-cachyos-rc-gcc-nvidia-open 7.0.rc7-3
nvidia open modules of 595.58.03 driver for the linux-cachyos-rc-gcc kernel
cachyos-v4/linux-cachyos-rc-lto-nvidia 6.17.rc7-2
nvidia module of 580.95.05 driver for the linux-cachyos-rc-lto kernel
cachyos-v4/linux-cachyos-rc-lto-nvidia-open 6.19.rc6-1
nvidia open modules of 590.48.01 driver for the linux-cachyos-rc-lto kernel
cachyos-v4/linux-cachyos-rc-nvidia-open 7.0.rc7-2
nvidia open modules of 595.58.03 driver for the linux-cachyos-rc kernel
cachyos-v4/linux-cachyos-rt-bore-lto-nvidia-open 6.19.11-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-rt-bore-lto kernel
cachyos-v4/linux-cachyos-rt-bore-nvidia-open 6.19.12-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-rt-bore kernel
cachyos-v4/linux-cachyos-server-lto-nvidia-open 6.19.11-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-server-lto kernel
cachyos-v4/linux-cachyos-server-nvidia-open 6.19.12-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-server kernel
cachyos-v4/nvidia-open-dkms 595.58.03-1
NVIDIA open kernel modules - module sources
cachyos-v4/nvidia-settings 595.58.03-1 [installed]
Tool for configuring the NVIDIA graphics driver
cachyos-v4/nvidia-utils 595.58.03-1
NVIDIA drivers utilities
cachyos-v4/opencl-nvidia 595.58.03-1
OpenCL implemention for NVIDIA
cachyos-extra-v4/cudnn 9.20.0.48-1.1
NVIDIA CUDA Deep Neural Network library
cachyos-extra-v4/egl-gbm 1.1.3-1.1 [installed]
The GBM EGL external platform library
cachyos-extra-v4/egl-wayland 4:1.1.21-1.1 [installed]
EGLStream-based Wayland external platform
cachyos-extra-v4/egl-wayland2 1.0.1-1.1 [installed]
EGLStream-based Wayland external platform (2)
cachyos-extra-v4/egl-x11 1.0.5-1.1 [installed]
NVIDIA XLib and XCB EGL Platform Library
cachyos-extra-v4/libnvidia-container 1.19.0-1.1
NVIDIA container runtime library
cachyos-extra-v4/libva-nvidia-driver 0.0.16-1.2 [installed]
VA-API implementation that uses NVDEC as a backend
cachyos-extra-v4/libvdpau 1.5-4.1 [installed]
Nvidia VDPAU library
cachyos-extra-v4/libxnvctrl 595.58.03-1.1 [installed: 595.58.03-1]
NVIDIA NV-CONTROL X extension
cachyos-extra-v4/nccl 2.29.7-1.1
Library for NVIDIA multi-GPU and multi-node collective communication primitives
cachyos-extra-v4/nsight-compute 2026.1.0.9-3.1
Interactive profiler for NVIDIA CUDA and OptiX
cachyos-extra-v4/nvhpc 26.3-1.1
NVIDIA HPC SDK
cachyos-extra-v4/nvhpc-comm-libs 26.3-1.1
NVIDIA HPC SDK - communication libraries
cachyos-extra-v4/nvhpc-compilers 26.3-1.1
NVIDIA HPC SDK - compilers
cachyos-extra-v4/nvidia-cg-toolkit 3.1-8.1
NVIDIA Cg libraries
cachyos-extra-v4/nvidia-container-toolkit 1.19.0-1.1
NVIDIA container toolkit
cachyos-extra-v4/nvidia-open 595.58.03-3.1
NVIDIA open kernel modules
cachyos-extra-v4/nvidia-open-lts 1:595.58.03-4.1
NVIDIA open kernel modules
cachyos-extra-v4/nvidia-settings 595.58.03-1.1 [installed: 595.58.03-1]
Tool for configuring the NVIDIA graphics driver
cachyos-extra-v4/nvtop 3.3.2-1.1
GPUs process monitoring for AMD, Intel and NVIDIA
cachyos-extra-v4/nvtx 3.5.0-1.1
NVIDIA Tools Extension (NVTX) library
cachyos-extra-v4/python-cuda 13.2.0-1.1
Python interface for CUDA provided by NVIDIA
cachyos-extra-v4/python-cuda-bindings 13.2.0-1.1
Python interface for CUDA provided by NVIDIA
cachyos-extra-v4/python-cuda-tile 1.2.0-1.1
A Python-based DSL and parallel programming model for NVIDIA GPUs
cachyos-extra-v4/python-nvmath 0.8.0-2.1
NVIDIA Math Libraries for Python
cachyos-extra-v4/python-nvtx 3.5.0-1.1
NVIDIA Tools Extension (NVTX) library - Python bindings
cachyos-extra-v4/python-pycuda 2026.1-2.1
Python wrapper for Nvidia CUDA
cachyos-extra-v4/xf86-video-nouveau 1.0.18-1.1 (xorg-drivers)
Open Source 3D acceleration driver for nVidia cards
cachyos/gwe 0.15.9-4
A system utility for controlling NVIDIA GPUs
cachyos/lib32-nvidia-390xx-utils 390.157-3
NVIDIA drivers utilities (32-bit), 390xx legacy branch
cachyos/lib32-nvidia-470xx-utils 470.256.02-1
NVIDIA drivers utilities (32-bit)
cachyos/lib32-nvidia-535xx-utils 535.288.01-1
NVIDIA drivers utilities (32-bit), 535 branch
cachyos/lib32-nvidia-550xx-utils 550.163.01-2
NVIDIA drivers utilities (32-bit), 550 branch
cachyos/lib32-nvidia-580xx-utils 580.142-1 [installed]
NVIDIA drivers utilities (32-bit) (580xx)
cachyos/lib32-nvidia-utils 595.58.03-1
NVIDIA drivers utilities (32-bit)
cachyos/lib32-opencl-nvidia 595.58.03-1
OpenCL implemention for NVIDIA (32-bit)
cachyos/lib32-opencl-nvidia-390xx 390.157-3
OpenCL implemention for NVIDIA (32-bit), 390xx legacy branch
cachyos/lib32-opencl-nvidia-470xx 470.256.02-1
OpenCL implemention for NVIDIA (32-bit)
cachyos/lib32-opencl-nvidia-535xx 535.288.01-1
OpenCL implemention for NVIDIA (32-bit), 535 branch
cachyos/lib32-opencl-nvidia-550xx 550.163.01-2
OpenCL implemention for NVIDIA (32-bit), 550 branch
cachyos/lib32-opencl-nvidia-580xx 580.142-1 [installed]
OpenCL implemention for NVIDIA (32-bit) (580xx)
cachyos/lib32-vulkan-nouveau 2:26.0.4-2
Open-source Vulkan driver for Nvidia GPUs - 32-bit
cachyos/libxnvctrl 595.58.03-1 [installed]
NVIDIA NV-CONTROL X extension
cachyos/libxnvctrl-390xx 390.157-2
NVIDIA NV-CONTROL X extension, 390xx legacy branch
cachyos/libxnvctrl-470xx 470.256.02-3
NVIDIA NV-CONTROL X extension
cachyos/libxnvctrl-535xx 535.288.01-1
NVIDIA NV-CONTROL X extension
cachyos/libxnvctrl-580xx 580.126.18-1
NVIDIA NV-CONTROL X extension (580xx)
cachyos/linux-cachyos-bmq-nvidia-open 6.19.6-1
nvidia open modules of 590.48.01 driver for the linux-cachyos-bmq kernel
cachyos/linux-cachyos-bore-nvidia-open 6.19.10-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-bore kernel
cachyos/linux-cachyos-deckify-nvidia-open 6.19.10-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-deckify kernel
cachyos/linux-cachyos-eevdf-nvidia-open 6.19.10-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-eevdf kernel
cachyos/linux-cachyos-hardened-nvidia-open 6.19.10-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-hardened kernel
cachyos/linux-cachyos-lts-nvidia-open 6.18.20-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-lts kernel
cachyos/linux-cachyos-nvidia-open 6.19.10-1
nvidia open modules of 595.58.03 driver for the linux-cachyos kernel
cachyos/linux-cachyos-rc-nvidia 6.16.rc7-2
nvidia module of 575.64.05 driver for the linux-cachyos-rc kernel
cachyos/linux-cachyos-rc-nvidia-open 7.0.rc5-2
nvidia open modules of 595.58.03 driver for the linux-cachyos-rc kernel
cachyos/linux-cachyos-rt-bore-nvidia-open 6.19.10-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-rt-bore kernel
cachyos/linux-cachyos-server-nvidia-open 6.19.10-1
nvidia open modules of 595.58.03 driver for the linux-cachyos-server kernel
cachyos/linux-firmware-nvidia 1:20260309-1 [installed]
Firmware files for Linux - Firmware for NVIDIA GPUs and SoCs
cachyos/nouveau-fw 340.108-1
This package provides video & pgraph firmwares for all NVIDIA chipsets that need them
cachyos/nvidia-390xx-dkms 390.157-24
NVIDIA drivers - module sources
cachyos/nvidia-390xx-settings 390.157-2
Tool for configuring the NVIDIA graphics driver, 390xx legacy branch
cachyos/nvidia-390xx-utils 390.157-24
NVIDIA drivers utilities
cachyos/nvidia-470xx-dkms 470.256.02-17
NVIDIA drivers - module sources
cachyos/nvidia-470xx-settings 470.256.02-3
Tool for configuring the NVIDIA graphics driver
cachyos/nvidia-470xx-utils 470.256.02-17
NVIDIA drivers utilities
cachyos/nvidia-535xx-dkms 535.288.01-1
NVIDIA drivers - module sources, 535 branch
cachyos/nvidia-535xx-settings 535.288.01-1
Tool for configuring the NVIDIA graphics driver, 535 branch
cachyos/nvidia-535xx-utils 535.288.01-1
NVIDIA drivers utilities, 535 branch
cachyos/nvidia-550xx-dkms 550.163.01-3
NVIDIA drivers - module sources, 550 branch
cachyos/nvidia-550xx-utils 550.163.01-3
NVIDIA drivers utilities, 550 branch
cachyos/nvidia-580xx-dkms 580.142-2 [installed]
NVIDIA kernel modules - module sources (580xx)
cachyos/nvidia-580xx-open-dkms 580.142-2
NVIDIA open kernel modules - module sources (580xx)
cachyos/nvidia-580xx-settings 580.126.18-1
Tool for configuring the NVIDIA graphics driver (580xx)
cachyos/nvidia-580xx-utils 580.142-2 [installed]
NVIDIA drivers utilities (580xx)
cachyos/nvidia-fake-powerd 0.1.0-2
dbus blackhole for nvidia.powerd.server for working around a bug in nvidia-495 drivers.
cachyos/nvidia-module-extractor 6-1
Extracts nvidia kernel modules to separate directory
cachyos/nvidia-open-dkms 595.58.03-1
NVIDIA open kernel modules - module sources
cachyos/nvidia-settings 595.58.03-1 [installed]
Tool for configuring the NVIDIA graphics driver
cachyos/nvidia-utils 595.58.03-1
NVIDIA drivers utilities
cachyos/opencl-nvidia 595.58.03-1
OpenCL implemention for NVIDIA
cachyos/opencl-nvidia-390xx 390.157-24
OpenCL implemention for NVIDIA
cachyos/opencl-nvidia-470xx 470.256.02-17
OpenCL implemention for NVIDIA
cachyos/opencl-nvidia-535xx 535.288.01-1
OpenCL implemention for NVIDIA, 535 branch
cachyos/opencl-nvidia-550xx 550.163.01-3
OpenCL implemention for NVIDIA, 550 branch
cachyos/opencl-nvidia-580xx 580.142-2 [installed]
OpenCL implemention for NVIDIA (580xx)
cachyos/optimus-manager-git 4:803.python3.14-1
Allows using Nvidia Optimus laptop graphics
cachyos/supergfxctl 5.2.7-2
A utility for Linux graphics switching on Intel/AMD iGPU + nVidia dGPU laptops
cachyos/supergfxctl-git 5.0.0.rc1.r8.g2473ced-1
A utility for Linux graphics switching on Intel/AMD iGPU + nVidia dGPU laptops
cachyos/vulkan-nouveau 2:26.0.4-2
Open-source Vulkan driver for Nvidia GPUs
core/linux-firmware-nvidia 20260309-1 [installed: 1:20260309-1]
Firmware files for Linux - Firmware for NVIDIA GPUs and SoCs
extra/bumblebee 3.2.1-21
NVIDIA Optimus support for Linux through VirtualGL
extra/cuda 13.2.0-1
NVIDIA's GPU programming toolkit
extra/cudnn 9.20.0.48-1
NVIDIA CUDA Deep Neural Network library
extra/egl-gbm 1.1.3-1 [installed: 1.1.3-1.1]
The GBM EGL external platform library
extra/egl-wayland 4:1.1.21-1 [installed: 4:1.1.21-1.1]
EGLStream-based Wayland external platform
extra/egl-wayland2 1.0.1-1 [installed: 1.0.1-1.1]
EGLStream-based Wayland external platform (2)
extra/egl-x11 1.0.5-1 [installed: 1.0.5-1.1]
NVIDIA XLib and XCB EGL Platform Library
extra/ffnvcodec-headers 13.0.19.0-1
FFmpeg version of headers required to interface with Nvidias codec APIs
extra/hip-runtime-nvidia 7.2.1-2
Heterogeneous Interface for Portability (Nvidia runtime)
extra/libnvidia-container 1.19.0-1
NVIDIA container runtime library
extra/libva-nvidia-driver 0.0.16-1 [installed: 0.0.16-1.2]
VA-API implementation that uses NVDEC as a backend
extra/libvdpau 1.5-4 [installed: 1.5-4.1]
Nvidia VDPAU library
extra/libxnvctrl 595.58.03-1 [installed]
NVIDIA NV-CONTROL X extension
extra/nccl 2.29.7-1
Library for NVIDIA multi-GPU and multi-node collective communication primitives
extra/nsight-compute 2026.1.0.9-3
Interactive profiler for NVIDIA CUDA and OptiX
extra/nvhpc 26.3-1
NVIDIA HPC SDK
extra/nvhpc-comm-libs 26.3-1
NVIDIA HPC SDK - communication libraries
extra/nvhpc-compilers 26.3-1
NVIDIA HPC SDK - compilers
extra/nvidia-cg-toolkit 3.1-8
NVIDIA Cg libraries
extra/nvidia-container-toolkit 1.19.0-1
NVIDIA container toolkit
extra/nvidia-open 595.58.03-3
NVIDIA open kernel modules
extra/nvidia-open-dkms 595.58.03-1
NVIDIA open kernel modules - module sources
extra/nvidia-open-lts 1:595.58.03-4
NVIDIA open kernel modules
extra/nvidia-prime 1.0-5 [installed]
NVIDIA Prime Render Offload configuration and utilities
extra/nvidia-settings 595.58.03-1 [installed]
Tool for configuring the NVIDIA graphics driver
extra/nvidia-utils 595.58.03-1
NVIDIA drivers utilities
extra/nvshmem 3.6.5-1
NVIDIA parallel programming interface based on OpenSHMEM
extra/nvtop 3.3.2-1
GPUs process monitoring for AMD, Intel and NVIDIA
extra/nvtx 3.5.0-1
NVIDIA Tools Extension (NVTX) library
extra/opencl-nvidia 595.58.03-1
OpenCL implemention for NVIDIA
extra/primus_vk 1.6.2-1
Nvidia Vulkan offloading for Bumblebee
extra/python-cuda 13.2.0-1
Python interface for CUDA provided by NVIDIA
extra/python-cuda-bindings 13.2.0-1
Python interface for CUDA provided by NVIDIA
extra/python-cuda-tile 1.2.0-1
A Python-based DSL and parallel programming model for NVIDIA GPUs
extra/python-nsight 0.9.6-1
Python kernel profiling interface based on NVIDIA Nsight Tools
extra/python-nvidia-ml-py 13.595.45-1
Python bindings for the NVIDIA Management Library (NVML)
extra/python-nvmath 0.8.0-2
NVIDIA Math Libraries for Python
extra/python-nvtx 3.5.0-1
NVIDIA Tools Extension (NVTX) library - Python bindings
extra/python-pycuda 2026.1-2
Python wrapper for Nvidia CUDA
extra/vulkan-nouveau 1:26.0.4-1
Open-source Vulkan driver for Nvidia GPUs
extra/xf86-video-nouveau 1.0.18-1 (xorg-drivers)
Open Source 3D acceleration driver for nVidia cards
multilib/lib32-libvdpau 1.5-3
Nvidia VDPAU library
multilib/lib32-nvidia-cg-toolkit 3.1-10
NVIDIA Cg libraries
multilib/lib32-nvidia-utils 595.58.03-1
NVIDIA drivers utilities (32-bit)
multilib/lib32-opencl-nvidia 595.58.03-1
OpenCL implemention for NVIDIA (32-bit)
multilib/lib32-primus_vk 1.6.2-1
Nvidia Vulkan offloading for Bumblebee
multilib/lib32-vulkan-nouveau 1:26.0.4-1
Open-source Vulkan driver for Nvidia GPUs - 32-bit

  

Documentation

As an Arch based system, the Arch Linux's well regarded wiki, serves as a knowledge base for CachyOS. However, CachyOS also has a wiki site for its specific features, covering such topics as its set of custom kernels and schedulers, configuring the boot manager, using its programs, e.g., CachyOS Kernel Manager, managing snapshots with Snapper and Btrfs Assistant, etc.

It generally covers all aspects of CachyOS's special features and is an excellent guide. However, there are two aspects of the wiki that I thought could be improved:

  • in some cases, such as the CachyOS Kernel I get the sense that there is inconsistent information in various parts of the page regarding kernel characteristics
  • the main page does not seem like a proper main page serving as a central navigation point, probably a limitation of the tool used to produce it

The following set of images show some of the pages of the Wiki.

The CachyOS Wiki
The CachyOS Wiki supplements the Arch Linux Wiki, providing documentation and guidance on CachyOS specific features.
Click on any of the thumbnails to view a slideshow of the images.

Problems

CachyOS is an excellent distribution because of its Arch base and the value it adds to this base in the ways discussed in this article, however it does have some problems that require tinkering, which makes it not completely an out-of-the-box ready to use distribution for some users. This is in addition to the installation problems described in the Installation section.

Cosmic DE

The biggest disappointment of CachyOS was the experience with the Cosmic DE. I chose Cosmic as the desktop for the installation on the Dell G5, instead of Plasma, the DE I chose for the Legion. The Cosmic DE on the Dell, while having no issues, if an external screen was not connected, could not use an external screen.

I believe this is specifically an issue with CachyOS's Cosmic implementation or packaging because when I added Plasma to the CachyOS installation on the Dell, display on the external screen worked as expected. Also, Cosmic DE instances on Arch and Ultramarine on the same laptop have no issues with the external screen.

Hibernation

After a few days without any issues, I came across the first of three problems two CachyOS characteristics that did not meet my expectations. The first was that hibernation capability is not enabled by the CachyOS installer, even if a swap partition is available on the laptop.

  • the installer does not create a suitable swap file or partition, nor does it use an existing swap partition and add it to the /etc/fstab
  • it does not cause an initramfs that includes resume modules to be built; on Arch based distributions with the default initramfs creation utility, this means not including "resume" in the list of hooks in /etc/mkinitcpio.conf
  • it does not specify a resume device in the default kernel command line parameters list /etc/default/grub, if GRUB.

Many distributions typically do not enable hibernation, and it can be easily enabled after installation. The second issue, which I discovered only after the standard procedure for enabling hibernation did not result in a working hibernation.

Wacom Graphics Tablet

One problem I encountered during my use of CachyOS involved a Wacom graphics tablet. This tablet is automatically recognized by every Linux distribtution with which I have ever used it. This included Siduction that is currently one of the distributions on the Legion, which I had to reboot into from CachyOS to complete an urgent task that required a tablet. I did not investigate the reason for the issue.

Nvidia Open Drivers

The problem with the Nvidia driver, i.e., that the propiretary driver is not installed in favor for the open driver and that pre-built proprietary Nvidia drivers are not available was discussed above. But CachyOS has another related problem: the tool that is provided to make it simple to manage drivers, the chwd utility has a profile for nvidia-dkms (see below) but using this profile with chwd only causes the open driver to be built.


░▒▓  │  ~ ▓▒░─────────────────────────────────────────────────────────░▒▓ at 08:04:24 PM  ▓▒░─╮
❯ sudo chwd --list                                                                              ─╯
> 0000:00:02.0 (0300:8086:9a60) VGA compatible controller Intel Corporation:

╭──────────┬──────────╮
│ Name     ┆ Priority │
╞══════════╪══════════╡
│ intel    ┆ 4        │
├╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ fallback ┆ 3        │
╰──────────┴──────────╯

> 0000:01:00.0 (0300:10de:25e2) VGA compatible controller NVIDIA Corporation:

╭────────────────────────┬──────────╮
│ Name                   ┆ Priority │
╞════════════════════════╪══════════╡
│ nvidia-open-dkms.prime ┆ 11       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ nvidia-open-dkms       ┆ 10       │
├╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌╌┼╌╌╌╌╌╌╌╌╌╌┤
│ fallback               ┆ 3        │
╰────────────────────────┴──────────╯


░▒▓  │  ~ ▓▒░──────────────────────────────────────────────────────────░▒▓ at 08:05:08 PM  ▓▒░─╮
  

Fixes and Enhancements

Enable Hibernation

Enabling hibernation requires the following steps.

  1. Making a swap file or swap partition available. In my case there was a pre-existing swap partition on one of the disks of the Lenovo Legion. I added the partition to /etc/fstab ensuring a priority is set in the mount options because CachyOS uses zRAM
    UUID=980ddbbf-9b79-4390-be21-850e62b7ebb2	none      	swap      	defaults,pri=5  	0 0
  2. Adding the swap partition as a resume device in the kernel command line in /etc/default/GRUB, if using GRUB as the bootloader.
    GRUB_CMDLINE_LINUX_DEFAULT='resume=UUID=980ddbbf-9b79-4390-be21-850e62b7ebb2 quiet splash loglevel=3'
  3. Adding the "resume" hook to the list of hooks in /etc/mkinitcpio.conf:
    HOOKS=(base systemd autodetect microcode kms modconf block keyboard sd-vconsole plymouth filesystems resume fsck)
  4. Enable the Nivdia power managment related systemdservices:
    sudo systemctl enable nvidia-{suspend,resume,hibernate,suspend-then-hibernate,persistenced}.service

These steps are normally what is required to enable hibernation. Unfortunately, for users with an Nvidia GPU on a laptop, the default Nvidia open drivers installed by default on CachyOS prevented hibernation form actually working. So, for these users, replacing the Nvidia open drivers with the proprietary drivers, as described below, is also necessary.

Enable Watchdog

CachyOS disables the kernel watchdog capability by placing parameter nowatchdog in the GRUB kernel command line. To permenantly enabled watchdog:

  1. Edit the /etc/default/grub file to remove nowatchdog from the parameter value list so that it is similar to:
    
    GRUB_CMDLINE_LINUX_DEFAULT='resume=UUID=980ddbbf-9b79-4390-be21-850e62b7ebb2 quiet splash loglevel=3'
              
  2. Update the GRUB configuration by executing
    sudo grub-mkconfig -o /boot/grub/grub.cfg

Replace Nvidia Open Drivers

The CachyOS Hardware Detection Daemon and its chwd command could not be used to remove the open driver and replace it with the proprietary driver. To do so it is necessary to uninstall the linux-cachyos-nvidia-open package and replace it with the latest versioned proprietary Nvidia DKMS package, which as of April 7, 2026 was nvidia-dkms-580xx. After these actions, the installed Nvidia packages were those shown in the following listing of a pacman command output.

	❯ sudo pacman -Ss nvidia | grep installed
cachyos-v4/libxnvctrl 595.58.03-1 [installed]
cachyos-v4/nvidia-settings 595.58.03-1 [installed]
cachyos-extra-v4/egl-gbm 1.1.3-1.1 [installed]
cachyos-extra-v4/egl-wayland 4:1.1.21-1.1 [installed]
cachyos-extra-v4/egl-wayland2 1.0.1-1.1 [installed]
cachyos-extra-v4/egl-x11 1.0.5-1.1 [installed]
cachyos-extra-v4/libvdpau 1.5-4.1 [installed]
cachyos-extra-v4/libxnvctrl 595.58.03-1.1 [installed: 595.58.03-1]
cachyos-extra-v4/nvidia-settings 595.58.03-1.1 [installed: 595.58.03-1]
cachyos/lib32-nvidia-580xx-utils 580.142-1 [installed]
cachyos/lib32-opencl-nvidia-580xx 580.142-1 [installed]
cachyos/libxnvctrl 595.58.03-1 [installed]
cachyos/linux-firmware-nvidia 1:20260309-1 [installed]
cachyos/nvidia-580xx-dkms 580.142-2 [installed]
cachyos/nvidia-580xx-utils 580.142-2 [installed]
cachyos/nvidia-settings 595.58.03-1 [installed]
cachyos/opencl-nvidia-580xx 580.142-2 [installed]
core/linux-firmware-nvidia 20260309-1 [installed: 1:20260309-1]
extra/egl-gbm 1.1.3-1 [installed: 1.1.3-1.1]
extra/egl-wayland 4:1.1.21-1 [installed: 4:1.1.21-1.1]
extra/egl-wayland2 1.0.1-1 [installed: 1.0.1-1.1]
extra/egl-x11 1.0.5-1 [installed: 1.0.5-1.1]
extra/libvdpau 1.5-4 [installed: 1.5-4.1]
extra/libxnvctrl 595.58.03-1 [installed]
extra/nvidia-prime 1.0-5 [installed]
extra/nvidia-settings 595.58.03-1 [installed]	
      
  1. Uninstall the open driver package with:
    sudo pacman -Rncs linux-cachyos-nvidia-open
  2. Install the proprietary nvidia driver with:
    pacman -S nvidia-dkms-580xx

References

  1. Wikipedia: x86-64 > Microarchitecture Levels
  2. What Is X86-64-v3?
  3. What is Link Time Optimization (LTO)
  4. Interprocedural Optimization
  5. Profile-guided optimization
  6. Profile-guided optimizations
  7. Executable and Linkable Format
  8. How is a binary executable organized? Let's explore it!
  9. BOLT: A Practical Binary Optimizer for Data Centers and Beyond
  10. CachyOS Kernel
  11. Clang 23.0.0git documentation: ThinLTO
  12. SFO17- 421 The Linux Kernel Scheduler
  13. Linux Scheduler Architecture
  14. Linux Kernel Programming Lecture 07: CPU Scheduling: CFS to EEVDF
  15. What is cachyos bore
  16. Thnx Gentoo for this experimental patch: BMQ scheduler
  17. Zircon scheduler