<feed xmlns='http://www.w3.org/2005/Atom'>
<title>slosh.git/contrib, branch v0.1.3</title>
<subtitle>an opinionated terminal multiplexer in C with programmable pane chrome</subtitle>
<id>https://git.sl0p.foo/slosh.git/atom/contrib?h=v0.1.3</id>
<link rel='self' href='https://git.sl0p.foo/slosh.git/atom/contrib?h=v0.1.3'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/'/>
<updated>2026-09-02T13:17:19Z</updated>
<entry>
<title>gen-docs: the page title separator is a middle dot</title>
<updated>2026-09-02T13:17:19Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T13:17:19Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=e468637d7d01a3a3bcfff24b0ce641e1fa8997df'/>
<id>urn:sha1:e468637d7d01a3a3bcfff24b0ce641e1fa8997df</id>
<content type='text'>
</content>
</entry>
<entry>
<title>themes: pin the attach tag to each palette's muted chrome tone</title>
<updated>2026-09-02T13:11:59Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T13:11:59Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=736f259bfc0f01b43b59676e4de31ce33d03ed60'/>
<id>urn:sha1:736f259bfc0f01b43b59676e4de31ce33d03ed60</id>
<content type='text'>
Every shipped theme names attach_fg explicitly, reusing its own
minbar colour -- the default gray suits the dark themes and nothing
else, and paper's light ground proved it.
</content>
</entry>
<entry>
<title>webdemo: version from contrib/version, published by ship</title>
<updated>2026-09-02T12:47:30Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T12:47:30Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=3578eefea5b53bce2c1dbbc7f104f3cf85c8aa5b'/>
<id>urn:sha1:3578eefea5b53bce2c1dbbc7f104f3cf85c8aa5b</id>
<content type='text'>
The demo's Makefile said VERSION := 0.1.0 by hand, so the in-browser
slosh announced a release two tags old no matter what was built into
it. It now derives from contrib/version like every other artifact,
suffixed +webdemo so the guest build names itself. And ship gains a
website step: the site (demo included) is rebuilt from the tag
checkout and published as part of a release, so the demo cannot fall
behind again.
</content>
</entry>
<entry>
<title>shaders: remove the .so plugin loader</title>
<updated>2026-09-02T12:43:09Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T12:43:09Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=18d1aef0f9bf4620135fd9f77f26683e6f2f8c00'/>
<id>urn:sha1:18d1aef0f9bf4620135fd9f77f26683e6f2f8c00</id>
<content type='text'>
The static musl release builds cannot dlopen -- musl compiles it out
-- so loadable shader plugins were a feature most shipped binaries
could not use. Nothing we ship used it either: every shader in
contrib/shaders is an expression. Gone: the dlopen/glob loader in
shader.c, shader_dir in the config, the plugin ABI table and entry
macro, the Windows dl*/glob shims that existed only for it, the
contrib/shader-plugin skeleton, its tests, and every doc mention.
shader_abi.h stays as the shader model (cell_t, shade_ctx_t,
shader_t) with a note about what it used to be.
</content>
</entry>
<entry>
<title>contrib/ship: the whole release as one resumable command</title>
<updated>2026-09-02T12:15:37Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T12:15:37Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=878c50e1cbba07b4545a6cc21c458f30d23543f0'/>
<id>urn:sha1:878c50e1cbba07b4545a6cc21c458f30d23543f0</id>
<content type='text'>
contrib/release cuts the tag and stops -- publishing is on purpose.
ship is that purpose: push, artifacts (linux/windows here, macOS on
the builder), the GitHub release, the brew tap, the arch repo, the
paperwork commit. Each step skips when its result already exists, so
a run that died mid-way resumes instead of rebuilding artifacts whose
checksums are already published. Preflight checks every credential
and machine before anything is cut, because half-published is the
failure mode this exists to remove (v0.1.2 shipped while the arch
repo still served v0.1.1).
</content>
</entry>
<entry>
<title>public links: point at github.com/sl0p-foo/slosh instead of cgit</title>
<updated>2026-09-02T12:07:37Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T12:07:37Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=597135f7851e83e31d99fc9c97fbb087c3df4fce'/>
<id>urn:sha1:597135f7851e83e31d99fc9c97fbb087c3df4fce</id>
<content type='text'>
GitHub is the public interaction point now. The formula and PKGBUILD
fetch GitHub's /archive/ tarballs (same git-archive bytes, per-ref
stable); the PKGBUILD is bumped to 0.1.2 while at it, and its cd's
drop the v -- GitHub tag archives extract to slosh-X.Y.Z/. The cgit
remote stays for pushing; only published URLs change.
</content>
</entry>
<entry>
<title>brew: pin formula to v0.1.2</title>
<updated>2026-09-02T11:01:07Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T11:01:07Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=c0b70ed7fff064d0dda9d0f5936b5cda3569353d'/>
<id>urn:sha1:c0b70ed7fff064d0dda9d0f5936b5cda3569353d</id>
<content type='text'>
</content>
</entry>
<entry>
<title>point homebrew tap at github.com/sl0p-foo/homebrew-slosh</title>
<updated>2026-09-02T10:59:01Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-09-02T10:59:01Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=0a8583f586dc03cdba8c7fe4c3e4130314a1ddc9'/>
<id>urn:sha1:0a8583f586dc03cdba8c7fe4c3e4130314a1ddc9</id>
<content type='text'>
brew auto-resolves GitHub taps, so the explicit URL is no longer
needed: 'brew tap sl0p-foo/slosh' is all users type.
</content>
</entry>
<entry>
<title>arch: sign the packages and the database, and say whose key</title>
<updated>2026-08-29T13:57:54Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-29T13:57:54Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=05529c90ff835248f599605f356d679b515eae84'/>
<id>urn:sha1:05529c90ff835248f599605f356d679b515eae84</id>
<content type='text'>
An ed25519 key made for exactly this -- slosh package signing
&lt;slosh@slosh.foo&gt;, 0F67C909938CFFA8A76B59FD8D69B55A0E9056B9 -- signs every
package and both indexes. The public half travels two ways that would both
have to lie: contrib/arch/slosh.asc in git, and /arch/slosh.asc on the
website; the READMEs walk through pacman-key --add and --lsign-key, and the
[slosh] stanza loses its SigLevel override because pacman's default demands
signatures and now gets them.

