v0.7.1 e0abc49

2026-10-09

e0abc49fix(text): keep lazy font selection equal to a full index GPG Verifiedtag v0.7.1brice
e40e7a1perf(text): index system fonts on demand and in parallel GPG Verifiedbrice
438604cMerge pull request #1: feat: Renderer.Measure merge tag v0.7.0bnema
e225d7cci: build the Go tools against the latest x/tools GPG Verifiedbrice
7b9cc4cci: build staticcheck against x/tools v0.51.0 for Go 1.27.2 GPG Verifiedbrice
fe167f0fix(ui): measure root margins and percentage heights GPG Verifiedbrice
cb70a9afix(layout): natural size ignores percentage heights GPG Verifiedbrice
48b428bfeat(ui): Measure GPG Verifiedbrice
db490c8feat(layout): natural size GPG Verifiedbrice

2026-10-02

aa12db3feat(examples): restore the workspace demo in a separate module (#11) GPG Unverifiedtag v0.6.1bnema
19ecdbfperf: cut steady-frame allocations in Renderer.Render (48 → 22) (#10) GPG Unverifiedbnema

2026-10-01

43c5a7cfeat(ui): add Caps Lock and Num Lock modifier bits (#9) GPG Unverifiedtag v0.6.0bnema
657f658perf: cut steady-frame allocations from 241 to 48 (#8) GPG Unverifiedtag v0.5.1bnema
5fd5066Merge pull request #6 from bnema/refactor/wayland-free merge GPG Unverifiedtag v0.5.0bnema
360f051Merge branch 'wf/remove-wayland': remove Wayland code, docs and CI merge GPG Verifiedbrice
86bd490docs: fix stale Wayland-era comments, rewrite ADR 0003 for the eventfd model, trim ADR 0007 and performance provenance GPG Verifiedbrice
e3eeaa9refactor: remove the unused rect pipeline and shaders; report validation errors on Target.Close GPG Verifiedbrice
c104571refactor: drop unused consumed flag and group Mod constants in the facade GPG Verifiedbrice
8b015e3test: replace handwritten clipboard and IME doubles with Mockery mocks GPG Verifiedbrice
2543591test: restore SetInputRects and Node.Rect tests through Renderer output GPG Verifiedbrice
8e05969docs!: describe the Wayland-free Renderer and add CI GPG Verifiedbrice
90277d5test: replace fakeIME with Mockery mocks and add Makefile GPG Verifiedbrice
21218d9refactor!: remove Wayland code and Run/RunLock public API GPG Verifiedbrice
7f31652build!: drop wlturbo and purego-xkbcommon dependencies GPG Verifiedbrice
4c75474Merge branch 'wf/renderer': Wayland-free Renderer merge GPG Verifiedbrice
d1933fctest: cover stale release notification, old-generation pending waits and sticky failure GPG Verifiedbrice
84a151ffeat: add Renderer.Pending, make closed Renderer inert, size TextInt buffer GPG Verifiedbrice
eba94e9fix(session): drain release eventfd first, build generations atomically, make post-submit failures sticky GPG Verifiedbrice
8c0d565refactor(syncobj): remove unused ImportTimeline GPG Verifiedbrice
7839b6btest(ui): skip the allocation guard under the race detector GPG Verifiedbrice
ee44fbdtest(ui): make resize retirement test deterministic GPG Verifiedbrice
28f84a4test(ui): add GPU Renderer tests and TestAllocRendererSteadyFrame GPG Verifiedbrice
62a7058test(ui): cover Renderer with a Mockery GPU seam GPG Verifiedbrice
008e36dfeat(ui): add Node.TextInt and Node.Masked GPG Verifiedbrice
e1768cafeat: add Wayland-free Renderer API GPG Verifiedbrice
f89a222refactor(ui): move input kinds and modifiers to input.go, add ModAlt and ModSuper GPG Verifiedbrice
e5cd51bfeat(session): add Wayland-free Target with eventfd release tracking GPG Verifiedbrice
db918d9refactor(vkdevice): drop wlturbo from DMA-BUF image allocation GPG Verifiedbrice
ed16cf7feat(syncobj): add EventFD, Signal and ImportTimeline ioctls for eventfd-based release GPG Verifiedbrice
2de4e1dMerge pull request #5 from bnema/feat/layer-all-outputs merge GPG Unverifiedtag v0.4.0bnema
8bbc355feat(layer): add LayerConfig.AllOutputs for one surface per output GPG Verifiedbrice

2026-09-30

6800c6aMerge pull request #4 from bnema/feat/session-lock merge GPG Unverifiedtag v0.3.0bnema
a70555bchore(deps): bump wlturbo to v0.5.0 and purego-xkbcommon to v0.1.0 GPG Verifiedbrice
65d5b9bfeat(lock): add secure session-lock API with secret input buffer GPG Verifiedbrice
6e0cddcMerge pull request #3 from bnema/feat/layer-shell merge GPG Unverifiedtag v0.2.0bnema
75780d0fix(layout): reject Rect children in flex-styled Stacks GPG Verifiedbrice
1032255fix(wayland): ack layer configure atomically with its size GPG Verifiedbrice
d9b2d87docs(runtime): describe layer-shell hooks and staged input regions GPG Verifiedbrice
73d50d7feat(wayland): add layer-shell surfaces and event-driven interaction hooks GPG Verifiedbrice
47aaa0fMerge pull request #2 from bnema/feat/gui-workspace-and-performance merge GPG Unverifiedtag v0.1.0bnema

Keyboard shortcuts

Single-key shortcuts are on. ctrl k and esc work whatever this says.

ctrl k :
go to a section, branch, tag, file or repository
?
this list
j k
move the row cursor down / up
enter
open the row under the cursor; on Files, a directory opens or closes in place
↑ ↓ ← → home end
in the file tree (focus on a row): previous / next row, close / open a directory or go to its parent / first entry, first / last row. They never open a file
l h
on Files: open a directory or a file / close a directory or go up to its parent, then to the parent page. Elsewhere: into the side panel (on a merge request, its files) / back to the content; there j k move between its controls
g g G
first / last row
/
filter the list; on Files, find a file anywhere in the repository (esc clears, enter opens the best match)
b
switch branch or tag
g s g f g c g b g m g i g r g a
tabs: summary, files, commits, branches & tags, merge requests, issues, releases, actions (when available)
g h
home
w
wide mode: use the whole width of the screen, or not (remembered)
y
copy a permalink pinned to the commit
d u x
diff: split / unified / collapse or expand all
e E
diff: the whole file in view / every file, with the lines the hunks hide
n
merge request: next note in the diff
esc
close a dialog, leave a field

Branches 1

Tags 12

↑↓ moveenter openesc close