MythTV

The Horror and the Glory

MythTV is pretty much the epitome of the whole "Open Source" way of writing software. Amazing features and functions not available on any commercially available product, combined with a bare minimum of sketchy and confusing documentation. I could fill many pages with ranting about what I've gone through getting our MythTV system set up, but this page is about being helpful, not pissy, so I'll keep the fuming to a minimum.

The Herbarium DVR

Here at the Botanical Gardens and Herbarium of the Dutchy of Grand Fenwick (U.S. Branch), until recently, we were quite happy with our ReplayTV 4000 digital video recorder. For those of you unfamiliar with the device, it's (sigh) like TiVo, only better. I actually ordered my first ReplayTV at the 2000 Consumer Electronics Show where Replay and TiVo were both launched, and placed my pre-order to get the show special. I didn't get my Replay 1001 until May, when they started shipping. I'd visited both the displays and talked to staff at both booths. At TiVo, I got a marketing guy. At Replay, I got an engineer. Hmm! It was clear to me that the Replay had a distinctly better feature set.

Of course, in the end, marketing beat engineering: TiVos are still available, but Replays are only available used on eBay. I knew the day would come when we needed to replace our Replay unit; for one thing, they stopped making Replays before high-def became widespread, so there are no high-def Replays. Since one of the features of the Replay 4050 that we were using until recently was automatic commercial skip, which we loved loved loved, it was pretty clear that when we upgraded, it would be to MythTV, the only other DVR system that's ever offered that ability.

User Interface Map

MythTV Menu Structure PDF

So MythTV it was. As is so common with open source software, the current iteration of the software has that unmistakable "designed by committee" and "no feature too trivial to include" vibe. I did not want to use my TV to get local movie times, surf the web, play music, control my home lighting, call people, check the weather, download movies from NetFlix, catalog my recipes, read the news, listen to radio, or play games, to name just some of the more common modules. Moreover, I didn't want to have to keep ignoring menu items for all these functions in order to use my telly.

Being open source, the theory is, whatever you don't like, you can change. I was totally on board with that, and pretty quickly started digging through the files that defined the user interface, with the various menus and whatnot. I promptly ran into a brick wall. For example, the page that lets you create/edit a recording schedule had a button that was too narrow. You could scroll through six or so different options for when/how to record a program, and every single option was cut off at the end because every single one of the messages was too big to fit. It took me most of an hour to find the file that actually contained the code for that silly button.

Eventually, in sheer self-defense, I decided to map the whole damn UI, which pretty much meant picking a chunk of UI code, messing with it, then hunting down the page or pages that had changed. The "look" or "skin" of the UI is defined with one set of files (I quickly settled on "MythCenter-wide" as my starting point), and the actual menu items are defined in another (I went with "DVR" to start). However, not everything in the UI can be found in these places, since both of them rely to some degree on underlying default file sets ("default-wide" and "defaultmenu" respectively). And, many of the pop-up dialog boxes are populated almost entirely from within the MythTV program itself, so only a subset of the various menus you encounter in MythTV can be found actually living in the UI files.

So here is the map. I said I'd chosen "DVR" for my default menus, but in order to be as useful as possible, my map is based on "defaultmenu." Because I, personally, am only interested in MythTV's core functions, I have not mapped out the interfaces of plug-ins. That still leaves hundreds of boxes of user interface. Hopefully other people looking to add, remove, or rearrange the menus in their MythTV system will find this as helpful as I have in figuring out how to get to functions that you've seen before but can't find. If you find this useful and want to say "thanks," or if you find a mistake, please drop me a message at mythtv@howell.seattle.wa.us. Also, please do not repost my map. You can link to this page, but creating documentation is not the really fun part of a project (which is why there's so little of it for MythTV), and being able to track hits is pretty much the only way I can tell that anybody's using it. Thanks.

The Lean, Mean Herbarium DVR

At some point, I'll also release the tuned, stripped-down UI I'm constructing as I go, for those other MythTV-ers who want the fewest possible menus that are focused on recording and playing back broadcast television. OK, I'm leaving in the "play external video files" features; that's almost the same as watching television. Watch this space, or drop me a line if you're really interested.