Thursday, 17 October 2013

More power management changes

As is becoming common, we will have some more power management changes in GNOME 3.12, though those changes will also affect other desktops, whether they use UPower's D-Bus interface, or libupower-glib, the helper library.

The goals of the exercise were simple:

  • reduce wake-ups on the daemon and on the client side
  • reduce code duplication amongst desktop environments, and even within the same environment (composite battery, anyone?)
  • moving some policy actions to a lower level (one could not request hibernation or suspend when multiple users were logged in without interaction and passwords)
All those changes are now in UPower master ready for testing.

Out with the old

The deprecated interfaces for Suspend, Hibernate, etc. are finally removed, after being obsoleted by logind. We've also removed the QoS interface that nobody was using, and the out-dated battery recall support. It's not that batteries don't explode any more, it's that they don't all come from known-bad batches.

In with the new

We have 2 new properties on each of the devices.

WarningLevel which uses daemon-side configurations to tell you whether a device's battery level is low, critically low, or whether we're about to take action on that critical level.

We also have IconName, which replaces some cut'n'pasted code between desktop components. If your desktop environment has many more icons for all types of devices on low battery, for example, you can ignore this property and use the code you always have.

Using those new properties usefully is the new DisplayDevice object. It groups all the batteries and UPSes in the daemon into one, easy to use object that you can use to display a single status icon in your shell chrome. Obviously, if you want to show more devices, the individual batteries and UPSes are still available through the usual means. And it obviously has the 2 new properties mentioned above, so your session daemon can get told when to show notifications for low batteries.

And finally, using that new combined DisplayDevice is the critical battery action policies. As mentioned above, multi-user systems could not hibernate without requiring the user to enter an administrator password, which is less than convenient when your machine is running out of UPS power fast. The configuration for that policy is now in the daemon itself, with sane defaults, and it will hibernate the machine for you.

And to the modernisation

libupower-glib now uses GDBus, even if the daemon doesn't. The daemon however sends PropertiesChanged signals which means that modern D-Bus bindings will automatically get the new values for properties, instead of polling the daemon. The DeviceChanged and Changed signals have thus been removed.

API changes

They are numerous, too many to mention here. I've posted to the device-kit mailing-list with a list of changes that were made, reply there if you have any questions regarding using UPower in your application or session daemons.

Miscellaneous

systemd >= 207 will save your brightness settings across reboots, and the upcoming systemd 209 will have support for saving keyboard backlight across reboots.

I've made attempts at supporting Intel Rapid Start in systemd, but this will actually require kernel changes. Hopefully we should be able to land this by the time GNOME 3.12 is released.

Monday, 23 September 2013

GNOME 3.10 is coming!

The new release is coming! As has been the case for the past couple of releases, I've mostly been shepherding great work by other contributors, and I'll detail my limited contributions beyond mere bug fixing.

Wayland support

I've done some work on enabling clutter-gtk applications to be able to run on  Wayland though the harder work of implementing sub-surfaces is still pending.

Giovanni has done incredible work on mutter to start moving some of the X11 dependent code inside the compositor, which should allow you to run a (cut down) Wayland session using gnome-shell.

This also means that Thomas Wood's redesigned Displays panel has Wayland support. A perfect storm of changes for one of the only panels that received little attention since the GNOME 2.x days.


The new displays panel with a TV that claims to be oh so small


Date & Time redesign

Zeeshan, through his work on Geoclue2, and Kalev, through his Summer of Code project, have completely redesigned the Date & Time panel. Aside from being easier to setup, it means that we can finally implement the automatic timezone switching depending on your location.


The new Date & Time panel


BlueZ 5 support

GNOME is the first major desktop to ship with BlueZ 5 support, thanks to work by Gustavo Padovan and Emilio Pozuelo Monfort.

The older version was not supported anymore, and the new version allows us to support things like "Just Works" pairing, better support of audio devices (though the PulseAudio 5.x release to support this is only coming shortly after GNOME 3.10) and a much better architecture for a more stable operation.

GNOME 3.12 should see a redesigned Bluetooth panel, to match current best practices on other platforms (such as merging the management and pairing wizard UIs into one).


Bluetooth devices in use


Miscellaneous


Intuos 4 OLEDs

OLED support for Wacom Intuos 4 tablets (as seen above, thanks Przemo), media keys support for MPRIS applications such as Spotify (thanks to Michael Wood and Lars Uebernickel), updated UI for the Universal Access panel (the ever present Matthias Clasen), support for many more fingerprint readers in libfprint (thanks Vasily Khoruzhick).


Redesigned Universal Access panel



And to my contributions

