Skip to content

History / Keybindings

Revisions

  • Add a Nix page; document the niri keys and the shortcut palette Nix.md covers both halves of the optional Nix layer, and says up front which is which because they share a language and nothing else: - Nix + Home Manager beside pacman, for a declarative USER environment. Leads with what it is NOT: this is not NixOS, pacman still owns the system, and "declare the whole machine and rebuild it" is a different product. - facts.nix as the bridge — what the machine actually is, probed rather than remembered, so one home.nix reacts to the box instead of being edited per box. - Install profiles: syn-install --config, in Nix or key=value. Semantic keys rather than menu numbers, unused keys reported by name, and the destructive confirmations spelled out one at a time. The two traps get their own headings because both fail silently: managing synuirc from home.nix makes the control panel revert instead of save (Home Manager's files are read-only store symlinks; synui writes that file live), and /etc/synapseos/nix must not be a git repo (flakes copy only tracked files, so a fresh facts.nix evaluates as missing). Keybindings was missing four real binds — Super+/ (and Super+?), the palette that lists everything else, and Super+, / Super+. , the two column moves that are the whole point of the niri layout. Found by running synui's new tests/readme_binds.sh against this page instead of the README; it now passes against both. The-Desktop said four layouts and named four: niri is the fifth in the Super+Tab cycle. It also said the layout "is not remembered across a restart", which layout_state_save() and tests/layout_persist.sh have both contradicted for a while — it is per desktop and it persists. Page and anchor links checked.

    @velle999 velle999 committed Aug 7, 2026
  • Keybindings: the Super+Space swap toggle, and rofi theming

    @velle999 velle999 committed Aug 6, 2026
  • Keybindings: rofi on Super+Space, command bar to Super+= Also fixes two errors that predate this change: - Super+Shift+T was listed as Calendar in the System table while the Windows table correctly had it as Retile. It has been retile since 2026-07-31. - The rebinding example had a comma (`super+shift+z, spawn ...`). The line is split on the first whitespace, so the comma became part of the key name and the bind was silently dropped. Documented the punctuation-keysym rule too, since Super+= has to be written super+equal.

    @velle999 velle999 committed Aug 6, 2026
  • Document the four layouts and what monocle does Super+Tab had one wiki row (Cycle layout) and nothing anywhere explained the four layouts it cycles, so the most-pressed layout key on the system was also the least documented one. The-Desktop gains a Layouts section: the cycle order, that layout is per-desktop and resets at login, a table of the four, the floating/ maximize/snap trap that leaves a tiling desktop with nothing to tile, and a Monocle subsection - one window per monitor, change it with the normal focus keys, floating windows exempt (so Super+F is how you get two things on screen), not fullscreen, remembers per-app geometry. Keybindings: the Super+Tab row now names the cycle and says plainly that it does not switch windows, which is what it reads as next to Alt+Tab two rows above; adds the missing Super+Shift+T retile row. Development-Notes: two pieces of state that must agree, updated from only one side - the monocle visibility bug, why a bug that any later action masks reads as imagined, and deriving at the choke point rather than in each caller.

    @velle999 velle999 committed Jul 31, 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