Login Register

Attack of the Settings

Computers are complicated. There’s literally an infinite number of things one can do with a modern PC, and an equally large number of ways to configure it and its software. Most people, however, have no need or desire to change and tweak every single nook and cranny of their computer. Most people prefer their computer to be elementary in nature -- and software configuration is no exception.

Settings and configuration for the different components of our computers is typically scattered amongst many disjointed, disparate, stand-alone applications with different user interfaces and behavior. Unfortunately elementary OS and many other popular operating systems have been lacking in this critical department when it comes to simplicity and ease-of-use.

Today I am announcing the initial public release of Switchboard, an application and developer toolkit designed to tackle this very issue. In a nutshell, Switchboard solves this problem by enforcing coherency with regard to interface and behavior, and by automatically organizing the different configuration options into one unified and central location.

How does it work?

Good question. For starters, “Switchboard” is really two discrete components: the user-facing app and developer-facing library. Let’s start with the former. The Switchboard app is just that -- it’s a graphical, elementary-style app just like any other on the elementary desktop. In fact, here’s a picture of it:

As you can see, Switchboard arranges the different settings available to you by group, and then organizes those into categories. This layout is designed to make it as easy and quick as possible to find exactly what you’re looking for, and get at it quickly. In Switchboard terminology, those different groups (such as User Accounts or Power settings) are called plugs.

Plugs

If the app above is the brains of Switchboard, then plugs are its brawn. Plugs are small mini-applications written using LibPantheon -- a Vala library that provides APIs for interacting with and extending the Pantheon desktop. LibPantheon provides APIs and tools for creating plugs for Switchboard, and it is mainly because of this consistent set of APIs that Switchboard is able to provide a clean and coherent experience. On the technical level, Switchboard plugs are executable binaries (like normal desktop apps) with small textfiles that describe the plug to Switchboard. When a plug is selected from the Switchboard app, the plug embeds itself into the window of Switchboard, giving the illusion that Switchboard contains all of the code for it’s plugs.

Switchboard is not..

To alleviate and minimize any confusion, Switchboard is not a place for your application to store it’s settings or provide configuration options. It is not a replacement for things like GSettings, dconf, gconf, and configuration files. Rather, it is a graphical abstraction of such technologies for system components and hardware. A general rule of thumb is that if your app is stand-alone and not hardware related, it doesn’t need a plug. Things like your favorite dictionary app or game should use technologies like the app menu and configuration screens to modify their behavior. Switchboard is meant to provide a place for global configuration settings, such as power options, device syncing, or third-party hardware.


BYOP (Bring Your Own Plugs)

Switchboard does not in fact come with any plugs. Rather, plugs are packaged and installed separately to make Switchboard as modular and easy-to-extend as possible. Additionally, this paradigm makes it very easy for third-party developers to use Switchboard. Suppose you’re a hardware company that just produced a brand new gadget that needs to sync with or be configured via a computer. Instead of needing to create a separate app and worry about how it will look and where it will be located, they need only to create a Plug for Switchboard and offer a software package that installs it. But don’t worry -- future releases of elementary OS will of course come out-of-the-box with all of the plugs you need.

Calling All Developers!

With Switchboard just being released, there is an abundant need for plugs. In order to ensure that Switchboard is a success for it’s debut in elementary OS (Luna!), plugs must be created. We have worked hard to make the experience of developing plugs as easy and accessible as possible. If you would like to try your hand at developing Switchboard plugs (it’s fun -- I promise!), or even just to learn more about the Switchboard architecture, you have a myriad of resources at your disposal.

A YouTube screencast explaining much of this article and giving a demo:
http://www.youtube.com/watch?v=JF37THZoNsA

The standard elementary Human Interface Guidelines:
http://elementaryos.org/docs/human-interface-guidelines

API documentation and technical explanation of Switchboard & plugs:
http://elementaryos.org/docs/apis/switchboard

Vala documentation for LibPantheon:
http://valadoc.elementaryos.org/Pantheon/

