Skip to content

All versions since v0.1.0

v0.1.0

First Pearl release for stable

v0.2.0

What’s Changed

New Contributors

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.1.0...v0.2.0

v0.2.1

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.2.0...v0.2.1

v0.2.2

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.2.1...v0.2.2

v0.2.3

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.2.2...v0.2.3

v0.2.4

Pearl 0.2.4 GTK 3 and GTK 4 apps now follow Pearl’s Material colors by default for new configurations. Existing preferences and opt-outs are preserved. Fixed GTK theme import ordering so Pearl’s colors apply correctly. Improved conflict handling for modified or symlinked GTK stylesheets. Arch and Devario packages now require Matugen 4.2 or newer. Updated release and Git package versions and metadata.

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.2.3...v0.2.4

v0.2.5

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.2.4...v0.2.5

v0.2.6

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.2.5...v0.2.6

v0.2.7

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.2.6...v0.2.7

v0.2.8

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.2.7...v0.2.8

v0.2.9

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.2.8...v0.2.9

v0.3.0

What’s Changed

New Contributors

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.2.9...v0.3.0

v0.3.1

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.3.0...v0.3.1

v0.3.2

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.3.1...v0.3.2

v0.3.3

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.3.2...v0.3.3

v0.3.4

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.3.3...v0.3.4

v0.3.5

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.3.4...v0.3.5

v0.3.6 - zig 0.17

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.3.5...v0.3.6

v0.3.7

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.3.6...v0.3.7

v0.3.8

What’s Changed

Full Changelog: https://github.com/Seafoam-Labs/pearl/compare/v0.3.7...v0.3.8

🦪 Pearl v0.3.9 — Screensavers, scx, and a More Personal Shell Latest

🦪 Pearl v0.3.9 — Screensavers, scx, and a More Personal Shell

Pearl v0.3.9 is about making the desktop feel lived-in. It adds a full screensaver collection for the lock screen and the idle desktop, lets the dock live inside the bar, makes bar visibility and corner radius configurable per display, and shows album art in the media widget. Aqueous integration picks up the HDR 600 preset and window-rule timing, CPU scheduling now comes from scx’s catalog through scxcli, and Coral learns a much wider set of file types.

🌌 Screensavers

A native screensaver service now drives both the lock screen and the idle desktop, so the same animation runs before the panel powers off.

  • 🕹️ Eight animations plus Off — Starfield, Matrix, Mystify, Pipes, Qix, Maze, Life, and Ocean Fall.
  • 🔒 Lock and desktop — the lock swaps the saver over its prompt, while the shell maps it as an overlay above applications. Any input dismisses it.
  • ⏱️ Separate panel-off delay — the saver starts at the turn-off timeout, then a second panel_off_seconds deadline powers the panel off. Zero keeps the panel lit while the saver runs.
  • ♿ Reduced motion — falls back to normal blanking instead of animating.
  • 👀 Preview tooling — scripts/preview-savers.sh previews the collection, with the power page exposing the mode picker.

🧭 Bar, dock, and displays

  • 🧩 Dock inside the bar — the dock is now available as a bar widget, so the application strip can live in a bar section instead of a separate floating surface. Embedded styling and sizing were finished alongside it. (#98, #100)
  • 🖥️ Per-display bar visibility — bar_hidden_outputs switches the bar off for named connectors. A hidden bar releases its exclusive zone, hides an embedded dock, and Pearl refuses to hide the last visible bar even if the JSON lists every output.
  • ⭕ Configurable bar corners — a new bar.radius preference overrides the theme’s 14 px radius. Leaving it at 14 lets community themes keep control.
  • 🎵 Album art on the media widget — bar.media_art replaces the music glyph with the current artwork, supports output overrides, and only registers as an artwork viewer while art is actually shown. (#109)
  • 🫥 Screensaver-aware visibility — bars and autohide respect the active screen saver instead of floating over it.

🖥️ Aqueous integration

  • 🌈 HDR 600 preset — Pearl’s display settings and mutation backend expose the new 600 cd/m² HDR mastering level alongside 100, 400, and 1000.
  • 🧩 Rule matching timing — the window-rule editor learned the matching field with Always, Once, and Startup modes, including help text and native edit/save/reopen coverage.
  • ⌨️ Settings grouping — window_switcher_* bindings now group with movement controls, and input.focus_crosses_workspaces groups with focus options.

⚙️ Scheduling through scx

Pearl no longer owns its own scheduler profile catalog. (#92)

  • 📚 One source of truth — profiles and selection now come from scx’s catalog.json through scxcli, matching scxcli and scxtui.
  • 🧹 Fewer moving parts — pearl-scheduling-helper, its polkit policy, and Pearl’s scheduling-profiles.json are gone.
  • 📦 Packaging hint — recipes now suggest scx-scheds>1.1.4, which provides scxcli and the catalog.

📝 Coral and file handling

  • 🗂️ Wider file associations — Coral now registers JSON, JSON5, Schema JSON, SQL, TOML, TypeScript, shell, PHP, Ruby, XML, YAML, CSS, JavaScript, Rust, C/C++, CMake, Dockerfile, Go, Java, Lua, Makefile, Meson, Nix, Python, reStructuredText, SCSS, and systemd unit files. (#107)
  • 📁 Create new documents — opening a path that does not exist creates missing parent directories and the file itself.
  • 🔎 File chooser fixes — filter rules per filter rise from 128 to 2048, unsafe globs are rejected instead of silently mishandled, caller names are truncated to 128 characters, and dialog bugs were cleaned up. (#103)
  • 🛠️ Greeter sync crash — the settings flyout’s greeter-sync image picker now uses a properly layered dialog, fixing a crash. Source images are capped at 64 MiB before the privileged boundary receives a re-encoded 4K PNG. (#102)

🕰️ Clock and launcher polish

  • 🕰️ Stacked custom clocks — custom time and date patterns accept raw newlines and \n escapes in any bar orientation. (#104)
  • 🧷 Launcher border overlap — fixed the selected-item border overlapping nearby launcher content. (#108)

📦 Build and packaging updates

  • 🏷️ Injected version identity — src/version.zig no longer hardcodes a release. Packaging passes -Dversion="$pkgver" and CI exports PEARL_VERSION from the release tag. (#96)
  • 🌿 Tag builds — CI now builds on v* tag pushes as well as pull requests.
  • 🧪 Coverage refresh — updated Aqueous 0.8.2 contract figures and baselines, plus new window-rule timing, portal contract, window switcher, and screensaver test coverage.
  • 🌍 Translations — Pearl, Coral, and lock templates were refreshed for the new screensaver, bar, media, and file-chooser strings.

🚀 Upgrade notes

Scheduler profiles are now owned by scx. Install a scx-scheds package newer than 1.1.4 so scxcli and catalog.json are available, then select your profile in Pearl, scxcli, or scxtui. Profiles stored in /etc/pearl/scheduling-profiles.json are no longer read.

Packagers must pass -Dversion="$pkgver" or set PEARL_VERSION; otherwise binaries report 0.0.0-dev.

Screensavers are opt-in and default to Off. Enabling one makes the screen-off timeout start the saver, with the panel-off delay controlled separately.

🌍 Translations and thanks

❤️ Thank you to Caroline Snyder, Treshaun, Piotr Gorski, and Zoey Bauer for the screensavers, bar and dock work, file handling, scx integration, and Aqueous settings work, and to everyone reporting issues and testing fixes.

📋 Full Changelog: v0.3.8…e7fdc5a7

🔀 Release commit: e7fdc5a7

© 2026 Seafoam LabsShelly Chel