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
- Workspaces can now have names which are reported to shell components
- Implemented the get tree request
- Implemented the get outputs request
- Implemented the get workspaces request
- Implemented the various
workspace
andmove container to workspace...
commands which allow the user to change workspaces/move containers to workspaces - Implemented the various focus commands
- Implemented the exit command
- Implemented the layout command to allow users to programmatically set the layout of a container
- Implemented the scratchpad command
- Implemented the ability to move a container to another output
- Implemented the resize command ipc per the i3 user guide
- Implemented the reload command
- Implemented tabbed containers
- Refactored the ipc big time so that it returns meaningful errors upon failure
- Fixed a bunch of issues around stability and performance such that miracle is now pretty usable as a daily driver!
- Upgrade to Mir 2.19
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
- @Conan-Kudo made their first contribution in #222
- @sudopluto made their first contribution in #241
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 use it for all of my development. There are still some rough edges, but the progress that we've made in these past couple months (especially with the the push from the Fedora spin) has improved the project a ton.
I am going to try and cut releases more often in the new year, so stay tuned for that. Check out the trello board for more information on what we've done and what might be coming up in the next release. See you next time π