Skip to content

History / Cutting an ISO Release

Revisions

  • Correct the build flag table — the default is CPU, not GPU auto-detect The table said `(none)` gives a "full build, GPU auto-detected". It does not: build.sh initialises WITH_GPU=cpu, and the autodetect branch only runs on an explicit --gpu=auto. Following the old table would not have produced what it promised, and the failure mode is nasty — a CUDA build links the shipped libggml against the build host's driver stack, so synapd exits 127 on any machine without it, VMs included. That is a shipped-and-broken ISO, discovered by whoever boots it. Replaced with the real options, and added the note that the CPU build is a deliberate release choice rather than a limitation — plus the part that was missing entirely: the build also packages synapse-llama-cuda and synapse-llama-vulkan into the repo when the host has nvcc / glslc, so an installed machine can switch onto its GPU afterwards.

    @velle999 velle999 committed Jul 26, 2026
  • Document the desktop: sounds, cursors, widgets, the bar and window effects The wiki was last touched at 0.1.8; everything since — the quickshell bar replacing waybar, the cursor and sound managers, desktop widgets and icons, the wlroots 0.20 / scenefx 0.5 port and the glass work — was undocumented. Four new pages: Sound-Themes synui-sound end to end: the ten events and where each is hooked, installing themes from an archive or a plain folder of .oga files, per-event sample picking, and why several spec names resolve to something else. Carries the ghost theme (/usr/share/sounds/alsa silenced a desktop whose switches all said "on") and the `volume` key collision. Cursor-Themes synui-cursor end to end, built around the thing that actually costs people time: opendesktop ships ready-to-use themes and source trees that look identical from outside. Plus the untrusted-archive handling, and the five places a cursor theme has to be written or the desktop disagrees. The-Desktop the bar (and why waybar went), widgets, desktop icons, themes, per-app geometry. Window-Effects the full synuirc knob reference with defaults and ranges, how to tell whose shadow you are looking at, the 50% shadow ceiling shadow_spread lifts, and the seam rule that made the glass halo square on top. Both installers are documented as installers of untrusted archives, because that is what they are: paths re-resolved against the extraction root, and `build` kept CLI-only since it runs the archive's own makefile as you. Keybindings was materially wrong — Super+T has been the theme manager since the task manager lost its second bind, and Alt+Tab, Super+S, Super+Shift+A, Super+Shift+P, Super+V, Super+R, Super+I and the bare media keys were all missing. Regenerated against the bind table in config.c, with the note that a duplicate combo is not a conflict anyone sees, it is the older feature silently going dead. Troubleshooting gains eight entries, all the same shape as the rest of that page: a commit and a pkgrel bump that ship nothing, the ghost sound theme, a nested synui that re-themes the live desktop, quickshell's missing UseQApplication (whose error goes to tty1, not the journal), Nerd Font glyphs silently becoming the empty string, systemd's non-existent inline comments, and `pkill -f` killing the shell that ran it. Also corrected: wlroots 0.19 -> 0.20 and the scenefx fork in Architecture and Building; the collector drift that went four-for-four and is now deduped via <pkg>/mktarball.sh; LUKS2 and dual-boot in Installation, including why /boot stays outside the encrypted root; and the 0.1.5-0.1.9 release history, with the post-0.1.9 work marked unreleased.

    @velle999 velle999 committed Jul 26, 2026
  • wiki: initial operator's manual Ten pages: installation, keybindings, architecture, per-component pages (synapd, synui, synguard+kmod, synsh), Secure Boot, building/packaging, cutting an ISO release, and a troubleshooting catalogue. The wiki deliberately carries what the README cannot: the failure modes. Nearly every hard bug in this project has been SILENT — a build that exits 0 on stale code, a dkms module that reports installed while being unloadable, a security rule that reports clean because it was reading garbage. Those are written down here with the generalisable lesson attached.

    @velle999 velle999 committed Jul 12, 2026