Wednesday, April 27, 2011

GNOME Online Accounts

The past couple of weeks I've been looking into how to make GNOME work with online accounts. I sent some notes about to d-d-l about this last week. I'm now at a point where I have working code. And with working code, I of course mean a working screencast (Youtube Video): OK, I mentioned working code and I wasn't kidding — it's stashed in this git repo for now. I expect to move it to git.gnome.org assuming we decide to use this in GNOME. More importantly, I've uploaded the docs here. Oh, and to build this, you will need GLib from the gdbus-codegen branch — fear not, this will be merged to mainline soon!

Wednesday, April 6, 2011

GNOME 3.0 is out

Yay, yay, yay, GNOME 3.0 is out!

I'm especially proud of being part of this release, as I was involved in coding up two very user-visible pieces - the Authorization Dialog and the Calendar Drop-down. Not only is the shell super-duper hot looking (making GNOME 2.x vintage desktops look like Windows 95 more than ever), it is a true pleasure to use. One that grows on you. One that makes you never go back.

The best part about this release is probably how re-energized everyone working on GNOME 3 is. It is important to realize that 3.0 is only the beginning and that we have tons of stuff lined up for 3.0.x, 3.2 and beyond. I'm especially psyched about the prospect of making the desktop shell integrate nicely with the many Web Applications that are in use today. Myself? I'm already busy working on improvements for 3.2 - for the authorization dialog we want to present better strings to the user (e.g. including name of app in the dialog and what object the authorization is about) and for the calendar we want Locations (and possibly weather too) in the drop-down. And ideally an easier way to make the shell show e.g. your Google Calendars if that is your calendar application of choice.

I am GNOME

Tuesday, February 22, 2011

PolicyKit textual authentication

Related to yesterday's bling post, I wanted to mention that PolicyKit also has a textual authentication agent (video):

This is useful in PolicyKit applications running in a non-graphical environment. It's simple to use: simply use PolkitAgentTextListener if the response from PolicyKit indicates that authorization can be obtained if more information is provided. Here are the changes that was needed for pkexec(1) command. An obvious candidate for this would be the pkcon(1) command.

Monday, February 21, 2011

GNOME 3 Authorization

The past couple of days I've been working on implementing the GNOME 3 Authorization Dialog. The implementation uses PolicyKit to achieve this and is conceptually very simple: the Shell process itself just implements the org.freedesktop.PolicyKit1.AuthenticationAgent interface to handle authentication requests from the system-wide authority (video).

For authentication, the Shell is using the existing code that in turn uses PAM. This means that the Authorization Dialog will work out-of-the-box with e.g. fingerprint readers, provided, of course, that the PAM stack has been set up correctly (video).

Additionally, the code has been tested with pam_rps - a PAM module whereby you authenticate by proving that you are smart enough to win in Rock-paper-scissors. The idea is that if your application works with pam_rps, then there's a good chance that it will work with any PAM module (video).

One major difference - and something I've been wanting to do for a while - is that the dialogs are now system-modal. In addition to fixing a lot of focus problems, this also makes the dialogs look more trustworthy since they are part of the actual shell. They're also way prettier.

(Bonus chatter: Of course, there's an emphasis on look in the above paragraph because any random app can still go full-screen to fool the user to give them their password. To do this in a more secure way, we need to use the Secure Attention Key and run the dialog in another security context etc. It's an open question whether it's even worth it to do this. But I digress.)

You can find the current code drop in this bug.

Monday, January 31, 2011

GNOME 3 Calendar

From design through review to code, I am proud to present the new GNOME calendar panel:
Thanks to everyone involved!

Tuesday, November 30, 2010

GNOME 3 Calendar Integration

I'm actually not supposed to be working this week (the first screenshot contains a subtle hint why), but here's a couple of screenshots of the upcoming calendar integration for the next major GNOME release:

Today
Click to embiggen

Working in Javascript is really weird compared to C. But so far I think it's weird in a good way.

Today
Click to embiggen

Here's the git branch with this code and here's the bug. There's still some work left to make the code look and act like the mockups. I'm really hoping we can land the bulk of this code before Christmas - the biggest blocker right now is getting events from Evolution which is stressing the capabilities of the gjs runtime and GObject Introspection. To make forward progress on the UI side, I had to switch to a in-process event source with fake events.

Wednesday, August 18, 2010

gdbus(1) bash completion

It seems to be a well-kept secret that the new gdbus(1) command available in the latest GLib releases does bash completion. So here's a quick screencast demonstrating this very useful feature!



Enjoy!