Jackfield: Apple’s Dashboard for the Linux Gnome desktop

It’d be cool if Linux had Apple’s Dashboard. For those of you who don’t know about it, Dashboard allows Mac OS X users to build little applications using nothing more than HTML, CSS, and JavaScript. That’s very neat. (Sidebar: For those of you saying “what about gdesklets!”, let me just say: no. The whole reason that Dashboard is good is that it lets ordinary people who know about the web build widgets. Having to use some odd XML dialect means that it’s like real programming. That’s why there are more Dashboard widgets than gdesklets, even though gdesklets has been around for ages. End sidebar.) I started to have a look at how difficult it would be to implement this on Linux, using Mozilla’s Gecko as the underlying web library. (I could have done it with KHTML, I suppose, and that would have been more likely to match with Apple’s WebKit since WebKit is a fork. I didn’t, though, because I understand Mozilla and Gtk much, much better than I understand either KHTML or Qt/KDE. I’d love to see a KHTML version.) The theory was that it should use existing Dashboard widgets, giving new users a huge library of stuff that already ran to choose from. In essence, the idea isn’t too difficult to do. It requires:

  1. Making something that understands the Dashboard widget definition format, so it can parse existing widgets
  2. Building a Gtk app that embeds Gecko and displays the widgets
  3. Injecting some extra JavaScript into each widget that takes care of differences between Gecko and WebKit

The first two weren’t that difficult. The third…more complex than you might think. Safari and Firefox (WebKit and Gecko) differ in a lot of ways, and (understandably, and not at all reprehensibly) Dashboard widgets don’t take account of those ways because they are only built to run on WebKit. I got a reasonable proportion of the ways done, but there’s still enough that there aren’t many widgets that it actually runs correctly. ~~I now, sadly, don’t have time to continue to work on the project, but I’d love to see someone else take up the slack.~~I’m working on the project again. It’s called Jackfield, for reasons that I can barely remember (I think I looked “dashboard” up in a thesaurus somewhere). A screenshot of the existing program, with the Jackfield toolbar and some widgets running: Jackfield running some widgets You can grab the Jackfield code (2.7MB tar.gz) if you’re interested in looking into it or working further on it. To run, cd into the jackfield directory and run python Control.py for the command syntax. You’ll need some widgets, too. Have a play around if you’re interested. Update (2006-07-07): don’t download the tarball. Instead, read the more up-to-date install instructions.

I'm currently available for hire, to help you plan, architect, and build new systems, and for technical writing and articles. You can take a look at some projects I've worked on and some of my writing. If you'd like to talk about your upcoming project, do get in touch.

More in the discussion (powered by webmentions)

  • (no mentions, yet.)