
February 15, 2026
#Budgie Desktop (10.10)
#OSD Visibility over Fullscreen Apps
A community contribution (#850) fixed an issue where volume and brightness OSDs were not visible while a fullscreen application was running. On-screen displays were using theTop layer in wlr-layer-shell, which is the same layer fullscreen apps occupy. By moving the OSD to the Overlay layer (which is explicitly designed for this kind of use case), it now correctly renders above fullscreen content.
#Icon Task List Fixes
There was a fix submitted (#851) for the IconTaskList's behavior whenshow-all-windows-on-click mode is enabled. Previously, clicking an app group would not correctly toggle between activating and minimizing the group. Now:
middle-click-launch-new-instance setting, which was doing the opposite of what users configured. Oops!
#labwc Bridge Improvements
David continued refining our labwc bridge this week. #835 (originally mentioned as pending in Chirp #4) has now landed, bringing several improvements:rc.xml keys where there is more than one key in a keybind arrayrc.xml keybinds against schema keys, so changes made in dconf or Budgie Control Center properly reflect through the bridgeSuper_L menu overlay key, since Budgie expects Super_L rather than GNOME's default Superrc.xml, which is useful for existing users upgrading who may not have those entries yet.
#QEMU / gnome-boxes Cursor Fix
We landed a workaround (#858) for an issue where the mouse cursor appeared upside-down in gnome-boxes and other QEMU-based virtual machines with 3D acceleration enabled. The fix detects virgl usage and setsWLR_NO_HARDWARE_CURSORS to work around the issue until it is resolved upstream in QEMU.
#Budgie Desktop View
Previously, Budgie Desktop View was on the same layer asswaybg (BACKGROUND) which required a workaround of toggling icons off and back on during wallpaper changes. We landed a change this week that switches it to using BOTTOM, so Budgie Desktop View now sits above the wallpaper layer naturally, making wallpaper transitions cleaner.
#Other Pending Pull Requests
Still in review from previous weeks:#Budgie 11
#Planning out Preview 1
Evan, Neal, and I sat down this week to map out short and mid-term priorities, providing a clearer roadmap across various components of Budgie 11 and itemizing development tasks (including blockers). While doing so, we more concretely defined must-haves and nice-to-haves for "Preview 1", which will serve as the first public build featuring some elements of the Budgie 11 experience in its various stages. Here is a high-level overview of what we are currently thinking will be in Preview 1. This is subject to change as we get further along in development: budgie-shell#budgie-shell
This week, I focused on building out early configuration support for budgie-panel, taking the lessons learned from implementing configuration in Magpie and applying them to the shell. As part of this, the panel code was reorganized into a properBudgieShell::Panel namespace with separate View and Config classes, and ScreenEdge was promoted to the public libBudgieShell API.
Like with Magpie, panel configuration is defined using KConfig XT. We define our config entries once in a declarative schema and get typed properties, change signals, and serialization for free. The schema covers appearance settings (auto-hide, dock mode, size, transparency), layout (target output and screen edge), and extension region assignments (start, center, end).
Each panel stores its configuration under a profile-aware directory structure (~/.config/budgie-desktop/shell/profiles/{profile}/panels/{uuid}/panelrc). To support this layout, I wrote a new Path class in libBudgieShell that centralizes path construction with safety checks against directory traversal and symlinks. Before the panel configuration work is merged in, my plan is to generalize this API further and move it into budgie-core (not quite sure yet if it will be a monorepo long-term or if we will split things out into their own repositories). The API currently assumes the context of the shell, so it will need to be broadened for use across our other components like magpie, with each consumer implementing any consumer-specific context through sub-classing. This is the kind of shared infrastructure that Budgie Core is designed for, and something we want third parties to be able to build on as well.
Getting the config to actually work end-to-end took some wrestling. KConfig XT's generated classes weren't emitting property change signals on read() in my testing, so I had to wire up manual change detection to ensure the panel's View (which exposes the relevant properties to QML) actually updates when the config file changes on disk. For now, the config file is written out with all default values explicitly so we have something tangible to poke at during development. Once the dust settles though, I expect us to only write values that have actually changed, which aligns with both our desired use of the config, as well as KConfig's own intended design. The good news is it works end-to-end! Changing the panel size in the config file updates the panel live.
Next up, I'll be wiring up the screen edge repositioning, getting things reviewed, then moving on to the extension loading pipeline so we can start getting actual content into the panel.
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.