contrib/arch-repo pins the fingerprint, refuses to run without the secret
key (an unsigned update would make every enrolled pacman refuse the repo),
and now regenerates the index from the directory every time: repo-add skips
an entry whose version it already has, so after a same-version rebuild an
incremental add left the db describing the previous bytes -- a checksum
mismatch for every client. An index rebuilt from disk cannot disagree with
disk. Verified end to end with a scratch pacman keyring: enrolled key
syncs and downloads under Required DatabaseRequired, unenrolled key is
refused at the database.
</content>
</entry>
<entry>
<title>arch: a self-hosted pacman repository, since the AUR is shut</title>
<updated>2026-08-29T13:48:25Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-29T13:48:25Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/slosh.git/commit/?id=bf9b27158d9f66d84c0ca0e481714af4cc63e252'/>
<id>urn:sha1:bf9b27158d9f66d84c0ca0e481714af4cc63e252</id>
<content type='text'>
AUR signups are closed while the AUR deals with supply chain attacks, so
the package is published from our own roof -- which is the better offer
anyway: a pacman repository serves built packages where the AUR hands
every user a rebuild. contrib/aur/ becomes contrib/arch/ (the .SRCINFO
goes; it is AUR metadata, regenerated in a minute when signups reopen),
and contrib/arch-repo builds the package and maintains the slosh.db /
slosh.files indexes in dist/arch/&lt;carch&gt;/, which rsyncs to
/opt/slosh/arch/ on the box. The README and the front page carry the
[slosh] stanza; SigLevel is spelled out because the packages are not
signed yet and pacman defaults to demanding it.
</content>
</entry>
</feed>
