11Linux distribution · Desktop systems

Kestrel

Standalone Arch-based Linux distribution with Hyprland + Quickshell and a kernel-level per-task scheduling bridge.

One shaped desktop, one kernel, one scheduling vocabulary: the compositor, terminal and apps share a per-task hint consumed by sched_ext.

Arch LinuxHyprlandQuickshellsched_extBtrfsShell
Latest repository commit

Loading latest commits…

Base

ARCH

Desktop

HYPRLAND + QUICKSHELL

Install

ROOTFS COPY

Scheduler

scx_kestrel

01

Problem

Most distributions hand the desktop a scheduler and leave it there. The compositor, terminal and applications have no shared vocabulary for latency or throughput, so tuning happens through generic priorities and configuration layered on a generic system.

Kestrel starts from Arch and replaces the parts that decide how the desktop feels: the compositor, shell, terminal, kernel and scheduler are built and shipped as one matched system.

02

What Kestrel is

Kestrel is a standalone Arch-based distribution with one shaped desktop: Hyprland, Quickshell, foot and fish. The compositor, shell, terminal, kernel and scheduler are built and shipped as one matched system.

The kernel, linux-kestrel, is built with Clang ThinLTO on x86-64-v3, full preemption, 1000 Hz, sched_ext, DAMON reclaim and NTSYNC. Hyprland, Quickshell and their shared library closure are rebuilt with the same codegen flags, and the terminal is a foot fork that participates in the hint path.

03

The scheduling bridge

Kernel hint

linux-kestrel appends sched_ext_hint to struct sched_attr; userspace sets 0..1024 with sched_setattr(2) and SCHED_FLAG_KESTREL_HINT (1ULL << 40).

Userspace library

libkestrel-hint and kestrel-hint set and read the hint for the desktop, terminals, browser and background work.

Broker

kestrel-broker places processes in kestrel-desktop, kestrel-term, kestrel-browser and kestrel-background cgroups.

Scheduler

scx_kestrel, an scx_layered fork, reads the hint through scx_bpf_task_hint and applies its baked layer set; scx_loader/scxctl switch schedulers at runtime.

04

Heavy packages → kernel

Hyprland

The compositor runs in kestrel-desktop. Frame-critical work carries a latency hint before dispatch, so scx_kestrel can prefer it when the desktop is under load.

Quickshell

The bar, launcher, notifications, OSD and screensaver share the kestrel-desktop class with the compositor; interactive UI stays on the same latency path.

Zen browser

Browser processes run in kestrel-browser. Foreground tabs and input carry the interactive hint; background tabs do not compete for the same budget.

foot terminal

One shared foot --server runs in kestrel-term with per-window clients, so terminal latency is isolated from browser and background work.

Background work

Builds, indexing and agent jobs go to kestrel-background, free to use spare cores without stealing latency from the desktop.

Kernel + scheduler

linux-kestrel exposes the 0..1024 hint through sched_ext; scx_kestrel reads it with scx_bpf_task_hint and combines it with its baked layer set.

05

Optimization stack

Kestrel does not stop at runtime hints. Hyprland and Quickshell are built x86-64-v3 with Clang ThinLTO, and their shared Hyprland library closure is rebuilt with the same flags instead of Arch's generic -O2, so the desktop has one codegen. qt6-base-kestrel adds Wayland explicit sync (linux-drm-syncobj-v1), and linux-kestrel is Clang ThinLTO on x86-64-v3 with full preemption, 1000 Hz, sched_ext, DAMON reclaim and NTSYNC.

The result is one optimization path from the heavy processes (Zen, Hyprland, Quickshell, foot, Obsidian, OBS) through their cgroup and per-task hint into the scheduler and kernel. Each class and each task carries explicit information instead of relying on ambient priority.

06

What is in the box

Hyprland manages windows and Quickshell provides the bar, launcher, notifications, OSD, screensaver and theming. foot runs as one shared server in the kestrel-term slice; fish is the login shell. Desktop applications include Neovim, Zen, Obsidian, LibreOffice, Kdenlive and OBS Studio.

A single kestrel CLI covers themes, screenshots, packaging, hardware and system configuration. Updates are rolling Arch, with an automatic Btrfs snapshot before every upgrade and rollback from the boot menu. Agentic tooling is installed through mise.

07

Measuring

kestrel-bench runs inside the VM and checks the hint bridge end to end: it verifies set/get, broker and foot placement, runs a 3x scx_bpfland vs scx_kestrel A/B, measures the foot worker matrix, and samples peak PSS for the shipped processes. A change that does not move a metric does not ship.

08

Status

  • Live ISO builds and boots the Kestrel kernel with the full desktop and hint bridge
  • Hint bridge (linux-kestrel + libkestrel-hint + scx_kestrel) implemented and exercised by kestrel-bench
  • Desktop, foot/fish defaults and themed toolchain in place
  • Packaging and documentation are still catching up with the implementation
09

Kestrel ecosystem

The distribution is split across independently versioned repositories that share the same kernel, desktop and packaging contracts.