Busy Summer: elementary Update
With improvements to the Sound Indicator and notification system, I've helped make the next elementary release just a bit better. Darkbar, my first elementary app, improves dark mode support in non-elementary applications.
I've been quiet the last few months. With an increased (at-work) workload and the start of returning to a normal life, I simply haven't had the time to sit down and focus on FOSS. Despite that, I still managed to contribute some worthwhile improvements to elementary.
Disclaimer: elementary 6 "Odin" is still in development, so the features displayed below are not final. Watch the elementary Blog for updates on the next release.
After adding device management support, I continued making 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 reasonable 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) as well as raw image data (#123, #211) are now supported in both the notifications and the indicator. Support for actions 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 correctly support the dark theme. In particular, I found VS Code and GIMP annoying with dark content and a light titlebar, and 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 applies your theme preference 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 windows 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
I've started getting back in the groove with Xubuntu and Xfce development. I'll be working on some releases over the next couple of days and will have another blog post shortly with the latest updates there. 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