More work on Videos. Totem 3.10 is still based on the same interface as in GNOME 3.8, but some work has been on the master branch towards the new UI, with some of the features getting backported. We have:
  • new session management for when Totem crashes
  • support for chapters within files (such as Matroska videos)
  • Wayland bug fixes in GTK+, clutter and the combined clutter-gtk
  • a completed GDBus port
  • Working overlaid controls (though their behaviour isn't quite up to scratch)
  • Remote files support in Grilo, including support for Recent files
  • Started work on merging the various sidebars within the main view (which included landing GtkSearchBar in GTK+)
  • libquvi 0.9 support
On top of which you'll find the usual mix of bug fixes, small featuresitch scratching, and swamp-draining in finger-pointing fests.

I also spent quite a bit of time on a side project that didn't come to fruition at this time, but I hope to be able to post some details soon.

Tuesday, 6 August 2013

GUADEC Hardware giveaway: Update

Broadcom CrystalHD 70015

Fabiano Fidêncio will be working on integrating the GStreamer plugin for it upstream, and making sure that the default experience with those devices is good in Fedora. The less powerful 70012 card is now in my 6-year old Dell laptop to test Fabiano's work.

Dell Wireless 5520 3G modem

The 3G modem that's been ousted from the Dell laptop to make room for the CrystalHD will go to Aleksander Morgado, in his "torture chamber" (his words) for ModemManager.

iPod Touch 2G

The iPod is going to Adam Reviczky who's going to look into Notes syncing over IMAP (hopefully, it looks like the device might be too old) and for mobile website testing.

Sunday, 21 July 2013

Week-end hacks #2

More thumbnailer work, as it's something I can do 20 minutes of, and then go and do something else.

As my thumbnailers were starting to get samey (either the code would spit out PNG/JPEG data, or would create an actual GdkPixbuf), I've created a skeleton file that handles most of the dirty work. It's available on github.

I've also created a MOBI thumbnailer, that's integrated to gnome-epub-thumbnailer and in release 1.2.



Saturday, 20 July 2013

GUADEC[1] Hardware giveaway

I'm cleaning up my hardware chest, and giving away some hardware to a good home. I intend on travelling with those that I found a new home for at GUADEC. All of them are in good working condition. If there is a charger or power supply, it will be a UK one.

Drop me a mail with your intended usage (preferably GNOME or kernel related), or need some more info about the devices.

Up for grabs


Palm Pilot Tungsten E2



The predecessor to all your new-fangled smartphones. This one could even do Bluetooth syncing using gnome-pilot, all those years ago. Might be nice as a remote control of some sort, or legacy support for Pilots.

D-Link DIR-615 Wi-Fi N router



Works with DD-WRT. Would be great to work with DD-WRT or associated on a way to configure those through a GNOME UI à-la Airport base stations.

HP iPaq 914



Euro plug. Apparently this can't run Linux... Yet!

DXR3 card


Offload your MPEG2 decoding to this PCI card.

iPod Touch 2G


Too old to run any recent iOS, but good enough to show off your web apps skills, or work on Notes sync with IMAP servers.

Broadcom Crystal HD mini-PCIE 70015 and 70012


2 video decoder cards usable with Linux. You'd need to port the GStreamer plugin to GStreamer 1.0 to get those (or one of those at least).

Plantronics and Motorola Bluetooth headsets


Not the newest devices, but they work.

Red Hat branded power adapter


USB to Nokia/Motorola with this retractable extension lead.

On their way to a good home [2]


Logitech MX 5000 pack and diNovo keyboard


Space-age mouse and keyboard set. Benjamin Tissoires will be getting the (now not so much space age as grubby and outdated) pack to hopefully implement HID++ 1.0 in the kernel.
The diNovo keyboard is a nice little Bluetooth keyboard for a media PC or the likes, even has the tiniest of trackpads.

Logitech 9000, PS3 Eye and Creative OV511-based webcams


Hans de Goede will get those to make them work out-of-the-box in Fedora, and upstream, trying to clean up some hacks he gave me for those a long time ago.

No-name USB GPS dongle and Tom-Tom Bluetooth GPS


For Zeeshan, just in case he gets bored implementing geoclue2.

Nokia N82 and Palm Centro


For Dan Williams. ModemManager's testing gear is growing.

Belkin G and Dell 1450 Wi-Fi USB dongles


Giovanni and Jasper will enjoy those Wi-Fi dongles that will create bugs in gnome-shell's network menu and the new aggregate menu.

[1]: Or near enough for some of the items :)
[2]: I made my pre-selection based on the possible uses for the hardware.

Friday, 19 July 2013

Did somebody say "FreeFA"?

Little birdy tells me that we're playing football again this year, so don't forget to sign up!

Monday, 15 July 2013

Week-end hacks

Last week, I picked up a Kobo Mini e-reader from my local FNAC store for (less than) 40€ and loaded it up with books from the latest Humble eBook Bundle. As generic document icons aren't really that great to recognise the books, I wrote a small thumbnailer for it, which is now available in GNOME git.

Some DRM-free e-books.

The release is available on the GNOME FTP site, and somebody packaging it up for Fedora would be greatly appreciated.

The other week-end hack was a way to run a program with user-defined DNS servers, rather than relying on the system's /etc/resolv.conf file. It only supports IPv4, but it was good enough to run a few command-line utilities with those specific DNS servers.