Some programs defy categorization. Bill Atkinson described HyperCard as a "software erector set," which was actually quite accurate, even if Apple’s marketing department kept trying to sell it as a presentation program, a personal information manager, and a combination floor wax/dessert topping.
Building a Better Widget — Comparisons with HyperCard abound. Konfabulator ships with a set of Widgets that are actually useful, such as a picture frame (because who can see their Desktop picture when they’re working, anyway?), a stock ticker, a weather report, a Desktop Trash can, a simple to do list, a floating search bar, and more. But Konfabulator wouldn’t be interesting if you were limited to its included Widgets. Arlo and Perry run a Widget Gallery that lists over 500 user-contributed Widgets, and scrolling through the list is utterly reminiscent of poring through lists of HyperCard stacks. Most are silly, of course, such as countdown timers for upcoming movies, but just as with HyperCard stacks, there are a few gems, such as a Widget to create symlinks, a word counter, a process monitor that displays load averages and uptime, a [email protected] statistics reporter, and a lyric scraper that tries to display the lyrics of the current iTunes track. The Widget Gallery lets users rate Widgets and leave comments, and from what I’ve seen, because that extra data comes from an involved user community, it’s quite helpful and to the point.
Few Widgets offer truly unique capabilities that you couldn’t find elsewhere, but that’s not the point. The point is that individuals can use a common scripting language, sometimes tying in to command-line programs, to create tiny programs that do something useful, interesting, or just plain fun (there are a bunch of small game Widgets). Plus, since Widgets are actually packages (Control-click one and choose Show Package Contents), you can see and modify them to your heart’s content. It’s exactly like the days of HyperCard, when you could take apart a neat stack to see how it was done.
Because Arlo Rose is the guy who introduced themable interfaces to the world with his work at Apple on the Appearance Manager, and later on the utility Kaleidoscope, Konfabulator Widgets take full advantage of Quartz rendering in Mac OS X. That means Widgets aren’t restricted to rectangular windows, and you can control their opacity on a per-Widget level. Opacity is actually quite important, since you can choose whether any given Widget will float above all other windows, be the topmost window at any time, act like a normal window, hide beneath all other windows at all times, or graft itself to your Desktop. In Konfabulator 1.5.6, just released, using Expose to reveal the Desktop also reveals Desktop-level Widgets, making it possible for a single click or keystroke to show a host of Konfabulator Widgets that you want out of sight most of the time.
Being able to float a Widget above all other windows or incorporate one onto your Desktop reminds me of palette-based automation utilities. Although creating a Widget is undoubtedly more difficult than constructing a macro in QuicKeys X or iKey, its capabilities are equivalently more powerful. The possibilities abound.
Clicking Widgets — Widgets provide their own interfaces, which are in most cases limited to visible controls and a Widget Preferences window that’s accessible either by Control-clicking the Widget or choosing it from the hierarchical Widget Preferences menu in the Konfabulator "gear" menu in the menubar. Closing a Widget is merely a matter of Control-clicking the Widget and choosing Close Widget (for those Widgets that don’t provide a persistent interface, like the iChat Bezel Widget that pops up to tell you when your iChat buddies change state, you can press Control and choose the hidden Widget from Konfabulator’s gear menu). You can also use the Konfabulator gear menu to look for new Widgets, open Widgets, set preferences for current Widgets, and quit Konfabulator entirely. Perhaps my main criticism of Konfabulator is that hiding so much of the interface behind contextual menus and modifier keys means that it can be a bit befuddling to use until you internalize the basics of opening, closing, and customizing Widgets.
Each Widget actually runs as a separate instance of the Konfabulator runtime engine, which means that a given Widget is just a normal Mac OS X application, and won’t have any more impact on the overall system than any other application. Konfabulator remembers the open Widgets from the last time it was open, so if you put Konfabulator in your Login Items/Startup Items list, it will bring up your last set of Widgets automatically when you login.
Konfabulator requires Mac OS X 10.2 or later, with 10.2.3 or later recommended. It costs $25 through Kagi, though you can use it for a while before registering (choose Register from the Konfabulator gear menu).