Will >> Will's blog

purpose: Will Kahn-Greene's blog of Miro, PyBlosxom, Python, GNU/Linux, random content, PyBlosxom, Miro, and other projects mixed in there ad hoc, half-baked, and with a twist of lemon

Thu, 26 Mar 2009

notes for remote control support for mirofullscreen on linux

I spent the greater part of today adding remote control support to the Miro Fullscreen project. I thought I'd do a write up on it because there are a lot of pieces involved and it took me ages to figure it out and I'm paranoid I'll forget.

Quick caveats:

Requirements

I installed three packages: lirc, python-pylirc, and gnome-lirc-properties.

sudo apt-get install lirc python-pylirc gnome-lirc-properties

LIRC

lirc has a web-site at http://lirc.org/. I had no idea what I was looking at while wandering aimlessly through that site. I think the important pages are these:

python-pylirc

The only useful site I could find for this project was at http://pylirc.mccabe.nu/. It says that Paul Hummer took over the project and moved it to http://pylirc.ironlionsoftware.com/, but that's a dead link. I found Paul's blog at http://theironlion.net/blog/. He uses tagging on his blog, but there's only one article tagged as pylirc2 at http://theironlion.net/tag/pylirc2/. I couldn't find anything useful about pylirc, the project, its status, or what's going on. Paul suggests he was going to add LIRC support to Entertainer, but it doesn't look like he ever did that.

Anyhow, so I ended up going with the documentation on http://pylirc.mccabe.nu/ and that seemed to work out ok.

gnome-lirc-properties

I don't know if I really needed gnome-lirc-properties.

The .lircrc file

So you install the three (or two--depending on whether gnome-lirc-properties is really needed) packages and you create a .lircrc file like this:

begin
    prog   = mirofullscreen
    button = MUTE 
    config = n
end
begin
    prog   = mirofullscreen
    button = VOL_UP
    config = Up 
end
begin
    prog   = mirofullscreen
    button = VOL_DOWN
    config = Down 
end
begin
    prog   = mirofullscreen
    button = UP 
    config = Up 
end
...

where prog is the string you pass to pylirc.init, button comes from the remote control lirc file and config is the string you add handling for in your application.

the Python code

The sample code at http://pylirc.mccabe.nu/?/article/articleview/Documentation/1426&themex=public gave me enough of an idea on how it worked to implement the code in Miro Fullscreen.

In closing

Hope that's useful to someone at some point.

Want to comment? Send an email to willkg at bluesock dot org. Include the url for the blog entry in your comment so I have some context as to what you're talking about.