Skip to content

Releases: GhostEagle68/umbriel-config

canary 65e431b

canary 65e431b Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 01 Oct 02:35

Untested build of 65e431b from dev. Times are UTC.

🚀 Features

Find

  • Implement find and replace functionality in shader editor · 2026-10-01 01:04 (d481256)

Install

  • Verify the release signature in get.sh when minisign is present · 2026-09-29 22:53 (4c9edb5)

Shaders

  • Read the shader API from umbriel's docs and schema and edit border, window, screen and cursor shaders · 2026-09-30 00:03 (d88df3f)
  • Add support for shader pools alongside presets in the effects system · 2026-09-30 23:13 (e850f00)
  • Move the shader editor from an overlay to a full page in Shaders · 2026-09-30 23:18 (8f4fd10)
  • Highlight shader code and number its lines · 2026-10-01 00:08 (dd5a7d4)
  • Mark compile errors in the editor gutter and list them under the code · 2026-10-01 00:18 (946e9a9)
  • Suggest umbriel names and GLSL words while typing and add a reference panel · 2026-10-01 00:28 (920304e)
  • Add comment toggle, bracket pairing and matching, auto-indent and go-to-line · 2026-10-01 00:46 (76a645e)
  • Edit an animation event's curve and duration from its row, over a preview · 2026-10-01 01:45 (5a7a378)
  • Edit a preset's palette, speed, padding, light and radius from the shader editor · 2026-10-01 01:55 (3a6b875)
  • Run the preview on a real clock and palette; wiring only · 2026-10-01 02:09 (b914ad9)
  • Badge community shaders that an update added · 2026-10-01 02:15 (783d843)
  • Sort the library by name or age, in the library and the picker · 2026-10-01 02:21 (1317c50)

Update

  • Refuse update tarballs without a valid signature · 2026-09-29 22:49 (2b1b980)

🐛 Fixed

Config

  • Sync saves and keep the config's file mode · 2026-09-29 21:45 (bd339bc)

Save

  • Keep the baseline of files that saved before a failure and bound the outputs scan and harden small edges · 2026-09-29 22:08 (2e862de)

Shaders

  • Sync shader writes to disk and clean up on failure · 2026-09-29 23:22 (0f072d1)
  • Keep hand-added preset keys when a shader is renamed · 2026-09-30 23:06 (b3623ff)
  • Adjust color transparency for shader code editor to improve rendering · 2026-10-01 00:53 (43f4ce7)
  • Show the editor's shortcut hints in full instead of eliding them · 2026-10-01 01:09 (d8d4777)
  • Release the shell before rebuilding the library on a sort change; back up each timing dialog session · 2026-10-01 02:23 (56cb6ee)
  • Keep thumbnails off the live clock and palette, run the preview clock on real time, stop redrawing still previews, keep file modes on atomic writes · 2026-10-01 02:30 (65e431b)

…and 33 earlier (all changes since v0.3.0-beta.4).

Install

Install this build in one command:

curl -fsSL https://raw.githubusercontent.com/GhostEagle68/umbriel-config/dev/packaging/get.sh | sh -s -- --canary

Or download the tarball for your machine below (x86_64 for most PCs,
aarch64 for ARM), then:

tar -xzf umbriel-config-x86_64-linux.tar.gz
cd umbriel-config-x86_64-linux
./install.sh

Already have umbriel-config? Pick Canary in Settings → Updates.

Every tarball is signed (.minisig beside it, canary key). The installer
and the app's updater check it for you; to check a manual download, see
Verifying a download.

v0.3.0-beta.4 — Beta

Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Sep 23:23

Install

Download the tarball for your machine below (x86_64 for most PCs,
aarch64 for ARM), then:

tar -xzf umbriel-config-x86_64-linux.tar.gz
cd umbriel-config-x86_64-linux
./install.sh

Or install it in one command:

curl -fsSL https://raw.githubusercontent.com/GhostEagle68/umbriel-config/dev/packaging/get.sh | sh

Already have umbriel-config? It updates itself: Settings → Updates.

Changes

Highlights

Keybinds settings are redesigned. The Keybinds page is rebuilt as a modern shortcut editor.

  • Edit in place. Click any bind to edit it right there in the list; click one of Umbriel's defaults to override it.
  • Record keys. Press the combination instead of typing it; Umbriel passes your existing shortcuts through while recording, so they're captured instead of triggered. In the search box, pressing a key finds every bind that uses it.
  • Pick an app. "Launch an app" binds pick from your installed apps (AppImages included) instead of a typed command. Shell-command binds offer the usual commands for media and brightness keys, and warn when Umbriel can't find the command.
  • Easier to scan. Keys show as keycaps, launch binds show their command, and groups collapse. Filter by All, Yours or Defaults.
  • All bind options. Allow when shortcuts are inhibited and cooldown can now be set, and the shortcuts inhibition toggle is in the action list.
  • Guided parameters. The parameter field adapts to the action: a dropdown for fixed choices, hints for workspaces and sizes, hidden when unused.

