Friday, 27 January 2012

Wacom tablets in GNOME 3.4

Working from designs.


The cool stuff first

Cosimo Cecchi presents the updated Wacom settings

Go to YouTube directly if you can't see the video here.

A new arrival

As mentioned by Cosimo, we have a new library to help us implement the settings you saw: libwacom.

libwacom is there to give us metadata about tablets, whether or not they are connected to your system, the list of styli it supports, as well as information about the styli themselves. As you can see from the UI, it's pretty important that we know:

  • whether the tablet is builtin (so we know whether you can calibrate it)
  • which form factor it has
  • the list of styli it supports
  • for each stylus, its full name, the number of buttons, what it looks like
In the past, all this information was only available within the drivers (as comments), exported in different ways (sysfs attributes), non-machine readable in public documentation, or, worst of all, hidden in Wacom's internal drivers for OS X or Windows.

So if you have a Wacom tablet, send us a definition file for your tablet, so you can configure it with the impression that the software actually knows about your device.

Where's that configuration again

After knowing what each tablet had to offer, we had to have a way to match the definitions to XInput devices, assign settings per-tablet, and importantly, switch stylus configuration when the user switches stylus. This is done using the new GsdWacomDevice and GsdWacomStylus objects, shared between gnome-settings-daemon (which will apply the configuration) and gnome-control-center (which will set the configuration).

This also means we have a few debugging applications, such as list-wacom in gnome-settings-daemon, to show you the attached GsdWacomDevices, or test-wacom in gnome-control-center, to test display of particular tablets if you don't own them (this is the place where I spend a lot of time).

What's next

Peter Hutterer, my input buddy at Red Hat, who made the original Wacom panel for GNOME 3.2, and the first version of libwacom, is currently spending a lot of time on Multi-Touch, and fixing bugs I report in the Wacom driver.

Jason Gerecke, from Wacom, who did most of the initial work on calibration support, is working on the related display-mapping. This will allow choosing whether a tablet's working area is the whole desktop, or a single monitor when in multiple monitors are used.

For my part, after fixing the layout bugs that so annoy me in the settings panel, I'll be starting work on tablet button mapping. I look forward to making the LEDs on the tablet match up with the selected keyboard shortcut!

Many thanks to Cosimo and Monty for helping out with presenting the work, and doing the video.

Monday, 5 December 2011

Stalk^W Following designs, the easy way

If you want to follow all the new designs from the GNOME Design team, including work-in-progress mockups, gathering of relevant art, etc. be sure to subscribe yourself to the pages that interest you in the various sections of the GNOME Wiki.

A nice trick is using our Wiki's notification, with regex support. Head onto your notification settings page, and add those lines to the "Subscribed wiki pages":

GnomeLive:Design*
GnomeLive:GnomeShell/Design*
GnomeLive:GnomeOS/Design*

Sunday, 4 December 2011

WebKitGTK+ Hackfest: Day 5

Yesterday was our sponsored dinner, at a very nice vegetarian place, followed by some cinema discussions in a bar where the toilets are hidden behind mirrored walls (most strange).

Still, quite a few happenings in code land:


The hackfest is drawing to a close, and I'll take this opportunity to thank our very kind sponsors for flights, accomodation and even feeding us in the office so we didn't have to stop hacking for long.









Also a big thank you to Igalia for providing us with hacking beer in the evenings (left-overs from Igalia's 10th anniversary party, a happy coincidence).

Many thanks to Xan, Juanjo and Alex for the hackfest organisation, and the personal chauffeur service, and my most heartfelt thanks to Juanjo for his infinite patience to our tourist needs (such as showing us the Torre de Hércules on a windy December afternoon).

Vegas Baby!

Before: No video, because no Flash, and no MP4 support


After: Video, through Totem's Vegas plugin

Totem's new Vegas browser plugin provides you with a way to watch Flash based videos, without using Flash, using libquvi's growing collection of supported sites.

Code is available from GNOME git this instant. Be sure to pass --enable-vegas-plugin=yes to compile the plugin.

Saturday, 3 December 2011

WebKitGTK+ Hackfest: Day 4

The crema de ojuro took effect. While the effects simmered down, code fixing was still in full flow.


  • Philippe finished landing the fullscreen fixes for the <video>
  • Xan and Claudio started fixing GNOME 3.4 Epiphany design bugs (on the road towards the Web app design)
  • Alex, Martin, Joone and Nayan all looked into Accelerated Compositing. They all owe you, dear reader, blog posts full of nitty gritty details.
  • Jon didn't spend the day debugging bizarre browsers crashes
  • Wingo punched the air as he figured out a tricky memory allocation issue. He also listened to the Thundercats theme tune, in a loop
  • Gustavo and Dan figured out a design for multipart/x-mixed-replace support, as used by some streaming IP cameras, and Gustavo started the implementation
  • Nayan showed legendary patience waiting for tourists outside a haberdashery
  • Dan committed a number of libsoup related cleanups in WebKitGTK+, including a very impressive minus 200 lines cleanup.

WebKitGTK+ Hackfest: Day 3

Another incredible day of hacks, and UI design.


And despite the crema de ojuro, hacking carries on at the week-end. Join us in #webkit-gtk-hackfest on GIMPNet.

Thursday, 1 December 2011

WebKitGTK+ Hackfest: Day 2

After a late evening yesterday, the hackfest started a bit slower, but started picking up pace again with a big ticket item, the WebKit2 GTK+ API discussion. This was the destination for a lot of the WebKitGTK+ hackers, leaving us outsiders, well, outside. The discussion isn't quite finished.

This lead us onto a little lunchtime kick-about. The arrange 6 v. 6 game turned into a 5 v. 4 before getting to the ground, and finish as a 3 v. 4 when two of our most jet-lagged/backbroke hackers dropped out.

And then onto a lunch. And another late evening.
  • Philippe fixed more bugs in WebKitGTK+'s fullscreen video playback mode
  • Bob uploaded a new draft of his WebKitGTK+ cookbook
  • Gustavo was playing Street Fighter whilst increasing the size of his farm on Facebook (in WebApp mode!)
  • And the new buildbot is up, running, and churning through test suites in a loop, as fast as the hackers can add new code.