Skip to content

History / synui

Revisions

  • Screen recording, syn resolve, and credit for the Antiquity shell The Antiquity bar has shipped since 0.2.7 and was documented in neither the README nor here, which also meant diinki was uncredited in anything a user reads. The Desktop now covers both shells, `bar_shell`, and the fact that Antiquity is her work under MIT, with the Indian Type Foundry credit clause the bundled faces carry. Recording gained a constant frame rate and a `--edit` mezzanine mode, and `syn resolve` was never listed at all: - Commands: `syn resolve`, and what synui-record now does. - Troubleshooting: three symptom-first entries. The important one is that a recording refusing to open in DaVinci Resolve is not a broken file and not a missing codec — the free edition on Linux decodes neither H.264 nor AAC, so no package fixes it and `syn resolve transcode` is the answer. - Development Notes: two lessons. A container's "frame rate" may be its timebase, which is one field causing three unrelated-looking symptoms; and a validated argument is not a dispatched one, where a build script accepted a component name, built nothing and exited 0. - Building and Packaging: that is a fifth instance of the two-collectors drift, recorded next to the other four. Page links and cross-page anchors checked; nothing here names a machine.

    @velle999 velle999 committed Aug 8, 2026
  • Split synui into the user page and the contributor notes; niri in the layouts synui.md was three audiences stacked on one page: a feature list, ~85 lines of compositor internals, and a config section that mixed "how you configure this" with "change one, change all three". 217 lines down to 160, and the split is by reader rather than by topic. - Header said "Tiling + monocle layouts". There are five. It now names them and points at The-Desktop for what each does. - Features regrouped under Shell / Look / Hardware / AI and security so it can be skimmed, with a what-you-want table at the top. - Every pkgrel reference dropped (154, 163, 183, 192, 197). "Replaced waybar in pkgrel 154" is release history; a reader wants to know the bar is quickshell. - "Hard-won rules for working on synui" moved to Development Notes as "Compositor traps", which is where the cross-cutting ones already lived and where that page already pointed for them. - "Reset signal dispositions" was NOT moved: Development Notes already has "Inherited signal dispositions", same three burns, better written. It was a duplicate, so the page now cross-references instead. - "Session env vars live in three places" went with it — a contributor trap sitting in a user-facing config section. - The state-file rule got the practical form it was missing: if editing synuirc appears to do nothing, a panel has already written that setting. The-Desktop's layout TABLE still had four rows — the prose above it was fixed last time and the table was not, which is the half that gets read. niri now has a row and a section of its own: the strip, the two column moves, and why a column that does not fit is not drawn at all rather than cut off at the edge. Also corrects the geometry note. It said tiling and AI ignore remembered per-app geometry; layout_restore_geometry() gates on tiling, niri AND ai, so three layouts ignore it, not two. Page and anchor links checked.

    @velle999 velle999 committed Aug 7, 2026
  • Document the installer rebuild, synguard enforcement, and kitty The wiki stopped at 2026-07-28 and the whole synguard-to-now range was undocumented. Installation.md still described a single ext4-and-GRUB installer that no longer exists. Installation — install modes now include ADVANCED (partition it yourself, then name the partitions), plus the filesystem table, the bootloader table and what each implies for the ESP, snapshots, swap and zram. Marked with what is actually published: 0.2.4 has ERASE/ALONGSIDE only, everything else is on main and needs a self-built ISO. synguard — the enforcement model had no page anywhere. Adds the two paths (post-hoc SIGKILL vs the in-kernel BPF-LSM gate) and why they are not equivalent, the mode/flag split, the four things the gate cannot do, the two cases where a DENY stands down, how to read the stats line, and how to test a deny rule without killing your own session. synsh — kitty is the default terminal; foot is kept as the CPU-rendered rescue. Includes the dynamic_background_opacity trap, which cannot be fixed after the fact. Terminal references updated across Commands, synui, Window-Effects and Gaming. Development Notes — five new entries, all from silent failures: systemd dependency lists are additive-only so a drop-in cannot remove one; socket-activated services resurrect a daemon you stopped, over the network; an indented heredoc terminator swallows code while bash -n passes; a prompt after a long step answers itself from typeahead; grep -q in a pipeline under pipefail makes "must be absent" checks pass vacuously.

    @velle999 velle999 committed Jul 30, 2026
  • Document wallpapers end to end, plus the mixer New Wallpapers page: the Super+W picker and its keys, per-monitor scoping and scaling modes, the wallpaper.state-over-synuirc rule, and the whole Wallpaper Engine path — how to get the package, every synui-wpengine command, the files and env vars, what renders and what doesn't, and why synui has to restart the engine after a suspend. Also: the bar's new mixer, wallpaper symptoms in Troubleshooting, the two generalisable lessons in Development Notes (a running process is not a working one; an flock belongs to the open file description), and Home's stale 0.1.x status line.

    @velle999 velle999 committed Jul 27, 2026
  • Add a Gaming page — game mode had no documentation anywhere Game mode existed as one line in a keybind table, one row in the sudo -n table, and a paragraph in synapd about VRAM. Nothing said what triggers it, what it stops, how to stop it stopping things, or that there is a launcher wrapper at all — and synui-game-run, the half that has to be in place BEFORE a game starts, was named once in a command list and never explained. The page covers both halves and, more usefully, why they are separate: game mode acts on a game that is already running, while MangoHud and the governor have to be wrapped around the launch, because you cannot inject an overlay into a process that is already up. Documented from the source rather than from memory: the detection rule (a fullscreen XWayland client, which works because desktop apps are Wayland- native and never match), what it stops and why synapd has to be stopped outright (the wire protocol has no unload or sleep, only RELOAD and SHUTDOWN), the idle hold-off and why a gamepad makes it necessary, the five default exclusions and the fullscreen-video surprise they exist to prevent, and the six synuirc keys with their real defaults. Also the things people actually hit: MANGOHUD=1 only hooks Vulkan so an OpenGL game needs the wrapper; the overlay ships hidden behind Shift_R+F12; gamescope is on the ISO but mangohud and gamemode are optdepends; borderless windowed is not fullscreen; a blank window at the right size is usually the game's own resolution index. Linked from Home, the sidebar, Keybindings, Commands and synui, which all previously dead-ended on the subject.

    @velle999 velle999 committed Jul 26, 2026
  • Make Troubleshooting a user's page; move the engineering history out Troubleshooting had become a development changelog — bugs *we* hit, told as history, with commit hashes and the internal test rigs used to find them. That is not what someone reaches for when their machine is misbehaving, and a lot of it described one particular machine rather than the system. Troubleshooting is now symptom-first and about the reader's computer: no sound from event sounds, an installed cursor theme that won't appear, a giant pointer in one app, the bar gone, a widget eating clicks, games on the wrong monitor, black screen after suspend, being locked out with no VT, pacman 404s, a module that won't load after a kernel upgrade, the AI not answering, Secure Boot enrollment, a LUKS header you didn't back up. Each entry says what to run. The engineering material moves to a new Development-Notes page, which keeps the generalisable rules — a commit is not an install, dkms status is not a health check, /etc units shadow /usr/lib ones, signal dispositions survive exec, tightening a check must handle the values already sitting on the wrong side — without the narrative or the machine it happened on. Also removed personal and machine-specific detail from the pages added in ae733c0: a named USB volume knob, downloaded archive names, which apps had which shadow, screen widths, monitor names, and the private-desktop state that prompted the sound-theme fix. The rules they illustrate all still stand on their own, stated generally. The one home path in Building-and-Packaging is now $HOME. Fixed two dead anchors that predate this batch (synui#game-mode and synui#task-manager pointed at bold text, not headings) and verified every internal link and cross-page anchor resolves.

    @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