A PPA containing daily builds of Switchboard, LibPantheon, Granite, and Vala itself:
https://launchpad.net/~elementaryart/+archive/unstable-upstream

Launchpad Blueprint outlining some of the plugs needed for Pantheon and Luna:
https://blueprints.launchpad.net/switchboard/+spec/default-plugs

IRC Channel to discuss Switchboard and elementary development:
Server: irc.freenode.net, Channel: #elementary-dev

And of course, you can grab the latest sourcecode of Switchboard and LibPantheon:
bzr branch lp:switchboard && bzr branch lp:libpantheon

Thanks for reading, and here’s to Luna and beyond!

 

NOTE: Daily builds of Switchboard are currently failing. We'll get that fixed ASAP! For now, you'll have to build the source.

Comment viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
cattywampus
Posted 37 weeks 6 days ago

Does anyone have a link for that awesome 1984 wallpaper shown in the video? Thanks.

Developer
aroman
Posted 37 weeks 6 days ago

Just for you: http://imagebin.org/169751 :)

cattywampus
Posted 37 weeks 3 days ago

Win. Thanks a ton. :D

xeptf4
Posted 38 weeks 5 days ago

I like where this is going.

HearthBreacker
Posted 38 weeks 6 days ago

look I saw the comments on the site saying OMG Ubuntu is a copy of OSX, but in my opinion is not a copy and I liked the design ...
do not mind the comments, very much, you are more creative, able to create a distro independent and am very anxious for the final version of the Luna ...
I would like to improve the download manager for he shows no Midori marker of progress of the download ...

Mod
LocalHero
Posted 38 weeks 6 days ago

Thank you for the encouragement. We appreciate all of the support from our users, and you are more than welcome to help out wherever you see a need.

At the moment, Midori has a download manager that is accessible by opening the sidebar in the AppMenu (gear icon). If you see a way of improving Midori, please feel free to contribute at launchpad.net, or discuss with us on free node.net n the #elementary channel.

gunnarflax
Posted 38 weeks 6 days ago

A really good initiative! I just have a question regarding the design. I think that the system settings application in Ubuntu 11.04 looks great, it's easy to find what you are a looking for and it presents the settings in a easy readable manner. In Switchboard the settings are just lined up in rows, much like the Dash in Unity, and this can sometimes make it hard to scan the available information. So I wonder if Switchboard will have any sorting option or different (list?) layout so that you can quickly find what you are looking for?

I know that there is a search function but sometimes you might not know what to search after :)

gunnarflax
Posted 38 weeks 4 days ago

No answer? come on? :)

AHoneybun
Posted 38 weeks 6 days ago

That simple idea is true for a lot of users, but for us power users, there seems to be no way to work around it, so the question is, is elementary OS too limited for us so that we must find another OS to mess with? Even Debian seems like a more customisable choice. But I'm looking forward to Pantheon DE.

Developer
aroman
Posted 38 weeks 6 days ago

As someone who considers himself a definite poweruser, I can safely say that Switchboard will be as much a power-user tool as it will be a "regular" user tool. As for the more broad scope of your question about elementary OS itself being "limited", I'll definitely have to disagree based on personal experience and having been a part of the elementary team for the better part of a year.

elementary OS, and elementary in general, is designed not to obfuscate or remove the ability to tweak things to your hearts desire, but rather to provide "sensible defaults" and not burden users with things that most users won't want to mess with even given the option. elementary is in fact Debian in a technical sense being based on Ubuntu, and elementary is every bit as flexible as any of the other "hardcore" Linux distros I've used -- and I've used quite a few. I spent months with Gentoo, Exherbo, Arch, and Debian, and I've found virtually nothing in those systems I couldn't achieve on my elementary install (sans the difference in package management solutions).

So to summarize: elementary is simple and minimally-configurable as possible on the surface, but literally infinitely customizable under the hood. Everything is opensource,w ell documented, and has plenty of upstream support. Hack to your heart's content :)

