Budgie LogoBuddies of Budgie

Chirp #2: Getting "Sloppy" with Window Focus and Experimental with Mir

This week we released Budgie Control Center 2.1.0, added sloppy focus support for the upcoming Budgie 10.10.1, and refreshed our website. Meanwhile, we've begun early exploration with Mir for Budgie 11 and started refinements to the shell's panel logic.
Chirp #2: Getting "Sloppy" with Window Focus and Experimental with Mir
JS
Joshua Strobl

January 25, 2026

#Development

#Budgie Control Center

This week, we merged the work from Chirp #1 into the stable 2.1.0 release. This update adds the Introduction panel and the Background panel's Style button, alongside updated translations.

#Budgie Desktop (10.10)

David has done a lot of fantastic work in the budgie-desktop repository this week. While Budgie 10.9.x only supported click-to-focus and mouse modes (a limitation of our Mutter-based Magpie), Budgie 10.10 and our default use of the labwc compositor finally enable "sloppy" focus support. We have integrated this into both Budgie Desktop Settings and our labwc bridge, allowing you to choose between three distinct window focus behaviors:
  1. Click-to-focus: Focuses and raises a window when you click it.
  2. Sloppy: Focuses a window when the cursor enters it, without raising it above others.
  3. Mouse: Focuses and raises a window as soon as the cursor enters the window area.
Our WaylandClient code has been reworked into a static library (internal to Budgie) and leveraged across our EndSession, Notification service, OSDs, Polkit, and Screenshot. The most notable result is our Screenshot tooling is more resilient to compositor changes, as well as resuming from suspend. More null checks and fallbacks for monitor detection were added to our Panel code, which should reduce crashes particularly when swapping between a TTY and the graphical environment. Lastly, David recently submitted a pull request that reworks our brightness handling to not use gnome-settings-daemon. This will undergo review and landing in the upcoming days, so we can get that in for a Budgie 10.10.1 that is slated for release this Saturday (January 31st, 2026).

#Budgie Desktop View

Support for interacting with multiple items at once (opening and moving to trash) has been added, alongside some related fixes for selecting items depending on the click policy (single vs double click setting for Budgie Desktop View exposed in Budgie Desktop Settings). This will land in a 10.10.1 release at the same time as budgie-desktop.

#Website

The Buddies of Budgie website has gotten a fresh coat of paint while bigger under-the-hood changes landed. A broader redesign is planned for the future, but this update at least introduces: While tested across multiple form factors and browsers, there might be (is probably) bugs, so please file an issue over at the Forgejo if you spot something. Thank you in advance ❤️

#Budgie 11

#budgie-shell

Evan converted the panel to a proper class in his classify-panel branch and has been working on getting QML loading done in a more elegant way than my very MVP panel 😁 The layer-shell anchors are also now being calculated from a ScreenEdge enum on the Panel class, which will be nice down the road when we start plugging in logic for changing panel positions.

#magpie / "mirpie"

After I got the Chirp for last week out the door, I started working on leveraging Mir (currently Miral a.k.a Mir abstraction layer) to get a very basic compositor working. Despite some hiccups with getting it actually running, I went from having no code to having a functional compositor in a matter of hours just by following their documentation! See the featured image header. Of course, that was the easy part. I have since been wrestling with trying to get the Qt main loop integrated in so I can leverage QObjects, Qt's event system, etc. which is all a precursor / requirement for beginning the integration of KConfig for configuration. I haven't had any success yet. I've been digging through the qtmir codebase from the UBPorts folks for inspiration on their Qt integration, which they notably implemented as a Qt Platform Abstraction (QPA) plugin. It serves more as a reference for what's possible rather than something we can directly leverage, as it is written in Qt5 and covers a much broader scope than just event loops. Still, I’m hopeful that some of their approach will prove useful as we try to figure out our own Qt main loop integration. Whether a QPA is even the right path forward remains to be seen. If it is, I will likely follow the Qt documentation's recommendation and dive into the minimal and minimalegl QPAs instead. From there, I can build out something strictly focused on what we need for process management, configuration, and other essentials.
That wraps up this Chirp! Thanks for following our progress, and we'll catch you in the next update!
Supporting The Project

Did you know that you can financially support the Buddies of Budgie project? Buddies of Budgie was founded to provide a home for Budgie Desktop and your financial contribution can go a long way to supporting our goals for development, providing opportunities for financial compensation, leveraging no-compromise Continuous Integration and Continuous Delivery systems for Budgie 11 development, and more.