Happy Summer 🌞 Ten releases already! The plugin system is getting better and better everyday. We are swiftly reaching release 1.0.0 (shooting for end of this year). I hope you're all having fun out there 👯
Check out the release demo here: https://youtu.be/tbA-NaHyLNg
Features 🌟
- Plugins can now set a per-window shader pipeline, which enabled the focus blur plugin
- Plugins can now set an output shader pipeline, which enabled the nightlight plugin
- Enabled
ext_data_control_manager_v1,ext_image_copy_capture_manager_v1,ext_output_image_capture_source_manager_v1,ext_foreign_toplevel_list_v1andzwp_input_method_v1- This makes
wl-copy,xdg-desktop-portal-wlrandgrimshotwork perfectly out of the box
- This makes
- Added a visual GTK4 client that informs the user when their configuration has errors
- Errors are broadcast over the miracle IPC socket (see the wiki for more details)
- Added a debug overlay GTK4 client that provides information about windows positioning, their input regions and much more (trigger it with
miraclemsg debug overlay)- Debug information is broadcast over the miracle IPC socket (see the wiki for more details)
- All
.wasmplugins are automatically loaded from~/.config/miracle-wm/plugins - Bumped the plugin API to version 0.1.0
Bugs Fixed 🐛
- Fixed a LONG standing bug with dead input regions on windows (#923)
- The snap now takes the graphical systemd session appropriately
- If miracle crashes, it will always teardown the systemd session correctly (#883)
- WasmEdge's LLVM will no longer conflict with that of
llvmpipe, which was causing blank screens on render (#907)
Misc 🔧
- Snap is now on core26 and publishing perfectly
- The wiki has been moved from https://github.com/miracle-wm-org/miracle-wm-wiki to the main
miracle-wmwiki - Now monitors become usable immediately if they are not in the configuration (#878)
- Enabled e2e tests in CI
What's Changed
- feature: implement e2e tests with screenshots by @mattkae in #868
- task: update CI to 26.04 by @mattkae in #869
- bugfix: animating containers should NOT be interesected by @mattkae in #871
- feature: add possibility for custom sampler functions in window rendering shaders by @mattkae in #872
- bugfix: missing initializer fields by @mattkae in #876
- task: publish the candidate snap again by @mattkae in #875
- feature: new monitors will now be positioned horizontally instead of being turned off when they are not found by @mattkae in #878
- (#760) bugfix: fix unsafe wlr_output_management object use by @mattkae in #879
- (#659) bugfix: only sending binding event when it is handled by @mattkae in #880
- bugfix: on crash, tear down IPC connection manager in order to release systemd targets by @mattkae in #883
- feature: enable shader registration via plugins by @mattkae in #882
- task: remove PluginWindow from window.rs and collapse it into WindowInfo by @mattkae in #884
- feature: plugins can now set shaders per window by @mattkae in #885
- task: rename WindowInfo to Window in miracle-plugin-rs by @mattkae in #886
- bugfix: fix plugin API around custom shaders per window by @mattkae in #887
- feature: implementing a shader pipeline for windows by @mattkae in #889
- bugfix: borders no longer cause the window to change color by @mattkae in #891
- task: update surface to accomodate mir dev API by @mattkae in #893
- feature: move wiki into the miracle-wm repo by @mattkae in #894
- bugfix: fullscreen apps default to freestyle + fixing window clipping when position changes by @mattkae in #895
- feature: unmaximizing a window returns it to its previous state by @mattkae in #896
- Background feature: Fix UAF due to vector reallocing things out from under the mainloop by @RAOF in #892
- feature: load plugins from the config/miracle-wm/plugins directory automatically by @mattkae in #897
- feature: unload a shader when the plugin that created it unloads by @mattkae in #898
- feature: plugins can now set the output shader by @mattkae in #899
- bugfix: drop base devel from snapcraft by @mattkae in #900
- Correct broken link to wiki by @markstos in #902
- refactor: share more code in the PluginManager by @mattkae in #905
- feature: client for configuration error reporting by @mattkae in #906
- feature: do not clip freestyle windows to any particular size by @mattkae in #904
- bugfix: keep WasmEdge out of main build so that we don't accidentally bring in two version of llvm which cause us to fail to render by @mattkae in #907
- (#691) bugfix: enable data control manager to prevent phantom windows with wl-copy and grimshot by @mattkae in #908
- feature: enable ext_image_copy_capture_manager_v1, ext_output_image_capture_source_manager_v1, ext_foreign_toplevel_list_v1, and zwp_input_method_v1 by @mattkae in #909
- feature: add ability to animate shell windows by @mattkae in #913
- bugfix: fix freestyle window layer by @mattkae in #914
- (#912) bugfix: correct child process exit status processing in AutoRestartingLauncher by @mattkae in #915
- bugfix: set snap grade to stable by @mattkae in #916
- bugfix: comment out grade version by @mattkae in #917
- bugfix: fix systemd session in the snap by @mattkae in #918
- feature: publish a stable snap on release by @mattkae in #919
- feature: add a visual debugger to miracle by @mattkae in #921
- bugfix: fix long-standing bug where window state was not being propagated when a window was not on the focused workspace by @mattkae in #923
New Contributors
Full Changelog: v0.9.1...v0.10.0