Happy summer from the northern hemisphere everyone 🌻 🌊 This release was WAY too big, but here we are! The next release will be way tinier, I promise 🤞
I would like to announce the creation of an official miracle-wm matrix channel. Feel free to come by and ask any questions you like about contributing to or using the project 😄 . If you're interested in contributing, go to the "Issues" tab on the miracle-wm issue and check out the "good first issue" label filter. These are a collection of issues that would make for a great introduction to the project.
Check out the release video for a demo: https://youtu.be/l5ljNtbOaf0
Important ❗
- The miracle configuration has moved from
$XDG_CONFIG_HOME/miracle-wm.yamlto$XDG_CONFIG_HOME/miracle-wm/config.yaml. - The display configuration is now always at
$XDG_CONFIG_HOME/miracle-wm/display.yaml.
Features ⭐
- The project now ships a shared library called
libmiracle-wm-config.so, which provides a C interface that anyone can use to write their own configuration application for miracle-wm 🎉 As a proof of concept, I built a graphical configurator in Flutter miracle-settings. Feel free to contribute to that project if you're interested, or even roll your own. - Implemented the wlr output management protocol. You can now use apps like wdisplays to change your output settings at run time
- Implemented a much improved display configuration
- Added the ability to specify a border radius on windows meaning that we finally have rounded corners
- Implemented marks ipc
- Implemented
fullscreen toggleipc command - Implemented
floating toggleipc command - Implemented swap ipc command
- Implemented
rename workspace...ipc command - Implemented window events
- Added
miracle-wm-xdg-autostart.target(thanks @Sunderland93 !) - Improved how borders are rendered to greatly improve visual fidelity
- Improved the smoothness of animations
Bugs 🐛
- Fixed issue where we were crashing while attempting to parse a bad miracle config
- Fixed seg faults that might happen on exit
- Fixed some tricky timing issues with the animation system
- Fixing fault clipping rectangles on tiles
Misc 🔧
- Added Fedora builds to CI
- Added Mir release, rc, and dev paa builds to CI
- Grew the test suite from ~100 tests to ~400 tests
- Updated to Mir 2.21
What's Changed
- (#460) bugfix: add missing header file in #461
- Update staging libmiroil dependency to version binary is linked to by @netyaroze in #466
- refactor: move configuration loading and validation logic out to its own library by @mattkae in #467
- (#470) bugfix: fixing how mesa is installed and patched in the snap by @mattkae in #471
- feature: base implementation for a
libmiracle-wm-configC wrapper by @mattkae in #469 - Release 0.5.2 by @mattkae in #473
- bugfix: improve typing and testing around editing a custom action by @mattkae in #474
- feature: implement built in key commands API for miracle config by @mattkae in #475
- rename: changing how options are retrieved in the C API for built in key command options by @mattkae in #476
- feature: improve the API for startup application getting, setting, and removing by @mattkae in #477
- feature: implement environment variable API by @mattkae in #478
- refactor: fixing and refactoring animation configuration data for a better API by @mattkae in #479
- task: refactor configuration editing functions for usability and write tests by @mattkae in #480
- feature: add the ability to the save the configuration by @mattkae in #483
- Fixing a variety of configuration saving issues that I found by @mattkae in #484
- feature: the default configuration path is now
~/.config/miracle-wm/config.yamlinstead of~/.config/miracle-wm.yamlby @mattkae in #485 - feature: improving the borders rendering + fixing flickers while doing a sliding resize by @mattkae in #486
- feature: implement loading/saving the display config from
~/.config/miracle-wm/display.yamlby @mattkae in #491 - feature: implement wlr output management v1 by @mattkae in #493
- bugfix: surrounding YAML parser in try/catch to avoid crashing by @mattkae in #494
- Fix miraclewm config library cmake by @Conan-Kudo in #490
- bugfix: improve the tiling placement algorithm by @mattkae in #495
- bugfix: fix forwarding renderable dereferencing dead surface by @mattkae in #496
- feature: set the project version by @mattkae in #497
- bugfix: write the default configuration only upon confirmation + use the default config if we don't have one upon apply_to by @mattkae in #499
- (#498) fixing border erroneously being on layer shell elements by @mattkae in #504
- bugfix: fixing how we're writing, loading, and testing the display configuration by @mattkae in #503
- Prepare for Mir 2.21 with tiled edges addition by @mattkae in #506
- (#500) last frame of opacity is now correct by @mattkae in #505
- Adding a fedora build to CI by @mattkae in #507
- task: container.cpp no longer has any warnings by @mattkae in #508
- refactor + features: lots of ipc work from the airplane ride yesterday by @mattkae in #514
- test: adding tests for the IpcMessageHandler by @mattkae in #516
- test: adding tests for exec ipc command by @mattkae in #517
- test: adding tests for ipc 'split' command by @mattkae in #518
- test: implement tests for the 'layout' command by @mattkae in #519
- feature: implement 'fullscreen toggle' ipc command by @mattkae in #520
- feature: implement 'floating toggle' ipc command by @mattkae in #521
- test: add tests for the 'focus' IPC command by @mattkae in #522
- test: add tests for the 'move' IPC command + a ton of renames + implement move to current output by @mattkae in #523
- feature: implement 'marks' ipc by @mattkae in #524
- task: adding and removing new methods for Mir 2.21 by @mattkae in #525
- feature: implement GET_MARKS ipc message by @mattkae in #526
- feature: implement 'swap' IPC command by @mattkae in #527
- task: add tests for the 'sticky' command by @mattkae in #528
- task: add tests for the 'workspace' command by @mattkae in #529
- feature: implement 'rename workspace...' IPC command by @mattkae in #533
- task: remove the opaque shader as it was mostly useless by @mattkae in #534
- feature: rounded corners by @mattkae in #538
- bugfix: fixing fatal issues when no workspaces are in the config + only rendering surfaces on outputs with matching areas by @mattkae in #540
- Add miracle-wm-xdg-autostart.target by @Sunderland93 in #535
- (#542) bugfix: can move windows to workspaces on other outputs again by @mattkae in #544
- ci: build ubuntu with release, rc, and dev ppa by @mattkae in #546
- task: no longer need to pass a display config path by @mattkae in #547
- (#531) No longer seg faulting on program exit by @mattkae in #548
- (#543) bugix: fullscreen windows no longer have rounded corners by @mattkae in #549
- bugfix: working with latest dev mir by @mattkae in #558
- (#551) bugfix: center uniform was erroneously topleft by @mattkae in #556
- feature: implement window events by @mattkae in #557
- (#559) fixing exceptions in the animation system in a hacky way by @mattkae in #560
- task: improving the readme a bit by @mattkae in #561
- bugfix: tweaking the order of the config logic to prioritize the new config path over the legacy onconfig path over the legacy one by @mattkae in #562
- (#565) fixing clip area rectangles and border rectangles in the renderer by @mattkae in #567
- (#564) borders are now placed correctly and (almost) have a proper radius by @mattkae in #568
New Contributors
- @netyaroze made their first contribution in #466
- @Sunderland93 made their first contribution in #535
Full Changelog: v0.5.2...v0.6.0