Skip to content

Releases: miracle-wm-org/miracle-wm

v0.4.0

11 Dec 12:15
Compare
Choose a tag to compare

Happy Holidays everyone 🎅 ❄️ (or 🏖️)!

This release is all about i3-ipc support. While we're still missing a few features from the ipc interface (e.g. marks, window selection), this release implements the vast majority of i3 ipc requests and commands. Applications that rely on i3 ipc (e.g. waybar, nwg-shell components, etc.) will now integrate much better with miracle 🎉

New Features

What's Changed

  • fix: Correctly handle default configuration when user dirs do not exist by @Conan-Kudo in #222
  • docs: update README for new URL by @mattkae in #225
  • feature: tabbing window support by @mattkae in #223
  • feature: create a miraclemsg subproject by @mattkae in #224
  • fix: Drop broken method for seeding default configuration by @Conan-Kudo in #226
  • bugfix: shell components can now be clicked in all situations by @mattkae in #227
  • (#236) XWayland apps nologner steal focus from other apps even though they're hidden by @mattkae in #237
  • feature: miracle can now integrate with systemd in a meaningful way by @mattkae in #228
  • release: v0.3.5 by @mattkae in #238
  • feature: adding a reasonable CoC by @mattkae in #240
  • Update README.md to point to correct wiki url by @sudopluto in #241
  • feature: implementation of stacking windows by @mattkae in #242
  • feature: upgrade renderer to 2.18 wto properly use src_bounds by @mattkae in #244
  • release: v0.3.6 by @mattkae in #246
  • bugfix: taking border size into account when laying out a new window by @mattkae in #247
  • bugfix: tiled windows now always get forced into an initial size and windows that are default to maximized/fullscreened are floating by default by @mattkae in #249
  • feature: implementation of GET_TREE via ipc + integration tests by @mattkae in #250
  • feature: workspace switching IPC support by @mattkae in #256
  • feature: added the ability to move windows between workspaces via mirclemsg + testing by @mattkae in #257
  • feature: add static display config when running with a systemd session by @mattkae in #258
  • feature: support for the i3 layout command by @mattkae in #259
  • bugfix: fix the command that is sent to the exec IPC call and make sure that we don't parse incorrect params into options by @mattkae in #260
  • Release v0.3.7 by @mattkae in #261
  • bugfix: adding my own fork of MinimalWindowManager to accomodate better dragging support by @mattkae in #263
  • bugfix: make it so that outlines on firefox are sane by @mattkae in #266
  • bugfix: child windows should not animate their opening and movement by @mattkae in #268
  • bugfix: when we change workspaces, we now properly hide windows that are on hidden workspaces + we cannot focus windows on other workspaces + reworking of WindowManagerToolsAccessor to avoid singleton by @mattkae in #270
  • (#271) bugfix: fix for being unable to click shell components by @mattkae in #276
  • Sway ipc fixes: wrong workspace highlighted with waybar by @TibboddiT in #275
  • bugfix: we don't need to dereference the surface when getting the rectangle for our outlines by @mattkae in #279
  • minor: remove libnotify because it is unnecessary by @mattkae in #283
  • refactor: update how we check configurations big time in preparation for showing errors in a second process by @mattkae in #284
  • feature: named workspaces + massively refactoring how workspaces are handled in preparation for named workspaces by @mattkae in #285
  • Fix unpinning a window to a new workspace by @TibboddiT in #278
  • CMakeLists.txt: Drop PKG_CONFIG_PATH modification by @OPNA2608 in #211
  • feature: implemented named workspaces that can lack a number entirely by @mattkae in #288
  • feature: implementation of scratchpad minus the window selection feature (which is important) by @mattkae in #296
  • feature: implementing the remainder of the focus IPC by @mattkae in #298
  • (#300) bugfix: patch for not being able to switch workspaces via waybar by @mattkae in #302
  • bugfix (#299): Fix issue where windows were not opening on other outputs + fixing focus related issues when switching between outputs by @mattkae in #305
  • feature: support for 'miraclemsg focus child' by @mattkae in #306
  • (#301) refactor: rewrote the command parser in a big way so that it is better going forward by @mattkae in #307
  • bugfix: fullscreen windows were some times broken by @mattkae in #308
  • testing: adding a test for getting a tree with two outputs by @mattkae in #309
  • feature: implement moving the active container/window to another output by @mattkae in #311
  • bugfix: fixing StubSurface in tests for Mir 2.19 release by @mattkae in #315
  • bugfix: when we navigate to a new workspace, we no longer accidentally switch to other workspaces on accident by @mattkae in #314
  • feature: implement IPC for resizing containers by @mattkae in #316
  • feature: ipc commands will not return errors with useful messages upon failure by @mattkae in #317
  • feature: add clang tidy to CI by @mattkae in #318
  • feature: automatically publishing a snap to stable when a release is tagged by @mattkae in #319
  • feature: actually publishing the snap on tag by @mattkae in #320
  • (#313) bugfix: requests to the Policy are now thread safe by @mattkae in #321

New Contributors

Full Changelog: v0.3.7...v0.4.0

Closing thoughts

Miracle is a lot more polished than it was before. I am able to daily drive it with great success at the moment, and I us...

Read more

v0.3.7

22 Oct 13:57
Compare
Choose a tag to compare

I should have a v0.4.0 release coming at the end of the month, so stay tuned 👻 In the meantime, enjoy this minor bugfix for the Fedora spin!

What's changed

  • Fixed a bug where arguments were failing to be passed to commands when running miraclemsg exec "exe --arg1 --arg2 (#260)

Full Changelog: v0.3.6...v0.3.7

v0.3.6

25 Sep 22:53
Compare
Choose a tag to compare

Hello everyone! This is another patch release in order to update miracle to support Mir version 2.18.

What's Changed

  • Upgraded the rendering code to support Mir release 2.18
  • Added a CoC
  • Update README.md to point to correct wiki url
  • Update version to 0.3.6

New Contributors

v0.3.5

08 Sep 12:35
Compare
Choose a tag to compare

This is another patch release as we work towards making the Fedora Miracle spin bug-free.

What's changed?

  • Added a cmake option -DSYSTEMD_INTEGRATION. When built with this option, miracle will integrate with systemd on boot up, meaning that all relevant environment variables will be set in the user session and miracle logs will be available in journal. On top of that, miracle now binds to the graphical-session target, so any systemd units that depend on that target will function appropriately. (fixes https://bugzilla.redhat.com/show_bug.cgi?id=2308912)\
  • Created the miraclemsg subproject which is a drop-in replacement for swaymsg
  • Fixed a regression where XWayland applications were stealing focus from one another one was on a hidden workspace
  • Fixed a bug where shell components could not properly gain focus (fixes https://bugzilla.redhat.com/show_bug.cgi?id=2308911)
  • Fixed bugs with loading the default configuration

Full Changelog: v0.3.4...v0.3.5

v0.3.4

27 Aug 00:02
6b5eb23
Compare
Choose a tag to compare

Another quick bugfix for allowing executed applications to take down the compositor when they quit.

What's Changed

Full Changelog: v0.3.3...v0.3.4

v0.3.3

26 Aug 15:57
Compare
Choose a tag to compare

The sprint to the first version of the Fedora miracle spin continues 🏃 In this release, we've added a few important quality of life things, like being able to specify the path to a configuration or no configuration at all. On top of that, we've continued with even more refactoring work around containers, in preparation for a fuller i3-ipc implementation. A proper minor release should be happening at the end of September so stay tuned 📺

What's Changed

  • release: v0.3.2 by @mattkae in #207
  • ci: remove fedora build from Github actions by @mattkae in #208
  • debian: update to v0.3.2 by @mattkae in #209
  • feature: (partial) beginning implementation of container groups for multi-selection behind a feature flag by @mattkae in #202
  • feature: adding the skeleton of support for the sway input command via IPC by @mattkae in #212
  • feature: send tick in IPC + initial tests + clang tidy by @mattkae in #213
  • refactor: move the server to its own file in tests to be shared by @mattkae in #214
  • feature: adding the miracle-config-path option for loading from a specific file by @mattkae in #215
  • feature: be able to specify --no-config to not load any configuration file by @mattkae in #216
  • feature: add the --exec <APP_NAME> option by @mattkae in #217

Full Changelog: v0.3.2...v0.3.3

v0.3.2

13 Aug 12:46
Compare
Choose a tag to compare

Another patch release because I was mistakenly building against the nightly version of Mir. And that's why I should have better CI practices 😮‍💨

What's Changed

Full Changelog: v0.3.1...v0.3.2

v0.3.1

12 Aug 23:39
Compare
Choose a tag to compare

Happy end of summer everyone 🌆 This is a nice little patch release that introduces a major refactor of the Container system in miracle in addition to fixing a number of tricky bugs. All of this is being done in preparation for the Fedora Miracle Spin, that will (hopefully) be finalized later this month 🎉 There will probably be a few more minor releases in the meantime, so be on the look out for that.

Speaking of the Fedora Miracle Spin, I recently gave a presentation about it at Flock to Fedora! Feel free to check it out and get excited 😄

What's Changed

  • snap: update to v0.3.0 by @mattkae in #187
  • test + refactor: renames to more closely match i3, refactor to accomodate testing of the TilingWindowTree, initial tests for the tiling window tree by @mattkae in #189
  • minor: rename master to develop because master is not the mastered version in this context by @mattkae in #190
  • refactor: establish a single source of truth for the selected window by @mattkae in #192
  • refactor: giving Window modification control over to the Workspace instead of the Output by @mattkae in #193
  • refactor: make it so that the tiling window tree relies on the active window much less by @mattkae in #194
  • refactor: remove WindowMetadata and make everything a container + refactor Output and Workspace big time such that they do way less work by @mattkae in #195
  • bugfix: fixing how modes are reported and multi-subscriptions are created by @mattkae in #199
  • bugfix: no longer relying on the Output to get the compositor state by @mattkae in #200
  • refactor: a Container is used as the active element instead of a miral::Window by @mattkae in #201
  • Allow using custom mir libraries directory by @TibboddiT in #198
  • feature: swaymsg exit works now by @mattkae in #203
  • feature: no longer restarting commands that exit with 127 by @mattkae in #204
  • feature: if the configuration doesn't exist, we try to copy it from /usr/share/miracle-wm/config/default.yaml or we write it blank by @mattkae in #205

New Contributors

Full Changelog: v0.3.0...v0.3.1

v0.3.0

02 Jul 11:12
Compare
Choose a tag to compare

Happy summer 🌞 (or winter ❄️)

I am excited to announce the release of 0.3.0 of miracle-wm 🎉. This release took a little longer to get out the door than I initially imagined, but it is definitely worth the wait. I am able to daily-drive miracle now, albeit with a few hiccups 😄. That being said, please remember that all releases leading up to 1.0.0 are considered to be "pre-releases". As such you may encounter a number of bugs and desire a number of features. Still, if you would like to test out the compositor yourself and contribute bug reports/code fixes, it is greatly appreciated!

To install:

sudo snap install miracle-wm --classic

Demo 🎥

I made a quick little YouTube demo to show off the big features if you'd like to check it out. It was hastily made 😉 I plan on making some (much) better devlog/demo videos in the future, so stay tuned.

Features ⭐

Bugs 🐛

  • #166: Fixed a tricky bug where hidden XWayland surfaces on a Z-order above other XWayland windows would surfaces shown XWayland surfaces from receiving mouse input
  • #4: Gedit will still appear as a tile, but it will no longer be broken
  • #113: Fix for fullscreen windows accidentally being resized when they join the tiling grid, plus other bugs around fullscreen windows
  • Only one window resize can happen at a time now (as opposed to one resize per output)

What's Changed

  • bugfix: temporary fix for #24 while we consider it in the Mir project by @mattkae in #112
  • (#113) bugfix: fullscreen windows no longer get their rectangle set if one is pending by @mattkae in #114
  • feature: supporting the i3 focus command by @mattkae in #116
  • feature: displaying a border around windows by @mattkae in #103
  • feature: animation groundwork + window movement animation by @mattkae in #121
  • feature: configurable animations + animation for window opening + multiple ease functions by @mattkae in #125
  • feature: workspace switching animations by @mattkae in #128
  • epic: animations, animations, and animations! by @mattkae in #127
  • feature + testing: animation testing refactor + slide animation now includes a scale + improving workspace transforms + constraining less often by @mattkae in #130
  • snap: upgrade to core24 by @mattkae in #129
  • (#131 #132 #133) bugfix: clipped windows now behave properly when being animated by @mattkae in #135
  • refactor: move ProgramFactory to its own file + clang-tidy issues around the renderer by @mattkae in #139
  • bugfix: unset CMAKE_CXX_COMPILER by @pastalian in #138
  • feature: support for i3 'exec' command by @mattkae in #140
  • feature: implementation if the i3 'split' command by @mattkae in #142
  • feature: support for the i3 'move' command by @mattkae in #143
  • feature: support for i3 'sticky' command by @mattkae in #145
  • (#136) bugfix: interpolating first slide animation from the current position by @mattkae in #146
  • (#147) bugfix: workspace animations are now interpolated + border respecting workspace transforms + massive simplification of workspace transformation code by @mattkae in #148
  • refactor: resizing is now global instead of local to a particular output by @mattkae in #150
  • frankenstein: borders disappearing bug for floating windows + percentage not being clamped on animations + IPC_GET_VERSION + IPC_GET_BINDING_MODES + IPC_GET_BINDING_STATE + IPC_GET_OUTPUTS by @mattkae in #153
  • (#122) bugfix: border rendering no longer throws GL error 1281 by @mattkae in #155
  • (#156) bugfix: place fullscreen windows properly by @mattkae in #159
  • bugfix: XWayland windows some times become unclickable by @mattkae in #167
  • (#166) XWayland windows now have a proper Z-order so that they don't step on each other's toes by @mattkae in #170
  • bugfix: handling initially fullscreen windows + allowing workspaces to be floating by default + allowing windows to be floating initially + fixes for #168 by @mattkae in #171
  • bugfixes: select on hover always + release builds for debian & snap + fix for for #174 when we have zero monitors by @mattkae in #176
  • (#4) bugfix: gedit save dialog no longer appears as a tile + removing some dead code + mild refactor and debugging by @mattkae in #177
  • (#178) bugfix: fix for menus no longer being selectable + being able to allocate a floating window as the initial window by @mattkae in #179
  • bugfix: need libnotify4 in stage packages by @mattkae in #182
  • (#97) bugfix: preventing some windows (e.g. emacs) from deciding on too small of size for their tile by @mattkae in #184
  • Fix compile with glm 1.0.0+ and musl libc by @JamiKettunen in #185

New Contributors

Full Changelog: v0.2.1...v0.3.0

v0.2.1

23 Apr 20:19
e758652
Compare
Choose a tag to compare

It is me again 👋

As promised, I am following up with a release of the Ubuntu deb and Fedora packages. 📦 At the time of posting this, the Fedora package is not quite yet published, but it will follow shortly. The deb package is available on mantic and noble at the moment at version 0.2.0.

On top of this, I'll also took this opportunity to update how we present our documentation. Head on over to https://mattkae.github.io/miracle-wm-wiki/ for a much better documentation experience. Please feel free to open up pull requests to fix any errors that you see in the documentation 🎉

What's Changed

  • fedora: release 0.2.0 by @mattkae in #101
  • packaging: Only install unsnap wrapper when building as a snap by @mattkae in #105
  • debian: released 0.2.0 for noble and mantic by @mattkae in #106
  • feature: docs now exist on github pages by @mattkae in #108
  • fedora: bump to version 0.2.1 for fedora release by @mattkae in #107

Full Changelog: v0.2.0...v0.2.1