Switchboard
Intuitive settings hub for Linux desktops
Winter 2011 - Summer 2012
What
Why

I have been using Linux as my desktop operating system for two years, after having migrated from Mac OS X. When I made the transition, I was frustrated by the lack of coherence and cohesion, both technically and graphically, of the system settings in Linux desktop environments. Each settings panel is typically developed individually, by different projects with different goals and user interfaces, making it cumbersome and confusing for users to change and view settings on their computers. I created a desktop-agnostic, modular, organized and friendly system to solve this ubiquitous modern Linux problem. The system is called Switchboard, and consists of a user-facing graphical interface that organizes the configuration panels installed into categories, and an API with a Vala/C/GTK+ library that enables developers to create settings panels for Switchboard. Switchboard will be included in the next version of elementaryOS (Luna), and is licensed under the GNU LGPL version 2.

As a result of my involvement with elementary and my work on Switchboard, I was invited to and attended the 2011 Ubuntu Developer Summer in Orlando, Florida. I presented the software to a panel of Canonical engineers and it is being considered for adoption by Ubuntu and other free desktop projects.

How

Switchboard's API provides an elegant interface API which abstracts X11's XEMBED window embedding protocol. This enables developers writing in many languages and toolkits to embed their interface directly into the Switchboard UI. Additionally, the Switchboard API allows developers to interact with the Switchboard app itself and communicate state information such as activity progress.