Designer
DanRabbit
Posted 38 weeks 6 days ago

Switchboard is actually a great thing for power users. It means that instead of installing another app like gnome-tweak-tool you'd just get the right plugs for Switchboard ;)

elementaryben
Posted 38 weeks 6 days ago

Awesome looking application. Looking forward to using it often. Luna is looking brighter and brighter! :)

V for Vincent
Posted 39 weeks 2 hours ago

Noticed switchboard is getting a lot of flak on OMG because it looks too much like Lion's configuration tool. I'd just like to tell you not to start doubting your own work. There is a very strong resemblance, but it's just a sensible way to lay out this sort of app. I've never even used a mac and I feel switchboard looks excellently suited to what it does. The only criticism worth reading is the constructive kind.

zpletan
Posted 39 weeks 8 min ago

Switchboard and Mac OS X's System Preferences app look almost identical. However, there aren't too many functions that a settings app needs (it can have more, but there are some it needs). One is a way to get to individual settings panes; the other is a way to get back to the main screen.

Only two other features are added to these in Switchboard and System Preferences: a way to get back to the last visited pane, and a search bar to find preferences. The first is useful, and I can't count the number of times I've used the second—it's very useful.

In other words, the only reason these two look the same (and I don't think it can be denied that they do) is because both elementary and Apple adhere to a strong minimalism, and you can't make Switchboard or System Preferences much more minimal.

Snippy
Posted 39 weeks 5 hours ago

Excellent work!!!

TheLastStud
Posted 39 weeks 7 hours ago

what kind of applications can Switchboard plugs be created for? examples?

Developer
aroman
Posted 39 weeks 6 hours ago

Plugs can theoretically be created for anything. They're about as technically open ended as GTK+ itself. But the intended use are things like configuring firewall settings, printer setup, and devices such as phones and cameras.

Marneus68
Posted 39 weeks 12 hours ago

Creating a plug sounds like a pretty much simple way to get involved in the elementary OS development :)
I like this idea of an integrated and pretty "gnome-control-center like" application.
I'm looking forward to see what I can do... a plug for switchboard is something I could definitely do !

Developer
aroman
Posted 39 weeks 6 hours ago

If you have any questions about Switchboard, the API, or any of the other technical aspects involved in creating plugs I would be more than happy to help you out. Shoot me an email at avi[at]elementaryos.org, or join us in #elementary-dev on irc.freenode.net. Good luck, and have fun! :)

haeckle
Posted 39 weeks 12 hours ago

very nice app. seams like it's comparable to the new gnome-control-center, but even better.

Lazze
Posted 39 weeks 13 hours ago

Awesome initiative, I really hope it will gain some momentum and other distros will implement this.

dill0n
Posted 39 weeks 15 hours ago

Love the work you guys are doing. I love that you know how to put together a sexy distribution, write your own applications to streamline Linux and make it more user-friendly. And perhaps more than that, I love that you're not resting on just being another distribution, but trying to establish standards, guidelines, modularity, and ease of use for both developers and users. Modern Linux, it seems, needs these kinds of concepts implemented on the large scale now more than ever. You have the most attractive website in Linux and a fair amount of word-of-mouth hype. As such, I think you guys have a unique opportunity here to attract lots of developers (not to mention users) to your cause.

But for your projects to succeed, you absolutely need to get the word out to developers and convince them it's worth their time. I hope you can get more of the press onboard leading up to your 0.2 release. OMGUbuntu seems to be pretty close to you guys, which is great, but they're just one source. I know these are still the early days of the elementary project, but I'm impatient to see it succeed. Get the word out as far as you can- you're doing a great job so far and you've demonstrated that you can walk the walk, not just talk the talk. It's also our responsibility as early adopters and fans to do our part in promoting elementary.

Good luck team! :D

joshbenham
Posted 39 weeks 16 hours ago

This sounds like an awesome idea and will love to see what plugs people will create in the future.