<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-07-21T04:20:11+00:00</updated>
<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=cfcac2e06d43e6e757b1be9d6449891332848bce'/>
<id>urn:sha1:cfcac2e06d43e6e757b1be9d6449891332848bce</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=d6ba5647d5b3f2fe838e5a4705be7825f043d112'/>
<id>urn:sha1:d6ba5647d5b3f2fe838e5a4705be7825f043d112</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>
<entry>
<title>docs: file interface design references</title>
<updated>2026-07-19T20:44:24+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-19T20:44:24+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=96bc42fafff425cf7690ad417cc6d4d4a757547b'/>
<id>urn:sha1:96bc42fafff425cf7690ad417cc6d4d4a757547b</id>
<content type='text'>
Record the reconciled weather work and future component direction.\nFile the clock and retro-interface reference materials for later design work.
</content>
</entry>
<entry>
<title>feat(gallery): add the index typewriter</title>
<updated>2026-07-16T21:43:29+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-16T21:43:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=c6f1540a7532eaaa54857b990c729f36591494a6'/>
<id>urn:sha1:c6f1540a7532eaaa54857b990c729f36591494a6</id>
<content type='text'>
The oldest way to type without a keyboard, and the first card where selecting and committing are separate acts. One hand walks a stylus over a printed plate, the other pulls a lever, and only the lever prints. You can hunt across every character and nothing happens until the second hand moves. Every other control in the kit fires on contact.

The keyboard follows the same rule: typing selects, Enter is the lever. A keypress that printed would make this the ABC keypad with a nicer plate, which is the one thing it must not be. It also does no case folding, where the keypad must. This plate carries both cases as distinct cells, so Shift does exactly the work a shift key would on a machine that hasn't got one.

KEYS and ACTIONS are derived from the layout table rather than kept beside it, so rewriting the table relays the plate, the keymap and the allowlist together. A binding aimed at a character the plate no longer carries isn't expressible.

After the AEG Mignon Model 4, keeping the two things worth keeping: the extended set a keyboard skips, and both cases with no shift key. Its frequency order goes. Reading the plate is the interaction, and P U G Q / V I N A B isn't something you can read your way around, so ours is alphabetical with capitals beside lowercase at the same column offset. I expect to revisit the keys, so the layout is a table the geometry computes itself from. I built it at four, five and nine rows to check the gutter survives a rewrite in either direction.

There's no space cell yet, so Space isn't ours and still scrolls the page. The real machine has a separate space key.
</content>
</entry>
<entry>
<title>docs: record the component taxonomy and the alphanumeric survey</title>
<updated>2026-07-16T14:11:29+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-16T14:11:29+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=e3379e5f8adc54c6c32ba0164a97079d532ee1ec'/>
<id>urn:sha1:e3379e5f8adc54c6c32ba0164a97079d532ee1ec</id>
<content type='text'>
Crossing Foley's elemental tasks against cardinality over the kit finds two empty cells: selecting one of a dynamic set (the device and network lists) and alphanumeric text entry (a WiFi password). Panels that already exist want both.

The cross needed an axis the note didn't carry. Cardinality lumps all one-of-N together, so a chicken-head selector and a WiFi list share a cell that then reads as covered. Set stability is what separates them. The axis is invisible from inside hardware, where every option set is engraved at manufacture. That's why a catalogue modelled on period gear goes blind exactly where its software consumers live.

The period answer to a changing set was never a control but a re-labelable slot: jukebox title strips, Rolodex cards, scribble strips. The slot is manufactured, the label isn't.

Reference photos supersede the teletype for text entry. They're all ABC-order industrial keypads, whose colour-coded CANCEL, CLEAR/NO and ENTER/YES land on the palette untranslated. A survey adds two idioms unlike a keypad: the index typewriter, which selects on one control and commits on another, and the chorded keyset, which has no key per letter at all.
</content>
</entry>
<entry>
<title>chore: archive completed tasks and file two cross-needle references</title>
<updated>2026-07-13T05:39:33+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-13T05:39:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=150c3ae82210a194ddbf7eee5e52691351709fde'/>
<id>urn:sha1:150c3ae82210a194ddbf7eee5e52691351709fde</id>
<content type='text'>
Wrap cleanup moved the closed net/bt panel tasks into the archive. Two reference photos (weather-station comfort meter, SWR forward/reflected meter) are filed for the next catalogue pass — both look N13-covered.
</content>
</entry>
<entry>
<title>feat(gallery): rebuild R05 filter bank with three skin axes</title>
<updated>2026-07-13T04:54:01+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-13T04:54:01+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=3cdb19153b56b006909b05c7bd8530b4e605e7ea'/>
<id>urn:sha1:3cdb19153b56b006909b05c7bd8530b4e605e7ea</id>
<content type='text'>
The old card was a sketch: eight bare tracks and flat teal arrows floating on the card background. Real slider banks (the Vieltronix filter, the Pioneer SG-9500, the Technics SH-8065, the Zaxcom Oasis) have a faceplate, dual dB rails, dense bands, and caps that read as machined parts.

