The official mirror list is 30 entries and was printed on two lines each, 63 lines in total. On a standard 80x25 console the first mirrors had already scrolled off by the time the prompt appeared, so most of the list could not be read. Print one screenful at a time, sized from the terminal height reported by stty, and compact each mirror onto a single line. Enter shows the next page and wraps around at the end; a number still selects from anywhere in the list, not just the visible page. The single-line layout adapts to the terminal width: the location column gets whatever room is left once the longest URL is accounted for, capped at 24 characters, and is dropped entirely when the terminal is too narrow for it. Falls back to 24x80 when stty reports nothing. The dynamic column width is built into the format string rather than passed with the "*" specifier, which busybox awk rejects. Verified the layout under gawk, mawk, busybox awk and Void's own awk. Verified at 24x80, 25x80, 50x80, 25x120, 25x70 and 10x80: no line exceeds the terminal width, 19 mirrors fit a page at 25 rows and all 30 at 50, the narrow case drops the location, and going back, wrapping around, invalid input and out-of-range numbers all behave. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01KYPScnKLHZyyNkWVRv3fjc
Void Linux KDE Installer
A personal full-disk installer for Void Linux (glibc) with KDE Plasma, LUKS2, Btrfs, and Limine.
The installer is designed for a clean, modern desktop setup and performs extensive hardware, package, and configuration checks before making any destructive changes to the target disk.
Features
- UEFI / x86_64
- LUKS2 full-disk encryption
- Btrfs with Zstd compression and Snapper
- KDE Plasma with Wayland
- Limine with three boot generations
- optional Secure Boot with signed UKIs
- automatic graphics and VM detection
- optional gaming, Bluetooth, printing, SSH, and virtualization support
- nftables workstation firewall
- periodic TRIM on supported drives
- separate Btrfs subvolume for libvirt VM images
- interactive setup or configuration through a
KEY=VALUEfile - preflight mode without modifying the target disk
Requirements
The script must be run as root from an x86_64 glibc Void Linux live system booted in UEFI mode.
A working internet connection is required.
Usage
chmod +x void-install.sh
sudo ./void-install.sh
Run all detection and preflight checks without modifying the disk:
sudo ./void-install.sh --check
Install using a configuration file:
sudo ./void-install.sh --config install.conf
Warning
The installer uses the entire selected disk and permanently erases all existing data on it.
Disks that are still actively used by mounted filesystems, swap, encryption, LVM, RAID, or other block-device layers will not be force-erased. They must be deactivated before installation can continue.
Secure Boot is optional. TPM2 auto-unlock is intentionally not configured; the encrypted root filesystem remains unlockable through its LUKS passphrase.
Notes
This installer is intentionally opinionated and targets one specific system layout rather than trying to support every possible installation scenario.
Before installing on real hardware, it is recommended to run:
sudo ./void-install.sh --check
A test installation in a virtual machine is also recommended before first use on bare metal.