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 --classicDemo 🎥
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 ⭐
- Animation support for:
- Windows opening, moving, and resizing
- Workspace changing
- A border can now be shown around each window, with the focused window receiving a different color
- Increased support for i3 IPC, specifically:
focuscommand: https://i3wm.org/docs/userguide.html#_focusing_moving_containersexeccommand: https://i3wm.org/docs/userguide.html#execsplitcommand: https://i3wm.org/docs/userguide.html#_splitting_containersmovecommand: https://i3wm.org/docs/userguide.html#move_directionstickycommand: https://i3wm.org/docs/userguide.html#_sticky_floating_windowsGET_VERSION: https://i3wm.org/docs/ipc.html#_version_replyGET_BINDING_MODES: https://i3wm.org/docs/ipc.html#_binding_modes_replyGET_BINDING_STATE: https://i3wm.org/docs/ipc.html#_binding_state_replyGET_OUTPUTS: https://i3wm.org/docs/ipc.html#_outputs_reply
- Upgraded the snap to
core24 - Workspaces can now specify a default layout rule that they follow (either "tiled" or "floating")
- New configuration options for:
- Animations
- Window borders
- Workspace layout rule
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 https://github.com/mattkae/miracle-wm/pull/112
- (#113) bugfix: fullscreen windows no longer get their rectangle set if one is pending by @mattkae in https://github.com/mattkae/miracle-wm/pull/114
- feature: supporting the i3 focus command by @mattkae in https://github.com/mattkae/miracle-wm/pull/116
- feature: displaying a border around windows by @mattkae in https://github.com/mattkae/miracle-wm/pull/103
- feature: animation groundwork + window movement animation by @mattkae in https://github.com/mattkae/miracle-wm/pull/121
- feature: configurable animations + animation for window opening + multiple ease functions by @mattkae in https://github.com/mattkae/miracle-wm/pull/125
- feature: workspace switching animations by @mattkae in https://github.com/mattkae/miracle-wm/pull/128
- epic: animations, animations, and animations! by @mattkae in https://github.com/mattkae/miracle-wm/pull/127
- feature + testing: animation testing refactor + slide animation now includes a scale + improving workspace transforms + constraining less often by @mattkae in https://github.com/mattkae/miracle-wm/pull/130
- snap: upgrade to core24 by @mattkae in https://github.com/mattkae/miracle-wm/pull/129
- (#131 #132 #133) bugfix: clipped windows now behave properly when being animated by @mattkae in https://github.com/mattkae/miracle-wm/pull/135
- refactor: move ProgramFactory to its own file + clang-tidy issues around the renderer by @mattkae in https://github.com/mattkae/miracle-wm/pull/139
- bugfix: unset CMAKE_CXX_COMPILER by @pastalian in https://github.com/mattkae/miracle-wm/pull/138
- feature: support for i3 'exec' command by @mattkae in https://github.com/mattkae/miracle-wm/pull/140
- feature: implementation if the i3 'split' command by @mattkae in https://github.com/mattkae/miracle-wm/pull/142
- feature: support for the i3 'move' command by @mattkae in https://github.com/mattkae/miracle-wm/pull/143
- feature: support for i3 'sticky' command by @mattkae in https://github.com/mattkae/miracle-wm/pull/145
- (#136) bugfix: interpolating first slide animation from the current position by @mattkae in https://github.com/mattkae/miracle-wm/pull/146
- (#147) bugfix: workspace animations are now interpolated + border respecting workspace transforms + massive simplification of workspace transformation code by @mattkae in https://github.com/mattkae/miracle-wm/pull/148
- refactor: resizing is now global instead of local to a particular output by @mattkae in https://github.com/mattkae/miracle-wm/pull/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 https://github.com/mattkae/miracle-wm/pull/153
- (#122) bugfix: border rendering no longer throws GL error 1281 by @mattkae in https://github.com/mattkae/miracle-wm/pull/155
- (#156) bugfix: place fullscreen windows properly by @mattkae in https://github.com/mattkae/miracle-wm/pull/159
- bugfix: XWayland windows some times become unclickable by @mattkae in https://github.com/mattkae/miracle-wm/pull/167
- (#166) XWayland windows now have a proper Z-order so that they don't step on each other's toes by @mattkae in https://github.com/mattkae/miracle-wm/pull/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 https://github.com/mattkae/miracle-wm/pull/171
- bugfixes: select on hover always + release builds for debian & snap + fix for for #174 when we have zero monitors by @mattkae in https://github.com/mattkae/miracle-wm/pull/176
- (#4) bugfix: gedit save dialog no longer appears as a tile + removing some dead code + mild refactor and debugging by @mattkae in https://github.com/mattkae/miracle-wm/pull/177
- (#178) bugfix: fix for menus no longer being selectable + being able to allocate a floating window as the initial window by @mattkae in https://github.com/mattkae/miracle-wm/pull/179
- bugfix: need libnotify4 in stage packages by @mattkae in https://github.com/mattkae/miracle-wm/pull/182
- (#97) bugfix: preventing some windows (e.g. emacs) from deciding on too small of size for their tile by @mattkae in https://github.com/mattkae/miracle-wm/pull/184
- Fix compile with glm 1.0.0+ and musl libc by @JamiKettunen in https://github.com/mattkae/miracle-wm/pull/185
New Contributors
- @pastalian made their first contribution in https://github.com/mattkae/miracle-wm/pull/138
- @JamiKettunen made their first contribution in https://github.com/mattkae/miracle-wm/pull/185
Full Changelog: mattkae/miracle-wm@v0.2.1...v0.3.0