The rebuilt bank draws twelve bands on a screwed faceplate with tick rails both sides. Skins ship as constructor opts backed by GW.filterBank.STYLES on three independent axes: panel (lab parchment / silver aluminum / studio black), cap shape (tall block fader / short ribbed / chrome T), and cap color (black white-index / red, green, blue, amber stripes / chrome / cream). Shape and color are separate axes so any finish applies to any cap. opts.style picks a native trio. setStyle(axis, name) restyles a live instance with values preserved. The card grows chip groups driving setStyle, the same demo-rig pattern as the slide toggle.

Values shorter than a custom freqs list now pad instead of placing caps at NaN. I filed the Oasis reference alongside the others.
</content>
</entry>
<entry>
<title>feat(gallery): restyle the slide toggle after its hardware lineage</title>
<updated>2026-07-13T00:46:02+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-13T00:46:02+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=657df4393bb26b7b13a5d429ac303430d573a4df'/>
<id>urn:sha1:657df4393bb26b7b13a5d429ac303430d573a4df</id>
<content type='text'>
Card 01 now wears the iPod-hold-switch skin from the reference: dome thumb, engraved ON/OFF revealed opposite the thumb, amber track when on. Built with flex and fixed pixels only, since absolute insets and stretched widths misrender under stage zoom. The spec sheet records the full lineage: slide switch, iPod hold switch with its orange reveal, then the iOS toggle.
</content>
</entry>
<entry>
<title>feat(gallery): gallery upgrades — size/palette/screen-chips/spec-sheets, 25 new cards, grammar note</title>
<updated>2026-07-13T00:06:39+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-13T00:06:39+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=6528b5cb9e97d7587df1b526abe95f719938e27e'/>
<id>urn:sha1:6528b5cb9e97d7587df1b526abe95f719938e27e</id>
<content type='text'>
Squash of the gallery-upgrades branch (25 commits). Usability: widget stages scale S/M/L (2.4x default), reading text at 12-13pt, a live palette section parsed from the generated :root block, screen-color families with per-card chips on the five screen widgets, and a collapsible spec sheet on every card (input model, solves, use, limits, origin, difficulty, prefer-when, period on the non-timeless).

Collection grew 84 → 109 cards, all CDP-verified: reference cards R32-R36 (mechanical timer, four-way rocker, four-way toggle, day-date discs, LED dot matrix), the takuzu-survey build R37-R47 plus the N23 alarm lifecycle (pin matrix, dead-man, rotary dial, breaker panel, DSKY, cam timer, attitude indicator, heading bug, flip-disc, dekatron, landing gear), the promoted banked six R48-R53 (knife switch, decade box, two-hand control, voice-loop keyset, blinkenlights, circular chart), and the Ki-57/comfort-meter trio R54-R56 (vertical tape, twin-needle, comfort-zone crossed needles).

Also: docs/design control-grammars reference note (taxonomy sources and proposed axes for the classification work), nine reference photos filed, and a component cleanup pass (dial digits above the finger wheel, legible demo defaults, unified captions).
</content>
</entry>
<entry>
<title>feat(gallery): add R31 radar sweep</title>
<updated>2026-07-12T06:54:23+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-07-12T06:54:23+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/archsetup/commit/?id=e1eee4e68eb4e0d717929d8d0c4abbd40fde8f3d'/>
<id>urn:sha1:e1eee4e68eb4e0d717929d8d0c4abbd40fde8f3d</id>
<content type='text'>
The rotating scan after a radar PPI scope (reference filed in the catalogue's working directory): a beam circles inside a numbered bearing ring, an afterglow wedge trails it, contacts bloom as the beam passes and fade over the next half turn, and range rings sit under it all. Clicking marks the current bearing. The kit's round CRT draws traces; nothing rotated a scan until this.

I verified it in headless Chrome: the sweep rotates, the mark click captures the live bearing, no console exceptions.
</content>
</entry>
</feed>
