I have always wanted to tweak my HTPC frontend quite a lot to add extra functionality, but the entry barrier to learning a GUI language has been way too high for me. I’ve had success though, in patching MythFrontend to do some things a little better for me, but I’ve always wanted to get my own going if I could.
Recently, I was thinking about how LIRC can capture IR events and map them to X keyboard events. Basically, you can control X applications with your remote control. I started to reason that if that were possible, then I could just use my web development skills and create a webpage frontend for my HTPC that would run on a lightweight browser, and listen for keystrokes.
Just playing around with it tonight, I actually made some really great progress thanks to a combination of a good friend, my humble jQuery beginnings, and my laughable CSS skills. This is the result so far. :)
I’m really stoked about the implementation so far. You’ll most likely need Firefox to get that working properly. It will capture the arrow key presses (up, down, left, right) and use that for navigation. I realize that the beginnings are rather crude, but the fact that I could throw this together, so quickly, while I’m just barely learning my way around jQuery seems pretty impressive to me. I’m actually quite proud, though, that I got the navigation to work properly, too, so wrapping around rows and columns works. :)
This is certainly going to be a fun project to hack on. If I could get this working, this would open up all kinds of possibilities for me for displaying metadata and new options for navigation.
For comparison, here’s a screenshot of what my frontend looks like right now. As you can see, I’m trying to imitate the style as closely as possible.
There’s a lot of advantages to having it web-based — not that I’m going to serve up anything remotely or anything, this is solely for my LAN. It’ll just allow me to build out stuff much faster.
The hard part is going to be doing testing on the frontends. They are both running off of tiny installations, and it’s not easy building and porting software to run on them. Sounds like a challenge that’s extremely hard, going to take a lot of time, and will have marginal benefit and at the same time increase my workload and opportunity to own more of my software stack when things go wrong. That’s just right up my alley. :)