elementary Development Update July 2021

I’ve been quiet the last few months. With an increased (at-work) workload and the start of returning to a normal life, I haven’t had the time to sit down and focus on FOSS. Despite that, I still managed to contribute some worthwhile improvements to elementary. So, here’s my elementary development update for July 2021.

Disclaimer: elementary 6 “Odin” is still in development, so the features below are not final. Watch the elementary Blog for updates on the next release.

Sound Indicator

After adding device management support, I made incremental improvements to the sound indicator. It will now remember previously selected devices, so switching between various setups is now easier (#192). Devices with long names (HDMI from graphics cards can be pretty bad) are now ellipsized, keeping the popup menu reasonably sized (#193). Finally, MPRIS players created by browsers will now go away once playback is complete, keeping the menu tidy (#196).


Notifications in elementary 6 are now more compliant with the FreeDesktop.org Desktop Notifications Specification. Application icons and images sourced from a URI (#120) and raw image data (#123, #211) are now supported in both the notifications and the indicator. Action support has also been added (#125), making notifications interactive.

Darkbar: My First elementary App

As I started using more non-elementary applications, I found a few that didn’t support the dark theme correctly. In particular, I found VS Code and GIMP annoying with dark content and a light title bar and I sought to find a solution. The VS Code extension GTK Dark Title Bar did the trick. Diving into it’s source code, I found the necessary xprop command to force a window to use dark styles.

After some experimentation, Darkbar was born. Darkbar runs in the background, and your theme preference is applied to X11 windows using server-side decorations (SSD). This works well for GTK2 applications like GIMP and electron-based apps like Slack and Todoist. It even works in other desktop environments, with some caveats:

  • It only works in X11. Wayland is not supported.
  • It only works with window managers supporting GTK dark style variants. This includes Gala in elementary and Mutter in GNOME. Xfwm4 is not currently supported as it doesn’t support the style variants.

If you’re running elementary 6, you can download and install Darkbar from here. Otherwise, you’ll need to configure the elementary AppCenter repo (instructions intentionally left off until it’s official) and build the Flatpak yourself.

flatpak-builder build org.bluesabre.darkbar.yml --user --install --force-clean

What’s Next?

I’ve started getting back in the groove with Xubuntu and Xfce development. I’ll be working on some releases over the next few days and will have another blog post shortly with the latest updates. If you want to support my work, sponsor me on GitHub or Patreon. Every little bit is appreciated!

Post photo by Aaron Burden on Unsplash