As part of our ongoing work on Isis, Corentin Noël and a few others have given Switchboard a major overhaul of both its backend and frontend. The new Switchboard 2.0 is faster, more future proof, and even a bit sexier.
As you may know, Switchboard is our System Settings app. It is a platform for extensions called “plugs” that provide its settings panes. In our efforts to improve performance and future-proof our apps to run on newer display servers, we’ve moved our extension architecture to take advantage of GModule instead of Xembed. Panes now load noticeably more quickly and there are no graphical glitches (like black flashes).
In addition to this backend overhaul, we’ve updated Switchboard’s Interface to take advantage of the latest features of GTK 3.10, like animating the transition between panes and using the new compact HeaderBar. We’ve also done a bit of polishing with GTK CSS to make the grid view look nicer.
Developers should know that with the move to GModule, there was a small architectural choice made: our previous Xembed architecture allowed the use of other toolkits like Qt in plugs. However, GModule enforces the use of native GTK. Since we haven’t yet seen anyone write a Switchboard Plug using a toolkit other than GTK, this isn’t a major issue; In fact, it should ensure consistency in look and feel for our users.
Another small concession was the removal of the ProgressBar from Switchboard’s title area. Since moving to HeaderBar, that area is now occupied by the title of the current Plug. We’re encouraging Plug developers to instead design progress indicators in more contextual locations in their plugs.
Since Isis is still unreleased, this milestone represents our development work so far. Testers may encounter issues, but rest assured that we're still working! If you're a developer, we welcome branch merge requests to make Switchboard even better. But for the general public, we ask that you wait until we announce Isis Beta to report bugs.
Since Switchboard is completely extensible, there is a big opportunity for modders to offer new kinds of plugs. One of the more popular plugs available for Switchboard is the “Tweaks” plug. But, we could still use developers to work on default plugs too! Some big requests waiting for a developer are things like custom keyboard shortcuts and redesigns for complex plugs like Printers, Displays, and Locale.
If you’d like to write a plug for Switchboard, you can browse the code of our sample plug here. It includes all the boilerplate code so that you can jump right into the good stuff.
If you’re a designer interested in sharing your plug idea or a developer looking for inspiration, don’t forget to check out the Switchboard Plugs group on deviantART.
As always, we have links and resources available for interested developers and designers on our Get Involved page.