🚀 Features

General

  • Feat(keybinds): redesign the keybind editor

Full diff: v0.3.0-beta.3...v0.3.0-beta.4

v0.3.0-beta.3 — Beta

Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Sep 21:59

Install

Download the tarball for your machine below (x86_64 for most PCs,
aarch64 for ARM), then:

tar -xzf umbriel-config-x86_64-linux.tar.gz
cd umbriel-config-x86_64-linux
./install.sh

Or install it in one command:

curl -fsSL https://raw.githubusercontent.com/GhostEagle68/umbriel-config/dev/packaging/get.sh | sh

Already have umbriel-config? It updates itself: Settings → Updates.

Changes

🐛 Fixed

Guide

  • Clean up guided setup and add Cancel
    • Guided setup: drop the empty heading and lone card toggle, hide the
      NEW and owning-file badges on its rows, and add Cancel when re-run
      from Settings (discards the filled-in suggestions; first run has none).
    • Setting rows: number, color and open-choice editors now line up on
      the right edge like the other editors.

Packaging

  • Launch from the app menu in sessions with a minimal PATH
    The desktop entry ran umbriel-config by bare name. Umbriel starts apps
    with PATH=/usr/local/bin:/usr/bin, so a ~/.local install never opened
    from the launcher (it did on Plasma, which reads the login profile).
    install.sh now writes the absolute binary path into the installed entry.

Settings

  • Restart after an in-app update
    "Restart now" failed with "No such file or directory" once an update
    had installed. The installer replaces the running binary, after which
    /proc/self/exe points at the deleted old file. The executable path is
    now read at startup, before any update can replace it.

General

  • Fix(settings): close the save dialog after saving; guard double install

🛠 Build

Changelog

  • List build and packaging changes in release notes

General

  • Cut CI and release build times
    • CI: install slint-lsp 1.17.1 from Slint's prebuilt release instead
      of compiling it (was ~8 of the 10 minutes).
    • Release: publish with --no-verify; the build job has already built
      the tagged commit, so the verify rebuild (~11 min) was a duplicate.
    • Dev profile: line-tables-only debug info; incremental rebuilds drop
      from ~7.7 s to ~3.3 s.

Full diff: v0.3.0-beta.2...v0.3.0-beta.3

v0.3.0-beta.2 — Beta

Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Sep 02:27

Install

Download the tarball for your machine below (x86_64 for most PCs,
aarch64 for ARM), then:

tar -xzf umbriel-config-x86_64-linux.tar.gz
cd umbriel-config-x86_64-linux
./install.sh

Or install it in one command:

curl -fsSL https://raw.githubusercontent.com/GhostEagle68/umbriel-config/main/packaging/get.sh | sh

Already have umbriel-config? It updates itself: Settings → Updates.

Changes

🐛 Fixed

Settings

  • Build setting pages from umbriel's docs
    umbriel now installs a short starter config instead of its full
    reference, so most setting pages showed their options as read-only
    "other" rows. The pages are now built from umbriel's user docs, with
    their ranges and value lists, plus anything only the installed config
    has. A copy of the docs ships with the app; newer docs download at most
    once a day when update checks are on, or right away with Sync schema.

Full diff: v0.3.0-beta.1...v0.3.0-beta.2

v0.3.0-beta.1 — Beta

Pre-release

Choose a tag to compare

@github-actions github-actions released this 24 Sep 01:35

Install

Download the tarball for your machine below (x86_64 for most PCs,
aarch64 for ARM), then:

tar -xzf umbriel-config-x86_64-linux.tar.gz
cd umbriel-config-x86_64-linux
./install.sh

Or install it in one command:

curl -fsSL https://raw.githubusercontent.com/GhostEagle68/umbriel-config/main/packaging/get.sh | sh

Already have umbriel-config? It updates itself: Settings → Updates.

Changes

Highlights

Shader editor upgrades.

  • Builder when editing. Editing or forking a shader opens the same
    effect builder as a new one, with its steps read back from the code,
    and hand-edited code is never overwritten.
  • Thirteen new effects. The builder adds Rotate, Swirl, Ripple,
    Pixelate, Stretch, Flip, Drop, Iris, Wipe, Dissolve, Desaturate, Tint
    and Ghost trail, and any effect can be stacked more than once.
  • Live sliders. Dragging a builder slider updates the code and the
    preview as you move it, and each slider shows its current value.
  • Play. The preview can play the animation on a loop at 0.3, 0.6
    or 1.2 seconds, instead of only being scrubbed by hand.
  • Rename. Your own shaders can be renamed from the editor, and every
    event using the shader follows it to the new name.
  • Preview as any event. Pick which event the preview plays as: it
    shows a fitting stand-in (a window, a workspace, a bar, a focus border)
    and plays with that event's own curve and timing from your config.
  • Choose where it is used. Saving a shader asks which events should
    use it, showing what each uses now, so a new effect is assigned in the
    same step.

