Quattrosched — Omarchy plugin
A bar widget for switching Linux sched_ext
CPU schedulers without leaving the desktop. Click the icon, pick a scheduler
from the list, and it's live — or pick "Off" to go back to the kernel default.
How it works
The widget is a single bar-widget entry point (Panel.qml) that polls
scheduler status every 5 seconds and renders a popup list. It shells out to
two small scripts bundled inside this plugin (bin/omarchy-scx-status,
bin/omarchy-scx-switch), which in turn drive the system's scxctl CLI.
Nothing is written outside of scx_loader's own state — switching schedulers
is exactly what scxctl switch/scxctl stop already do.
Dependencies
This plugin does not implement scheduler switching itself — it's a thin UI over tools that must already be installed and running on the system.
| Dependency | What it's for | How to get it (Arch / CachyOS) |
|---|---|---|
scx-tools (provides scxctl) |
CLI the bundled scripts call to list/get/switch/stop schedulers | sudo pacman -S scx-tools |
scx-scheds |
The actual sched_ext scheduler BPF programs scxctl lists and loads |
sudo pacman -S scx-scheds |
scx_loader.service (installed by scx-tools) |
DBus-activated loader scxctl talks to; must be enabled |
sudo systemctl enable --now scx_loader |
python3 |
Used by bin/omarchy-scx-status to reformat scxctl list's output as JSON |
Present on any standard Omarchy install |
Linux kernel with CONFIG_SCHED_CLASS_EXT |
sched_ext support itself |
Kernel 6.12+, or a -cachyos/similar kernel with it backported |
If scxctl, scx_loader, or a sched_ext-capable kernel are missing, the
widget's popup will simply show an empty scheduler list — it does not check
for or install any of the above itself.
This plugin itself never invokes sudo or pkexec — but the tools it
drives do. scxctl's start/switch/stop calls to scx_loader are gated by
Polkit's auth_admin_keep action, so the first switch in a session prompts
for admin authentication (kept for a few minutes afterward, per Polkit's
auth_admin_keep default). Once authorized, scx_loader runs as root and
changes the kernel scheduler system-wide — for every process on the
machine, not just the user's own session.
Install
Manual install (local plugin, no git remote needed):
cp -r /path/to/quattrosched-omarchy-plugin ~/.config/omarchy/plugins/marc.quattrosched
omarchy-shell shell rescanPlugins
omarchy plugin enable marc.quattrosched
omarchy bar put marc.quattrosched # place the bar icon (optional)
Or, once pushed to a git remote, the standard way:
omarchy plugin add <git-url-of-this-repo>
omarchy plugin enable marc.quattrosched
Usage
- Click the CPU icon in the bar to open the scheduler list.
- Click a scheduler name to switch to it (
scxctl switchif one is already running,scxctl startotherwise). - Click "Off (default scheduler)" to stop
sched_extand return to CFS/EEVDF. - Hover the icon for a tooltip showing the currently running scheduler.
Configuration
None — the widget has no settings beyond the standard defaultSection
placement, which can be changed the same way as any other bar widget
(omarchy bar put marc.quattrosched <left|center|right>).
Removal
omarchy plugin disable marc.quattrosched
rm -rf ~/.config/omarchy/plugins/marc.quattrosched
This only removes the bar widget; it does not touch scx-tools,
scx-scheds, or scx_loader.service, and does not stop a scheduler that is
currently running (use the "Off" option first, or scxctl stop).