<feed xmlns='http://www.w3.org/2005/Atom'>
<title>archsetup/working, branch main</title>
<subtitle>Builds a full dev workstation from a bare Arch Linux install.
</subtitle>
<id>https://git.cjennings.net/archsetup/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/archsetup/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/'/>
<updated>2026-09-13T14:55:55+00:00</updated>
<entry>
<title>chore(tasks): close the rescued emacs-wttrin commit</title>
<updated>2026-09-13T14:55:55+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-09-13T14:55:55+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=02e8481c84cf123d31219955cafd74eec808441c'/>
<id>urn:sha1:02e8481c84cf123d31219955cafd74eec808441c</id>
<content type='text'>
The commit that existed only on velox's old disk is now on emacs-wttrin's release/0.4.0, with fixes for the two bugs it carried. The bundle's other heads were already on the remote, and the landed patch matches the rescued one. I deleted the bundle and its working dir.
</content>
</entry>
<entry>
<title>chore(tasks): close the velox reinstall drill and the lock-clock bug</title>
<updated>2026-09-13T14:23:39+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-09-13T14:23:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=2f81174b1de13d9148113fb9f3d389ca6c61ac5c'/>
<id>urn:sha1:2f81174b1de13d9148113fb9f3d389ca6c61ac5c</id>
<content type='text'>
The reinstall drill finished on 2026-08-14 and every finding it surfaced already has its own task, so what remained was the record. I filed its working-dir artifacts into permanent homes. The runbook went to docs/ with an Outcome section, since the checklist was never ticked as it ran. The UEFI boot-entry reference went to docs/ too. The three reinstall-gap reports went to docs/design/. The rescued wttrin bundle moved into its own working dir under the task that owns it. Every inbound link is repointed and working/velox-reinstall/ is gone.

The lock-screen clock bug is closed because it no longer happens on velox. I couldn't identify the commit that fixed it from the dotfiles or archsetup logs, and the note says so. Its manual-testing check retires with it.
</content>
</entry>
<entry>
<title>chore: file the legacy inbox references and two unfiled captures</title>
<updated>2026-09-13T12:22:10+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-09-13T12:22:10+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=c9f9a9881548114e49752d5bc4feba4a83ed4d84'/>
<id>urn:sha1:c9f9a9881548114e49752d5bc4feba4a83ed4d84</id>
<content type='text'>
The inbox held 64 processed-but-kept handoffs from July and August. The inbox discipline no longer allows that state: a file is a task, reference content in a tracked home, or gone. I read each one. Fifty-six were acknowledgments, FYIs, lint pipeline files or requests whose work had already landed. Those are deleted.

Eight carried content worth keeping. The 2026-07-15 velox boot-failure diagnosis moves to docs/design, linked from the retrospective task. The three 2026-08-14 reinstall-gap reports move into the velox reinstall working dir, linked from the post-rebuild task. The two Maeda applets and their notes join the clock display references.