🚀 Features

Shaders

  • When editing a shader
    or forking a shader it now opens the same effect builder as New
    shader, with its steps and slider values read back from the code. The
    builder also stays after the first Save of a new shader, where it used
    to disappear. If the code was changed by hand, the builder locks rather
    than overwriting your edits. "Start over with builder" replaces the
    code with a fresh stack after you confirm. Typing code that matches
    the builder's output unlocks it again.

  • The effect builder gains Rotate, Swirl, Ripple, Pixelate, Stretch,
    Flip, Drop, Iris, Wipe, Dissolve, Desaturate, Tint and Ghost trail,
    each with its own sliders. Like the existing effects, every one plays
    from hidden to the plain window and can be stacked more than once.
    Ghost trail reuses the previous frame, which umbriel notes costs extra
    GPU memory, so its name notes that.

  • Builder sliders only took effect when you let go. Now the code and the
    preview follow the slider while you drag it, and each slider shows its
    current value next to it, rounded to what the code will use.

  • The shader preview could only be scrubbed by hand. A Play button now
    runs the animation on a loop, with a short hold on the last frame, at
    0.3, 0.6 or 1.2 seconds. Grabbing the scrubber pauses it, and direction
    and builder changes keep applying while it plays.

  • The Name field in the shader editor is now editable when editing one
    of your own shaders. Saving under a new name renames the file, and
    every event using the shader switches to the new name straight away,
    written to your config at once so a later Discard can't leave it
    pointing at the old name. Taken names are refused, and changing only
    the name counts as an unsaved change. Forking a shader whose "-fork"
    name is already taken now suggests "-fork-2", "-fork-3" and so on.

  • The shader preview always showed one window opening or closing. A
    "Preview as" picker now plays it as any of the nine events, each on a
    stand-in for what umbriel really shades: a window, a workspace's
    windows, the overview filmstrip, a scratchpad window over its backdrop,
    a bar-shaped layer, or a border ring. Play and the scrubber follow that
    event's curve and length from your config (springs included), and the
    shader gets eased and linear progress just as umbriel passes them. The
    editor opens on the event the shader is assigned to.

  • Saving a shader now asks which events should use it: a checklist of
    all nine, each showing what it uses now, pre-ticked with the event
    being previewed and any already using the shader. Ticked events switch
    to it and unticked ones stop using it, as changes saved with the main
    Save button, so a new effect is assigned in the same step it's made.

  • Save a shader without changing assignments. The "Use for" step on Save gains a Save only button: it keeps the
    shader file and leaves every event's assignment exactly as it was.

🐛 Fixed

Backups

  • Keep files that share a name apart
    Backups stored each file by name only, so two config files with the
    same name in different folders overwrote each other, and a restore
    could write one over the other. Each backup now records every file's
    full path and restores it there. Backups made before this still
    restore by file name.

Config

  • Edit a setting in the file whose value umbriel uses
    When two included files set the same key, umbriel uses the one listed
    last, but editing, resetting or moving that setting acted on the first.
    The edit could land in a file umbriel ignores for that key, and the
    save popup could move the wrong value. Edits now go to the same file
    whose value umbriel applies: the main config, then later includes over
    earlier ones.
  • Open your own config on a fresh install
    With umbriel installed but no ~/.config/umbriel/config.toml yet, the
    app opened umbriel's packaged default in the system folder instead.
    First-run setup never appeared and every save failed with "Permission
    denied". The app now always edits your own config file, so a machine
    without one gets the first-run setup and saving creates the file.
  • Load optional includes
    Files listed under [include.optional] were ignored, so settings and
    keybinds from them (like a Noctalia theme file) were missing and the
    app showed the wrong current values. They now load after the regular
    includes, the same order umbriel uses, and a missing optional file is
    skipped without a warning.
  • Saving keeps a symlinked config a symlink
    Saving replaced a symlinked config.toml (a dotfiles setup) with a
    plain file, so the dotfiles repo stopped receiving changes. Saves now
    write to the file the link points at, and the one-time .bak stays next
    to the link, out of the dotfiles repo.

