Hi everyone, below you will find the updates from the Desktop team from the last week.
If you’re interested in discussing a topic please start a thread in the Desktop area of the Community Hub (this site).
We also have our weekly meeting on IRC. We meet on Tuesday at 13:30 UTC in #ubuntu-desktop on Freenode. There will be an “Any Other Business” section at the end where you are welcome to raise topics. These topics might be discussed during the meeting, or afterwards depending on the time, depth of conversation, topic and so on.
Convert sync delay from a constant to an env var: If increased by a few milliseconds from the default of 2ms then you can get lower input latency. But I’m not proposing to change the default yet because it requires additional work to avoid causing frame drops.
network-manager: Found a way to debug the nm.py autopkg script by calling it directly (not using autopkgtest utility) but on an Eoan Desktop VM as one needs to reboot after a failure. Found all the issues (NM API changes) and fixed them (~5 API adaptations). All the tests are passing now. Made the result available.
Google summer of Code 2019: The student who did pdftoraster has now started to work on the Common Print Dialog Backends support for the GTK print dialog. Explained him in-depth what exactly needs to be done and told him which code pieces to get familiar with.
Received in-principle approval to have the user session agent run as an independent process to snap userd: trying to merge the two basically broke the D-Bus services provided by userd on systems where the session bus wasn’t launched by a user instance of systemd (i.e. Ubuntu 14.04, Ubuntu 16.04, CentOS 7).
Asked for and received a second round of review feedback that I am working my way through. This included requests to split some changes out into their own PRs, leading to the creation of #7027 and #7028 (both since merged).
I hope to get the main PR merged this week.
Desktop notifications for the session agent:
One of the features the session agent will need is the ability to post desktop notifications. There are a number of Go libraries to handle this, but none felt appropriate. Most were simple wrappers for notify-send, with no support for actions, and one was part of a larger glib/gobject cgo binding.
So I put together a rudimentary native implementation using the D-Bus binding already in use by snapd. At 350 lines, I’ve got something that approximates the libgioGNotification API and supports both the GTK and freedesktop.org notification APIs. This covers all desktop environments we care about, and allows for persistent notifications on GNOME 3 based desktops.
While working on that, I discovered a possible deadlock in the godbus code. I submitted PR #161 to fix that, which has been accepted upstream.
Various cleanups to Default Workspace Focus fixes causing gnome-shell crashes with some programs (including jetbrains products in snap store). Finally merged and backported to all the stable series. Packaging the fix in progress too [!307, merged]
Cleanup in the app-display reallocation cycles fix [!581, merged]
Some discussion in multi-monitor and shell CyclerPopup’s (alt/super+tab/backtick/escape) [#1395]
Fixed a regression causing keyboard popups to be shown in under the keyboard [!583, merged]
Looking in fixing crash mutter#652 (i.e LP: #1832869), debugged (see traces there), I’ve a fix to be proposed today
Gjs, fixed proxy wrapper properties to respect read-write-ability of the proxy [!298, merged]
Gjs, reduced memory usage for the JSObject wrapper used by GObject’s [!303, merged]
Looking at the bigger blocker for gjs#217 to implement a faster and cleaner path for managing GObject’s ownership (removing the big hammer for garbage collecting which is quite CPU intensive, see details here)
Proposed a workaround for GCC issue (merged) to upstream GJS [Bug 1560064, fixed]