Juno Progress for April

Get hyped! Juno is coming!

If you thought we’d dropped off the face of the planet, you probably missed it: we have moved away from Medium and started publishing on our faster, open source, and privacy-respecting blog at blog.elementary.io. We’ve kept this blog post unlisted here on Medium for posterity, but all recent and future posts as of November, 2019 are exclusively hosted there.

With only a handful of issues left before we’re ready for public beta, I present to you our progress for the month of April! At this point, the vast majority of new features have landed in Juno and we’re focusing on bug fixing, polish, and general quality control and testing. Get hyped because we’re almost there!

Notifications

As part of our effort to make sure users have full control over apps that send notifications and how those are displayed, we’ve opted to make some changes to the way the Notifications indicator works. Right now, developers can identify their apps to the notifications server using GLib.Notification. However, we previously also had a heuristic that tried to guess the correct app for notifications that didn’t include an ID. This often resulted in notifications being grouped incorrectly, especially with Electron-based notifications. In order to fix this, we’ve done two things:

We’ve removed the heuristic that tries to guess which app a notification was sent from. All notifications sent without an ID will be categorized as “Other” from now on. We’ve submitted patches upstream to Electron, Firefox, and LibNotify to help developers identify their apps properly to the notifications server. This should benefit not just elementary OS but also GNOME and other Open Source desktops. We’re happy to say that the Electron patch was committed and we hope to see Electron apps identifying themselves correctly soon.

We’ve made one more change that we’re interested in getting feedback on: By default, we’ve disabled notifications from “Other” apps. This means that apps that don’t correctly identify themselves to the notification server, and thus can’t be individually controlled, won’t be able to send notifications at all out of the box. You can always re-enable notifications for “Other” apps in System Settings → Notifications, but we’d encourage you to put pressure on the developers of your favorite apps to make sure they’re sending their app ID to the notifications server.

Files

As one of our most mature apps, Files predates our standardization on Vala as a programming language. It was historically written in C and still carries many C classes. I’m excited to say that a lot of hard work has gone into porting many of these old C classes to new, shiny Vala classes that are many hundreds of lines shorter. This means a much cleaner and more maintainable code base and has already led to a number of stability and performance improvements. We’ve also been able to drop several internal functions and instead use the functions of upstream libraries like Gtk+, GIO, etc.