Shaders

  • Save shader assignments for every animation event
    Picking a shader in an Assignments dropdown looked like it worked, but
    the change was thrown away: the file path was written without quotes,
    the edit was rejected, and nothing reached Save. Picks are now written
    as proper strings into the file that already holds that event's shader
    (new ones start in your main config, and the save popup can move them),
    and the dropdowns always redraw from what is really in your config.
  • Let a missing shader assignment be cleared
    When an event pointed at a shader file that no longer exists, its
    dropdown showed "(no shader)", so picking "(no shader)" did nothing and
    the broken assignment couldn't be removed. The dropdown now shows the
    missing file as its own entry, and choosing "(no shader)" clears it.
  • Delete the shader you clicked, after confirming
    The Delete button on a shader card ignored which card it was on. It
    deleted whichever shader the editor had last opened (so after editing
    one shader and cancelling, deleting another removed the first), or did
    nothing at all. It now deletes that card's own file. Both Delete
    buttons, on the card and in the editor, ask for a second click first,
    because a deleted file can't be recovered.
  • Refuse to overwrite an existing shader when saving a new one
    Saving a new or forked shader under a name you already used silently
    replaced the old file. The editor now stops and asks for another name,
    or points you to Edit on the existing shader.
  • Indent every line of builder-generated code
    The Glow pulse and Shatter effects wrote their first line of code
    flush against the left margin, so the generated shader looked
    misaligned in the code view. Every line is now indented to match.
  • Only flag community updates when the installed version is known
    A community shader collection downloaded before the app started
    recording which version it fetched was always reported as "update
    available", even when it was current. With no recorded version the
    page now leaves the indicator alone. Updating once records the version
    and turns the check back on.
  • Stay on the current page when a download finishes
    If you left the Shaders page while the community shaders were
    downloading, the app jumped back to Shaders when the download
    finished. It now refreshes the Shaders page only while you are on it.
  • Open the preview mid-animation instead of on a blank frame
    The shader editor's preview started at the first frame. For effects
    that fade in, the window is fully transparent there, so the preview
    looked empty or broken. It now opens halfway through, so the effect is
    visible right away; scrub to see the rest.
  • New shader assignments go in the file that holds the others
    Assigning a shader to an event that had none always put it in the main
    config.toml, even when your other assignments live in an included
    shaders.toml. New assignments now start in the file that already holds
    the most of them. With none anywhere, an included shaders.toml is used,
    otherwise the main config. The save popup can still move any of them.
  • Ask before closing the editor with unsaved code
    Cancel closed the shader editor straight away, throwing out any code
    you had typed or built since the last save. With unsaved changes it
    now asks "Discard unsaved changes?" with Keep editing and Discard.
    Nothing changed since opening or saving still closes immediately.
  • Tab indents in the shader code editor
    Tab in the code pane jumped focus t...
Read more

v0.2.6-beta.1 — Beta

Pre-release

Choose a tag to compare

@github-actions github-actions released this 17 Sep 00:25

Install

Download the tarball for your machine below (x86_64 for most PCs,
aarch64 for ARM), then:

tar -xzf umbriel-config-x86_64-linux.tar.gz
cd umbriel-config-x86_64-linux
./install.sh

Or install it in one command:

curl -fsSL https://raw.githubusercontent.com/GhostEagle68/umbriel-config/main/packaging/get.sh | sh

Already have umbriel-config? It updates itself: Settings → Updates.

Changes

🚀 Features

  • (ui) Color picker popup for color swatches

