Back from GUADEC 2013

This year, the annual GNOME Users and Developers European Conference was held in Brno. It is a beautiful city and the second largest in Czech Republic, with a lot of history and plenty of activities going on.

The conference venue was provided by the Brno University of Technology and was at a campus that had been converted from a Cartesian monastery, dating back to the 14th century. Take a look at the beautiful courtyard:

Courtyard at the venue. Photo by Ana Rey, CC-BY-SA 2.0.

Courtyard at the venue. Photo by Ana Rey, CC-BY-SA 2.0.

There was a lot going on and not just talks; the hallway discussions that took place in between the talks and continued at pubs afterwards were perhaps even more important. And after the 4 core days of the conference were over, we had another 4 days of hackfests where we got plenty of stuff done.

My personal highlights included:

  • The System Settings hackfest where we discussed the upcoming gnome-control-center and gnome-system-settings changes. I presented my work on the Date & Time and received plenty of feedback and ideas how to further improve things.
  • Being able to meet face to face with System Settings developers and designers, and also with people I knew from the Fedora community.
  • Attending to Stef Walter’s ‘More secure with less “security”‘ talk. If you weren’t able to attend it, I would highly recommend watching the video recording at
  • Getting my GtkListBox patches merged in Glade git master and having a live hacking session together with Tristan.
  • Seeing the number of new contributors and how enthusiastic everybody was. Really hoping they all stick around!

Looking forward to Strasbourg 2014!

And last, but not least: thanks to the GNOME Foundation for sponsoring my travels!


At my first GUADEC

I have been around GNOME and Fedora for a while, but haven’t been to any of the conferences before. Up until now!

Arrived at Brno yesterday and met up with other friendly Gnomies. It’s really nice to be able to meet people I only know from IRC face to face. Anyone I haven’t met yet, come and say hi!

Today is the official first day of GUADEC 2013. At 9 am Ethan Lee gave a keynote from a game developer’s perspective andĀ  now start the rest of the talks. Looking forward to the next 8 days. Big thanks to the local team for making things runĀ  smoothly!

P.S. And anyone who reads this and is NOT at GUADEC, be sure to come next year. It really is a lot of fun!



Summer of Code: Progress with Date & Time panel

I have been hacking away on the gnome-control-center’s Date & Time panel, moulding it into the new design created by Allan Day. The new design includes a listview based main view, similar to many other gnome-control-center panels. With the new list based design, some rows have on/off buttons for enabling stuff; other rows act as buttons, opening new dialogs with more detailed settings.

See the design page for the mockups.

I have also tried to fix up issues in other modules whenever I run into them:

Thanks to Alex Larsson’s work, GTK+ recently got a new GtkListBox widget. Alex (he did most of the work) and I converted gnome-control-center to the new widget and all the patches have now been merged to git master. Thanks to Thomas Wood for the patch review and merging!

I converted the network connection editor so please let me know if there are any regressions.

These are my patches from the porting series:

I also helped with some some GtkListBox cleanup in GTK+ itself and added a new gtk_list_box_row_get_index function:

Glade and new widgets
Glade is the visual editor the should work for GtkBuilder .ui file editing, but unfortunately it’s most of the time lagging behind when new widgets get added to GTK+. Most regular widgets are easy to add, but containers require custom code to make them properly work.

Since I needed GtkListBox for my control-center work, I went ahead and added the support to Glade. The result looks like this:


The patch can be found at bug 702296.

Compared to other GTK+ containers, the new GtkListBox is a bit special, because it can’t directly include child widgets. Instead, when inserting new children with gtk_container_add(), it inserts intermediate GtkListBoxRow widgets, which will in turn contain the real children.

This complicates the Glade integration a bit, making it harder to implement listbox resizing.

As seen on the screenshot, I have implemented ‘Insert Before’ and ‘Insert After’ to insert new rows in the listbox. However, there’s some further work needed to be able to add new rows to empty listboxes.

(If anyone who’s good with icons is reading this, could you please help with doing a new GtkListBox icon for Glade? See the screenshot above.)

The new panel
This is how the main view of the new Date & Time panel redesign currently looks:


Clicking on “Time Zone” and “Date & Time” opens up further dialogs for actually settings the time zone and the time.

One missing feature in the above implementation is the Automatic Time Zone. My current plan is to scrap the time zone row for now, and land the rest of the redesign. And once that is done, implement the geolocation based automatic time zone and land it with a separate patch. The geolocation support requires a bit more work, both on gnome-control-center and gnome-settings-daemon side, and the rest of the current redesign doesn’t really depend on it.

Time Zone dialog

This is a straightforward implementation based on the redesign page. In the mean time, Allan Day however has been experimenting with some more changes to how to the timezone selection should look. The experiments are available on the design whiteboard. The whiteboard experiments are also going to be something I want to work on a bit later, after having landed the initial redesign.

Separate timezonemap library
There’s work underway to merge together gnome-control-center’s timezonemap library and the fork used in the Ubiquity installer. There are some differences to be resolved, but I hope we can end up with a shared timezone widget that multiple modules can use. Right now we have gnome-control-center, gnome-initial-setup, gnome-weather, Ubiquity and Anaconda as possible clients. See bug 702194 for the current state of things.

Date & Time dialog


From the screenshot above, the question with “Update time to 7:45 PM?” is not implemented. I am currently not sure how to best do that: should we run a one-off NTP query (ntpdate?) behind the scenes when the dialog is launched, and show the question if the the time differs too much?

Future work
Next up I would like to get the current patches merged to gnome-control-center’s master and then move on to implementing the geolocation support.

  1. Merge current work
  2. Implement geolocation support
  3. Work on Allan’s time zone widget redesign
  4. See if it’s possible to merge together libtimezone map library forks

Offline and vacation
P.S. Sorry if I have missed any IRC messages, I have been travelling for most of the past week and am still catching up with email / IRC backlog.

Hello Planet GNOME!

Woohoo, now starts Google Summer of Code! Or rather, it officially started on Monday, but we only now got added to the planet. Thanks to Alberto Ruiz for pulling an all-nighter and getting all the new interns syndicated to Planet GNOME.

My name is Kalev Lember and I am a GNOME System Settings GSoC intern this year. Many of you might know me from my Fedora related work where I help with GNOME packaging.

During the summer I will be working on improving the Date & Time panel. This includes implementing the new gnome-control-center designs from and adding geolocation support to gnome-settings-daemon. My mentor is Zeeshan Ali.

Maps Hackfest

This week I had a unique opportunity of meeting my mentor in person. I am sure most GSoC interns only know theirs from IRC!

Besides me, Zeeshan has another intern who’s also from Gothenburg — Mattias Bengtsson. Mattias is working on the new Maps application and Zeeshan flew here for the GNOME Maps hackfest: We spent most of the week hacking on Maps and socializing.

Even though it wasn’t directly related to my GSoC project, it was still very fun and I feel like I managed to help out as well. I implemented printing and helped with bug squashing in other modules that affected Maps.

Best luck to all new interns and I hope to meet all of you at GUADEC. And thanks for having me, GNOME!