A TUI for installing, switching, and removing Linux kernels on Omarchy. Launches in a floating window via Super+Shift+K. Features: - 14 known kernels (4 official Arch + 10 CachyOS variants) - Auto bootstraps the CachyOS repo (live-fetched keyring/mirrorlist versions, runs full -Syu first to avoid partial-upgrade trouble) - AUR support via yay/paru - Bootloader-aware: mkinitcpio -P + GRUB / systemd-boot / Limine / rEFInd - Identifies the running kernel via /usr/lib/modules/<rel>/pkgbase (the canonical Arch mechanism, not vmlinuz path-walking) - Safe removal — protects both the stock kernel and the currently running kernel, with a clear UX explaining why each is locked - Adapts to terminal width; polls tput cols on startup so the title doesn't render at the wrong width while foot resizes the window
5.9 KiB
OKM — Omarchy Kernel Manager
A friendly TUI for installing, switching, and removing Linux kernels on Omarchy. One keybind opens a floating window where you can drop in CachyOS, linux-zen, hardened, and friends — and remove them safely later, without ever clobbering your stock kernel or the one you're currently booted into.
╔══════════════════════════════════════════════════════════════════╗
║ ║
║ OKM - OMARCHY KERNEL MANAGER ║
║ ║
║ Shall we tweak the kernel? ║
║ ║
╚══════════════════════════════════════════════════════════════════╝
Choose:
> View current kernel status │ Show current kernel info
Install or manage kernels │ Add linux-zen, linux-cachyos, etc
Revert to stock / clean up │ Remove extra kernels
Exit │ Quit the Kernel Manager
Features
- One-keybind launch.
Super+Shift+Kopens OKM in a floating window via Omarchy's stockTUI.floatrule — no custom windowrules to maintain. - 14 known kernels out of the box — covering the four official
Arch kernels (
linux,linux-lts,linux-hardened,linux-zen) and ten CachyOS variants (default, BORE, EEVDF, BMQ, LTS, hardened, server, RT-BORE, deckify, RC). - CachyOS repo bootstrap. First time you pick a CachyOS kernel,
OKM signs the keyring, fetches the latest
cachyos-keyring/cachyos-mirrorlistversions live (no stale URLs), and adds the repo to/etc/pacman.conf— running a fullpacman -Syufirst to avoid partial-upgrade trouble. - AUR support. If you've added a custom kernel to the
KERNEL_SOURCEtable withsource=aur, OKM dispatches toyayorparuautomatically. - Bootloader-aware. After install or removal it runs
mkinitcpio -Pand updates whichever bootloader you have: GRUB, systemd-boot (with abootctl listsummary), Limine, or rEFInd. Misses none of the common Arch setups. - Safe removal. Two kernels are always protected:
- Your stock kernel — recorded the first time OKM runs.
- The currently running kernel — pacman would refuse anyway, and a successful removal mid-session means a broken next boot. Both appear in the removal screen with a clear reason, so you're never staring at a confusingly empty list.
- Adapts to terminal size. Boxes auto-shrink for narrow
terminals; the title polls
tput colsuntil the floating window has settled (foot resizes ~40 ms after spawn) so the header never renders at the wrong width.
Requirements
- Omarchy (Arch Linux + Hyprland). The script bails out if it
can't find
~/.config/hyprorxdg-terminal-exec. gum(pacman -S gum)curlpacman(you're on Arch — you have it)- For CachyOS kernels: an internet connection on first install
- For AUR kernels:
yayorparu
Install
# Clone, then run (the script self-installs to /usr/local/bin/okm
# and adds a Super+Shift+K binding to ~/.config/hypr/bindings.conf).
git clone https://github.com/28allday/omarchy-kernel-manager.git
cd omarchy-kernel-manager
./OKM.sh
Pick Install OKM to system when prompted. After that you can
launch it any time with Super+Shift+K or by running okm.
Usage
Install a kernel
Super+Shift+K → Install or manage kernels → pick from the list.
OKM tells you whether each kernel comes from pacman, CachyOS, or AUR,
sets up the repo if needed, installs <kernel> and <kernel>-headers,
and refreshes the bootloader. Reboot and select the new kernel from
your boot menu.
Switch back to stock
Super+Shift+K → View current kernel status to confirm what
you're on, reboot via the boot menu into your stock kernel, then
launch OKM again to remove the others (see below).
Remove a kernel
Super+Shift+K → Revert to stock / clean up. You'll see every
installed kernel except stock + currently running. Multi-select with
Space, confirm with Enter, OKM strips the package(s) plus
matching -headers, then refreshes the bootloader.
If the kernel you want to remove is the running one, OKM tells you to reboot into another kernel first — it won't pull the rug out.
How it identifies the running kernel
OKM uses Arch's canonical mechanism: every kernel package writes a
pkgbase file at /usr/lib/modules/<kernelrelease>/pkgbase
containing its package name. Reading that file is the only reliable
way to map uname -r back to a package — walking /boot/vmlinuz-*
just finds some installed kernel, not necessarily the one you're
booted into.
Files OKM touches
| Path | What it does |
|---|---|
/usr/local/bin/okm |
The installed script |
~/.config/hypr/bindings.conf |
Adds a single bindd line in a marked block — the floating-window rule comes from Omarchy's stock TUI.float regex, no custom windowrules written |
~/.local/share/okm/kernel-state |
Records your stock kernel so it can never be accidentally removed |
/etc/pacman.conf |
First time you install a CachyOS kernel, adds the [cachyos] section + Include line |
To uninstall: sudo rm /usr/local/bin/okm and remove the
# OKM bindings - added by OKM installer block from
~/.config/hypr/bindings.conf.
Repository
Mirrored on:
- GitHub: https://github.com/28allday/omarchy-kernel-manager
- Forgejo: https://git.no-signal.uk/nosignal/omarchy-kernel-manager
License
MIT — see LICENSE.