- HTML 79.2%
- JavaScript 18.2%
- Shell 2.6%
| assets | Dateien nach „assets" hochladen | |
| src | Dateien nach „src" hochladen | |
| install.sh | Dateien nach „/" hochladen | |
| kernel-manager-light.png | Dateien nach „/" hochladen | |
| kernel-manager.png | Dateien nach „/" hochladen | |
| logo.png | Dateien nach „/" hochladen | |
| main.js | Dateien nach „/" hochladen | |
| package-lock.json | Dateien nach „/" hochladen | |
| package.json | Dateien nach „/" hochladen | |
| preload.js | Dateien nach „/" hochladen | |
| README.md | README.md aktualisiert | |
🐧 Void Kernel Manager
A modern GUI for managing Linux kernels on Void Linux
Overview
Void Kernel Manager is a desktop application built with Electron that gives you a clean, graphical interface for everything kernel-related on Void Linux — installing and removing kernels via XBPS, compiling custom kernels, managing GRUB and UEFI boot settings, and more.
All terminal output streams live into an integrated console panel, so you always see exactly what's happening.
Screenshots
| Light | Dark |
|---|---|
| Light Theme | Dark Theme |
Features
XBPS Kernels
- Lists all available kernels from the official Void Linux repositories
- Shows which kernel is currently running (highlighted)
- Install or remove kernels with a single click via
pkexec - One-click "Next Boot Only" button — sets a specific kernel for the next boot via
grub-rebootwithout changing the default - DKMS module status viewer — check which kernel modules are currently built
- Disk space overview per kernel version (
/lib/modules+/boot) - Purge old kernels with
vkpurge
Downloads
- Fetches the live version list directly from kernel.org
- Download any kernel tarball (all variants: mainline, stable, longterm) into
~/Downloads - Clone a custom Git repository or download a tarball by URL, streamed into the integrated console
Build & Config
- Compile a custom kernel with configurable options:
- Optimization level (
O2,O3,Os) - CPU architecture targeting (
native,znver3,alderlake, ...) - LTO (Link-Time Optimization)
- ZFS and NVIDIA out-of-tree module support
- Preemption mode (
voluntary,full,RT) - ZRAM compression algorithm
- Extra
KCFLAGS
- Optimization level (
- Export the result as an XBPS package
- Save and load build configurations as JSON
Boot Configuration
- Auto-detects your bootloader (GRUB or UEFI)
- GRUB: Edit
GRUB_CMDLINE_LINUX_DEFAULTdirectly in the UI and runupdate-grubwith one click - UEFI: Populate a dropdown from
efibootmgrentries and setBootNextfor a one-time boot
Integrated Console
- All
xbps-install,xbps-remove,wget,git clone, and build commands stream their output directly into the built-in terminal panel - No external terminal emulator required
Auto-Updater
- One-click update from the Codeberg repository via
git cloneinto/usr/local/bin/kernel-manager/
Requirements
| Dependency | Purpose |
|---|---|
electron ≥ 28 |
App runtime |
xbps-query, xbps-install, xbps-remove |
Kernel management |
pkexec (Polkit) |
Privilege escalation |
vkpurge |
Cleaning up old kernels |
dkms (optional) |
DKMS module status |
grub / efibootmgr (optional) |
Boot configuration |
wget |
Kernel downloads |
git |
Repository cloning |
Installation
Clone and run:
git clone https://codeberg.org/https://codeberg.org/pinguin-void/kernel-manager.git
cd kernel-manager
chmod +x install.sh
sudo ./install.sh
Or install to /usr/local/bin:
git clone https://codeberg.org/pinguin-void/kernel-manager /usr/local/bin/kernel-manager
cd /usr/local/bin/kernel-manager
npm install
Place your logo.png in the root of the project directory next to main.js.
Project Structure
kernel-manager/
├── logo.png ← your app icon (place here)
├── main.js ← Electron main process (all IPC, system calls)
├── preload.js ← context bridge (renderer ↔ main)
├── package.json
└── src/
└── index.html ← complete UI (i18n, theming, all tabs)
Internationalization
The UI automatically detects your system language via app.getLocale(). You can also switch languages manually with the dropdown in the header — the choice is saved between sessions.
Currently supported: Deutsch · English
Additional languages can be added by extending the STRINGS object in src/index.html.
Theming
The app follows your OS theme automatically using native CSS system colors (Canvas, CanvasText, Highlight, ...) — no extra configuration needed. It looks correct in both light and dark mode out of the box, including on systems that switch automatically.
Updating
Click "Update App" in the header to pull the latest version from Codeberg. The updater clones the repo to a temp directory and copies the files to /usr/local/bin/kernel-manager/ via pkexec. Restart the app afterward.
Contributing
Contributions, translations, and bug reports are welcome on Codeberg. Please open an issue before submitting large changes.
License
MIT — see LICENSE.