Wayfire 0.10.0 announcement

Hello everyone! It has been a little over an year since the last Wayfire release. However, if you have been following the GitHub repos, you will know that development has not stopped. In fact, today is the release date of Wayfire 0.10.0.

As usual, here is an overview of the important changes and new features:

Per-device input configuration PR #2510

It is now possible to set input options individually for separate devices. You can start Wayfire with the -d input-devices to see which configuration section Wayfire can use for which device. Note that adding a new section for a new input device to the config file might require a Wayfire restart.

Example (check whe wiki for more details):

[input:platform-i8042-serio-0]
xkb_layout = de

[input:AT Translated Set 2 keyboard]
xkb_layout = us

Experimental Vulkan and Pixman support with color management PR #2613

Wayfire’s rendering API has been significantly overhauled to allow integration with wlroots’ rendering system. This allows us to now support Vulkan and Pixman as rendering backends in addition to the existing OpenGL ES backend. Note, however, that plugins which render with OpenGL directly (Cube, Wobbly, Blur, many animations from the Animate plugin) cannot be run with the Vulkan backend, as they would have to be rewritten to support the other rendering APIs. These plugins will be automatically disabled if Wayfire is running with any renderer other than the default GLES renderer. If you still want to try Vulkan or Pixman, however, you can set WLR_RENDERER=vulkan or WLR_RENDERER=pixman before starting Wayfire.

The rendering changes also allow us to support per-output color profiles which can be set in the config file like this:

[core]
plugins = vk-color-management ...

[output:HDMI-A-1]
icc_profile = /path/to/my/profile.icm

Note that the vk-color-management plugin is required for this to work with the GLES renderer. If you run directly with the experimental Vulkan renderer, color management will be handled by core.

New animations PR #2408 and PR #2412 and external animations PR #2525

The animate plugin has been extended to support new animations, such as squeezimize for a magic-lamp-like effect during minimization. Other additions are the spin and zap window open/close animations. Moreover, external plugins can implement custom animations, like the extra-animations plugin from wayfire-plugins-extra. Check out @soreau’s blog here and here for a demo of these cool new effects.

Other changes

Even though many of the big new features relate to rendering and eye-candy, most of the changes in this release are smaller additions or bug fixes which aim to make Wayfire an even more stable and extensible compositor. Some of the noteworthy changes/additions are:

  • There are new IPC methods for:
    • Getting and setting the current keyboard layout, added in PR #2664
    • Sending views to a given workspace, added in PR #2646
    • Querying cursor position, which can be useful to position new views near the mouse and other similar behaviors, added in PR #2610.
  • Support for wlroots 0.19
  • Better handling of minimum and maximum window size in the resize plugin PR #2434
  • Xwayland startup script support PR #2672, which allows setting commands which run on Xwayland startup and on every subsequent restart, similar to a .xinitrc.

The list is, of course, not exhaustive! Check out the git log for a full list of all the smaller bug-fixes in this release.

Conclusion

Thank you for reading thus far!

Despite the long wait between releases, Wayfire’s development has not stopped. And even though there are still a significant number of issues in the milestones for the next releases, Wayfire is already ready for use as a daily driver. This is possible due to the combination of great testers (special thanks to @killown and @soreau!), an ever-growing end-to-end test suite and the flexibility that the plugin system and the IPC interface provide to build your own personalized desktop. Try out the new release and let us know what you think! As usual, you can find us at #wayfire on Matrix, Discord and Libera.Chat.

PS. We would like to establish a little Hall Of Fame on our website to show how different Wayfire setups. If you like your setup and would like to share it with others, please reach out to us! It would be best if you have a screenshot or a demo video, so that we can add it there, alongside a short description / dotfiles where others can get inspiration from.