jasonandClaude Opus 5 f3bb5eb333 Page the mirror list instead of printing all of it at once
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
2026-08-19 14:34:12 +02:00
2026-08-09 09:55:36 +02:00

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=VALUE file
  • 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.

S
Description
A POSIX installation script for Void Linux.
Readme MIT
1.1 MiB
Languages
Shell 100%