lunedì 28 maggio 2012

Going to GUADEC 2012 (and weekly report)

I'm very proud to announce that I'm going to attend GUADEC 2012, as well as the UX Hackfest.
I'm happily
and I would like to thank them a lot!

But it doesn't end here: the title says "Weekly report", so here you are with another round of rock^H^H^Hlocking.

(sorry if the screencast is badly cut, I had problems with both pitivi and openshot...)
So what did I achieve here, since my last post?
The biggest change is the implementation of the curtain design, which essentially entails splitting the lock screen into a part with the background and the clock, and another with the actual unlocking dialog.
The second big change is showing both the panel and the message tray in the locked screen. This means, among other things, that you can now enjoy the on-screen-keyboard.
While I was there, following the login screen designs, I made the gdm greeter use this. And I quietly wept, as I tried to test this on a F17 (now F18) VM, rebuilding glib, gsettings-desktop-schemas (which has a lovely broken upgrade path too), gjs, gdm and what not.

As this is just the first week, but you can see it is not quite bad, I'm rescheduling: in the next week I'll be working on finishing the lock screen, including notifications. It originally accounted for 2 to 3 weeks - I think that's still valid, but I have some more time now, so I'll try to get in touch with the designers: we want to have appropriate privacy settings in the control center, to decide what is shown and what is hidden.
I had planned two weeks for PINs, but it was decided in IRC that this feature is self-contained and not fundamental, so I'm putting it at the end for now.
Finally, along all the period, UI revision and bug fixing will take place. For example, dear designers who had the arrow idea, it's not quite easy to use it with a mouse...

So, stay tuned!

martedì 22 maggio 2012

And now on Planet GNOME!

Yes, I've been added to Planet GNOME!
Well, not much else to say, as I blogged recently on my work.

Just a small gift:

You want to try this? Grab the slave-connection branch from git:// and the screen-shield branch from git:// .
Note: you need to have the latest gdm running, which means probably turning it into a rpm. And that will completely break your greeter, so make sure you have autologin enabled.
Also note: I follow the "Rebase early, rebase often" policy, which means that following my personal repository is a very bad idea. For "stable" stuff, you can usually find a wip/* branch at the corresponding repo.


mercoledì 16 maggio 2012

Almost there

Coding season will start next week, but since I already started coding, I thought I could give an update it too.

If you look at the project schedule, you'll see little mention of gdm - all work is inside gnome-shell. But one of the primary advertised features is so called pam multi-stack, that is, having multiple authentication methods (such as smartcard, fingerprint and password) at the same time, and this would reuse the same code in gdm.
gdm's code base is quite old and very intricated, with multiple components splitted around in different processes talking via private DBus (ugh!), that's why in the last weeks I've been trying to reorganize it, dropping the dependency on libdbus and using the awesome gdbus-codegen.
You can follow the work on this branch: . Don't clone it though: it's my private repository and I often push non-fast-forward updates. When the branch is ready for review, I'll push a wip/gdbus-port on

Next step will be exposing an interface on the system bus to get a private connection with the slave (the component supervising sessions and greeters). The details of this are not finalized yet, but essentially it would be a org.gnome.DisplayManager.Display.GetSlaveConnection() returning a bus address (or a bus guuid + open socket fd?). Details at and following.

Then it will be the hard part - testing this brand new gdm. I had high hopes in ostree, but it seems it's not quite there yet (mail from its author), so I'll probably end up building an rpm and testing in a Fedora 18 VM - it's going to be a lot of fun!

So, it seems my plan is settled for the near future :)