Monthly Archives: April 2012

N9 media pushing


Ever since the announcement of the N9′s DLNA support people were looking for a feature called DLNA +PU+ which allows you to send media files to e.g. DLNA-capable TVs without enabling content sharing on your device, giving you a really fine-grained control about what and where to share to.

PushUp is a small utility that hooks into the N9′s sharing framework and allows to you push an image or a video to your TV just like you would with Bluetooth or NFC. Get it on this site (or later through the Nokia Store).

It is an offspring of my Korva project, a D-Bus specification and its implementation for media pushing. While still work-in-progress, it’s already fully functional.

Edit: I had to update the package because the icon was missing and cancelling the device selector was broken.
Edit2: Updated again since it was broken on PR < 1.2.

Modifying your GNOME keymap programmatically

For some reason I’ve a notebook with a Swedish keyboard but when docked I use my ergonomic keyboard with a German layout. To automatically switch the layout when the external keyboard is connected, I cooked up this script and added a .desktop file to $HOME/.config/autostart:

#!/usr/bin/env python
from gi.repository import Gtk, GLib, Gkbd
import usb
import sys
# Holtek Semiconductor, Inc. PS/2 keyboard + mouse controller
c = Gkbd.Configuration.get();
    # find index for german
    de = c.get_short_group_names().index('de')
    for bus in usb.busses():
        for dev in bus.devices:
            if dev.idVendor == vendor and dev.idProduct == product:
                c.lock_group (de)
except Exception, e:
    print e

This is using pyusb 0.4, it gets a bit easier with 1.0.

Helium 0.4.0 beta

TL;DR: First release of Helium! Please try it out and reports issues at or as a comment if you don’t want to register with github,

The first installable version of Helium is out. Grab the debian package for your N9 here. As usual it’s signed with my public key 6BA1DF74.

This version is not submitted to the store (yet) since I felt it needs a bit more testing, especially on the interaction with media renderers. I’ve only two renderers that are not Rygel-based and one of them is severely broken when it comes to UPnP.

So please, try it out and report any issue you find either via its issue tracker at github or as a comment here.

Basic usage instructions are available on this site.