TUI for installing, switching, and removing Linux kernels on Omarchy
Find a file
28allday cc4c6820dc Initial release of OKM — Omarchy Kernel Manager
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
2026-05-10 09:44:20 +01:00
.gitignore Initial release of OKM — Omarchy Kernel Manager 2026-05-10 09:44:20 +01:00
LICENSE Initial release of OKM — Omarchy Kernel Manager 2026-05-10 09:44:20 +01:00
OKM.sh Initial release of OKM — Omarchy Kernel Manager 2026-05-10 09:44:20 +01:00
README.md Initial release of OKM — Omarchy Kernel Manager 2026-05-10 09:44:20 +01:00

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+K opens OKM in a floating window via Omarchy's stock TUI.float rule — 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-mirrorlist versions live (no stale URLs), and adds the repo to /etc/pacman.conf — running a full pacman -Syu first to avoid partial-upgrade trouble.
  • AUR support. If you've added a custom kernel to the KERNEL_SOURCE table with source=aur, OKM dispatches to yay or paru automatically.
  • Bootloader-aware. After install or removal it runs mkinitcpio -P and updates whichever bootloader you have: GRUB, systemd-boot (with a bootctl list summary), Limine, or rEFInd. Misses none of the common Arch setups.
  • Safe removal. Two kernels are always protected:
    1. Your stock kernel — recorded the first time OKM runs.
    2. 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 cols until 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/hypr or xdg-terminal-exec.
  • gum (pacman -S gum)
  • curl
  • pacman (you're on Arch — you have it)
  • For CachyOS kernels: an internet connection on first install
  • For AUR kernels: yay or paru

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+KInstall 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+KView 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+KRevert 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:

License

MIT — see LICENSE.