Commit Graph
28 Commits
Author SHA1 Message Date
Ryan Hughes c179d78814 configurator: emit explicit bootloader_config with removable=false
archinstall 4.3 maps the deprecated top-level 'bootloader': 'Limine'
to BootloaderConfiguration(bootloader=Limine, removable=True) (per
lib/args.py:185-190 and lib/models/bootloader.py:56-69). Our new
_install_limine_omarchy mirrors archinstall's removable handling: it
would copy BOOTX64.EFI to EFI/BOOT (fallback path) and SKIP
efibootmgr, neither of which is what we want.

Switch to the explicit bootloader_config form with removable=false
so we take the EFI/limine path + register the 'Limine' NVRAM entry
as intended.
2026-05-22 00:15:04 -04:00
Ryan Hughes 16cc1058be automated_script: restore proven gum stream/env contract
Restore the env + redirect setup that the previously-working ISO
installer used (matching /home/ryan/Downloads/ISO scripts/.automated_script.sh):

  export COLUMNS=$(tput cols)
  export LINES=$(tput lines)
  exec > >(tee >(sed CSI-strip >> log) 2>/dev/null) 2>/dev/tty
  export CLICOLOR_FORCE=1
  export FORCE_COLOR=1

The cutover commit (064b5e2) silently dropped these. Subsequent
attempts to fix the TTY/gum rendering by reshaping the redirect were
all symptom-chasing — the proven shape was correct. The key insight:

  - gum draws its TUI on stderr, not stdout. 2>/dev/tty keeps that
    rendering on the real terminal.
  - stdout-as-pipe (via tee) is *desired*: it lets gum detect a
    non-TTY stdout and skip cursor-position probes (CSI 6n). Without
    that detection, the DSR replies leak as visible ^[[13;1R bytes.
  - CLICOLOR_FORCE/FORCE_COLOR force gum to still emit colour despite
    stdout being a pipe.

Also drops the configurator's _drain_tty workaround — unnecessary
once gum stops sending DSR queries in the first place.
2026-05-21 20:54:05 -04:00
Ryan Hughes 8734136908 configurator/shim: drain tty without hanging (use -t 0.05, not -t 0)
bash's `read -t 0` only TESTS whether input is available; it does not
consume the bytes. So the drain loop `while read -t 0 ...; do :; done`
spun forever the moment any bytes were pending (e.g., the DSR reply
sitting in the tty input buffer after gum style sent CSI 6n).

That hung the configurator at the first step() title screen — blank
prompt, blinking cursor, no keyboard form.

Use `read -t 0.05 -N 9999` once, which consumes up to 9999 bytes with
a 50ms timeout. Always returns after 50ms whether there's data or not.
Single call replaces the while loop.
2026-05-21 20:46:50 -04:00
Ryan Hughes a5a7110bea configurator: drain tty input after each step() title
gum's TUI startup queries the terminal (e.g., cursor position via
CSI 6n) and doesn't always read the reply. The reply bytes
("^[[13;1R") then surface visibly next to the next step title.
A one-time drain at script start (in .automated_script.sh) catches
the boot-time replies but not the gum-per-call ones, since the
artifact came back at every new step().

Add a small _drain_tty helper and call it from step() after the
title gum-style invocation so any pending DSR replies are consumed
before the next prompt runs.
2026-05-21 20:34:21 -04:00
Ryan Hughes be721e17f4 installer: route kernel/initramfs to ESP for encrypted protected installs (Limine can't read LUKS) 2026-05-21 20:09:50 -04:00
Ryan Hughes 0477275d08 configurator: shorten install-mode labels to fit 80-col terminals 2026-05-21 18:44:09 -04:00
Ryan Hughes 26e6a78d3a configurator: add partition install mode with BitLocker/ESP guards and pre_mounted_config output 2026-05-21 18:12:55 -04:00
Ryan Hughes 01b932023a configurator: pacstrap omarchy + omarchy-installer (not just installer)
With the cleaner dep graph, omarchy-installer no longer transitively
pulls omarchy + omarchy-settings + omarchy-limine. Pacstrap both
explicitly so /etc/skel (via omarchy -> omarchy-settings) is populated
before archinstall creates the user.
2026-05-20 22:27:38 -04:00
Ryan Hughes a4f5c1bf14 Pacstrap omarchy-installer via archinstall so /etc/skel is set up first
archinstall creates the user AFTER pacstrap. If omarchy-settings (which
ships /etc/skel/.config/**) isn't pacstrap'd, the user is created with
an empty skel and never gets the Omarchy default configs in their HOME.

Add omarchy-installer to the configurator's archinstall package list
(its depends pull omarchy + omarchy-settings + omarchy-limine), so all
the package files are in place before the user is created.

install_omarchy no longer needs the explicit 'pacman -S omarchy-installer'
step; it just runs 'omarchy-install' which is already at /usr/bin/.
2026-05-20 22:18:14 -04:00
David Heinemeier Hansson 80042969ed Add missing snapper 2026-05-07 14:51:48 +02:00
David Heinemeier Hansson eb9112ae45 Allow all valid hostnames
Closes #69
2026-05-07 12:49:33 +02:00
Daniel Main 5297020040 Add Colemak keyboard layout option (#49) 2026-05-07 12:47:20 +02:00
David Heinemeier Hansson 01f393f10d Install without encryption (#79)
* Configurator tester

* Make it a dry run

* Offer a no-encryption install mode

* Fix SDDM login

* Simplify the flow by using ctrl-c to toggle into unencrypted mode
2026-05-07 12:03:11 +02:00
David Heinemeier Hansson 7a8d9708e3 Fix disk selection 2026-04-28 12:17:14 +02:00
Michael Placzek eadb1c05d4 Exclude install media from disk picker (#73)
* Exclude install media from disk picker

* Document boot-disk exclusion in configurator
2026-04-24 22:22:30 +02:00
David Heinemeier Hansson 6aff2b3e20 Give better information for the drive selection
Model/vendor + known partitions
2026-02-21 17:06:20 +01:00
Ryan Hughes 09913880e6 Add omarchy-keyring and keys 2025-10-27 17:04:20 -04:00
Ryan Hughes 82f854054e Merge pull request #52 from dakshesh14/fix/password_opensll
fix: iso setup failing when password starts with dash(-)
2025-10-27 11:11:35 -04:00
Ryan Hughes 9ad1706ce3 Revert "Harden ingest of user-provided passphrase" 2025-10-27 01:55:54 -04:00
Wolfgang Woehl 9e7841ccd2 Harden ingest of user-provided passphrase 2025-10-20 16:55:27 +02:00
dakshesh14 880d8c57af fix: iso setup failing when password starts with dash(-) 2025-10-19 11:01:38 +05:30
David Heinemeier Hansson b9e6462c9f Expand the keyboard list so it's not insane to diff when we need to fix things in it 2025-10-18 20:50:14 +02:00
Ryan Hughes 7598e58d0b Add French (Switzerland) 2025-09-28 16:17:23 -04:00
Ryan Hughes 26daaaa625 Update keyboard options to be valid 2025-09-28 16:14:18 -04:00
David Heinemeier Hansson 9e9cf2f576 Let's do it up front 2025-09-13 20:13:24 +02:00
David Heinemeier Hansson 7f5e5460f0 Better organization 2025-09-13 20:12:22 +02:00
David Heinemeier Hansson ebe7ab1f51 tzupdate may be available but without internet 2025-09-13 20:08:42 +02:00
David Heinemeier Hansson 045db5b028 Inline the configurator 2025-09-13 18:39:45 +02:00