🐛 Fixed

  • (ui) Repair invalid-looking setting inputs and add open-choice fields
    Several setting rows across the app looked broken or gave no feedback
    on bad input:

    • Invalid edits (bad color, out-of-range number) silently reverted
      with no explanation; rows now show a red border and inline error.
    • Ranged numeric rows showed a slider even when the value was unset,
      and hid it in other cases due to a dead NaN check.
    • A mine_comments section-tracking bug let commented example keys
      inside [[window_rule]]/[[layer_rule]] blocks leak into the prior
      [layout.master] section, producing duplicate phantom rows; the
      duplicate-guard also failed to update as entries were mined, letting
      repeats through.
    • mine_range took the first word before a dash as the min value, so
      any prose-prefixed range ("Inner border width, 0-100 logical
      pixels") silently dropped its slider across Appearance/Blur/Shadows.
    • Hot-corner actions and window/layer/security-context rule outputs
      were plain text boxes with no hint of valid values; both now get a
      new Kind::OpenChoice widget — a dropdown of known values (actions
      mirrored from Umbriel's docs, live output names for rules) paired
      with a free-text box that stays in sync, so open-ended values
      (spawn:..., unlisted outputs) remain fully editable.
    • The dropdown's popup width was tied to the closed box's width and
      truncated long action names; widened to fit the longest entries.
    • A real empty string (e.g. input.keyboard.layout meaning "system
      default") looked identical to a broken blank box; text fields now
      show a light "empty" placeholder to distinguish it from actual
      content, without affecting the literal unset "—" placeholder.
    • The Reset button only existed on ranged-number rows even though the
      changed-indicator dot lights up for every kind; Reset now works
      uniformly across all editable kinds.
    • Window-rule size fields (default_size, default_width,
      default_height) were renamed upstream to
      default_floating_size_px/default_floating_size/
      default_scrolling_extent_px/default_scrolling_extent; rules.rs
      and document.rs updated to match, with new rule_size_px/
      rule_size_fraction document helpers mirroring the existing
      rule_position pattern.

📦 Other

  • Change get.sh URL to use the dev branch for install

Full diff: v0.2.5-beta.2...v0.2.6-beta.1

v0.2.5-beta.2 — Beta

Pre-release

Choose a tag to compare

@github-actions github-actions released this 16 Sep 02:46

Install

Download the tarball for your machine below (x86_64 for most PCs,
aarch64 for ARM), then:

tar -xzf umbriel-config-x86_64-linux.tar.gz
cd umbriel-config-x86_64-linux
./install.sh

Or install it in one command:

curl -fsSL https://raw.githubusercontent.com/GhostEagle68/umbriel-config/dev/packaging/get.sh | sh

Already have umbriel-config? It updates itself: Settings → Updates.

Changes

Highlights

Shaders page. Discover, download and assign umbriel's GLSL animation
effects: the ones bundled with umbriel, your own, and a community
collection the app downloads and updates for you over HTTPS, no git
needed. Every animation event gets a dropdown, files umbriel would
reject are flagged before they can be saved, and a shaders.toml your
include chain ignores is called out with a one-click fix.

Shader editor with a visual effect builder.
Build your own effects without writing GLSL: stack steps like Fade, Scale, Slide, Shatter,
Wobble and Glow pulse, each with its own sliders, reorder them, and the
shader composes itself with the generated code in view for hand-tweaking.
A preview renders the shader offscreen so you can scrub the animation
like a video timeline, and the GLSL errors it reports as you type are the
ones umbriel would report, down to the line numbers. Your own shaders
open for editing, bundled and community ones fork into editable copies,
and saving live-reloads in umbriel.

Update channels, and updates from inside the app.
Choose Stable for tested releases or Pre-release for new features first, in Settings ->
Updates. Installed from a release tarball, the app can now download and
install a new version itself and restart into it; cargo, package-manager
and source builds are given the exact command for their setup instead.

🚀 Features

  • (shaders) Add shader discovery and management for animation effects
  • (shaders) Enhance community shader management with download and update functionality
  • (shaders) Implement shader update availability check and UI indication
  • (shaders) Visual effect builder and in-app shader editor
  • (shaders) Preview scrubber with live GLSL error reporting
  • (ui) Fluid resizing across pages, header, and editors
  • (search) Surface whole pages and keybinds in results
  • (updates) Choose between the Stable and Pre-release channels
  • (updates) Install updates from the app on tarball installs
  • (ui) One-time notice explaining the new update channels

🐛 Fixed

  • Assigning a shader from a dropdown did nothing: the callback was
    declared but never connected, so no edit was recorded and Save
    stayed disabled.
  • Clearing a shader back to "(no shader)" or any other edit that
    removes a key was invisible to Save: the change counter stayed at
    zero and the save popup found "nothing to save" even though the
    document was modified. Deletions now count as changes, appear in the
    popup as "(removed)", can be discarded, and reset restores them.
  • The save popup preselected the wrong destination file for changes
    living in included files (off by one in the dropdown).
  • The community-shaders download looked up the config directory from
    the environment, so with XDG_CONFIG_HOME unset the button failed
    with "Could not determine the config directory". It now targets the
    folder of the config the app opened, and the library refreshes as
    soon as the download lands.
  • Save-time validation no longer appends "umbriel validate exited
    unsuccessfully without reporting diagnostics" to ordinary warnings.
    umbriel exits nonzero for any diagnostic, warnings included, and
    warning-only configs still apply. Warnings now show in the banner
    by themselves and never block a save.
  • (ui) Update shader removal indication from "(built-in)" to "(no shader)"

📦 Other

  • Update version numbers in README.md
  • Update shader assignment and save behavior descriptions in changelog

Full diff: v0.2.0-beta.1...v0.2.5-beta.2

v0.2.0-beta.1 — Beta

Pre-release

Choose a tag to compare

@github-actions github-actions released this 11 Sep 07:13

umbriel-config v0.2.0-beta.1

Channel: Beta (pre-release — expect rough edges)

First release on the Slint interface. The old EGUI interface is gone, and a lot
arrived with the new one.

Features

  • Backups you can restore. Every save snapshots your config into a
    dated backup run (keeping the last ten by default), the restore
    browser shows a per-file diff before you commit, and restoring first
    backs up the current files; a restore is itself reversible.
  • Keybinds editor. Your binds and the compositor defaults in one
    searchable list, grouped by family. Press the keys to capture a chord,
    pick actions from your installed umbriel's live vocabulary, and
    conflicts are caught before they land; removing your bind restores the
    default.
  • Window rules, layer rules, and security contexts. Visual editors
    for every rule family including rules that live in split-out files
    like windowrules.toml, which open and edit in place. Add or remove
    rules.
  • Outputs, per monitor. One card per connected display with
    resolution and refresh offered from the modes it actually reports,
    HDR, VRR, scale and more, plus Add output for displays not yet
    configured.
  • Guided setup. A short walk through the settings people change
    most, offered when umbriel is detected; values you already set are
    left alone.
  • What's new in the app. Release notes are bundled into the binary:
    shown once per version after an update, and readable any time from
    Settings → View changelog. Update checks now also show the new
    version's notes.
  • Dark and light theme, switchable in Settings.

Changed

  • The entire interface is rebuilt with Slint: a cleaner shell, a real
    theme system with bundled fonts, sidebar navigation with curated
    pages, and settings grouped into collapsible cards instead of dense
    tables.
  • The shipped binary is about 27% smaller.
  • Chain-wide search finds a setting by name across every page, and
    each row shows which file it lives in.
  • Editing commits on Enter or when you click elsewhere, so a
    half-finished edit is never silently lost.

Fixed

  • Output workspace lists stored as TOML arrays are read and written
    correctly instead of falling back to "dynamic".
  • Slider reset works and sliders hold their values at the extremes.
  • The sidebar highlight follows dedicated pages (keybinds, outputs,
    rules) as well as regular settings pages.
Full commit list since v0.1.2-alpha.3

Features

  • ui: bundled changelog with what's-new overlay and update notes (5f662c6)
  • ui: collapsible cards (87bb100)
  • ui: add outputs and rules management pages (9c50d58)
  • ui: add keybinds editor (f8c1804)
  • ui: add backups page (43dadcc)
  • config: snapshot the config chain into dated backup runs on save (5a440d9)
  • ui: dark/light theme switcher and settings-app sidebar hierarchy (0b03cbe)
  • ui: settings-app navigation with curated catalog (3ea6805)
  • ui: added onboarding page for no Umbriel detected and no config file detected (0a057d8)
  • ui: settings page, section-page fold of other keys, schema-sync indicators (9955ee4)
  • ui: fold beyond-schema keys into their section pages (e3bf906)
  • ui: settings page with update check, upstream commit feed, and about (4f88d50)
  • ui: reset and discard unsaved changes with validation banner (c488255)
  • ui: pick where new settings live from the section page (24bfc2a)
  • ui: clickable file badges with read-only file view and changed-key indicators (1aea584)
  • ui: settings-first section pages; writes follow ownership (73469cf)
  • changelog: curated changelog with draft tooling and release wiring (dcae5b9)
  • ui: sliders for ranged numbers (624f52d)
  • ui: blur-commit edits; sidebar scroll and page highlight (ece6ced)
  • ui: color, list, and curve editors (bac0b59)
  • ui: text, number, and choice editors with per-kind formatting (799c762)
  • ui: boolean editing with dirty tracking (73c80a7)
  • ui: chain-wide search and other-settings sweep (2ee9c20)
  • ui: file pages with schema groups and other keys (06b7212)
  • ui: sections overview page with pointer rows (0ffc22c)
  • ui: scaffold slint shell, theme tokens, build pipeline (8b87bea)

Bug Fixes

  • update: port the release check to the ureq 3 API (37d50c7)
  • ui: slider reset button and reliable slider value at the extremes (ecac854)
  • ui: update settings page message for clarity (8777ad5)
  • ui: aligned setting rows with fixed label column (92a37fd)
  • ui: scrollable pages; settings-style file layout (e7b722b)
  • config: relax choice mining; share vocabularies across sections (036baec)
  • ui: typed value reads; mined hints outside editors (b1829fd)

Improvements

  • ui: settings page in the card layout (f7c8e69)
  • ui: move sync and file info from the header into settings (d993ee7)
  • ui: rename file-page primitives to settings-app names (9ee0063)
  • release: strip and LTO the shipped binary, 27% smaller (9f26f98)

Other Changes

  • git add .github/workflows/release.yml && git commit -m "ci(release): install fontconfig headers for the publish verification build" (42c8b8c)
  • git add .github/workflows/release.yml && git commit -m "fix(ci): create the licenses dir before copying font license files" (9e09c14)
  • release: install fontconfig headers for the slint build (c35c3ac)
  • changelog: curate v0.2.0-beta.1 release notes (7b57d40)
  • third-party notices, license section, feature list catch-up (1255731)
  • deps: bump ureq from 2.12.1 to 3.4.1 (3f4ffb3)
  • deps: bump softprops/action-gh-release from 2 to 3 ([79676a9](79676a981df80fd6125928d48a...
Read more

v0.1.2-alpha.3 — Alpha

Pre-release

Choose a tag to compare

@github-actions github-actions released this 06 Sep 05:15

umbriel-config v0.1.2-alpha.3

Channel: Alpha (pre-release — expect rough edges)

Changes since v0.1.0-alpha.1

Features

  • ui: sidebar exit button with unsaved-changes guard (7e0d21f)
  • ui: mark settings new to this umbriel, glyph and hint fixes - Settings that appeared since the last recorded schema get a ● badge on every surface that renders them (file pages, section pointers, Available group, search); populated at startup and on Sync schema, cleared with the drift banner's Dismiss. - Replace the remove glyph U+2715, which the default egui font lacks (rendered as tofu), with U+00D7. - Key page-level explainer hints render at full size instead of small. (3420fb5)
  • packaging: desktop entry, icon, and install-friendly tarball (9d7488c)
  • ui: curve keys pick from umbriel's built-in easing names Curve keys under [animation.*] mine as their own kind and render a dropdown of umbriel's built-in curve names (from its animation.cpp registry) instead of an unvalidated text field. Custom values — registered beziers/springs or inline curve strings — keep editing as text. First half of curve editing; preview and inline bezier editors wait for the UI redesign. (795fa02)
  • ui: settings page with update check and startup badge (9ce8a89)
  • config: app settings persistence and update-check modules (6a56f86)
  • ui: live drag preview with units for numeric editors (cf8f65c)
  • ui: color set/unset state with enable, revert, and disable (6638ae9)
  • ui: section pages become topic overviews; file pages are the editors (ec6f844)
  • ui: section pages own the main file, point elsewhere, offer the rest (9804aa6)
  • ui: other keys on file pages, raw spans the chain (5b5ba32)
  • config: per-key managed claims across the include chain (ebfd34c)
  • ui: choose where a new setting lives, including brand-new files (19ca9a1)
  • ui: section pages span the chain with an available group (36ef5d8)
  • ui: file pages host their own editors; dedicated pages route (8b8e5a5)
  • ui: a config.toml page alongside the includes (c2f48cf)
  • ui: rule pages edit the file that owns the rules (87c166d)
  • ui: per-file schema pages for included configs (fe2d146)
  • ui: security context rules page (4170d18)
  • config: security-context rule vocabulary (ee6f4a6)

Bug Fixes

  • ui: siderbar grouping text bigger (6a86018)
  • update: bound the update check with a 10s timeout (da10fdd)
  • ui: bullet markers render in the default font; group the sidebar (438cc2e)
  • update: query the releases list so prerelease-only repos work (689bc72)
  • ui: offer unset colors only on files that can own them (f7a3ecd)
  • ui: file pages scroll their embedded editors (0217b38)
  • config: table_names on the document root (c57ac4c)

Other Changes

  • deps: update Cargo.toml (3e58c5d)
  • update release.yml (8011406)
  • update README.md typo (5da8618)
  • release: build aarch64 alongside x86_64 (f46a2b6)
  • crates.io as an install channel (edfaf34)
  • release: publish the crate to crates.io on tag (11c9d34)
  • update README.md (c23bbf0)
  • update README.md (1bd860a)
  • Update README for clarity and alpha caveats (2411047)
  • add Rust installation instructions for building from source (5e9baf6)
  • add explicit dependencies for building from source (08d331f)
  • Add ref parameter to checkout action in release.yml (2d42892)
  • Add clobber option to release workflow (aa6c972)
  • Remove phase roadmap from CONTRIBUTING.md (b662e4f)
  • readable release notes with alpha/beta/stable channels (0192d00)
  • add uninstall instructions (584b9d2)
  • update .gitignore and justfile (7d8af2d)
  • Update CONTRIBUTING.md (22d5dc7)
  • Add disclaimer regarding Zcode GLM 5.3 models (be60512)
  • Update CONTRIBUTING.md (1f0633c)

v0.1.0-alpha.1

v0.1.0-alpha.1 Pre-release
Pre-release

Choose a tag to compare

@github-actions github-actions released this 04 Sep 06:13
Immutable release. Only release title and notes can be modified.

Release v0.1.0-alpha.1

Changes since project start

  • chore(release): v0.1.0-alpha.1 (bad22bf) by GhostEagle68
  • chore: create dependabot.yml (e027511) by GhostEagle68
  • rename ci.yml to rust.yml (daea03d) by GhostEagle68
  • ci: add workflow running the local verify gate (3e2314c) by GhostEagle68
  • build: add release workflow with prebuilt binaries (58b26a7) by GhostEagle68
  • docs: add issue and PR templates (4c69746) by GhostEagle68
  • eat(ui): unsaved-changes table with per-option reset (2ed80df) by GhostEagle68
  • feat(ui): wire keybinds page through the include chain (82e325e) by GhostEagle68
  • feat(config): load include chains and merge binds across files (df340ce) by GhostEagle68
  • feat(ui): rewrite keybinds page as merged list with draft editor (c86dac1) by GhostEagle68
  • feat(ui): roomier keybind rows, drop duplicate action picker (f22ec58) by GhostEagle68
  • update mod.rs (43c6e0a) by GhostEagle68
  • feat(ui): keybinds editor with search and chord capture (e0ef1b2) by GhostEagle68
  • feat(config): parse umbriel's live action list and default binds (2f276c5) by GhostEagle68
  • feat(ui): searchable action dropdowns and chord capture (42d7876) by GhostEagle68
  • feat(ui): show umbriel's built-in keybind defaults (f8a5391) by GhostEagle68
  • feat(ui): keybinds editor page (34809b9) by GhostEagle68
  • feat(ui): keybinds editor page (7d339d9) by GhostEagle68
  • feat(config): parse umbriel's live action list (0a4b64a) by GhostEagle68
  • feat(config): keybind model and action vocabulary (384bb99) by GhostEagle68
  • feat(ui): Add welcome screen if no config is found (4c96282) by GhostEagle68
  • feat(ui): fresh start when the config file does not exist yet (6681b92) by GhostEagle68
  • feat(config): create config parent directories and flag missing files (16d7d10) by GhostEagle68
  • feat(ui): add window and layer rule editors (fefc371) by GhostEagle68
  • feat(config): unset single rule keys (3f25dd4) by GhostEagle68
  • feat(config): add rule field vocabulary (b97d0f7) by GhostEagle68
  • feat(config): access array-of-tables rules by index (9b41e92) by GhostEagle68
  • feat(ui): guard removing the only output (b065021) by GhostEagle68
  • feat(ui): raw page and list widgets for array settings (d7b4f58) by GhostEagle68
  • feat(config): detect config keys uncovered by any surface (71156ab) by GhostEagle68
  • feat(config): remove tables from the document (7edc41c) by GhostEagle68
  • feat(ui): show live outputs on the outputs page (12bc116) by GhostEagle68
  • feat(cli): add outputs command (4c0f39d) by GhostEagle68
  • feat(live): enumerate outputs via wlr-output-management (d1fac52) by GhostEagle68
  • feat(ui): render choice dropdowns and color pickers (1d96578) by GhostEagle68
  • feat(config): mine enum choices and colors from comments (e4fa8ec) by GhostEagle68
  • feat(ui): add settings search (3a9ca5f) by GhostEagle68
  • feat(config): filter schema entries by search terms (e4b353c) by GhostEagle68
  • feat(ui): add outputs page (7f6e4f5) by GhostEagle68
  • feat(config): add output field model (031b144) by GhostEagle68
  • feat(config): read and write TOML arrays (26ed29d) by GhostEagle68
  • feat(ui): add schema sync and update notice (57071ca) by GhostEagle68
  • feat(config): snapshot schema keys and diff key sets (b585315) by GhostEagle68
  • feat(ui): render pages from assembled schema (6a672f9) by GhostEagle68
  • feat(config): expose packaged default lookup (ea4a252) by GhostEagle68
  • feat(config): mine commented keys into assembled schema (b9d680d) by GhostEagle68
  • feat(config): assemble schema from packaged default (14476dc) by GhostEagle68
  • feat(ui): add sidebar and general page (bdfc220) by GhostEagle68
  • feat(ui): add egui shell with save and validation banner (8196502) by GhostEagle68
  • refactor(config): restore doc comments and trim derives (9f615e0) by GhostEagle68
  • fix(config): treat failed validate runs as errors (549c8c5) by GhostEagle68
  • feat(cli): add debug cli over config backend (320e0f0) by GhostEagle68
  • feat(config): add umbriel validate wrapper (ac482a2) by GhostEagle68
  • feat(config): add toml document editing layer (77e91a3) by GhostEagle68
  • build: add justfile (0c6e56b) by GhostEagle68
  • feat(config): add config path discovery (0db1568) by GhostEagle68
  • docs: correct config lookup chain (f7ab0e0) by GhostEagle68
  • chore: add MIT license ([7fb3e2a](https://github.com/GhostEagle68/u...
Read more