Two captures had never landed anywhere: the waybar module separator I captured on 2026-07-20 ([#B]) and the window-configuration research idea from 2026-07-24 ([#C]). Both are filed. The velox reinstall task records the two live steps (wsdd off, passim masked) applied over ssh once velox came back, and the health-check log now says velox is masked.
</content>
</entry>
<entry>
<title>docs(health-check): record the velox 2026-09-12 findings</title>
<updated>2026-09-13T12:02:39+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-09-13T12:02:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=c667485437e9e34a2517c963152a1a86dbc19972'/>
<id>urn:sha1:c667485437e9e34a2517c963152a1a86dbc19972</id>
<content type='text'>
These come from velox's 2026-09-12 health check. The Framework 04.02 BIOS update re-enabled Secure Boot, which rejects the unsigned ZFSBootMenu loader and reads as "no bootable device" while the boot entries are intact. I added a pre-firmware-update checklist to Phase 3 and a check-Secure-Boot-first section to the velox boot-entry reference.

Four Known Issues entries cover the Secure Boot flip, fwupdmgr activating passim, the topgrade containers step failing on local images and the harmless mkinitcpio firmware warnings. Phase 3 also notes why lsinitcpio needs sudo: the images are 0600, so an unprivileged run errors on stderr with an empty stdout, and a piped count reads 0.
</content>
</entry>
<entry>
<title>chore: stage the Hyprland Lua port with its redeploy kit</title>
<updated>2026-08-24T20:27:57+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-08-24T20:27:57+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=8b5e438d787ff73c3344b4c5ea1141cf8b23ef69'/>
<id>urn:sha1:8b5e438d787ff73c3344b4c5ea1141cf8b23ef69</id>
<content type='text'>
Hyprland 0.57 drops the .conf format. The port is built and measured identical to the current config in a nested compositor — 38 settings, 103 binds, the host-override chain — but it is not deployed. I put it live this afternoon and took it back out the same hour, because it had not been run on real hardware and the machine has to stay usable until it has.

working/hyprland-lua-port/ carries what the switch needs, including the two reader changes as replayable patches. Those matter more than the config itself: four things read hyprland.conf as a source of truth, and dotfiles-validate globs hypr/*.conf, so with the .conf gone it finds nothing and reports a clean tree.

Two facts not worth re-deriving: with both files present 0.56.2 loads the .lua, so keeping the .conf beside it buys no rollback; and a running compositor rewrites a stub config within a second of the file vanishing, which is what fights a restow.

Also archives finished tasks and folds in several sessions of task-review edits.
</content>
</entry>
<entry>
<title>fix(velox): trace the dead touchpad to its own connector, and repair two lost todo headings</title>
<updated>2026-08-20T16:46:19+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-08-20T16:46:19+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=fb13378559cdc6a9ef3b23883bcbda2937dc1195'/>
<id>urn:sha1:fb13378559cdc6a9ef3b23883bcbda2937dc1195</id>
<content type='text'>
The touchpad fault was an interrupt line that never fired: the device
enumerated, hid-multitouch bound, and the handler sat correctly on amd_gpio
pin 8, but the count stayed at zero across all 24 CPUs under active use and
the i2c-HID reset timed out at every boot. A live USB reproduced it exactly,
which ruled out software. The fix was the touchpad's own connector — the
input-cover ribbon I reseated first fixed the phantom power button and left
this untouched, and the 4-pin connector beside the silkscreen is GND and VCC
only, so it could never have carried i2c. Both faults from the mainboard swap
are now closed.

Two task headings had been overwritten by inserts at the top of Open Work, and
I recovered both verbatim from the commits that introduced them. One displaced
task had ridden an archived parent into Resolved, so an open bug had been
sitting outside Open Work for weeks.

Filed the install placeholder passwords still live on this laptop as an [#A],
graded on severity alone rather than the frequency matrix: full-disk encryption
protected by a dictionary word does no work at all on a machine that travels.

Corrected the ARCHSETUP_DIR line in the reinstall runbook. It carried a tilde on
the right-hand side of an assignment, which zsh does not expand, so following it
would have produced an ISO with the installer silently absent.
</content>
</entry>
<entry>
<title>chore: rebuild velox and file what the reinstall exposed</title>
<updated>2026-08-14T15:03:26+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-08-14T15:03:26+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=e8004e3a7416c57661d43e8bfaefb7c77255129e'/>
<id>urn:sha1:e8004e3a7416c57661d43e8bfaefb7c77255129e</id>
<content type='text'>
The mainboard swap left no boot entry, so I reinstalled from the archangel ISO rather than repairing a ZFS-root machine a stock USB can't read. Ran it as a disaster-recovery drill: microcode, keys, repos, and data are back, and hibernate now works end to end on a 100G encrypted swap.

The tasks are most of what this bought. Reseating the input-cover ribbon is [#A] for today, because four phantom power-button presses and the dead touchpad are one loose connector, and the last one cut power below systemd. The rescued emacs-wttrin bundle rides along until it lands on its remote; the runbook stays until velox is settled.
</content>
</entry>
<entry>
<title>chore(todo): velox reinstall runbook and the tasks it surfaced</title>
<updated>2026-08-14T03:35:41+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-08-14T03:35:41+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=2e78f55638ee80da6ce4998d37996bea73076efa'/>
<id>urn:sha1:2e78f55638ee80da6ce4998d37996bea73076efa</id>
<content type='text'>
The runbook drove today's rebuild: preflight, a required salvage pass, the install, and post-install verification. It stays as the working record until velox is settled.

Filed from the rebuild: reseating the input-cover ribbon, which is [#A] for tomorrow because phantom power-button presses have killed the machine four times and the last one cut power below systemd, where no setting can catch it. The rest are hibernate in the settings dial, a truenas VM for long-running sessions, the keyboard-backlight binding, and the screen-lock suite that fails 21 of 23 on ratio.
</content>
</entry>
<entry>
<title>docs: file the Hyprland issue draft for manual posting</title>
<updated>2026-07-21T04:20:11+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-21T04:20:11+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=e5d78c1daf5d5103c208859cbcb6cfc9d47d132e'/>
<id>urn:sha1:e5d78c1daf5d5103c208859cbcb6cfc9d47d132e</id>
<content type='text'>
</content>
</entry>
<entry>
<title>docs: file the Hyprland layoutmsg crash with preserved evidence</title>
<updated>2026-07-20T22:02:59+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-20T22:02:59+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=74181a3235001758a0da93159f0c7a2a45fb35c2'/>
<id>urn:sha1:74181a3235001758a0da93159f0c7a2a45fb35c2</id>
<content type='text'>
SIGSEGV via uncaught bad_variant_access in Layout::CAlgorithm::layoutMsg on a layoutmsg mfact dispatch. Upstream bug, seen on v0.54.1 (March) and v0.55.4 (today), both times from the layout-resize binds. Crash reports and tmpfs log excerpts land in working/hyprland-layoutmsg-crash/ so the evidence survives a reboot; graded [#B] (Critical x rare) in todo.org.
</content>
</entry>
</feed>
