Tomorrows GNOME, part 2

While the release is building on my laptop, I have time to write about a few more things I am looking forward to in GNOME 3.4.

Easy Extensions

We has been working hard to make GNOME 3.4 smooth and remove the small things that have been annoying people. But everybody has his own habits, and sometimes you just need that extension to support your specific workflow. This will be much easier from now on; with extensions.gnome.org, extensions are just one click away, and you can try them out right from your browser.

GNOME goes virtual

Two exciting things in one screenshot: gnome-boxes is beginning to make VM access easy in GNOME, and gnome-shell is running fine in qemu with software rendering.

Admittedly, the gnome-boxes release in 3.4 is more of a preview of things to come, but it is already working well enough for simple tasks, such as testing nightly spins. And for software rendering to work, you need recent drivers – the current F17 beta works nicely, as seen in the screenshot.

Update: Yes, the aspect ratio of the VM is slightly off; I hear that this will be fixed in F17 final.

Tomorrows GNOME

GNOME for Artists

I can only manage to draw squiggly lines in GIMP. I am not really much of an artist at all, even with proper tools like a well-calibrated tablet.

Bastien Nocera and Peter Hutterer together with Jason Gerecke and Olivier Fourdan have worked really hard this cycle to bring first-class support for Wacom tablets to GNOME.

These tablets are amazingly complex devices, with programmable buttons, multiple styli, ‘touch rings’ and other fancy controls. In GNOME 3.4, all of their functionality will be accessible from the Wacom panel in gnome-control-center.

Together with our color management support, this should make artists feel more at home.

GNOME for Everybody

Accessibility has always been an important characteristic of GNOME. With 3.4, GNOME 3 will catch up in this area. Orca now reads all of the gnome-shell interface to me. And, what is more important, I can leave it running for a long time without problems – the stability of the accessibility stack has really improved.

We’ve also added a dialog that gives very detailed access to the options of the built-in gnome-shell magnifier. These options are just fun to play with for me, but for people who really dependent on a magnifier, they can be essential for being able to use the computer at all.

GTK+ hackfest aftermath

I didn’t manage to write a second post during the hackfest, so this is a somewhat belated summary.

We had several long discussions around multi-touch, gestures, event controllers and input handling in general, as well as theming, css, clutter and render objects. At the end of the weekend, we tried to condense these into a rough roadmap for GTK+ and clutter. You can see the notes on that here. One result of the roadmap discussion is that the clutter-based GTK+ will be 4.0 – introducing this kind of new dependency is just not suitable for a 3.x release.

As mentioned, touch was an important topic. Carlos Garnacho has done important pioneering work on multi-touch in GTK+. During the hackfest, he started to separate out the parts of his branch that we agreed to get into 3.4: XInput 2.2 support, basic touch events, kinetic scrolling and smooth scrolling. In the week since the hackfest has ended, I’ve made some API adjustments and cleanups.

The touch-related API in 3.4 will be fairly minimal. We have a GdkEventTouch event, with subtypes for GDK_TOUCH_BEGIN, GDK_TOUCH_UPDATE and GDK_TOUCH_END. To receive these events, use the GDK_TOUCH_MASK event mask and connect to the ::touch-event signal on your widget. Kinetic scrolling in scrolled windows can be turned on and off with the kinetic-scrolling property. To receive scroll events with deltas (aka smooth scroll events), use the GDK_SMOOTH_SCROLL_MASK. Such scroll events have a scroll direction of GDK_SCROLL_SMOOTH, and their deltas can be obtained with the gdk_event_get_scroll_deltas() function.

Today I’ve merged the whole thing, so GTK+ 3.4 will have basic touch support.

A  concrete positive result of a very successful hackfest – thanks to the people in the Red Hat Czech office who helped organize this, in particular Tomas Bzatek.