github miracle-wm-org/miracle-wm v0.6.0

latest releases: v0.8.2, v0.8.1, v0.8.0...
5 months ago

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.yaml to $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 toggle ipc command
  • Implemented floating toggle ipc 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-config C 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.yaml instead of ~/.config/miracle-wm.yaml by @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.yaml by @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

Full Changelog: v0.5.2...v0.6.0

Don't miss a new miracle-wm release

NewReleases is sending notifications on new releases.