WordPress database error: [Table 'llscotts_mars.wp2_categories' doesn't exist]
SELECT cat_ID FROM wp2_categories WHERE category_nicename = 'programming/mars-software'

Musings from Mars » Mars Software
Musings from Mars Banner Image
For Software Addicts: Yes!MaybeNah!
News Posts In Category <em></em>

News Posts In Category

October 23rd, 2013

Mars Themes and OS X Mavericks

I'm sad to announce that the Mars Themes software, both commercial and free, will not be supported on Apple's newly released Mac OS X "Mavericks" operating system. This announcement will be of particular interest to all of you who have purchased a license for CrystalClear Interface (CCI), Crystal Black (CB), or AppMenu Magic. With the latest release of CCI (version 2.8.3) and CB (1.6.6) in July, the software can be installed and uninstalled safely on the developer preview of Mavericks. Neither package has been tested on the release version of Mavericks, but compatibility is expected without risk of damaging the operating system. That said, I highly recommend that you uninstall CCI if you plan to upgrade to Mavericks.

The latest versions of CCI and CB incorporate a safer approach to dealing with inter-OS compatibility, and I am keeping my fingers crossed that the approach will avoid previous disasters (for me) as Apple has moved so aggressively to upgrade the Mac OS X operating system in recent years. Rather than possibly replacing critical system graphics files with ones that aren't compatible with Mavericks, the software should now quietly fail to do the fundamental file handling tasks that could cause problems on Mavericks.

This means that while users should be safe from the problems that plagued earlier upgrades (Lion in particular) if they upgrade to Mavericks, CCI and CB will be prevented from doing some of the fundamental things that make the theme work. Specifically, on Mavericks the software will prevent you from applying button themes and menubar styles. As tested on the developer preview in July, CCI and CB will still function in other respects--for example, setting background colors, transparency, and window frames. But those tests also revealed an abundance of new bugs, which is one reason why I've decided to not support my software on Mavericks.

Since the meltdown of my Snow Leopard partition last fall, using the Apple developer tools to compile the Mars Themes software has become too cumbersome for me to deal with. One issue is that I've never migrated the software to Xcode 4, preferring the Xcode 3 interface and use of InterfaceBuilder instead. Now the prospect of upgrading to Xcode 4 is blocked by not only the huge effort of importing the project but because CCI relies on third-party Interface widgets (the BWToolkit Framework, for example) that aren't compatible with Xcode 4. For some reason, I also can't compile the projects in Xcode 3 on Mountain Lion, so I must boot into the development instance of Snow Leopard to do that, then switch back to Mountain Lion to use other software like Photoshop. It's a nightmare, and I'm sorry to say I've decided to call it quits.

Since development of CCI and CB is now at a dead-end, I'm considering releasing the source code in case some developer with more talent and energy than I has an interest in moving the code forward. If enough interest is generated, I'll think about getting the code ready for some kind of release.

To those of you with active licenses, I apologize for having finally burned out on the experience of keeping CCI and CB updated in the last few years. In the past, I've upgraded my software fairly promptly because I had planned to upgrade to Apple's latest OS anyway, and wanted to keep using the various Mars themes. This time, I have no current plans to upgrade my main operation to Mavericks. If my plan changes, and I do upgrade, like you I'll probably have to leave my beloved themes behind for the first time since I began this journey back in 2005. My long-running enterprise to develop and support interesting, alternative interface themes for Mac OS X has now come to an end.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
December 29th, 2012

Trying To Tame Mountain Lion Without A Hat

Remember my angst about whether I should migrate my computing life to Mountain Lion? Well, that story's now over, and Mountain Lion has won.

Mounting A Lion VirtuallyMore on that in a moment, but first I want to briefly describe my experiment in using Mountain Lion as a virtual OS inside Parallels Desktop — an experiment I've now abandoned. The process was quite simple once I figured it out, but it took more setup than expected. You have to install Parallels Desktop on both Snow Leopard and Mountain Lion, and then, on Mountain Lion, make a virtual disk of the Mountain Lion OS, which is one of the default choices when defining a new virtual OS in Parallels.

Once I had the Mountain Lion virtual disk, I could import that as a new virtual instance in Parallels on Snow Leopard. Doing so was simple and straightforward, and I don't recall running into any glitches. After the import, I could "boot" into Mountain Lion as an instance of Parallels desktop, and then switch back and forth between the two OS's as I would between two applications.

The reason I abandoned this effort is that when I installed CrystalClear Interface (CCI) or Crystal Black (CB) on the Mountain Lion instance, Safari would repeatedly crash. Disabling CCI for Safari made no difference. Only by uninstalling my software would Safari work again. I tried various other tricks to overcome this, but failed. Since debugging Safari on Mountain Lion was one of the primary goals of this whole effort, this failure effectively shut the project down.

At that point, I was stalled on CCI vs. Mountain Lion, so I turned my attention to migrating from the old Quicken 2007 for the Mac, because it won't run on Mountain Lion. That migration could be an article on its own. :-)

The Unthinkable Lets Loose A LionAnd then, in a matter of moments, Mountain Lion became my default OS. Snow Leopard has now become a legacy OS for me, as has each Apple feline in its turn before that.

In those few moments, the unthinkable happened. Suddenly, the dark shade of death descended from the top of the screen, signaling the warning that all the busy bits we rely on to keep the trains running on our Macs had given up and gone home — and we had better do so as well.

Well OK... no big deal, right? I've experienced this kind of kernal panic message before and come out unscathed after a restart. But not this time.

This time, after the reboot, rather than returning to Snow Leopard, I found myself in Mountain Lion.

How could that be? And why couldn't I find the regular volume for Snow Leopard in the Finder? Likewise, why did Disk Utility show new partition names for the volume that used to have Snow Leopard on it? And why couldn't Disk Utility mount either of the two partitions on that volume?

It turns out that the volume files — the ones that store information about the folders and files on the volume — had been corrupted, and none of the tools I used to try to repair the partitions or volume worked.

Anybody who wants to bail on the rest of this story now are well advised to do so, since it's just going to get more boring from here. :-) I'm doing this mostly so I can remember what happened and what I did... just in case.

Eventually I gave up on the old volume, and after confirming that Time Machine had the files I'd need to restore, I proceeded to set up the two partitions anew. Though I thought I'd be able to restore everything, I was hardly feeling nonchalant as I clicked the button that erased all my files and settings for my old Snow Leopard partition.

I was able to restore all the files on the second partition, which houses most of my third-party apps, but when I attempted to reinstall Snow Leopard on its partition, I realized my stay in Mountain Lion would be even longer than I'd imagined.

It turns out that my install disk for Snow Leopard was corrupted, and I had no other way of getting Snow Leopard onto my Mac.

On the phone with Apple support, I paid $19 for a one-time technical support incident. The upshot of that call was that Apple would express-mail new install disks to me for Snow Leopard — at their expense. As nice as this was, it was late on a Friday afternoon, and I knew it would be at least Monday before the disks arrived.

Trying to Resuscitate Snow LeopardSo, here I was, abandoned in the relatively unfamiliar world of Mountain Lion, not yet having tested all my apps to see what might not work right. Since I use this Mac for running my businesses as well as for personal use, I naturally began to panic that I wouldn't be able to work as effectively as usual. Or worse, there might be some critical task I wouldn't be able to do at all.

Fortunately, as it turns out, most things I need to do daily work fine on Mountain Lion. There are just enough "gotchas" that I still don't feel quite at home here, but it's working out better than I'd feared. Which is a good thing, because after the Snow Leopard disks appeared and I reinstalled the OS on my old partition, I discovered that restoring my user account was not going to be easy.

Normally, on the Mac you use an app called Migration Assistant to restore user accounts and files from another Mac, another partition, or Time Machine, and it's a painless and reliable process. That's how I set up my user account on Mountain Lion — I cloned it from my user account on Snow Leopard.

I had planned to do the restore from my Time Machine backup, but when I attempted this, Migration Assistant couldn't find any user accounts on the Snow Leopard backup. The only accounts it found were on other partitions on my Mac, including my account on Mountain Lion.

After much gnashing of teeth, I decided to try to restore my account from the one on Mountain Lion. Since this was a clone of my Snow Leopard account, I thought this might work.

The restore did indeed work, and I thought I was a little closer to returning to my beloved Snow Leopard.

Unfortunately, the restore didn't move all the files needed for various applications to work, and it contained Mountain-Lion-specific preferences that merely confused some apps. This meant I had to try manually restoring files from Time Machine, a time-consuming and error-prone exercise that took several hours. Most of the files I was trying to restore reside in the top-level /Library folder, which is why they didn't get properly migrated with my home Library.

I finally got my iWork apps to run, but Photoshop simply wouldn't. "Your license has stopped working," is the error message Photoshop gives me. Now, I could reinstall Photoshop, but this might screw up Mountain Lion, where Photoshop works pretty much as expected. (I'm still using Photoshop CS4.) On the other hand, my developer tools — Xcode and Interface Builder (I'm still using Xcode 3.x) — worked fine on Snow Leopard. All of my projects could be opened and compiled, and each still had its whole history of "snapshots," which I use to track changes in the code. On Mountain Lion, by contrast, I keep running into permissions problems in editing project files, and compiling fails with inscrutable messages. Just as serious, Xcode refuses to read the Snapshots disk image for my projects, so I have no code history.

Facing Mountain Lion Without My Lion-Tamer HatMeanwhile, I've spent nearly all of my time since the crash on Mountain Lion, because that's where my day-to-day work now occurs. I've grown to appreciate more of Mountain Lion's enhancements — particularly document "versions" and application "memory" that restores active files automatically on launch — and I feel increasingly distant and nervous about trusting work done on my rebuilt Snow Leopard instance. Mountain Lion also solves my envy problem with iCloud, which doesn't work on Snow Leopard.

At this point, there is really only one barrier to my feeling completely comfortable on Mountain Lion: Xcode. If I can get Xcode to behave reliably on Mountain Lion, I'd have no compelling reason to boot into Snow Leopard. But as it is, I have to do all my design work on Mountain Lion and then compile code on Snow Leopard. When time permits, I'm going to figure out what I need to do to reconnect my snapshots to Xcode, and then Snow Leopard will be as obsolete for me as Leopard, Tiger, Panther, and Jaguar before it. (If any reader knows how to reconnect Xcode snapshots on a new volume, let me know!)

So, what does this mean for CrystalClear Interface and Crystal Black?

For now, the MarsThemes software is in maintenance mode, meaning I'll be releasing updates to keep the software working, but not adding any new features. Bug fixes will be included in maintenance releases, but without my Snow Leopard debugging power I can't address any application-specific bugs. On Mountain Lion, Safari remains an enigma, and it troubles me that I have to keep CCI and CB disabled for it to run. It's extremely frustrating to not be able to debug Safari on Mountain Lion, but that was a problem before I found myself facing Mountain Lion without my lion-tamer hat.

So here I am, using Mountain Lion as my default OS and running back to Snow Leopard to use Quicken and Xcode. It's not the migration I would have planned — if I decided to migrate at all — but at least I'm through the worst of it and have survived.

The good news is that CCI and CB both run reasonably well on Mountain Lion, and I now go weeks without having to provide customer support. Who knows... maybe in a few more months I'll actually learn to love my new OS. I just hope Apple waits longer this time around before trying to move everyone to a new platform!

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
July 31st, 2012

Introducing Smooth Black: A New Button Theme for CrystalClear Interface

In my previous article I spoke of a desire to get back to theming, and specifically mentioned a desire to do that "black matte" theme I've been thinking about. I guess the article helped spur me on, because after several weeks of work I'm now ready to release Smooth Black, a new button theme for CrystalClear Interface (CCI).

Smooth Black complements existing CCI components, including its Black Gradient menubar and Smooth Black window theme. It rides on top of existing code that made Crystal Black possible, so the implementation went rather, ah, smoothly.

At this time, the theme is missing graphics for all of the "mini" components in Mac OS X buttons. As a fill-in, Smooth Black incorporates the Black Gloss graphics for the "mini" buttons. On Lion and Mountain Lion, the theme also needs to be fleshed out with a complete set of "small" buttons.

Again, implementing Smooth Black hit a reality wall when time came to take it from Snow Leopard to Lion and Mountain Lion. Because the Lion systems require a tedious manual process to update their buttons, this wasn't any fun. But CCI 2.7.6, released today, does incorporate the buttons for all three operating systems.

Note: Smooth Black owes a debt of gratitude to the authors of the ShapeShifter themes Rhino and Carbon Polymer.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
July 14th, 2012

On Theming Mac OS X: How Long Can I Hold On?

CrystalClear Interface and Crystal Black are marvelous, foolhardy, and frivolous experiments in theming the Mac OS X user interface. As they were in the beginning, so they remain today: Elegantly imperfect software products, which will always be buggy. It's just the nature of the experiment. Why? Because they try to do something Apple works hard to prevent, and therefore are outlaw apps: Only able to pop up here and there with a sparkling, think-different approach that just isn't meant to be.

I am the foremost user of these two themes, and I continue to develop them because (1) it's still possible and (2) I really like them. As the author, I'm tolerant of their occasional misbehavior, but I understand that not all observers are so patient. Nobody likes a screaming 3-year-old while enjoying a quiet evening at one's favorite restaurant. I'm no different in that, but I do try to make sure my children learn how to behave as new situations arise that cause them to flare up.

Still, there are always new situations, and, well, children will be children. My children are still quite young, but the day may come when either they are banned from new restaurants for their behavior, or I become too exhausted from apologizing for them to take them out in public any more.

With each release of its operating system, Apple drives me one step closer to that edge. It's not intentional, I'm sure... In the interest of providing a safe OS environment, Apple continues to tighten the knot around inter-application interactions — especially those that allow third-party software, like CrystalClear Interface (CCI), to load itself into other applications, such as the Finder or TextEdit. And yet, without that kind of interaction, CCI and Crystal Black (CB) could not function.

For now, it appears that CCI will survive the transition to Mountain Lion (Mac OS X 10.8), but as with every release of Mac OS X since Tiger (Mac OS X 10.4), the amount of effort to do so is greater. And I fear that as the technologies introduced by Apple for increased security in Lion and Mountain Lion are more widely adopted by software developers, the number of applications that won't run CCI properly will increase.

In some future update, Apple could introduce a change that will turn off the lights for CCI and CB for good, as well as those for AppMenu Magic and my freeware Text Tools. Such a change would mean I could no longer develop the software, let alone support it.

On a personal level, this would mean giving up an obsession that's outlived enormous odds. When I first took up theming for Mac OS X back in 2005, it was strictly a design job, with lots of time spent in Photoshop working with teeny, tiny bits of buttons and other interface elements. And there was a stable theming environment provided by a third-party application called ShapeShifter, which became obsolete when Apple released Mac OS X 10.5 ("Leopard').

CrystalClear Interface became possible only after I learned how to make application windows with transparent-capable backgrounds. And I learned how to do that only by gradually teaching myself how to write programs for Mac OS X using Apple's Cocoa frameworks and its native language, Objective-C.

I didn't sit down tonight to write a history of CCI, so suffice it to say that as CCI evolved, the programming component grew in inverse proportion to the design/graphics component. In fact, the design work is now quite subservient to the code.

This means I can no longer amuse myself by designing new themes. Instead, I spend most of my time making sure the existing theme designs will work on Apple's new Mac OS X releases. I already gave up the Glossy design on Lion, but I'd really love to rescucitate it — And I'll have to if I actually upgrade to Mountain Lion. Why? Because I really like the Glossy theme, and I'd want to use it myself. And then there's the matte black theme I keep dreaming about...

On a side note, have you noticed that in Lion Apple has almost eliminated the Aqua interface? In fact, the button theme they're using for most items looks and works suspiciously like CCI's "Unified Gradient" theme, which I introduced in 2009 to uniformly apply to all interface elements a button style Apple had added to Leopard. In Lion today, the main elements that remain candy-colored are Apple's "stop light" buttons, the progress bars, and odd pieces like the titlebars of list-view tables. Otherwise, Aqua is gone, though not replaced with anything so memorable. And hard-core themers continue to weep and satisfy themselves with such trivia as themes for the Dock (easy) or Menubar (much harder). Some also try theming buttons and such, but with Lion Apple has made even that mundane endeavor mysteriously difficult. (Buttons are composited against window backgrounds in a mysterious way that requires providing whole separate sets of buttons for Snow Leopard and Lion.)

Which brings me to the crux of this overly-long, overly-dreary essay: CrystalClear Interface exists today only because once I had seen how beautiful it could be, I couldn't let that beauty go. I simply can't stand working with gray-gradient windows all day, no matter how elegant they may be. And there are times when I really want/need a dark interface like the Black Gloss theme from Crystal Black.

So either I sever the cord with Apple's future OS X updates, or I sever the cord with CCI. It will have to be one or the other, and I'm not yet sure which that will be.

In the current setting, supporting Lion (and soon, Mountain Lion) has been royally painful. So much so that for the last 6 months I've spent most of my time getting CCI to run on Lion, or merely keeping it running. Not very satisfying for me, since I don't use Lion myself (yet).

An earlier article discussed the grief involved in updating CCI for Lion, and I mention it here because the problems haven't gone away. They've merely formed a continuous obstacle that becomes more and more tedious to work around.

In other words: Most of the fun of developing CCI has been held at bay, and the drudge work of keeping up with Apple has made me wonder how long I can hold out.

My fondest hope is that next time, Apple will make us wait longer than one year before throwing a new OS our way.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
June 22nd, 2012

AppMenu Magic Conjures A Simpler, More Elegant Menubar

AppMenu Magic IconAppMenu Magic is a small, simple application with only one cool trick: It replaces the application’s name with its icon in the system menubar. The functionality of AppMenu Magic has been part of CrystalClear Interface (CCI), as well as Crystal Black (CB), since those applications were first released. I am releasing the app separately because of continued requests for it. This app lets users take advantage of the improved appearance and reduced “screen real estate” of their menubar that AppMenu Magic offers, without having to use either CCI or CB.

This application could hardly be simpler to use. Simply run the installer, and voila! No more long application titles consuming precious space in your menubar. In its place, you’ll see the application’s icon — which is usually much prettier than its title in any case.

AppMenu Magic Options Panel

AppMenu Magic (AMM) does have a small Options panel — with only one option: You can elect to turn the “Show application’s icon in menubar” functionality on or off.

After installing AMM, you can find its menu in the application’s main menu, just above the “Quit” item (assuming it has one... unlike the Finder). The menu is quite brief: In addition to the Preferences item, it has an “About” item as well as “Purchase,” “Help,” “Check for Updates” and “Uninstall” items. Each of these is pretty self-evident, so I won’t discuss them separately.

AppMenu Magic MenuMain Application Menu With AMM Item

AppMenu Magic is compatible with other plugins from MarsThemes — including Text Tools, CrystalClear Interface and Crystal Black. If you are using CCI or CB, you don’t need to use AMM, but if you do, the two plugins won’t conflict with each other.

AMM will load into any application that supports the MarsThemes Loader scripting addition. Typically, this means it will work with any native Mac OS X application that you use. It also means it won’t load into some older Mac apps or into apps built with pure Java or with a scripting language like Python. The overall footprint AMM makes on your Mac is very small.

If you run into any problems while trying out AppMenu Magic, please use the Contact item in the app’s menu to let me know.

This little app is shareware, so give it a try! You can use AMM freely for 15 days. After that, you’ll need a license, which costs $5.00. Hope you enjoy it as much as I do.

The software will be added as a permanent item on the MarsThemes website, under Software. You can download it there.

Version History

1.0 6/22/12. Initial release.

Technical Notes

AppMenu Magic runs as a plugin to the Mars Theme Loader (MTL) framework. If you don't have MTL installed, the AMM installer will do that for you. If you uninstall AMM, the uninstaller will disable or remove the MTL agent at that time.

There are very few components to AppMenu Magic:

  1. The plugin (AMMagicFilter.bundle) located at /Library/Application Support/MarsThemes/plugins, and
  2. A folder containing this document (as a PDF file) and the Uninstall program. That folder is at /Library/Application Support/MarsThemes/AMM. If you purchase a license, the license is also stored in this folder.

To uninstall AMM, open an application where it’s active, open the AppMenu Magic menu from the application’s main menu, and select "Uninstall AppMenu Magic.” Alternatively, you can simply run the standalone UninstallAMM program.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
June 9th, 2012

Dress Up Your Mac’s Authentication Panel With Crystal NIBs!

Crystal NIBs for SecurityAgent PreviewThis little application provides two alternative styles for the “Authenticate” panel that appears whenever you’re required to enter a password on your Mac. It works by substituting different “NIB” files — the files that define the window’s interface — for the default system versions.  (Jargon Alert: NIB stands for “NeXT InterfaceBuilder,” which was the original IB app developed on the NeXT operating system — the predecessor of Mac OS X.)

The application lets you switch among three different styles:

  • HUD (Heads-Up Display) style,
  • Metal (Textured) style, and
  • Default system style.
Using the Crystal NIBs

Choice WindowTo use, just launch and enter your password at the prompt. Afterward, a small window appears that lets you choose one of the three styles from a pull-down menu. You can cancel the action or submit the form to change the NIB style.

After you submit your choice, run the application again to verify that the choice is now active. A logout or restart is not required.

When you want to uninstall the app, just run it and select the default system style.

The application has been extensively tested and used on both Snow Leopard and Lion systems, and it contains the default system files for both, as well as the Crystal alternatives. (Note: Use of this free software affirms that MarsThemes will not be held liable for any damage to your system that may result from using this application. Further, use that does not follow the above instructions is forbidden and will not be supported.)

These styles were developed to complement the MarsThemes applications CrystalClear Interface and Crystal Black, but they are free to use whether you’re using those themes or not.

Enjoy!

Download

Crystal NIBs for SecurityAgent (Download file is 1.0MB)

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
January 24th, 2012

Text Tools for Mac OS X: Free At Last!

MarsThemes Text Tools Software

Some variation of these text tools have been included in CrystalClear Interface, as well as Crystal Black, since those applications were first released. However, the tools have nothing to do with the theming of buttons and windows, or with the general appearance of Mac OS X. I added them because they address a real need of mine, which no other software could do.

As a writer, I need ready access to a range of text functions, and I need them in whatever application in which I happen to be writing. In most of the rich text editors I use, those functions are available somewhere in the app’s menus, but typically they're in different places within each app. Some apps don’t include one or two key functions at all.

Mac OS X has a rich text framework that provides just the set of editing tools I require, and it would be extremely handy to be able to access those tools consistently across apps. This is precisely what the MarsThemes Text Tools do: Grant easy access to the key Cocoa text tools that writers and editors need but can’t find.

So, what text tools am I talking about? Here’s a list of the key tools:

  • Tables. I often find formatting content into rows and columns an extremely useful way of organizing information, but few RTF applications seem to agree with me. Mac OS X includes a quite functional table-editing tool that I can quickly use when needed without opening a CrystalClear Interface 2.6 Desktopprofessional word processor such as Pages, or reaching for a spreadsheet app like Numbers.
  • Lists. From time immemorial, both humans and Martians have found organizing information as lists to be an essential tool for viewing and encapsulating that information. Again, finding the built-in list feature can be a problem, especially in apps that don’t let you access Mac OS X’s RTF “Ruler” tool (more on that momentarily).
  • Links. In the internet age, writers often need to add hyperlinks to their documents, yet finding the built-in hyperlinking tool can be a challenge. The tool either isn’t there, it’s buried in a set of menus, or it’s somewhere that doesn’t make sense.
  • The Ruler. If you’ve ever used a Mac OS X RTF editor such as TextEdit or Bean, or some kind of information management application like DevonThink Pro, EagleFiler, or Journler, you’re probably familiar with The Ruler (though didn’t know it had a name). The Ruler is the strip of tools that appears above whatever text document you’re working on. It contains a menu of handy (and customizable) text styles, alignment tools, a customizable menu for setting line and paragraph spacing, a menu for setting and customizing lists, and a group of tools for setting margins, tabs, and indentation. Sometimes The Ruler appears automatically, but other times you must hunt for access to it. Unfortunately, many applications feel the need to replicate these functions in some quirky unique way (such apps include Evernote and MacJournal). In my ideal editing environment, I want to summon The Ruler when needed, and dismiss it when it’s not.
  • Strikethrough. Oddly, the only straightforward way of striking through text (a very useful thing to do!) is to open the Mac OS X Font panel, which has a menu that includes strikethrough and underlining functions.
  • Copy and Paste text styles. Yes, there are standard keyboard shortcuts for these functions, but I find they don’t work in all applications, and I often forget what they are. Yet I use the functions frequently.


One of my favorite uses of the Text Tools is in applications or text fields that support rich text but provide no access to RTF editing tools. An obvious example of this is Apple’s Stickies application, which apparently assumes that users only want to type paragraphs with no formatting. Using the Text Tools, you can add The Ruler, a table, and all the rest.

CrystalClear Interface 2.6 Desktop

Other note-taking apps I use heavily likewise provide no way to toggle The Ruler or add a table are Edgies and Sticky Notes. Both have some of the Text Tools accessible in their menus, but using their menus may be awkward. Since the MarsThemes Tools provide a contextual menu, the tools are always at your fingertips.

Other examples I like to point out are the Comments field in Xcode’s snapshots window and in the application Packages, the Notes field in Interface Builder, any text view you’re formatting in Interface Builder’s edit window, the image description field in Little Snapper, and various others. (For my developer colleagues, I should point out that using the tools in Interface Builder is especially nice, because it lets you enter attributed text without having to format it in an external RTF editor and then copying/pasting it into IB. Note also that I still use Xcode 3.2, so IB is a separate application.)

Then there are applications like Yojimbo, which should provide a way to format text, but don't. Here, the Text Tools let you add The Ruler, a table, etc.

As mentioned, the Text Tools are activated as a contextual menu — using either a right-click or a Ctrl-click — in the field or document you want to edit. The Tools also provide a keyboard shortcut — ^⌥ Y — to pop up the menu. The shortcut is particularly handy in fields CrystalClear Interface 2.6 Desktop(such as those in Interface Builder) that usurp the field’s normal contextual menu.

The MarsThemes Text Tools have only two user options, which you can access from the “Manage tools” item in the Text Tools menu, or from the “Text Tools” item in the application’s menu. The two options are:

  • Show more text tools
  • Show Manage Tools menu at top.

CrystalClear Interface 2.6 DesktopSelecting the first option adds the following tools to the menu:

  • Styles (used for adding a custom style to your personal list)
  • A “More Tools” menu, which includes the Capitalize functions, which normally appear in a submenu, as well as access to two handy formatting tools to control inter-letter spacing and baseline setting.
  • Access to the Substitutions setting panel.
  • A link to open the very handy Special Characters panel.

CrystalClear Interface 2.6 DesktopBy default, the Manage Tools menu appears at the bottom of the Text Tools menu,  but you can change that.

The Manage Tools menu also includes functions for checking updates, uninstalling, and getting help.

Finally, the Text Tools application is programmed so that it only loads into software that it detects has some kind of editing functionality. There’s no use loading the Text Tools into System Preferences or the Finder, for example. This keeps its overall footprint on your Mac as small as possible.

Text Tools is freeware, so give it a try! Hope you enjoy it as much as I do.

The software will be added as a premanent item on the MarsThemes website, under Software. You can download it here.

★ Technical Notes

The Text Tools run as a plugin to the Mars Theme Loader (MTL) framework. If you do not have MTL installed, the Text Tools installer will do that for you. If you uninstall the Text Tools, the uninstaller will disable the MTL agent at that time.

There are very few components to the Mars Text Tools:

  1. The plugin (TTFilter.bundle) located at /Library/Application Support/MarsThemes/plugins, and
  2. A folder containing this document (as a PDF file) and the Uninstall program. That folder is at /Library/Application Support/MarsThemes/TextTools

To uninstall the Text Tools, open an application where they're active, open the Text Tools menu (easiest way is from the Application's main menu) and select "Uninstall Text Tools." If you have trouble finding an application that's running the Tools, open the folder referenced above and run the UninstallTextTools application.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
December 29th, 2011

In The Works On Mars: CrystalClear Interface 2.6

Update 03.03.12: After much thought and angst, I've decided that building CCI 2.6 for Lion is too much trouble. It's not the programming that's hard ... it's the constantly and unpredictably changing graphics for Lion, which differ substantially from those on Snow Leopard. Since releasing the last updates to CrystalClear Interface 2.5 and Crystal Black 1.0, virtually all of my time working on CCI 2.6 has been consumed by trying to get the Lion graphics files and functions to look and behave as well as on Snow Leopard. Testing yesterday and today shows I still have a long way to go, whereas the code for Snow Leopard is pretty much complete.

As I wrote in a brief post yesterday, I am not using Lion myself, and don't plan to. So it's particularly hard to develop for. I expect to revisit this decision when Mountain Lion is released in a few months. I'll be installing the developer preview soon to see what I'm in for.

I'm sorry to leave my Lion users out of the party, but at least they still have stable versions of CCI and CB to fall back on.

CrystalClear Interface 2.6 Desktop

Work on programming and graphics is now far enough along that it's safe to say that CrystalClear Interface 2.6 will be ready for release soon. How soon? Don't ask, because my answer is always wrong.

CCI 2.6 will be a major upgrade, with some features customers have wanted for quite awhile now. The upgrade will be free for current CrystalClear Interface license-holders, but after release the software's price will increase to $18. The price increase reflects the major amount of work required to push CCI's functionality to the new level, and a lot of that work has to do with making it work — and look right — on Lion (Mac OS X 10.7).

Briefly, the main new features in CCI 2.6 will be:

  • Incorporates the Crystal Black button theme for users on both Snow Leopard and Lion.
  • Adds eight menubar themes users can mix and match with their chosen button theme.
  • Seamlessly swaps custom application graphics for a given theme with the chosen new one.
  • Fleshes out the custom system graphics for Lion, so that both the Gradient and the new Black Gloss button themes are almost in parity with Snow Leopard.
  • Adds two new window frame styles — "Black Gloss" and "Black Gradient."
  • Incorporates two new preset themes — "Black Gloss" and "Smooth Black" — to take advantage the new window styles.
  • Adds numerous new Crystal Docs icons, and improves the icons tab to show previews of the various icons.
  • Automates the installation of third-party Crystal Docs icons, so the user isn't interrupted and prompted to install for each app as they open it.
  • Provides a new set of Crystal Desktop pictures, mainly for users who want a dark desktop. This set of "Deco Bubbles" desktops has six dark variations and four light ones.
  • Adds code to enable readable statusbar text for the clock and username "menu extras." (Note: This feature currently doesn't work consistently on Lion.)

In addition to those features, the release incorporates numerous bug fixes and enhancements. Of those, the most noteworthy are:

  1. Lets you collapse the CCI Preferences window when you need to temporarily minimize it.
  2. Adds new menu extra icons for some third-party apps: Tags, Proxi, TotalFinder, and My Living Desktop.
  3. Adds a "Refresh" button to the list of disabled apps in the CCI Preferences Pane, letting you force the table to update if it doesn't do so automatically.
  4. Fixes a bug in Mail that could cause the app to crash when the user closes a window with the Cmd-W shortcut.
  5. Adds a better workaround to the problem of black test on dark background for Safari's URL field on Lion.
  6. Improves theming of text colors on buttons in disabled apps.

So, you may be wondering why building CCI 2.6 has been so hard. No problem... I'm dying to explain. The four main areas of work that have kept me up late nights are (1) Designing workable graphics for Lion, (2) making sure text colors change appropriately as the user changes button themes from or to Black Gloss, (3) making sure all the customized app and system graphics change to match a new button theme, and (4) writing the new menubar function to be smart enough to provide only options appropriate for each button theme, and to swap out the menubar text and "menu extras" icons as necessary.

★ Designing workable graphics for Lion
  1. CrystalClear Interface 2.6 DesktopLion introduces a whole new paradigm for a large swath of its button graphics. Prior to Lion, Apple's graphics have always been opaque, though for many of them a themer could substitute translucent ones. However, Lion has a whole class of transparent graphics, which are widely used for segment buttons and popup/popdown buttons. This wouldn't be a problem except that the way these buttons are composited on window frames is altogether different from Snow Leopard and any earlier Mac OS X release. Thus, making substitute graphics requires a large amount of trial and error.
  2. Even for graphics unchanged from Snow Leopard — including those for titlebar buttons, radio and checkbox buttons, and tab bars — Lion's algorithm for displaying the graphics on a window makes it impossible to simply reuse Snow Leopard graphics. In particular, Lion is picky about graphics with white in them, and is also unfriendly to graphics that try to cast a light shadow under the button. Again, solving these problems has required a huge amount of trial and error — including a reboot on Lion to test each change.

  3. Since it isn't possible to simply reuse graphics from the previous operating system version — a procedure that's made transitioning themes to new versions much easier in the past — I've had to build by hand an unfair number of tiny graphics. For each theme, Lion has two art files — one that has graphics for the menubar, other menu highlights, drawer frames, apple menubar icons, and various graphics that appear on buttons (arrows, text items, disclosure images, and so on). The second file has all the button graphics, which total 2,668. That's 2,668 graphics that could be themed in Gradient and Black Gloss style for CCI 2.6. So this is an exercise in sheer drudgery.

    Prior to Lion, the theming world was blessed with a tool called "ThemePark," which greatly simplified the process of adding and changing this vast universe of button parts. However, given the issues with Lion, ThemePark has not been available. Instead, we have a couple of Unix executable files which are run from the command line. Thus, all the work in incorporating buttons must take place in Finder (or another file browser) and then compiled in Terminal.

  4. Another issue that's made theming Lion drive me crazy is that Apple changed the Art Files from 10.7.1 to 10.7.2 — meaning that you couldn't use the files from one with the other. The files are not just incompatible, they double the graphics workload. With double the workload, the job of keeping track of the various art files and of making sure changes in one are in sync with the other becomes not only difficult but dangerous. Keep in mind that covering both sets of Lion art files, as well as those for Snow Leopard, means that there are 6 art files for the button graphics to manage. Because CCI 2.6 includes 8 menubar options, as well as seamless changes in text color for the various menu graphics (which is controlled by a third system graphics file), the total number of art files explodes to 58 — 22 for Black Gloss, 26 for Gradient, and 10 for Glossy.

    Because of the unreasonable effort required and the great risk of error — which could disable users' application usage — I decided a couple of weeks ago to abandon support for 10.7.1. Thus, CCI 2.6 will only support Snow Leopard and Lion 10.7.2 (and greater).

★ Making sure text colors change appropriately
  1. Making sure text is readable as users change background colors or use different window styles has always been a challenge. With Crystal Black, the problem is somewhat less because the window background style doesn't change, and users have fewer options for changing colors in the interface. However, combining the Glossy Black window style and buttons with CCI's light varied window styles and gradient buttons more than doubles the programming logic required.
  2. Adding eight menubar styles to the software requires multiple text-color options instead of the single option in CCI and Crystal Black. Some of the menubars require white text for inactive menus and white text for selected ones, some require white text with black text, others require black text with white text, and then there are those that require black text with black text. Further, there are variations in the colors needed for selected menu items on open menus. Some must be white, and some black. The various combinations mean I need to prepare 18 different versions of the art file that controls the text color.
★ Keeping all the customized app and system graphics in sync
  1. CrystalClear Interface 2.6 DesktopAdding the Crystal Black button theme to CrystalClear Interface also means that all the custom application and system graphics included with Crystal Black must go away when a user switches to the Gradient or Glossy buttons. Likewise, the Gradient and Glossy themes come with a set of their own graphics. These must be swapped out with whatever button theme the user switches to. Though the Black Gloss theme has far more custom graphics than the other two, the functions to handle BG would necessarily have to work with Gradient and Glossy. To build functions that automatically toggle sets of graphics — the set of which differs with each theme — has required developing logical structures and routines for storing the files, for determining the set of default graphics that are common to all three themes, and for determining which files are unique to each. These tasks have proven much more difficult than I had anticipated.
  2. Because it includes so many custom graphics, Crystal Black provides a set of tools that CCI does not: Tools for uninstalling and reinstalling graphics for Applications, Preference panes, and System frameworks. CCI 2.6 needed to add these functions to handle the tasks described in the previous item, but the code required to enable them in CCI turned out to be far more complicated than that for CB. The end result is a new tab in the CCI Preferences panel called "Manage Installed Graphics." The functions here need to know which applications, preference panes and system frameworks pertain to the current theme, and it provides a dynamic list showing users what items are affected by the "Reinstall" or "Uninstall" actions.
☆ Making the menubar function smart enough to do its job right
  1. CrystalClear Interface 2.6 DesktopProviding menubar options in CrystalClear Interface — a much-requested enhancement — threatened to mushroom the number of a particular system graphics file unless I could restrict the options to some reasonable extent. In the past, each button theme came with one "SArtFile.bin" file. This file contains the menubar graphics, as well as graphics for drawers, apple icon, and numerous PDF files used for symbols throughout the OS — things like arrows, gears, disclosure triangles, magnifying symbols, and many more. If users could choose any menubar type with any button theme, each button theme would have to maintain eight "SArtFile.bin" files — one for each theme. In the interest of my sanity and code maintenance, I cut that number in half, so each theme can use only four menubar styles at a time. To access the other menubars, the user will have to switch button themes.
  2. In addition to managing the switching out of different menubars, this function also needs to coordinate with the system file, "Extras.rsrc," to make sure the text used with each menubar is readable. As previously described, each menubar has unique requirements, and since on Snow Leopard the "Extras" file also provides the system graphics for scrollbars and a few other interface widgets, the menubar function must swap out the appropriate "Extras" file not only for itself, but also for the current operating system. Needless to say, this ended up being a pretty complex function.

So, was it worth the effort? I've certainly been enjoying the flexibility of CrystalClear Interface 2.6, but ultimately you'll have to tell me once the software is released. :-) Keep an on the MarsThemes or CCI websites for the latest news.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
April 12th, 2011

Theming Snow Leopard:
How Hard Could It Be To Paint A Leopard Black?

Preview of Crystal Black Theme for Snow Leopard

Dark interface themes are extremely popular with a small, but very passionate, group of Mac users. Sadly, since Apple introduced Leopard (Mac OS X 10.5), the old, relatively simple method of creating such themes on the Mac can't be used, and it took the theming community a good year and a half to figure out the current, relatively hobbled tools to theme the few bits of the interface that can be themed.

Given the weakened state of theming on the Mac, it's not surprising that the number of themes available has dwindled to a mere handful. And even those only go part of the way compared with what we used to be able to achieve with ShapeShifter. Still, the yearning for Mac themes remains strong among this community, and black themes are virtually nonexistent now.

Black themes have always been a challenge, because the frameworks used to build applications were designed to assume that text would always be black and the color of windows and buttons always light. Apple introduced a dark-theme paradigm a few years ago with its Heads-Up Display window style, which, with its translucent black background actually assumes that text will be white.

Starting with Leopard, developers using Xcode could tap into the HUD window style and use it whenever they want to, but most application windows aren't well suited to this, and Apple's user interface library still assumes that regular windows will be light, with black text. 

It's not only desktop applications that make this assumption. Web pages with button widgets also assume that the widgets will be light and their text black. On the Mac, it's becoming common for desktop applications to embed the WebKit for parts of their user interface—meaning that the button widgets are HTML- and CSS-based, not AppKit-based.

In addition to this basic problem, there's also the challenge of handling legacy applications based on Apple's earlier Carbon frameworks, as well as apps that are a blend of Cocoa and Carbon. Complicating this issue is that, as it turns out, applications built for the older PowerPC processor platform use a different part of the system graphics than those built for Intel chips.

If you try to design a theme that introduces black interface controls, you run into another challenge that has nothing to do with text. Many interface widgets use images rather than text to convey their purpose, so what if—as is usually the case—the application designer provides only black images for these buttons? Is a themer supposed to provide white images for every application a themee might want to use?

One specialized case of the images problem is the Mac OS X statusbar. Here, applications represent themselves almost exclusively as images, and nine times out of ten, the images assume that the menubar is light, so they should be black. Some enterprising themers have tried to solve this one by providing alternative white images for the most common statusbar applications, but usability can still suffer if someone using a black menubar launches an application that insists on putting a black icon up there.... one for which no white alternative exists.

Given all this, why would anyone undertake an effort to introduce a fully black theme for Snow Leopard?

I suppose it's because we Martians just can't step back from a challenge. Not to mention the fact that we, too, are afflicted with the passion for dark themes that many Earthlings suffer from. I also have a good starting point, having developed some useful techniques for the challenge through building CrystalClear Interface.

That said, the best I can offer still has compromised usability, which I detail below. But for the most part, I think I've succeeded in bringing to life a useable version of the legendary Cathode theme for ShapeShifter, in a redesign appropriate for Snow Leopard. The theme covers window backgrounds, background colors for tables and outline views, interface buttons, menubar, and text colors. It also coerces various types of windows to theme themselves in HUD style.

To acknowledge the theme's heritage, I've dubbed the theme Crystal Black. Crystal Black will be available for download soon, with a 15-day trial period and a purchase price of $6.00

It's important to note that Crystal Black and CrystalClear Interface can not coexist on the same system. You can't install Crystal Black until you uninstall CCI.

For my own documentation of this work, as well as to highlight the theme's strengths and weaknesses, the following list shows the various unique challenges I've faced in building Crystal Black and the solutions, if any, devised. Other challenges have been faced—and largely solved—in developing CrystalClear Interface, so I won't spend time on them here.

In the list, I've used a small graphic to indicate the degree of success in addressing each challenge:

★ Solid solution

☆ Partial solution

∅ No solution

For Cocoa applications:
  • Images on buttons and in column headings ★
  • Images and icons in the statusbar ★
  • Text color of buttons in web pages ★
  • Applications that use non-standard buttons and GUI frameworks. ☆
  • Text color on Finder items with color labels ∅
  • Cocoa applications that can't or won't take theming by Crystal Black ☆ (Problem solved 4/13/11.)
  • Cocoa applications that are on the user's "Disabled Applications" list ☆
For Carbon applications:
  • Text color for control widgets ☆
  • Color of titlebar and toolbar text ∅
  • Window and control object background colors ☆
Cocoa applications
★ Images on buttons and in column headings
Challenges
Crystal Black Theme: Buttons without Crystal Black software
  • All images need to be made white, but without making custom button images for every possible application. Somehow, black images must be inverted as windows load.
  • Some images are already "templates," easy to invert. However, other images look like "templates," but aren't, and making them templates isn't a reliable technique.
  • Images with color (hue > 0) need to be distinguished from black/white ones. Knowing the image's color space doesn't help.
  • Some images are "Core Image" images, which don't have a bitmap representation that can be easily analyzed. In this case, Crystal Black must create a bitmap representation in check it out.
  • Images in column headings aren't buttons, so they require extra processing. In many cases, they change often so must be analyzed repeatedly. Some have proven inaccessible.
Crystal Black Theme: Buttons with Crystal Black software
Solution
Each button and column heading in application windows are analyzed as they load to determine whether—and how—they require inverting. If inverting is needed, Crystal Black generates a new image and sets in place of the original.

Crystal Black Theme: Custom popup buttonStill, there are a few cases that haven't yet been addressed. One is the case where a pull-down menu contains an image. I hope to deal with this in a future update.

★ Images and icons in the statusbar Crystal Black Theme: Menubar without Crystal Black software
Challenges
  • For nearly all applications that have a statusbar item and associated image/icon, the image/icon is black in normal state and white when highlighted. This means the image is unreadable against a black menubar.
  • Unfortunately, the solution to the problem of images on buttons can't be applied to images and icons in the statusbar. In a few cases, the technique of inverting "template" images works, but applications with statusbar helpers that have invertable images are in a large minority.
Crystal Black Theme: Menubar with Crystal Black software
Solution
Most of your applications that have a presence in the statusbar—including all of Apple's—must have custom-built images. In Crystal Black, these images are installed in the application's Resources folder, while maintaining a backup of the original images. Crystal Black also runs an inversion method that works in a few cases, but can't be relied on for most.
★ Text color of buttons in web pages
Challenges
Crystal Black Theme: Web page buttons without Crystal Black software
  • Requires digging through the page's document object model and checking for buttons. Technique for theming push buttons is quite different from that for pop-up buttons.
  • Many pages use nonstandard button styles, themed through CSS, and these are much trickier to coerce into using white text.
Solution
Crystal Black Theme: Web page buttons with Crystal Black software
Crystal Black installs a custom CSS style sheet, which can be used with browsers that support custom style sheets. In the case of Safari, Crystal Black enables the style sheet automatically. Although this works, it manages to destroy a lot of custom-designed buttons along the way...
☆ Applications that use non-standard buttons and GUI Frameworks Crystal Black Theme: Oddball buttons
Challenges
Many newer Mac applications have buttons that are subclassed from the standard Cocoa button class and therefore don't respond to theming. Similarly, various open-source frameworks for building windows and buttons are in use, with similar challenges to theming.
Solution
Unfortunately, since Crystal Black cannot convert such buttons to its dark theme, it must apply a custom modification for each application to ensure buttons are readable. This means that some apps will have buttons with white text, since they aren't accounted for in Crystal Black.
∅ Text color on Finder items with color labels
Challenges
Crystal Black Theme: Finder labels were a problem for Crystal Black
  • When the Finder is in column or list view, and these views have the dark background users normally prefer in themes like Crystal Black, the names of files and folders that have colored labels cannot easily be read.
  • Despite numerous attempts, I have not discovered any method for changing the colors of these labels to provide ☆suitable contrast for white text.
  • In addition, because of the way the Finder's file browser works, it's not possible to coerce a specific file or folder to use black text instead of white, when the item uses a label.
Solution
Crystal Black Theme: Finder labels solved by forcing black text
There is no good solution to this problem. To keep Finder's column and list views readable, Crystal Black prevents the background color for these views from darkening to the point that would trigger the use of white text. In other words, the names of files and folders in the Finder will always display as black.
☆ Cocoa applications that are on the user's "Disabled Applications" list
Crystal Black Theme: Appearance of disabled applications without some help from Crystal BlackChallenges
If a user disables Crystal Black for a specific application, the software no longer has a way to transform text or images from black to white.

Without some action, this would be the same as a user downloading the (free) Crystal Black system graphics files and installing them without the software: You wouldn't be able to read a lot of the interface elements.

Crystal Black Theme: Appearance of disabled applications with help from Crystal BlackSolution
The problem can't be totally solved. However, Crystal Black does three things to maintain usability. First, the CB filter module (which is what determines whether to load Crystal Black or not) installs a minimal set of color instructions before declining to load the core software. These colors keep text on buttons readable. Second, the old Extras resources files have a few text-color settings that still have an effect, and these take care of text color on segment tabs. Third, Crystal Black sets some specific defaults for the disabled application that prevent it from using a totally black window frame. These defaults are swapped out if the user re-enables the app for CB.
Carbon applications

Carbon applications are incapable of loading Crystal Black to any meaningful extent. However, some such applications have components built with the Cocoa frameworks, and these components will load Crystal Black (unless the app is in CB's disabled apps list). An example of the latter is Adobe Photoshop CS4, which itself is a Carbon-based lifeform, but may have plugins that are Cocoa-based. In this case, the plugin will load Crystal Black as long as Photoshop itself does not have CB disabled.

At the time of this writing, the Carbon universe is split into two difference species: Those that will only run on PowerPC chips, or under Rosetta on an Intel chip, and those that will run natively on both kinds of chips. The distinction is important, because the different species, it turns out, use different system resources for some of their graphics.

In any case, the challenge for affecting Carbon applications with a dark theme is that it must be done in the "old-fashioned" way—using the graphics files that used to enable theming in the age of ShapeShifter.

☆ Text color for control widgets
Challenges
How to enable white text on black buttons and other interface elements without using software or the post-Leopard system resources.
Crystal Black Theme: Controls in Carbon applications helped with old-fashioned test-color settingsSolution
To a large extent, this is solved by relying on the pre-Leopard Extras resources files. Carbon applications make more use of these than Cocoa ones do, and Carbon apps that require Rosetta under Leopard make even more use of them.
∅ Color of titlebar and toolbar text
Crystal Black Theme: Titlebars in Carbon applications couldn't be fixedChallenges
How to enable white text on the labels of toolbar buttons and on window titlebars, without using software or post-Leopard system resources.
Solution
No solution found. This is one challenge Crystal Black has been unable to overcome. Since toolbars are an interface element that's uncommon on Carbon applications, the toolbar label problem isn't a huge issue. (The only such app I use is Yummy FTP.) However, nearly all windows have a title, and it remains black against a black background.
☆ Window and control object background colors
Crystal Black Theme: Background colors in Carbon set with old resources within limitationsChallenges
  • The background colors of various objects on a Carbon window are drawn from ancient system resources that aren't straightforward to use and that can mix with unexpected results.
  • The elements that must mesh to make a smooth, pleasing, darker-than-white color are nested, and some resources are used for more than one level in the nest.
  • One complication that became clear from this exercise is that resources used differ between Universal-binary applications and apps that must run under Rosetta.
  • The background color must remain light enough to provide contrast for both white and black text.
Solution
Ultimately, this goal required detailed mapping of resource "PPAT" (pattern) objects in the Extras files to observed results.  Thereafter, a good deal of trial and error was required to get the colors to mesh—for example, the background color of a "group box" nested in a "tab view", and the background color of buttons and other controls nested inside the "group box." 

I couldn't theme some elements to my satisfaction, however. In particular, I wanted the background color of a group box within a tab view to be lighter than that of the tab view. This isn't a problem, but, because the background color of objects within the group box use the same pattern resource as the tab view, the objects have a darker background than that of the group box itself. You can set distinct background colors of control objects that are inside a tab view from those that are outside the tab view, and of those that are in a tab view from those that are nested inside "secondary group boxes" within the tab view. But you can't do the same for objects within the tab view and those within nested group boxes.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
March 2nd, 2011

Theming A Web Page With Crystal Black:
A CSS Design for Web Inspector

One of the many challenges of building a usable black theme for Mac OS X is making it work with web pages. If you use Safari, the buttons, scrollbars, and other interface widgets on web pages get their marching orders from the system's graphics files—the same ones that regular applications use.

So, if a web page has a pushbutton, the button will by default take on the style of the active theme. If you're running Crystal Black, this means that the button inherits the Crystal Black style. We like this.

Color for the button's text, on the other hand, gets its marching orders from the browser's default Cascading Style Sheet (CSS) file—which, naturally, makes the text black, and therefore unreadable on top of a black button. We don't like this.

On first glance, the solution seems to merely design a special CSS file for Crystal Black and make Safari use it. Preview of Crystal Black Theme for Safari's Web InspectorAnd that does work for many web sites and many buttons. However, many folks who design web pages like to fiddle with the CSS style for their pages' buttons, and such fiddling means that there's nothing "mere" about designer a Crystal Black style sheet.

Further, many Mac applications these days have views that are simply embedded web content using Apple's WebKit framework. The practical implication here is that Mac apps don't know how to read a Crystal Black CSS file, so Crystal Black must do some fiddling under the hood to avoid having unreadable buttons in such web views.

Then there's Safari itself. I really wanted to theme the Web Inspector—the incredibly useful built-in website viewer/debugger/designer assistant—with the Crystal Black look and feel, but it wasn't immediately obvious how to do this. I assumed that the tool was just a part of Safari, and therefore built with classes and widgets from the Cocoa AppKit (which is the framework all Cocoa apps are built with). However, when I began to inspect the Inspector, I discovered that everything contained within its borders was simply web content: HTML, CSS, JavaScript, and images.

In other words, the Web Inspector tool is nothing but an intricate, sophisticated, and extremely well designed web page!

Having built a Crystal Black CSS file for web pages in general, and with my past expertise in CSS, I attacked this challenge with relish! It reminded me of the time I realized that Dashboard widgets are, at their core, nothing but little web pages (as are simply apps for the iPhone). In tackling this one, the main question was, How should the various elements look? And the hardest part was inspecting the various parts in of the Inspector in great detail to determine which CSS rules governed their default appearance and behavior.

As I discovered, the WebKit has a a sub-framework called "WebCore," which in turn has a folder of resources specifically for the Web Inspector. In the Inspector folder, among other things, is a suite of CSS files that handle different aspects of the Inspector's design and behavior. Of these, the primary one I needed to tweak was called simply "inspector.css."

Besides controlling the usual attributes of a web page—document elements, text elements, image elements, layout elements, form elements, and so on—this style sheet applies various advanced CSS properties that serve the purpose that in years past would have been handled by many individual images. As I've described this CSS 3.0 magic previously, there's no longer a need for using graphics and JavaScript to add box shadows, rounded box corners, borders, gradients, and reflections to your web pages.

Naturally, since the open-source WebKit project was initiated by Apple, and since that project zoomed ahead of all other browser engines in developing new ways to design with CSS, that's how the Web Inspector is built. This approach—using a command syntax rather than images to design a user interface—is one that Apple has been adopting for its desktop applications. In recent years, Apple has been adding new classes and methods to the AppKit that make it a trivial matter to build a window frame, a border, a toolbar, or a button using code rather than individual graphics. 

While this is a logical and efficient approach, it also presents challenges for theming Mac applications, a challenge that Crystal Black is often unable or unwilling to overcome. (The story of all the challenges in building Crystal Black are described in this article.)

Not so with the Web Inspector, fortunately.

The Inspector does use a few images in its design, but most of the toolbar, separators, and section headers are built with CSS gradients. Very cool indeed!

This bit of Crystal Black will eventually be bundled with the whole theme, but for now I offer it as a free download. Admittedly, the audience for such software is small—you have to like Crystal Black, and you have to be a regular user of the Web Inspector—but it might be of interest to others who are curious about how such things are done.

One caveat in viewing the screenshots... The scrollbars that appear, as well as the HUD window style, are part of the overall Crystal Black theme and are not part of the Web Inspector theme itself.

Enjoy!

Update 4/18/11: The full Crystal Black 1.0 theme is now available from the Crystal Black website.

Installing Crystal Black for Web Inspector

The download contains a small application that you can use to install—and to uninstall—the theme. Simply double-click and select "Install" to apply the theme. Or select "Uninstall" to restore the default CSS files and graphics.

After installing or uninstalling the theme, you'll need to quit and restart Safari for the theme to take effect.

Crystal Black for the Web Inspector (Download file is 1.0MB)

CrystalClear Interface @ 2008-11, Leland Scott
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
February 23rd, 2011

A Black Gloss Theme for CoverSutra

I recently posted another member of the coming Crystal Black theme for Snow Leopard on my deviantART site. This new component is a glossy black theme for the popular iTunes controller CoverSutra.

Crystal Black is a theme for Mac OS X "Snow Leopard" that I'm still refining and plan to release eventually. I published a preview of the theme last fall, and a few weeks ago released a Crystal Black theme for iTunes. The skins for both iTunes and CoverSutra will, of course, be included in the full theme once it's out.

One more application-specific Crystal Black theme I plan to release soon will be of interest primarily to web developers: It's a theme for Safari's Web Inspector module. Stay posted for more on that, and for more about Crystal Black as a whole.

Update 4/18/11: The full Crystal Black 1.0 theme is now available from the Crystal Black website.

Installing Crystal Black for CoverSutra

The download contains a little application that installs the Crystal Black theme for CoverSutra. To install, simply doubleclick the application and select "Install." You can also use the app to restore the default CoverSutra theme. To restore, doubleclick the app and select “Uninstall.”

After installing or uninstalling the theme, you'll need to quit and restart CoverSutra for theme theme to take effect.

Also included in the download is a folder containing CoverSutra's default (black) menubar icon, as well as a white alternative for those who use a dark menubar.

Crystal Black for CoverSutra (Download file is 1.5MB)

CrystalClear Interface @ 2008-11, Leland Scott
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
October 25th, 2010

Crystal Black Preview: A New Attempt To Put a Dark Skin on Snow Leopard

Like many themers for Mac OS X 10.3 ("Panther"), I was awed by the beta releases of a theme called "Cathode" back in 2004. An artist named Dragun took the theme through a few iterations and then abruptly halted development.

Those of us who used ShapeShifter to run Cathode on our Macs understood why. Although Cathode was beautiful, in practice it was impractical. There were too many elements of too many applications that resisted a dark theme for buttons and window backgrounds.

For me, however—and I'm sure for many theming fans—the dream of using a beautiful black theme like Cathode was a siren call impossible to forget.  Over the years, the dream receded further from our grasp because of roadblocks Apple erected—intentionally or not—to the existing mechanisms of theming Mac OS X.

Starting with Mac OS X 10.5 ("Leopard") in 2007, the main tool for applying Mac themes, ShapeShifter, went bye-bye and has never returned. This is one of the main reasons I continued development of CrystalClear Interface, because it was the only way for me to apply a fully realized theme to Mac OS X.

Since Leopard, themers have been able to finesse the problem by changing the system graphics files that apply buttons, menubar background, basic window shape and color, and a few other items to your window appearance. Despite best efforts to unravel the secrets of the Mac's new ways of drawing itself, this mechanism isn't able to consistently change text color in the many contexts in which it appears in a window, thus making design and use of dark theme impractical.

As I'll describe in a future article, tackling the design of Crystal Black, a new theme inspired by Cathode, has been far from easy. And there remain user interface elements that totally resist its charms. But for me, those elements are few enough to make Crystal Black practical.

At this point, I'm confident that I'll be able to complete Crystal Black and release it at some point for all Mac users of Snow Leopard (Mac OS X 10.6). The theme is an offshoot of CrystalClear Interface (CCI) and uses much of the same code. However, Crystal Black is much simpler, has a smaller impact on the operating system, and is compatible with many more applications than CCI. Also unlike CCI, Crystal Black provides a complete theme for iTunes 10.

During early development of Crystal Black, I had intended it to be a feature of the next major release of CCI—and eventually it will be. In mid-September, though, I got the bright idea of forking Crystal Black as a separate application, mostly because I thought it would simplify its development and allow me to get it into user's hands more quickly.

Like all software development, it seems, the code cooperates only so far, and timelines end up stretching beyond intentions. That's been the case with Crystal Black, but I'm happy to say that not only is it nearing the end of its core development, but a lot of the Crystal Black code will be able to optimize CrystalClear Interface. It's kind of like what Jobs talked about in the recent keynote about Mac OS X and the development of the new Macbook Air: Things I've learned in developing Crystal Black will ultimately make CCI a better product as well.

As an aside to CCI users, I'm planning to put out a minor update soon that will incorporate the Crystal Black-enabled optimizations as well as address bugs and other changes made since the release  of version 2.5.6.3 in August.

This post, then, is simply a preview of Crystal Black, showing how it appears in various widely used Mac applications as well as in full desktops.  I hope you find it to be as gorgeous as I do!

CrystalClear Interface @ 2008-10, Leland Scott
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
April 16th, 2010

CrystalClear Interface 2.5:
Taming a Leopard in Winter

I recently released a major new version of CrystalClear Interface (CCI). Among the most significant enhancements in version 2.5 are its full compatibility with Mac OS X 10.6 ("Snow Leopard") and its ability to finally theme the Finder. Because of new limitations to system add-ons imposed by Apple, taming Snow Leopard has been a daunting challenge, but the final outcome is a version of CCI that's the most stable, robust, and compatible yet. The extended struggle with Snow Leopard over the winter is one of the primary reasons I've decided to require a license fee for CCI 2.5 ($12.00).

The solution would not have been feasible without use of an updated SIMBL framework, which now relies on a ScriptingAddition rather than an InputManager for its magic. However, using SIMBL is not without a pretty noticeable drawback. Specifically, when loading into 64-bit applications, CCI must wait until SIMBL loads, and this produces a delay in theming windows when you first launch such an app. (This problem doesn't affect 32-bit apps, because CCI still uses an InputManager for those.) So far, I haven't found a workaround to this. If you find the delay unacceptable, you have two choices:

  1. Don't use CrystalClear Interface 2.5.
  2. Modify your 64-bit apps to run as 32-bit ones. (This involves opening the Info window for the app in Finder, and then selecting the checkbox "Open in 32-bit mode.")

I've completely rewritten the CCI User's Guide, which I encourage you to peruse in order to get a feel for the breadth and depth of CCI's power. But for this article, I'm confining myself to listing the highlights of version 2.5.

    Works With Snow Leopard!
  • Compatibility with Snow Leopard. CCI 2.5 not only now works with Snow Leopard, it's actually more stable and app-compatible than on Mac OS X 10.5. As noted above, the only significant downside is that the initial loading of CCI into 64-bit applications takes longer than with traditional 32-bit apps. The delay is due CCI 2.5's use of the SIMBL framework for 64-bit applications, which must be loaded before CCI can.
  • Support for Finder on Snow Leopard. Finally, CCI can theme the Finder! In Snow Leopard, Apple transformed Finder into a Cocoa application, so it can be themed like all the other Cocoa apps you use. CCI's Finder functionality was added fairly late in the development of version 2.5, so its implementation isn't complete. Look for a more thorough and robust implementation in a future update.
  • New "Glossy" button theme. Designed for Snow Leopard, the Glossy button theme is also available for Leopard. Gloss Button Style(For now, the original "Gradient" CCI button theme is only available for Leopard.)
  • Robust toggling between button themes. You can now quickly, easily and fully switch between Aqua and the CCI button styles.
  • Crystal Document IconsCrystal Docs Icon set. This set of icons is designed to complement the Crystal Albook icon set I released a few years ago. In CCI 2.5, you can easily install or uninstall these document icons for various groups of Apple applications as well for an initial set of third-party apps. The Crystal Docs icon settings now occupy a separate tab in the CCI Preferences panel. (For a visual preview of the icons, refer to this Mars article from January.)
  • A new set of eight preset themes. The new themes are designed to complement the set of eight "Frosted Crystal" desktop pictures introduced with CCI 2.2. (The themes were previewed, with full screenshots, in this February 2010 Mars article.)
  • Crystal Document IconsCrystal Document IconsWindow overlay options. An earlier version of CrystalClear Interface experimented with using a glossy (shiny) overlay for windows, but I removed it some time ago because the implementation was buggy. For CCI 2.5, however, the overlay idea is back and much better than before. You can set this Interface Fluff option to one of two different kinds of "shine," or elect to have no shine at all.
  • New preference settings:
    • Make all toolbars customizable. Gives you access to settings that are often hidden—for example, rearranging toolbar buttons in application preferences windows, changing the size of icons, or showing or hiding icon labels.
    • Make (almost) all windows resizable. Adds a resize corner to windows that don't normally have them.
    • Specify a different color for window "panels" and application preferences windows. Previously, windows and panels had the same color, though they could use different window frames.
  • Redesigned window frames. The "Gradient" style has been completely redesigned as well as reprogrammed, so it's totally stable now. The "Glass HUD" frame has also been refined.
  • Experimental theming of focus color. This is an attempt to replace the usual blue or graphite keyboard focus color with one that matches your current window color. At this time, it only affects one or two types of buttons.
  • Check for CCI updates from the global menu. Now you don't have to open System Preferences to check for updates.
  • CCI Contextual Menu. You can now access the CCI global menu by right-clicking on virtually any window that has a titlebar.
  • Redesigned and expanded "Extras" Tab. With the various major additions to CCI "Extras," this tab now has four tabs of its own:
    • Alternate Interface Paradigms
    • Graphics Options
    • Interface Fluff, and
    • Other Options
  • Expanded implementation of Text Tools. The text tools available in the CCI global menu have not only been expanded to include full Mac OS X Format and Styles submenus. Of even greater use to those of you who love contextual menus, CCI adds a contextual menu that's available wherever you can write and edit rich text. The menu, labeled "Format," has the same set of tools as the Format menu in the CCI Menu's Text Tools section.
  • Numerous Bug Fixes and Enhancements To Earlier Features. CCI 2.5 has made still further progress in handling text color for best contrast (including the need for correct contrast colors on buttons when using the new Glossy theme), covers more of the many non-standard elements found in some Cocoa applications, and makes further strides in ensuring reliability and stability.
Other Information About CCI 2.5

There are a few differences between the way CCI works on Snow Leopard than it does on Leopard. I wouldn't characterize them as "bad news," per se, but they may annoy or disappoint some users.

  • App icon in menubar. I have succeeded in making this happen in 64-bit apps on Snow Leopard, but not in 32-bit apps. So for these apps, you'll have to make do with the app name, as the Good Apple intended.
  • Carbon windows don't hide. When you're using Single Application Mode (SAM), windows from some applications constructed mainly from Apple's older, "Carbon" frameworks refuse to hide as other app windows do. There are exceptions, fortunately. For example, Adobe Photoshop does obey SAM. (For the full scoop on Single Application Mode, refer to my recent Mars article, "The Ultimate Solution To Window Clutter: You Can Call Me SAM".

CCI 2.5 does have a few known bugs that you are likely to notice. Fortunately, each has a fairly simple workaround.

On Snow Leopard:

  • Exposé does not work correctly in CCI's default configuration. Most windows show up with only their bounding rectangles and titles showing.
    Workaround: Disable window blurring. Open CCI Preferences, select Extras tab, then the Fluff tab, and deselect the second checkbox on that screen. You'll need to restart any open apps to see the change. Spaces is affected by the same bug.
  • Finder sometimes will unexpectedly restart when you eject a disk image.
    Workaround: fThis bug occurs when you eject an image while you have the image selected in the sidebar. So, to keep the bug at bay, select another item in the sidebar either before or just after ejecting the disk image.

On Leopard:

  • When you enable the option to show the application's icon in the menubar, you end up disabling that app's Services Menu.
    Workaround: Deselect the CCI option that replaces the application's name with its icon in the menubar. Open CCI Preferences, select the Extras tab, then the Other tab, and deselect the second checkbox on that screen. You'll need to restart any open apps to see the change.
What about Application Compatibility?The good news here is that for Snow Leopard, I've actually been able to remove several apps from the "Incompatible Apps" list that CCI started maintaining in version 2.2. From testing so far, the following apps work just fine on Snow Leopard, though they still don't on Leopard:

  • Espresso
  • Picturesque
  • CSSEdit
  • Burn
  • Times
  • Sandvox

The following are still a problem, however, for one reason or another:

  • VoodooPad (sometimes)
  • iFreeMem 2.0
  • XTorrent
  • Coda

In version 2.5, CCI now explains the compatibility issue when it pops up a warning about a particular app.

For More Information

More information about CrystalClear Interface, including screenshots and documentation, are now available on the CrystalClear Interface website.

If you find a bug—particularly one that affects one of your favorite apps—you can either leave a comment to this article, or contact me through this page.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
February 2nd, 2010

Eight New Themes Coming in CrystalClear Interface 2.5

Besides the set of Crystal Document icons previewed recently, another feature of the forthcoming CrystalClear Interface 2.5 is a new set of eight beautiful preset themes, shown below. (Click the images for a closer look.) The themes are designed to complement the eight Frosted Crystals desktop pictures released with CCI 2.2. Of course, you can still set colors, frames, and transparency settings for Mac OS X windows to your own taste, as always. The preset themes are ones I've enjoyed and find a convenient shortcut to designing custom themes.

CrystalClear Interface @ 2008-10, Leland Scott
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
January 22nd, 2010

Introducing Crystal Documents:
A Set of Document Icons for CrystalClear Interface

This is a set of 74 document icons intended to complement CrystalClear Interface and the set of Crystal Albook system and application icons I released a couple of years ago. The set covers most of the document types used by Apple's applications as well as a limited set of document types for third-party applications. The icon set for third-party apps will be augmented substantially as time permits.

These icons are available for download now, and they will be included in the forthcoming release of CrystalClear Interface 2.5 (more on that in another article). In CCI 2.5, you will be able to automatically install and uninstall the various icon sets displayed below, including any of the Crystal Docs icons for any of the third-party applications you use. The new icon install feature will be included in the new CCI Preferences window.

Enjoy!

Crystal Docs icon set: Standard Mac OS X Applications
Crystal Docs icon set: iLife Apps
Crystal Docs icon set: Standard Mac OS X Utilities and Core Services
Crystal Docs icon set: Mac OS X Developer Tools
Crystal Docs icon set: Apple's iWork Suite
Crystal Docs icon set: Third-Party Applications
Crystal Docs icon set for the Frosted Crystal desktop pictures
CrystalClear Interface @ 2008-10, Leland Scott
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
August 25th, 2009

CrystalClear Interface 2.2

I posted the new version of CrystalClear Interface a few days ago, and then proceeded to hunt down and squash a couple of last-minute bugs. Yesterday, I was also moved to make one of the hard-wired features a configurable option. While not as dramatic an upgrade as version 2.1, CCI 2.2 nevertheless has a large number of new features, enhanced features, and bug fixes, as well a great deal of code optimizing. What follows is a summary of the more significant changes since version 2.1 was released in June.

  • Rewrite of Text Contrast Code. The new code in version 2.2 is much more compact, requires less processing, and is more robust and accurate to boot! It also now handles text labels on form fields.
  • Window of Quick Tips for New Users. A lot of what CrystalClear Interface does—as well as how it’s done—is not your average application fare. It’s won’t even be familiar to users who have previously tried theming software on the Mac. So, I put together a small panel that shows up the first time a user launches an application hosting CCI. The new panel briefly points out some of the features and methods a new user needs to know to make the most out of CCI.
  • Identifying Incompatible Applications. Starting in vertsion 2.2.0, CCI is maintaining a list of applications known to be incompatible with CrystalClear Interface. Whenever a user launches one of these apps, an alert notice will appear explaining the problem and offering to let them either “minimize” or disable CCI. It would be best if no such applications existed, but given the complexity of what CCI is doing, that’s never going to happen! The following applications are already on this list: Espresso, CSSEdit, Times, and Burn.
    If you encounter an application that doesn’t work in CCI’s default mode, please email me a note so I can do some testing and add it to the list.
  • Additions to the CCI Global Menu. CCI 2.2 squeezes a lot of functionality into its newly designed global menu. Here’s a brief rundown on the major changes:
    • Minimizing and Disabling CCI.  Now you can turn CCI off or minimize/maximize it right from the menu! Disabling adds the current app to the list maintained in the CCI System Preferences pane, and you’ll have to go there if you want to enable CCI for that app again. Minimizing and Maximizing can take place right from within the menu. Note that for any of these actions you’ll be asked to restart the current app.
    • Specify Your Desktop’s Brightness. Since CCI can’t see through your windows to account for the brightness of your desktop picture, it’s never been able to re-set the contrast text color when your desktop picture changes. If, like me, you have a rotating set of desktop images you like to use, this required either some compromise in appearance or some time to change the CCI theme to work best with the new background. In CCI 2.2, you’ll find a handy setting in the global menu that lets you tell CCI that you have a Dark Desktop at the moment, or a Light Desktop. CCI will then take that information and intelligently apply it to the text in your current windows, including all your other open applications. It’s not perfect, but I’ve really enjoyed having it available!
    • Text Tools. I added these out of frustration that many of the fine apps I use for formatting text leave out one or more of the various text format panels that are part of Apple’s Cocoa frameworks. Sometimes you can’t find a Color panel, sometimes the Font panel is hidden, and outside of RTF editors like TextEdit, Bean, and DevonThink Pro, you hardly ever have easy access to the Table panel. Besides those, there’s one incredibly useful text panel that I’ve never seen implemented in any Mac OS X application: The Font Options Panel. Once you get your hands on this, you’ll want it at the ready, as I do. (Apple has built many of its features into the Font panel you can find in iMovie.) And if you want to make a list or use your defined text styles, you can toggle the formatting Ruler on and off as well. All of these now appear in the new Text Tools submenu:
      • Fonts
      • Colors
      • Table
      • Font Options
      • Add/Edit Link
      • Toggle Ruler (which gives you access to lists, alignment, and styles, among other things.)
  • New Window Frame. Based on a frame developed a few years ago for ShapeShifter called "Cathode," the new "Shiny Dark" frame is perfect for those of us who like a rich, dark, sleek look for windows now and then. This frame is now the default for CrystalClear Interface.
  • Browser and Icon Views. File browser views, such as those in Save/Open panels, now get a complementary color, as do icon views.
  • New "Extras" Option. The "Extras" tab now includes an option to enable or disable the blur effect for window backgrounds. The effect helps readability and overall usability, but on some systems may also cause some distracting flickering of page elements. If you disable the blur, the change will take effect with the next window you open, not with your current one.
  • "Frosted Crystals" Desktop Pictures. The CCI 2.2 download includes the set of 8 desktop pictures featuring a "frosted glass" look that were previewed in a recent Mars article.
  • Redesigned Preferences Panel. The preferences panel for CrystalClear Interface has been redesigned for version 2.2. The new panel has a different tab style and coloring, is somewhat smaller, includes more labeling and explanatory text, and accommodates more window frame styles.
  • Custom Application Mods. Added some CCI theming to iMovie, iPhoto, Leap 2.0, and a few others. Also made some changes to handle Safari 4.0. In addition, I’ve just about finished theming the widgets in Apple’s iWork suite (Numbers, Pages, Keynote).
  • New Window Animations. Yes, I'm still fiddling with these! This time around, the windows fade in as in version 2.1, but they zoom out more like Quick Look panels.
  • Poor Man's Contextual Menu. I plan to rework this in a future update, but here's what you get in 2.2. In most of your applications running CCI 2.2, right-click (or Ctrl-click) on the window titlebar, and you'll gain access to the application's main menu, including, of course, the CCI global menu. This is a convenience for those of us who are too lazy to drag the mouse all the way to the system menubar. You won't be able to access the menu in applications with toolbars that extend their own menus into the titlebar (e.g., Safari).

More information, including screenshots and documentation, are now available on the CrystalClear Interface website. As noted there, this is likely to be the last free version of CCI, given the rather huge amount of time that's been devoted to it. I'm hoping that if you download and use version 2.2, you will make a donation to the cause.

One final note, regarding Snow Leopard, due to be released in a couple of days. CCI does work on Snow Leopard (Mac OS X 10.6), but will not load into applications running under the standard 64-bit memory system. Most of Apple's own applications run as 64-bit apps by default, and some newer third-party ones do as well. For these applications, you can load CCI by opening the application's Info window in the Finder and selecting the "Open 32-bit" checkbox. In addition, the CCI graphics module is not yet compatible with Snow Leopard, so you'll see the default Snow Leopard buttons and other widgets rather than CCI's. I'm hoping the latter problem can be solved soon.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
August 14th, 2009

Introducing Frosted Crystals for CrystalClear Interface

These are snippets of the 9 "Frosted Crystal" desktop pictures that'll be distributed with CrystalClear Interface 2.2. The look of frosted glass looks terrific when viewed through CrystalClear windows! I hope you enjoy using them as much as I have.

CrystalClear Interface @ 2008-09, Leland Scott
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
June 13th, 2009

CrystalClear Interface 2.1

The latest release of CrystalClear Interface is now available. Version 2.1 is a much more significant upgrade than I'd planned when I began working on it in February! Some of these are highly requested enhancements, while others are here simply because they please me.
  • CCI Load Filter. CCI 2.1 adds a new component that acts as a gatekeeper to apps you designate as "disabled" in the CCI Preference Pane. With this in place, you can reliably turn CCI off for individual apps as needed, or disable CCI entirely using the Preference Pane button for that purpose.
  • Background Blur Filter. Another major improvement is the use of a blur filter behind all windows, which is one more way to enhance focus on the frontmost window by minimizing background distractions. This blur filter is similar to the one Apple uses for its default sheet windows.
  • Preset Themes. In the CCI Preferences window, you'll find a 5th tab called "Themes." I view this as a starting point for a more robust, extensible system of theming down the road (time permitting!) For me, the four themes included in CCI 2.1 are designed to complement the four desktop pictures I most commonly use, which by the way are included in the CCI download package. They are simply a fast shortcut for switching the frame style, transparency, and color of windows and text areas. Now, rather than having to do this each time I pick a different desktop picture (which is, I must admit, rather tedious), I can easily pick one of the four that works best.
  • Matching Table Row Colors. Instead of seeing the same grey and white alternating row colors for tables all the time, CCI 2.1 dynamically sets the colors to match the color you've chosen for your outline views.
  • Three new "Extra" options. In CCI 2.1, you can now
    • Opt to suppress the horizontal scroll bar in multicolumn file-browser views if you want,
    • Have the ability to move windows by any exposed background areas, not just by their titlebars.
    • Use the small scrollbar style for all your applications instead of the regular size.
  • New Window Animations. CCI 2.1 uses a "fade-in" animation rather than the "move-in" animation used previously. I find this a bit smoother and less intrusive, and it causes less wear and tear on your windows by not leaving their screen positions in awkward places (like with their titlebars floating at the bottom with the dock) should you turn CCI off for some reason. In addition, I couldn't resist adding some new eye candy for windows as they close; now, the closing animation varies a little based on the kind of window that's closing.
  • Modified Graphics. Some of the CCI system widgets have been redesigned... most noticeably, the titlebar buttons and the scrollbars.
  • Clean HUD Windows. This has been on my to-do list for quite a while now, and I finally figured out how to do it right. In previous versions of CCI, the HUD window style that's applied to "utility" windows like inspectors, info panels, and utilities like the font and color panels didn't display the smooth rounded corners at the top and bottom edges that you expect from those Apple includes. Instead, you'd see a faint horizontal highlight artifact at the top, and the bottom edges would be squared off. Now, that design flaw is gone, and all CCI HUD windows look the way they should have all along. The screenshots below show the "before" and "after" views.
  • Support for "Garbage Collection."A growing number of Mac applications utilize the "garbage collection" feature of Objective-C Apple introduced in Mac OS X 10.5 ("Leopard"). This version of CCI can be used by these apps, which include Xcode, Smultron, and others.
  • Myriad of Smaller Enhancements. One example is that the CCI Help window is now resizable, so it should be somewhat easier to read.

More information, including screenshots and documentation, is available on the CrystalClear Interface website.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
February 7th, 2009

The Many Faces of CrystalClear Interface 2.0

Desktop: Dark

Window Frame: Simple

Window Color: Teal

Sheet Frame: Gradient

Panel Frame: Glass

HUD Panels: Colors, CCI Prefs

Desktop: Dark

Window Frame: Simple

Window Color: Teal

Panel Frame: Glass

HUD Panel: CCI Help

Desktop: Light Pastels

Window Frame: Gradient Bevel

Window Color: Mauve

Panel Frame: Bevel

Panel Color: Light Green

HUD Panel: About CCI

Alert Panel: Simple Frame, Light Red

Desktop: Light Pastels

Window Frame: Glass

Sheet Frame: Glass

Panel Frame: Bevel

Panel Color: Light Green

HUD Panels: Colors, CCI Prefs

Desktop: Teal

Window Frame: Glass

Panel Frame: Gradient

HUD Panel: About CCI

Desktop: Teal

Window Frame: Gradient

Sheet Frame: Glass

Panel Frame: Glass

HUD Panels: Colors, CCI Prefs

Screenshot of CrystalClear Interface 2.0 with Teal Background and Glass Theme Window
Screenshot of CrystalClear Interface 2.0 with Pastel Background, Glass Window, and Glass Sheet

The beta release of CrystalClear Interface 2.0 is now available on its new website. Also on the site is a documentation page describing all the features of this new version. Be sure to peruse that information—especially the tips and troubleshooting sections—before you try it out.

Below are a few screenshots to whet your appetite!

The beta release of CrystalClear Interface 2.0 is now available on its new website. Also on the site is a documentation page describing all the features of this new version. Be sure to peruse that information—especially the tips and troubleshooting sections—before you try it out.

Below are a few screenshots to whet your appetite!

Screenshot of CrystalClear Interface 2.0 with Dark Background, Teal Window, and Gradient Sheet

Screenshot of CrystalClear Interface 2.0 with Dark Background, Teal Window, and Simple Frame

Screenshot of CrystalClear Interface 2.0 with Pastel Background, Glass Window, and Glass Sheet

Screenshot of CrystalClear Interface 2.0 with Pastel Background, Mauve Window, and Rose Alert Panel

Screenshot of CrystalClear Interface 2.0 with Teal Background and Glass Theme Window

Screenshot of CrystalClear Interface 2.0 with Teal Background and Gradient Theme Window

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
December 18th, 2008

It’s Coming . . . CrystalClear Interface 2.0

CrystalClear Interface 2.0

Window Transparency

Adjust the transparency of windows as much or as little as you like. Customize for individual windows and applications. In CrystalClear Interface, transparency is used to make the top window very obvious and to reduce distraction from inactive windows.

Window Colors

In CCI 2.0, you can set different colors for various kinds of windows:

  • Regular windows
  • Panels
  • Alert windows
  • Sheets

Window Frames

Also new in CCI 2.0 are custom window frames. You have 8 frame designs to choose from for regular windows, 5 for panels, and 3 each for sheets and alerts. CCI also automatically applies the "HUD" frame and color to most utility windows, such as Colors and Fonts.

Window Frames Available in CrystalClear Interface 2.0

Unified Leopard Widgets

The new Leopard button look you see in the Finder, iCal, System Preferences, and a few other apps is really great, but it's not uniformly applied. CrystalClear Interface 2.0 tries to remedy this with Leopard-style widgets throughout.

Unified Leopard Button Look in CrystalClear Interface 2.0

And one more thing . . .

Actually, there are many more things, but they'll have to wait until the beta release, which I hope will be before the end of the year. The software is pretty much done, but now there's the documentation and Help pages. Stay tuned!

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
April 21st, 2008

CoreUI Finder Utility Now Available For CrystalClear Interface 1.9

CoreUI Finder Icon

I prepared this add-on to CrystalClear Interface 1.9 a few weeks ago, and it works like a charm for me. It’s a simple AppleScript utility that quits the Finder, turns CoreUI back on, and restarts Finder again.

I keep it in my Login Items so the Finder looks right every time I log in. If you happen to relaunch the Finder during your current session, you’ll need to CoreUI Finder in Finder Toolbarrun CoreUI Finder again. For such cases, I keep the utility in my Finder toolbar. CoreUI Finder is available in the Mars Downloads section, or from this URL.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
March 24th, 2008

CrystalClear Interface Update: Version 1.9.1

CrystalClear Interface: Where No Theme Has Gone Before
Update 3/24/08: New download of 1.9.1 posted. Yesterday’s post inadvertently had the 1.9.0 installer instead of the 1.9.1 installer. Sorry!

Update 3/23/08: This release fixes a problem with the uninstaller, and is otherwise the same as 1.9.0. The uninstaller now runs a new utility, GraphicsToggle, after running the installer/uninstaller, and this takes care of making sure the Leopard graphics are fully restored. See the documentation included with the download for more information about GraphicsToggle.

Since releasing the last version of CrystalClear Interface (CCI) in January, I’ve been hard at work on a lengthy—and, it sometimes seems, never-ending—list of bug fixes. Given what CCI is trying to accomplish, I don’t suppose I’ll ever release a bug-free version. However, I’m pleased to say that version 1.9 is much better behaved than 1.8.

Of course, the really fun part for me is seeing what else I can get CCI to do in the way of theming various aspects of Aqua. Many of the experiments in 1.9 are customizations I would have relied on ShapeShifter for if it were available for Leopard. However, it appeared that Unsanity was going to be some time in getting a Leopard-compatible ShapeShifter finished, and (no offense, Apple!) I’ve really gotten bored (sick?) of the Aqua “theme.”

I mean seriously, Aqua is soooo 2001! I don’t know about you, but I’ve been itching for something insanely different for awhile now. Leopard is a marvelous upgrade in many ways, and yes, it did finally introduce the much-requested “unified” theme for OS X windows, a controversial (why?) new menubar, and a cool new Dock, but overall its look and feel is the same-old, same-old Aqua we’ve used since Mac OS X 10.0. Seven years is a long time in the Internet age, Steve! (But you know that, I’m sure… we all have our multiple priorities to juggle.)

There really are too many enhancements in CCI 1.9 to list them all here, but here a few of the highlights:

  • Transparent scrollbars. I’ve been trying to make these in ThemePark and ShapeShifter forever, but finally gave up some time ago. I’m pleased to say that I was successful in bringing them to shiny life in CrystalClear Interface 1.9!
  • Titlebar Buttons. There’s nothing exciting in titlebar buttons per se, but Leopard windows refuse to use the ones you slip into Extras.rsrc, so I had to try to the CCI route. It worked!
  • PopUp Buttons. In another experiment, I tried banishing Aqua from my popup buttons by forcing them to adopt a different, Apple-designed “bezel style.” As I am quite fond of the “recessed” bezel style introduced in Tiger, I chose that one.
Transparent Scrollbars in CCI 1.9Customized Toolbar Buttons in CCI 1.9Customized PopUp Buttons in CCI 1.9Customized Segment Buttons in CCI 1.9New Theme with CCI DisabledCustom HUD Buttons & Bevels
  • Other Buttons. The trick I used for popup buttons came in handy for theming other buttons as well… again using alternative “official” bezel styles. You’ll see the shiny metal theme used for segmented buttons and push buttons (including toolbar buttons like those used in Mail). Disclosure buttons also get a tweak.
  • HUD Windows. I also did some work on this kind of window, trying to unify the look across the various applications that use them, and across the kind of “utility” window they represent.
  • Text Color Contrast. My attempt to make sure all text is readable regardless of the window color, level of opacity, or desktop picture you may prefer has improved in 1.9. Still needs work, but it’s much better.
  • System Graphics. I decided to go ahead and release a custom version of Extras.rsrc (and Extras2.rsrc for Intel Macs), since it incorporates some of the system graphics I haven’t had time or been able to customize using Cocoa in CrystalClear Interface itself. In this category are things like tab bars, tab bar background bevels, text field overlays, progress bars, radio and check buttons, and a few others. The CCI 1.9 install program includes an option to install these graphics if you choose. (An uninstall option restores the original system graphics files.) It’s important to note here that most of the graphics in the Extras resource files only work by disabling some of the new Leopard graphics. In the Preferences for CCI 1.9, I’ve added some options to let you choose whether or not to use CCI graphics in this manner. You can opt out of CCI’s graphics either globally or for individual applications.
  • New Window, Toolbar, and Titlebar Gradients. I started playing with Leopard’s new NSGradient class and discovered how easy it is to create cool gradients for these window elements. In CCI 1.9, you’ll discover most of these when you set CCI to “Disabled” for a particular application. However, the new gradients also show up in some Carbon applications like the Finder or PhotoShop when you call forth an Open or Save dialogue box. In a future version, I’d like to make this window style an optional variant within CCI Preferences. Along the same lines, you’ll find some HUD style windows popping up even if you have CCI disabled.

Sad to say, all of these enhancements do come at a price.

No, I’m not talking about money (though I’d really like a few bucks one day for all this toil and trouble!) The price is that I’m jettisoning support for Tiger (Mac OS X 10.4) as of CrystalClear Interface 1.9. I had intended to keep CCI running on Tiger for some time, but even though I had coded to keep Leopard-only code out of Tiger’s way, when time came last month to test what I had, it became clear pretty quickly that Tiger just didn’t want to play along. Not only do I have a real shortage of time, but my only Tiger test system is going away soon, so I won’t even have a way to test if I did have the time.

So… sorry, Tiger fans. The good news is that you still have ShapeShifter to satisfy your diet for theming alternatives. In the meantime, save up your money and upgrade to Leopard when you can… if for Time Machine alone, it’s well worth it! (Time Machine seems more awesome too me the more I use it. How did I ever get along without it?)

And Leopard fans, rejoice! CCI 1.9 begins to feel like an actual, complete theme… and one of the only options I’ve got at this point.

What Does CrystalClear Interface Do?

Rather than repeat everything from the January article, I’m just going to link to it. It has a section with the same heading as this one that runs down all of CCI’s features pretty well.

However, because of continuing confusion about where you can access CCI’s Preferences window, I’m reiterating that info here. As with the previous versions, you access CCI Preferences by clicking on the small, round icon in any application in which CCI is loaded. For example, here is where CCI’s menu appears in TextEdit: CCI's Icon in TextEdit Menubar

Caveats for CCI 1.9

So, CCI 1.9 does all these cool things, but what’s the downside? Well, I wouldn’t be a good wizard if I didn’t warn you that “Yes, Dorothy, there is a dark side to CrystalClear City.”

  • Although there are fewer cases that I know of this time around, you will undoubtedly encounter an application that doesn’t work well with CCI turned on. In this case, you should try just disabling CCI for that app by using the checkbox at the top of the CCI Preferences panel.
  • Aperture crashes when you terminate it. It works fine otherwise.
  • Small scrollbars need a smaller image to go with them. In addition, empty scrollbars may show a small, unnecessary piece of themselves at the top of the scroll track.
  • In apps such as Mail and Activity Monitor, the layout of items in a given Preferences panel tab gets messed up if you close and then reopen the panel.
  • In some Carbon apps, such as Photoshop, you’ll find that the background window color doesn’t match the background color of button controls and/or text.
  • Buttons don’t always get themed when you first open a window or tab item. You can force them to theme themselves by tabbing to a different keyboard input control, or by clicking in an inactive text field.
  • The Crystal Menubar still isn’t always showing its state correctly in the CCI menu.
  • You may find memory usage higher than usual in some applications… although I’ve done a lot of memory-leak cleanup, you can never do enough, it seems. I find Safari and iWeb, in particular, get draggy over time, but they snap back when I restart it. (I do think CCI makes iWeb more crash-prone than usual.)
  • When you have CCI disabled in an application, you may find a window (usually one such as a preference panel or utility window) that refuses to be dragged. This problem occurs when you first disable CCI in an application and will be eliminated by restarting the app.
  • If you have CCI disabled and then re-enable it, one of the windows may take on a “shadowy” appearance. You can workaround this by closing the window’s toolbar and reopening it. Or it will go away if you restart the app.
  • In Pages with CCI disabled, you will experience a lag in keystrokes initially. To fix the lag, resize the window slightly. The problem will not recur during the current Pages session.
  • In Numbers with CCI enabled, attempting to use one of the popup buttons on the toolbar will cause the app to crash. To workaround, either disable CCI or do some work in your spreadsheet before clicking on a toolbar popup button.
  • With CCI disabled, some HUD-style, dark-background windows use black text rather than a contrasting white, as they do with CCI enabled.

As before, Crystal Clear has much more of an effect on Mac OS X apps that were developed using the “Cocoa” frameworks than it does on apps developed with the older “Carbon” frameworks. Some apps are a mix of the two frameworks, so some windows may get themed “clear,” while others won’t. Most of the applications Apple builds are Cocoa apps, with the notable exceptions of iTunes and the Finder. Nearly all new Mac apps built today use the Cocoa frameworks, but a number of high-profile apps that have been around for years are still built with Carbon. In this latter category are all apps from Microsoft and Adobe, as well as some older apps from Mac vendors that are now building with Cocoa, such as BBEdit (BareBones).

It’s also important to note that CCI 1.9 will be most enjoyable if you run it on a recent-model Mac with at least 2GB of RAM and a 2Ghz or better processor.

Information about Cocoa InputManagers on Leopard

Left To Do For Future Versions

No, I’m not done yet, much to my wife’s dismay. :-) Although I intend to take a break for awhile (if I can drag myself away…), here are a few things I still want to incorporate into CrystalClear Interface:

  • Menus.
  • Menubar.
  • Focus highlight color.
  • Spotlight.
  • Did I mention Menus?
  • Other applications.
  • Finder and other semi-Cocoa Carbon apps.
  • Expand CCI Preference options.
  • Allow user customization of window elements (backgrounds, buttons, etc.)
What’s in the CCI Download Package?

Not nearly as much as before! Besides some nice desktop pictures, documentation, and a screenshot, the 1.9.1 package just includes the CCI software installer, which lets you do the following:

  1. Install CrystalClear Interface 1.9.1. This installation also checks to see if you have an old version of SetAlphaValue installed and moves it to a (Disabled) folder, since it can conflict with CCI.
  2. Optionally install system graphics. This option is off by default, but if you want to use the custom “Extras” resource file included in the CCI installer, click the checkbox before running the installer.
  3. Uninstall. The Apple PackageMaker program doesn’t make including an uninstaller very elegant, but I’ve put one in anyway. If you want to uninstall CCI and the custom system graphics at any time, run the CCI installer again and select the uninstall option. (Be sure to deselect the install option if you do this.) Note: The install program will still label the Uninstall step as an Install step.

Download CrystalClear Interface 1.9.1 (7.7 MB)

Update 3/16/08: If you uninstalled CCI 1.9.0, and buttons in the Finder and Safari no longer have the new “Leopard” look, download GraphicsToggle and run it. Just doubleclick on the GraphicsToggle icon, and it will do its thing and then quit the Finder. You’ll need to relaunch the Finder to complete the restoration.

Update 3/23/08: The new CCI 1.9.1 package not only includes GraphicsToggle as a separate app, but also incorporates it into the installer/uninstaller, and this takes care of making sure the Leopard graphics are fully restored. See the documentation included with the download for more information about GraphicsToggle.

Note: If you’re looking for the ShapeShifter theme, the Crystal Albook iconset, or other extras, you can download them from the Mars Themes page… select Crystal Clear (for ShapeShifter) version 1.5.

Screenshot with CrystalClear Interface 1.9
LICENSE

© 2008, Leland Scott, Musings from Mars

0Use of this software is free of charge, but redestribution or modification is prohibited without the author’s permission. All rights reserved. The author assumes no responsibility for any damage to your system that may result from the use of this software. Please be sure to read all instructions and information in order to make the most of CrystalClear Interface.

Version History
1.9.1 03/23/08 Incorporates a new utility as part of the uninstall process that makes sure the Leopard graphics are fully restored to their original state. This program, GraphicsToggle, is also included separately in the download package for users of CCI 1.9.0 who want to use it after uninstalling.
1.9.0 03/12/08 Significant improvement in stability, and numerous extensions in capability. CrystalClear Interface 1.9 begins tackling theming chores previously handled by ShapeShifter, and also makes its presence felt visually on “disabled” apps. The installer optionally installs a system graphics file that replaces some images with those from the ShapeShifter version of Crystal Clear. Note: Starting with this release, CCI will only run on Mac OS X 10.5 (”Leopard”).
1.8.12 01/02/08 Additional round of performance optimizations and bug fixes. Targets include iPhoto, iChat, PhotoBooth, iWeb, and, on Leopard, QuickLook. Crystal Menubar’s launch mechanism still needs work, but it should no longer drop down the screen when you enter full-screen mode in an application.
1.8.0 12/1/07 CrystalClear Interface was numbered early in development, since it was conceived as an extension of the ShapeShifter theme, CrystalClear. However, things turned out a bit differently. The article on Musings from Mars explains.
1.5 9/7/07 Crystal Clear 1.5 was developed to complement CrystalClear Interface, then in development.
1.2 6/6/07 Crystal Clear 1.2 introduces a new approach to the system menubar that attempts to solve the problem created by backgrounds in menu extras there. There are many other new interface elements as well as some fixes to earlier ones. This version does not include the Crystal Albook icons, but they can be downloaded separately. See this article for the latest information on Crystal Clear releases.
1.1 4/19/07 Crystal Clear 1.1 has several major new interface elements as well as a newly designed, full set of Crystal Albook icons (version 1.0).
1.0 3/26/07 Crystal Clear 1.0 provided a complete package, with both “Lite” and “Dark” variants included. This release also included an initial set of Crystal icons based on the Albook icon set.
0.6 3/2/07 Introduced a variant called Crystal Clear Lite, which utilizes translucent white menus instead of translucent black ones. The variant also incorporated numerous other improvements and bug fixes to the original release.
0.5 2/13/07 First release of Crystal Clear. This version is what became known later as Crystal Clear Dark. The development of Crystal Clear was described in this introductory article on Musings from Mars. A few days earlier, this preview article appeared, with many application screenshots.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
January 2nd, 2008

Announcing CrystalClear Interface v. 1.8.12

This unexpected journey into the realm of transparent user interfaces has taken me much further than I ever imagined. It's been almost a year now since the first inkling of the idea rattled my brain, which led to the first release of Crystal Clear for ShapeShifter in mid-February.

Thanks to the Cocoa InputManager SetAlphaValue, I was led, Pied-Piper-like, into the enormous and strange world of Objective-C and Cocoa during the summer. I'm finally surfacing from that expedition and have brought a souvenir of my travels into the strange, terrifying, and glorious realm of Cocoa.

Each computer user will have to decide for themselves just how much transparency they can stand while working at their Mac. I was surprised at the amount of loathing that was expressed towards Leopard's newly translucent menubar last month. But I don't think it's indicative of any permanent flaw in the concept. Quite the contrary, in fact: If anything, Leopard's toying with translucency is too much of a baby step, on the one hand, and smacks of me-tooism with Vista, on the other.

Very briefly, the premise I'm proposing is that our computer monitors are essentially glorious light sources, much like the ones that shine through windows in our houses and automobiles. Just as we do with those windows, there are times when we want to bask in the beauty shining through, and other times that we prefer to close the blinds to avoid glare. On the computer, we already know how to close the blinds. I'm suggesting that there's a world of beauty awaiting computer users who can enjoy the light as well.

Based on my experience in building this software, I'd say transparency is quite practical to achieve on the Mac, with the appropriate support and technical leadership from Apple. What you'll find in CrystalClear Interface is flawed in a number of ways, but is still a good demonstration of what's possible. I'll have more to say on this point once I recover from this release, which is already 3 months later than I had planned.

Since this trinket I'm bringing, which I'm calling CrystalClear Interface, is still a work-in-progress, I'll certainly keep tinkering away at it and will post updates for any who want them.

border: none; height: 220px; width: 300px;

InterfaceBuilder on Leopard with CrystalClear Interface 1.8 and the Eagle Nebula desktop picture (c/o finalfrontier.za.org). Click for larger version.

For now, CrystalClear Interface is available for free, but if I'm able to make the improvements I envision--both in functionality and in stability--I may want to get a little monetary reward for my bauble eventually. That said, if you try CrystalClear Interface now, learn how to use it, and like it, it would be terrific to know of your appreciation by way of a donation (you can use the link on this page for that).

The download package has three documents that give brief explanations of its contents, including a Help document for the new CrystalClear Interface software. What follows are two lists: First, some highlights about the latest, greatest Crystal Clear release, and second, the contents of the download itself. There's a lot here, so pay attention! :-)

First, it's important to understand that Crystal Clear Interface can be used either in conjunction with the Crystal Clear appearance theme for ShapeShifter, or on its own without ShapeShifter running. It's also compatible with numerous ShapeShifter themes besides Crystal Clear. Another confusing point is that I'm releasing here an upgrade to the Crystal Clear ShapeShifter theme as well, though you probably won't want to use it without using CrystalClear Interface.

What Does CrystalClear Interface Do?

Assuming you're already familiar with the appearance theme (if not, there's a Welcome document in the download that covers it), the following is a list of the user-interface customization options that are introduced with Crystal Clear Interface. Many of them have been mentioned in the two preceding articles on this release, which are worth looking at for the screenshots and screen movies if not the words:

  1. Crystal Clear 1.5 Preview:
    Yes! The Term "Opaque Window" Is An Oxymoron
    (8/6/07)
  2. Update On That Crystal I’ve Been Growing (10/11/07)
  3. Manages overall window transparency (as SetAlphaValue did), including the ability to customize transparency for windows both globally and on a per-application basis. Also from SetAlphaValue, you can set custom transparency values for individual, named windows, and for unnamed windows of given dimensions.
  4. Adds separate transparency settings to window backgrounds and background colors of text views of various kinds.
  5. Replaces the default window "frames" of Mac OS X Aqua with transparent ones that more or less reproduce the look of windows in the ShapeShifter version of Crystal Clear. Non-utility panels have a visually distinct transparent frame.
  6. Puts a Crystal Clear icon in the main menubar where you can find it. (Many users of SetAlphaValue could never figure out how to find its powerful settings... ) There's also a preference option that lets you move the Crystal Clear menu item from the main menu to the application menu if you need to.
  7. The Preferences pane has been redesigned with an eye toward expanding the number of settings users can control. Initially, it adds six controls: Three color controls and three optional settings.
  8. The Color tab lets you customize colors in three parts of the interface. Most significant, you can customize the background color of application windows, using the standard color picker and also including transparency as one variable. With this option, you can restore opaque windows if that's your pleasure. The second control is for the background color of "column view" text areas, such as the ones in iCal, Xcode, Mail, etc. Finally, I added an option that lets you customize the text color in certain menus--namely, the ones that you always wished you could theme when using or designing a "dark" ShapeShifter theme.
  9. CrystalClear Interface also introduces somewhat superfluous animations that fire when you close windows. An option in another new tab lets you turn the animation mode off if you like.
  10. Another option, which is
    disabled by default, lets you turn on SAM (single application mode). Since SAM is one of the desktop paradigms that I believe are essential to successful adoption of clear interfaces, I'm offering this minimal version as a start. I still use LiteSwitch myself for day-to-day SAMming, because it (a) works with Carbon apps, too, and (b) implements the standard "Shift-when-switching" key that lets you keep two (or more) applications onscreen at the same time when necessary.
  11. Utility-type panels (such as the color and font panels, and "inspector" panels) are designed with a faux "HUD" look that’s become popular in Apple’s software lately.
  12. Sheets are designed as a light blue sheet of glass, and "alert" panels appear in a gold color. The structure is in place to allow users to customize the color settings for both of these kinds of window objects.
  13. To make CrystalClear windows look as much like glass as possible, I was able to persuade a slice of transparent "highlight" glass to affix itself to each one. The effect is really quite cool. The shine resizes itself with its window and disposes of itself when the window is closed. Again, I plan eventually to let users turn the shine on and off, and also to select from a few other shine "styles."
  14. This version has a routine that changes the background text color from black to white in the HUD-style windows that are by default set in a dark translucent color. Customizing the text color contrast in this way is key to making windows of variable color and transparency readable. I've managed to do the same thing to some other windows (concentrating on those that have transparent backgrounds), but the function is still evolving.
  15. Besides a link to Preferences, the CrystalClear menu item now also has a selection for turning the Crystal Menubar on and off. (The on-and-off part is still a bit buggy.) This function activates a newer version of the Crystal Menubar, but you can still use the one I released in August instead.
  16. You can disable CrystalClear Interface on a per-application basis, as you could with SetAlphaValue. Even in this mode, however, you can enjoy a side-benefit of the software: CrystalClear Interface activates the "Opacity" slider everywhere the Color panel is used (well, except for Carbon apps). This means you can get transparent backgrounds in applications like Xcode, Coda, Smultron, etc., that otherwise wouldn't let you!
What's In the Crystal Clear Package?

The Crystal Clear download includes the following files in the main folder:

  1. Crystal Clear v15.guiKit (Both variants of Crystal Clear for ShapeShifter).
  2. CrystalClear Interface.mpkg (Installer for CrystalClear Interface).

There are six subfolders in the package:

  1. docs: Two Welcome documents, one for CrystalClear Interface and one for Crystal Clear for ShapeShifter, and a Help document (which is also included in the software's preferences pane).
  2. icons: I've updated the Crystal Albook icon set, adding a dozen or so new icons. This folder has a GuiKit file for use with ShapeShifter, and three iContainers for use with CandyBar (they were made with the terrific, new CandyBar 3.0, but I think can be used with previous versions as well).
  3. menu extras: Here you'll find folders with menu-extra graphics and installation ReadMe files for Chronosync, DropCopy, FastAndSlow, FastScripts Lite, iKey, MainMenu, Sound Source, Yahoo Widget Engine, and YouControl Tunes.
  4. other extras: This is where you'll find the iCan theme, the updated Growl style, and a folder for the extra SafariStand toolbar graphics.
  5. pics: Contains full-screen previews for both Crystal Clear and CrystalClear Interface. The pic of Crystal Clear (ShapeShifter) is taken with CrystalClear Interface running on Tiger (Mac OS X 10.4.10). The pics of CrystalClear Interface on its own is taken in Leopard (Mac OS X 10.5.1).
  6. desktop pics: A Crystal Clear user sent me a terrific batch of desktop pictures with a Cosmos theme, which, given Leopard's default desktop, is quite timely. I've been enjoying using them lately, and in fact they provided the backdrop for some of the pictures I took for the Musings from Mars release article.
Known Issues and Usage Notes
As before, Crystal Clear has much more of an effect on Mac OS X apps that were developed using the "Cocoa" frameworks than it does on apps developed with the older "Carbon" frameworks. Some apps are a mix of the two frameworks, so some windows may get themed "clear," while others won't. Most of the applications Apple builds are Cocoa apps, with the notable exceptions of iTunes and the Finder. Nearly all new Mac apps built today use the Cocoa frameworks, but a number of high-profile apps that have been around for years are still built with Carbon. In this latter category are all apps from Microsoft and Adobe, as well as some older apps from M
ac vendors that are now building with Cocoa, such as BBEdit (BareBones).

In addition, there are a number of applications that may not work properly with CrystalClear Interface running. On Leopard (Mac OS X 10.5), in particular, I have done less testing than on Tiger. Applications that I've experienced some difficulty with include:

  1. InterfaceBuilder (Leopard) (better with v. 1.8.1)
  2. Numbers (actually works now with v. 1.8.1)
  3. Console (Leopard). It runs fine, but crashes if you close a window showing the tabular log data.

If you need to disable CrystalClear Interface in a particular application, simply select the checkbox at the top of the Preferences window. In this situation, it's a good idea to quit and restart the application afterwards.

On Leopard, there is a bug involving the main menubar, which I'll be working on for a future release. Occasionally, selecting the main menubar will cause the application to crash, but it's a fairly rare occurrence. I also experience an occasional crash when clicking on a window's close button.

The Crystal Menubar loading/unloading mechanism is still buggy. If you find that you've launched more than one menubar, for now you'll have to use ActivityMonitor to quit one of them. In ActivityMonitor, enter "Crystal" in the search field to locate the Menubar applications.

I'll be actively developing CrystalClear Interface for some time, so if you experience a particular bug, please email me a report with as much detail as possible: llscotts at fastmail.fm

To uninstall CrystalClear Interface, delete the folder "CrystalClear" from your /Library/InputManagers folder. Deleting this folder will require you to authenticate as an admin user.


Download

Download CrystalClear Interface 1.8.0 package (12.4 MB)

» Update 01/02/08: Download CrystalClear Interface 1.8.12 (0.8 MB)

Note: Version 1.8.12 consists of an additional round of performance optimizations and bug fixes. Targets include iPhoto, iChat, PhotoBooth, iWeb, and, on Leopard, QuickLook. CrystalBar's launch mechanism still needs work, but it should no longer drop down the screen when you enter full-screen mode in an application.

The thumbnails below link to full-size desktop screenshots on my deviantArt site. Hope you enjoy the surprise!

0



LICENSE

c 2007, Leland Scott, Musings from Mars

Use of this software is free of charge, but redestribution or modification is prohibited without the author's permission. All rights reserved. The author assumes no responsibility for any damage to your system that may result from the use of this software. Please be sure to read all instructions and information in order to make the most of CrystalClear Interface.

Version History
0.5 2/13/07 First release of Crystal Clear. This version is what became known later as Crystal Clear Dark. The development of Crystal Clear was described in this introductory article on Musings from Mars. A few days earlier, this preview article appeared, with many application screenshots.
0.6 3/2/07 Introduced a variant called Crystal Clear Lite, which utilizes translucent white menus instead of translucent black ones. The variant also incorporated numerous other improvements and bug fixes to the original release.
1.0 3/26/07 Crystal Clear 1.0 provided a complete package, with both "Lite" and "Dark" variants included. This release also included an initial set of Crystal icons based on the Albook icon set.
1.1 4/19/07 Crystal Clear 1.1 has several major new interface elements as well as a newly designed, full set of Crystal Albook icons (version 1.0).
1.2 6/6/07 Crystal Clear 1.2 introduces a new approach to the system menubar that attempts to solve the problem created by backgrounds in menu extras there. There are many other new interface elements as well as some fixes to earlier ones. This version does not include the Crystal Albook icons, but they can be downloaded separately. See this article for the latest information on Crystal Clear releases.
1.5 9/7/07 Crystal Clear 1.5 was developed to complement CrystalClear Interface, then in development.
1.8 12/1/07 CrystalClear Interface was numbered early in development, since it was conceived as an extension of the ShapeShifter theme, CrystalClear. However, things turned out a bit differently. The article on Musings from Mars explains.
1.8.1 12/22/07 This version adds an option to disable the "window shine", as well as makes a number of improvements to stability and performance, particularly on Mac OS X 10.5 ("Leopard").
1.8.12 01/02/08 Additional round of performance optimizations and bug fixes. Targets include iPhoto, iChat, PhotoBooth, iWeb, and, on Leopard, QuickLook. CrystalBar's launch mechanism still needs work, but it should no longer drop down the screen when you enter full-screen mode in an application.
border: none; height: 220px; width: 300px;
border: none; height: 220px; width: 300px;
border: none; height: 220px; width: 300px;

System Preferences (Desktop Pictures) on Leopard with CrystalClear Interface 1.8 and the Incarnation desktop picture (c/o artofgregmartin.com). Click for larger version.

Time Machine on Leopard with CrystalClear Interface 1.8 and the default Mac OS X 10.5 desktop picture (Warp). Click for larger version.

Automator on Leopard with CrystalClear Interface 1.8 and the Celestia III desktop picture (c/o artofgregmartin.com). Click for larger version.

PathFinder (Spotlight Viewer) on Leopard with CrystalClear Interface 1.8 and the Orion Nebula desktop picture (c/o spacewallpapers.net). Click for larger version.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
October 11th, 2007

Update On That Crystal I’ve Been Growing

Streaming QuickTime (2 Minutes). Audio On | Off

Click  to play or hide movie.
Click  to play or hide movie.
Update 10/24/07: The beta release of CrystalClear Interface v. 1.8 was made available early this morning to testers who volunteered try it out. With luck, version 1.8 will be ready for the world some time next week. Thanks to all those who agreed to beta test the software!

I can’t believe it’s been 2 months since I published the preview article for Crystal Clear 1.5! What was going to be a 2-3 week project after that turned into a monster of a project that’s taken me on several long, exciting, rewarding, but often tortured journeys into the bowels of Mac OS X and Cocoa, the primary framework for building Mac OS X software in the programming language Objective-C. But the story of those journeys–if I ever have time to write them down–would be an article unto itself.

Today, I just want to briefly report what’s going on with Crystal Clear. Besides the features noted in August, the screen movie above shows a variety of noteworthy advances, some obvious and some not so obvious. Here are the ones I want to point out in particular:

  • Crystal Clear 1.whatever (I’m thinking of jumping straight ahead to 1.8…) will run as a standalone application without ShapeShifter. As shown in the movie, it can be used with plain old Aqua, but you can just as easily run it with many ShapeShifter themes.
  • This version of Crystal Clear replaces SetAlphaValue, so it manages not only window transparency settings, but also transparency for views and background colors for views and windows. In addition, it includes a set of window “frames” that reproduce (more or less) the look of windows in the ShapeShifter version of Crystal Clear.
  • The Preferences pane has been redesigned with an eye toward expanding the number of settings users can control. Initially, it adds two controls: One for customizing the background color of application windows and another for customizing the background color of “column view” views. (In the movie, the Calendars view list is such a view.)
  • Panels (such as the color panel shown in the movie) are designed with the “HUD” look that’s become popular in Apple’s software lately. Sheets are designed in a light blue. The structure is in place to allow users to customize the color settings for both of these kinds of window objects.
  • Most windows in Crystal Clear are rendered with a “shine” overlay that looks really cool. The shine resizes itself with its window and disposes of itself when the window is closed. Again, I plan eventually to let users turn the shine on and off, and also to select from a few other shine “styles.”
  • This version has a rudimentary routine that changes the background text color from black to white in “panel” windows that are by default set in a dark translucent color. Customizing the text color contrast in this way is key to making windows of variable color and transparency readable. I plan to work on evolving another function that would serve more generic situations with other kinds of windows.
  • New in beta release: Experimental option to enable frivolous window animations. Option turned off by default.
  • New in beta release: Experimental implementation of Single Application Mode (SAM). Option turned off by default.
  • New in beta release: CrystalClear icon now appears in the application’s main menu, in addition to its application submenu. This should make finding the preference pane easier.

That’s it for now! I hope to have a version ready for early beta testing in a week or so. If you’re interested in helping me get this version of Crystal Clear ready to go, send me an email at llscotts AT fastmail.fm, and I’ll send you a copy of the beta when it’s ready.

Oh, and just to be clear, I do plan to release an update of the ShapeShifter version as well, and you’ll be able to use both versions together. One advantage of adding the ShapeShifter version is that the Finder, which has a good deal of Cocoa built in, retains its transparent toolbars, and the system menubar stays crystalized, too. (I haven’t figured out how to modify either of those to my satisfaction… it’s not just a simple matter of doing an “Uno”, since Uno doesn’t touch as many bits and pieces as Crystal Clear, and it doesn’t account for problems of transparency.)

Note: Here are some more previews of the new Crystal Clear:

Click  to play or hide movie.
Click  to play or hide movie.
Click  to play or hide movie.
Click  to play or hide movie.
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
July 21st, 2007

Apple: Optimizing Web Applications and Content for iPhone

Apple Developer Connection - iPhone for Web Developers - Optimizing Web Applications and Content for iPhone I now see how Apple plans to make its standard for web "widgets" the de facto industry standard: Through the iPhone! Since widgets are now the only way third-party developers can get applications onto users' iPhones, and since Apple's released Safari for Windows, anyone can develop widgets, Apple-style, and they have an incentive to do so. Certainly, I'll be adding this onto my to-do list, and this document is an excellent starting point for learning how to do so.
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
May 8th, 2007

Photo Drop: Quickly Resize, Crop, Apply Image Effects for Free

Photo Drop

Photo Drop Image Editor WidgetOriginally downloaded May 8, 2007. Now here’s a widget worth adding to my collection and writing a little about… Photo Drop was first released a couple of weeks ago, but the first few versions didn’t get the Reflection effect quite right. With this latest release, it’s definitely time to make a recommendation: If you ever need to quickly resize an image, add a background color, do a quick autocolor, do a quick crop job, and then apply one of 10 terrific effects, you’ll find Photo Drop an essential widget for your Dashboard.
Photo Drop Image Editor Widget

All you do is drag an image from the Finder or your Desktop, activate Dashboard, and drop it in Photo Drop. From there, you can easily resize and reposition the image, or you can resize the widget and then enlarge or shrink the image. On the back is a selection for effects, backgrounds (including transparent), and for the image output format you desire. If you like, you can have Photo Drop do an image correction and/or add a watermark. Then flip the widget back over and click the “Done” button. Photo Drop instantly displays your new image with two quick choices to copy it to the clipboard or save it to your desktop. Alternatively, you can just drag it from the widget and into whatever application you need it.

A couple of other details about Photo Drop that makes it really useful for professionals are that it displays height and widgth, as well as a grid, as you resize it. So if you need an image of a certain size, you can get there without opening your regular image editor. In addition, you can paste the clipboard into Photo Drop. Finally, you can drag applications or folders to PhotoDrop to extract their icons. I made the accompanying image by

  1. Dropping QuickTime onto PhotoDrop,
  2. Adding the Aqua background and reflection effect,
  3. Resizing the image and widget to my liking and clicking Done.
  4. Next, I had PhotoDrop copy to the clipboard,
  5. Pasted the clipboard back into PhotoDrop,
  6. Changed the background to Black,
  7. Had PhotoDrop copy that image and pasted it back again.
  8. Next I used the keyboard shortcut Cmd-Ctrl-Shift-4 to make a screen snapshot of the widget on the clipboard,
  9. Pasted that image into PhotoDrop,
  10. Resized the whole thing to exactly 200 pixels wide,
  11. Added a PushPin effect and a transparent background, and then
  12. Had PhotoDrop save that image to my Desktop.

Writing it down, that seems like a lot of steps, but I sure couldn’t have done it any faster with any other tool I know about. Sweet, simple, and elegant: This is a Dashboard widget at its best, and it does things that, sad to say, other widget frameworks simply can’t. But that’s OK, you’re already using the best one anyway. :-)

Version as tested: 0.5.4.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
April 18th, 2007

Apple Mail Slowing Down? VacuumMail Can Probably Help

Originally published 3/9/07.
Last updated 4/18/07: Released a new version that corrects a bug in the installer introduced in VacuumMail 0.9.5. The new version, 0.9.6, ensures that the /Users/Shared folder retains the correct permissions after the installer runs. There are no other changes in this release. If you’ve installed VacuumMail 0.9.5, you can use DiskUtility to check and fix permissions on your system, or run the new installer.

VacuumMail Icon

A lively discussion and exchange of information occurred recently on Hawk Wings, the blog site mostly devoted to news and resources for users of Apple’s terrific Mail program. A colleague at work sent me a message on Tuesday, excited when word on Hawk Wings started circulating about a “vacuum” process available for SQLite databases that appeared to dramatically speed up Apple Mail. He had tried the recommended vacuuming and definitely noticed peppier Mail performance. One thing led to another, and before I knew it, I’d become engrossed in developing and polishing up an AppleScript utility to automate a periodic vacuuming of my Mail, which I’m of course dubbing VacuumMail.

As the Hawk Wings discussion unfolded, we learned that Mail maintains an SQLite database called “Envelope Index” in your ~/Library/Mail folder, which gradually grows as the number of emails in your mailbox does. Natively, Mail performs no optimizations on this critical database, which contains pointers to all of your mail that become fragmented and somewhat disorganized over time. At the office, my Envelope Index file was over 100mb, and at home it’s about 30mb. SQLite offers a “vacuum” Hawk Wings Blog Headercommand that rewrites the Envelope Index, optimizing and reorganizing it for faster access. It sounds a bit like what happens when Mac OS X defragments your hard drive periodically.

SQLite IconAt first, news of this function took the form of a shell command you can run in Terminal. It was quite interesting and exciting to see how the Mac users reading of this learned more about it as information was shared, and the command itself became more concise and precise as the day went on. Other users discovered that SQLite offers an “autovacuum” process that can do vacuuming without prompting, and I’m sure that’s a great thing as well. However, we also learned that vacuuming is a more robust and thorough optimizing of the file, since it actually analyzes and rewrites the whole thing, whereas autovacuuming acts only on a certain recent portion of mail pointers. The basic Terminal command turns out to be:

sqlite3 ~/Library/Mail/Envelope Index vacuum;

One very important lesson learned is that vacuuming is only available in the version of SQLite that comes with Mac OS X 10.4 (”Tiger”), and that “autovacuuming” is only available starting with 10.4.8. Of course, this should be fine with Panther users, since the problems I’ve had with Mail only really started with Tiger. It may be that use of Envelope Index itself started then as well.

AppleScript Website HeadingSo it wasn’t long before several people offered up AppleScripts to help automate the process, because who wants to fire up Terminal if you don’t have to? :-) And by the end of the day a helpful reader had prepared and offered for download an Automator action you can use, with instructions for scheduling it through iCal.

Me, I saw an opportunity for combining some of the best ideas offered and for refining the way the AppleScript interacts with the Mail user. For one thing, I wanted a script that would run with no interaction at all, since sometimes that’s what I’d want. For example, if Mail isn’t running, the script doesn’t have to close Mail or start Mail up again afterwards. Further, I wanted a script I could schedule through Apple’s terrific, but still underused Launchd service, yet could also be run manually if necessary.

Launchd Website on MacOS ForgeSo, I took the opportunity to learn a little AppleScript and a little more about Launchd, as well as even a bit more about SQLite and Unix as well, to modify the script to my needs. Not being satisfied with that, I decided to also learn how to make an application bundle out of the script, so I could add a custom icon and maybe further refinements later on.

As my colleague noted, this whole episode is the latest that demonstrates what a great resource blog sites like Hawk Wings have become for Mac users. An outgrowth of one man’s personal interest and desire to develop a useful resource around one application (Apple Mail), Hawk Wings is an information resource that never could have existed prior to the advent of blogging. Mail is simply too narrow a topic to deserve a whole magazine or newsletter, and none of the traditional news outlets for Mac users would have been able or willing to devote the resources to the care and feeding of a website like Hawk Wings. So, my little foray is an attempt to give something back and to say “thanks” to Hawk Wings and its many readers.

VacuumMail IconThe end result of my small effort is VacuumMail, which can be used as a regular application or automated through the included LaunchAgent for use with Launchd. I also took a few minutes to document the script and provide some information about Launchd and how to manage LaunchAgents and Services. The download package has three files: VacuumMail, the launch agent (which is just a .plist file), and a page of documentation.

Enjoy!

Download VacuumMail


Note: The following is the VacuumMail documentation included with the application package:

VacuumMail

Version 0.9.6
© 2007 by Leland Scott
Based on OptimizeMail by Sebastian Morsch, OptimiseEnvelope by pmbuko, and various other ideas and scraps of code on the HawkWings website.

Basic Operation

VacuumMail is an AppleScript application that performs the “vacuum” command on Apple Mail’s underlying SQLite Envelope Index database. This must not be done while Mail is running, so this scriptlet first checks to see if Mail is running and if so, quits Mail. VacuumMail first notifies the user that it will be shutting Mail down, giving the user an opportunity to cancel the vacuum operation. This dialog window will close automatically, quit Mail, and commence vacuuming in 8 seconds if the user doesn’t click on the “Cancel” button.

VacuumMail is designed to be incorporated into an automated maintenance routine and run at regular intervals. According to the SQLite documentation, the vacuum command does a more thorough optimization of Mail’s database than the “autovacuum” setting that’s supported in Mac OS X beginning with version 10.4.8.

Alternatively, you can launch VacuumMail interactively if you need to do a manual run. I keep VacuumMail in my Finder toolbar, so it’s handy to launch.

If Mail was running when the process begins, VacuumMail will restart Mail when it’s finished. The vacuum process can take several minutes if your Envelope Index is very large, and in this first version VacuumMail doesn’t display any kind of progress indicator. However, when it’s finished, VacuumMail will display a dialog showing the size of your Envelope Index file before the latest vacuuming as well as afterwards. This dialog will close after a few seconds if you don’t close it manually.

VacuumMail can be installed anywhere on your system (unless you use the Launch Agent) but expects to find your ~/Library/Mail folder at that location. I did modify the shell commands so they’ll work with symbolic links, in case you, like me, store your Mail folder on a different partition but have it symbolically linked to your Library folder.

Using the VacuumMail LaunchAgent

The VacuumMail installer also includes a Launch Agent for launchd that you can use to automate the running of VacuumMail. This file, org.musingsfrommars.vacuumMail.plist, will be installed in your ~/Library/LaunchAgents folder. The installer will create this folder for you if you don’t already have one.

This agent assumes that you will put VacuumMail in your /Applications/Utilities/ folder, so that’s where this installer puts the application. If you want to put it somewhere else, you’ll need to edit the .plist file… either using the terrific, open source launchd editor Lingon, or in your favorite .plist editor. (I recommend one called PrefSetter, a free .plist editor that’s a big step up from the tool Apple distributes with its Developer Tools package.)

This agent will run VacuumMail every Tuesday afternoon at 1:00pm. I wanted to vacuum my mail weekly, and that time was chosen somewhat arbitrarily. If you want a different day and time, or a different time interval, it’s easy enough to change that behavior using Lingon. The other launchd option this agent utilizes is its ability to run in low priority mode. The launch agent runs with a “nice” priority setting of 15, so it will readily yield processor privileges to other applications on your system when it runs.

About Lingon and Launchd

Lingon Application IconLingon is a graphical interface for creating launchd configuration files and controlling them through launchctl for Mac OS X Tiger. It was developed by Peter Borg and is available as open source from SourceForge. The Lingon website has good documentation for its use, as does the application itself.

The VacuumMail installer includes an option for you to install Lingon.

Launchd is a new system startup program Apple introduced in Tiger. The launchd daemon takes over many tasks from cron, xinetd, mach_init, and init, which are UNIX programs that traditionally have handled system initialization, called systems scripts, run startup items, and generally prepared the system for the user. And they still exist on Mac OS X Tiger, but launchd has superseded them in many instances. Apple’s use of launchd instead of the traditional UNIX programs provides a big performance boost to Tiger users. At any given time, only those daemons MacOS forge Iconthat are actually used are launched; combined with the fact that daemons can shut themselves down and be relaunched as needed means that launchd can reduce the average memory footprint of the system. For more information, see Apple’s excellent documentation on Launchd, from which this description is summarized. In addition, I noticed tonight that Lingon is one of the projects managed through the relatively new MacOS forge website, which is a SourceForge-like gathering place for Apple-initiated open source projects: Definitely checkout the Lingon site on MacOS forge for the latest and greatest developments with Launchd, or if you’d like to contribute some of your brains to the project. :-)

License

VacuumMail is © 2007 by Leland Scott. It is released as freeware under creative commons license 2.5, which means you can modify it and use it freely except

  • In commercial projects
  • Without giving proper credit (Leland Scott)

Lingon is © 2006 by Peter Borg. It is released through SourceForge under the BSD license and can be used subject to those terms. It is included in the VacuumMail package with the generous permission of its author.

Contact Information

If you have feedback about VacuumMail, contact Leland Scott at llscotts [at] fastmail.fm. However, I won’t be able to provide support for the fundamental components of the application: SQLite, Apple Mail, Unix commands, AppleScript, Launchd, or Lingon. I suggest you read through the very interesting dialog about all of this on the HawkWings website, linked previously.

Peter Borg can be contacted through the Lingon website.

Change Log

0.9.6 4/18/07 This update fixes a bug in the 0.9.5 installer that inadvertently changes permissions to your /Users/Shared folder. This can cause conflicts with some applications such as iTunes that expect the /Users/Shared folder to be universally writeable. The 0.9.6 update ensures that /Users/Shared is set to the proper permissions after you run the VacuumMail installer. If you’ve already installed VacuumMail 0.9.5, you can probably fix the permissions problem by using DiskUtility to check and fix permissions on your system.
0.9.5 3/26/07 Provided an installer package for VacuumMail, and also included Lingon as an optional install. The installer puts Lingon and VacuumMail in your /Applications/Utilities folder, and the launch agent file in your ~/Library/LaunchAgents folder. (It creates the folder if you don’t already have one.)
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
January 27th, 2007

Automator Development Tip

Todd Ditchendorf’s Blog » Blog Archive » Automator Development tip Here's a tip on Automator workflow development that I'm sure will be worthwhile to keep around. From the developer of Ottomate, the Automator workflow testing utility.
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
December 12th, 2006

Firebug Lite: Simulate Firebug Calls in Opera and Safari

Firebug Lite This looks like it might be worth trying out... it's a javascript file you can add to pages you're debugging that will cause javascript messages to be written to a Firebug-like panel at the bottom of the browser window. You can toggle the panel with F12 or Ctrl-Shift L.
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
November 25th, 2006

Weather Channel Widget: It’s A Must To Avoid

Weather Channel Dashboard Widget: Your Local Weather Forecast on Your Desktop

Weather Channel WidgetOriginally downloaded 11/24/06. The Weather Channel has finally weighed in to the Mac market with a Dashboard widget and screensaver you can download. Excited by a review on TUAW, I did just that… and man, was I disappointed! The editors at TUAW usually do a better job screening out the chaff from the wheat, but not this time.

This widget is like a lot of the ones we saw in the early days of Dashboard… widgets whose main purpose isn’t to inform you or provide useful functionality, but rather to lure you to the developer’s or company’s website. That isn’t what widgets are for, and I advise you to avoid the Weather Channel widget if you feel the same way. All you get here is a smidgen of info about the current weather, plus a sparse 3-day forecast and a radar image that’s too small to be useful. Weather Widget with ForecastClick on anything else (e.g., a 10-day forecast, an hourly forecast, or details for a particular day), and you’re unceremoniously yanked from Dashboard and taken to the Weather Channel site in your default web browser. (Incidentally, in case you’re wondering, the screenshot here shows the widget after I’ve clicked on the “Forecast” tab…)

There are plenty of other decent weather widgets (including Apple’s own) that have more information than this… and just because it’s from the Weather Channel doesn’t mean it’s worth getting the temperature from. Compare this with the amazing widget Fidelity gave Mac users last month, and it becomes clear this widget is a throwaway. And I’m throwing it away, too! Don’t let companies like Weather.com get away with this kind of foolishness, folks.

Version as tested: 1.0.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
November 10th, 2006

Widgets 1.0: W3C Drafts A Widget Spec

Widgets 1.0: W3C Working Draft, November 2006 This is great news... apparently, the effort was spearheaded by Opera, and the spec includes some stuff from the Opera widget spec as well as the Apple Dashboard spec. Let's hope the world came settle on a standard that would let developers write widgets that would work on all the various platforms (Yahoo, Apple, Opera, Google, and, yes, Microsoft).
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
Posted in:JavaScript, Open Standards, WidgetsTags: |
November 6th, 2006

Fidelity Market Monitor Widget: The Best Stock Market Widget Bar None

Fidelity Market Monitor Widget Fidelity Stock Market WidgetOriginally downloaded 11/1/06. This is an incredible Dashboard widget... far better than the stock widget Apple ships with Mac OS X. Fidelity has gone all-out to provide a comprehensive tool for folks who want to monitor a list of stocks quickly and easily. Not only do you get a configurable "monitor" of your list's performance on the current day, when you select one of the stocks, you can drill down to see a range of charts for the stock, details, and a long list of recent news items. Just like you could by going to one of the stock market websites, but far easier and without interrupting your current activity unduly. The widget's design is superior as well, with thoughtful touches such as a "widget" that lets you slim the widget down to a smaller footprint when it's not in use. If you like to track stocks, you've got to get this one!

Version as tested: 1.0 beta.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
October 29th, 2006

Amnesty Singles: Convert Dashboard Widgets for Desktop Use

Amnesty Singles: Widgets flying solo

Amnesty Singles Widget SoftwareOriginally downloaded 10/9/06. Mesa Dynamics has now released three widget-related applications under the Amnesty moniker. I’m among those who’ve felt that the original Amnesty application was way too expensive at $20… partly because I think Apple should add Amnesty-like functionality to Dashboard. However, Mesa has had a smaller idea in Amnesty Singles, which is half the price of the full version. Written up recently in Macworld, Singles sounds like it might be worthwhile. Rather than letting widgets run temporarily in desktop space—as Amnesty does—Singles actually converts widgets to full-fledged Mac OS X applications with menubars, spot in the dock, etc. Could be quite nice, especially since apparently you can still adjust the window layer and other widget-related gimmikry of Amnesty for your new applications.

Update 10/29/06. It’s still early in the lifespan of Amnesty Singles, but for now it’s not a tool I can use. The main problem is that the widgets become regular applications rather than remaining widgets, as with the regular Amnesty software. This means that in a case where you’re using Quicksilver, DragThing, LightSwitch, or some other tool to enable “single application mode,” the widgets disappear when you switch applications. This is the whole idea behind single application mode, and I find it’s a terrific strategy for minimizing desktop clutter. But widgets should be omnipresent, like your menubar or like tools such as iPulse or DropCopy. You don’t want to have to switch applications in order to use them (at least, I don’t). A developer at Mesa said they’d consider building that capability into a future version of Amnesty singles, and if they do, I’ll take another look

If that time comes, hopefully Mesa will have worked out the kinks in the way Amnesty Singles converts some widgets, because at the moment, the process is spotty. Some widgets work fine, others work sorta, and others don’t work at all. Growing pains, no doubt. But I certainly don’t want to pay for the pleasure of watching this little baby grow. :-)

Version as tested: 1.1.1.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
October 23rd, 2006

Desktop Picture Imperium: A Widget for Controlling Your Desktop Pics

Desktop Picture Imperium: A widget that gives you total control of the pictures you display on your desktop Desktop Imperium WidgetOriginally downloaded 10/22/06. The tag line for this Dashboard widget says it all. This is the most unique widget implementation I've seen to date... extremely thoughtful and innovative. It's a little finicky, but definitely worth the download. :-)

Version as tested: 1.2.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
October 9th, 2006

Does Anybody Really Know What Their IP Address Is?

Update 11/24/06:Another utility with the same capabilities as those reviewed here came to my attention: IP Address Menu, though it costs 15 Euros (about $19 at the moment). In a quick test tonight, it worked fine on my local IP addresses, but failed multiple times to identify my external IP address.
Further Update 10/24/06: BwanaDik has been updated to eliminate the unnecessary CPU cycling when you’ve turned auto-update off, so I once again highly recommend this app for your menubar.
Update 10/12/06: A couple of readers wrote with excellent suggestions which I’ve incorporated into the article. One noted that DynDNS and similar services should be mentioned and another pointed out that BwanaDik uses more system resources than necessary. Those changes jogged my memory and I’ve also added information about two other menubar IP utilities: IPMenu and IP Broadcaster.

In our modern, interconnected, always-on age, knowing one’s IP address comes in real handy at times. Knowing your IP address isn’t quite as important as knowing what time it is, but it helps to have an IP clock handy when you need it.

I’ve dabbled with quite a few solutions to this problem over the last few years, and there are a large number of decent IP clocks available… most of them for free. In my IP ramblings, I’ve ruled out solutions that work only in the Dock and ones that put an IP address right in your menubar. I don’t use the Dock that much anymore (between Quicksilver, ClawMenu, Dashboard, and menubar widgets, I don’t need it), except in its application switcher form. And IP addresses printed directly in the menubar take up too much valuable space and are invariably ugly. Note that for your primary external (WAN) IP address, many users are taking advantage of free services like DynDNS to maintain a static hostname even if their IP address changes. This doesn’t keep your IP address constant, but the DynDNS client (there’s even a Dashboard widget now) can let you know what your current address is.

Ipwidget1Since Dashboard and widgets became available in Mac OS X 10.4 (”Tiger”), I’ve been using a very handy free widget simply called IP Widget. This slim little fellow sits right on my desktop, always displaying my external (WAN) IP address. Since it’s a widget, I could run more than one of them if knowing multiple IP’s instantly were important to me (it’s not). Instead, with IP Widget, I can flip it over and select a different network port to display (e.g., one of my ethernet or wireless ports). On the front, there’s a refresh button that will reload the address, and if I click on the IP address itself, the widget will copy it to the clipboard for pasting in another app. The widget automatically refreshes the IP address when you open Dashboard. Of course, since I keep it on my desktop rather than in Dashboard, it never refreshes unless I logout or click on the refresh button.

As much as I love keeping widgets on my desktop, there are times when I turn Dashboard off to save system resources. When I do, IP Widget is of no use to me at all. The time it would take to turn Dashboard on and wait for all the widgets to reload is greater than I can stand. (Sorry, I’m an impatient guy!)

Quicksilver's Large Type IP Display
So, non-widget solutions came back on my radar screen. One that’s ever-present and fairly simple is Quicksilver. Yep, it can do IP address lookups, too. If you have enabled the QS Extras AppleScripts module, one of the extra scripts is “Get External IP.” So, just invoke Quicksilver and start typing “Get Ext…” and then hit Return. Up will pop your external IP address in Quicksilver’s “Large Type” display. To copy it, just hit Cmd-C. You could set up a shortcut Trigger in Quicksilver to save keystrokes here… for example, I have one (Option-Shift-X) that then just instantly loads the Large Type display for my IP address. This is great, except when I’m having a Senior Moment and can’t remember the shortcut. :-) Or when I need more than just my external IP.

BwanaDik menuThat’s where the other four solutions I’ve tried come in. All of these are simple menubar extras that put an icon in the menubar, which display a menu full of IP info:

  1. BwanaDik
  2. IP
  3. IPMenu
  4. IP Broadcaster

IP menuNone of these developers will be winning any app-naming contests, and the only one that might be considered for an icon design award is IP Broadcaster. But these are all very handy little menubar applications, and three of the four offer many more options than either the IP widget or Quicksilver. The primary extras they offer are:
IPmenu's menu

  • Multiple IP-address displays. By clicking on their icons, you can instantly see the IP addresses for all your network ports at once. Well, unlike the others, BwanaDik shows only your WAN and active Ethernet addresses in the main menu, but not your Bonjour address. IP even shows your localhost address.
  • IPmenu's menu

  • Automatic Updates. All of the tools can be set to periodically refresh the IP address information, at a user-specified interval.
  • Notification of IP address changes. A recent update to IP added Growl support for onscreen notifications, which can be configured to display whenever an IP address changes, or a network comes back online. BwanaDik has the same basic notification options, but uses a regular Cocoa window for the notifications rather than Growl. IPMenu doesn’t offer a local notification option, and IP Broadcaster none at all.
  • Email notification. All these tools except IP Broadcaster let you configure them to email you a notice when IP information changes. IP also lets you FTP the information somewhere.

BwanaDik's Preference SettingsEach tool has a couple of extra bells and whistles that the other doesn’t. Probably the most convenient one for mobile users is that BwanaDik lets you easily change network sets (”Locations”) from within its menu. Another thing about BwanaDik that I like is that it offers several different icons to choose from. In addition, BwanaDik’s menubar icon changes color (or shape) as the status of your network connections change. Finally, the BwanaDik developer has managed to cram all of the tool’s settings into one preference pane, while still making them very easy to understand and change.

IP's preference settingsOne of the reasons that IP’s preferences are split into multiple panes is so the developer could add one that lets users buy and register the application through Kagi. Which brings me to the main difference between the two: BwanaDik is totally free (and always has been), whereas IP is free only up to a certain point, after which you need to cough up $6 to enable the additional features. And what features don’t work without a license? You can’t use the email or FTP notification options without registering, and you can’t customize the “Displayed name” of your network ports (e.g., you can’t display “FIOS” instead of “wan” or “Vicky” instead of en1).

IPmenu's preference settingsIPmenu is a favorite of mine in this category going back a couple of years… When I first prepared this article, I had frankly forgotten about it, since the software hasn’t been updated in awhile. IPmenu gets the basics down perfectly, making quickly seeing and copying one of your IP addresses from its menu child’s play. It doesn’t have as many bells and whistles as IP or BwanaDik, but it does a basic email notification if you want that, and you can set the refresh time easily. Plus, one thing it does that the others don’t is let you easily customize the menubar icon. Where BwanaDik gives you a choice of a few, IPmenu lets you paste or drag whatever image you want to its image well if you don’t like its default “globe.”

IP Broadcaster's preference settingsIP Broadcaster is a free tool from 10base-t, the group of developers that gave us the wonderful DropCopy bonjour utility. Compared with the other three here, it’s pretty bare bones. It has a much nicer icon to start out with, but beyond that it’s not as easy to use. For one thing, copying an IP address is a two- or three-step process, depending on which IP address you want. You can set up a default, but if you happen to want a different one, you have to “toggle” the setting and then select “Copy to clipboard.” The IP addresses themselves are grayed out and can’t be selected or copied without doing this. Further, there’s nothing in the display that indicates which IP address is active for copying, so it can be trial and error. This pretty much rules it out for me.

Among IP, IPmenu, and BwanaDik, it’s a very close call, frankly. Each application is quite worthy of a place in my toolbox. But in the end, I may be going back to IPmenu, my old favorite. In the first version of this review, I had chosen BwanaDik–the Software Whose Name I Blush To Speak Aloud. :-) After I noticed BwanaDik’s wayward CPU usage, I leaned back to IPmenu, my old favorite. Now, I have both of them in my menubar (temporarily)! But after noticing how much time it spends in the top 10 of my Activity Monitor CPU hogs, I’ve had second thoughts. Now that BwanaDik has its CPU usage under control, here’s an updated QuickTime movie showing how well it behaves. I’ve left the original version here for comparison purposes, as well as the movie showing the IP widget, IPmenu, and IP, each recorded for 10 random seconds:

Good BwanaDik (version 3.0.4):

Bad BwanaDik:

The Other Three:

Now, calling BwanaDik a CPU hog is a bit of an exaggeration… nevertheless, it’s troubling that it uses any cycles at all when I’ve set its preference to not “auto-refresh” anymore. With this little piece of data to distinguish among them, I’ll be putting IPmenu back in my menubar, and taking BwanaDik down. (Whew! I really was embarrassed to have a BwanaDik in my menubar!)

No matter which one of these great freeware packages I end up with (or maybe I’ll just rotate them), one thing’s for sure… Between BwanaDik, IPmenu, Quicksilver, and the IP widget, I’ll never be without my IP address again!

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
October 5th, 2006

Virtual Dashboard: Virtual Desktops for Dashboard


Virtual Dashboard can create widget sets

Virtual Dashboard SoftwareDownloaded 10/5/06. My first thought when I saw this item was, “Isn’t that what MultiDash does?” (MultiDash is a cool, free widget that does pretty much the same thing.) Yep… it is. Two big differences… Virtual Dashboard is not itself a widget… it’s an application that lives in your menubar. As such, it has access to a bunch of regular Cocoa app GUI bits that widgets typically don’t. Second, the guy wants $10 for it. Is it worth it compared with MultiDash? Don’t know yet… stay tuned.

Version as tested: 1.1.1

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
October 5th, 2006

Amnesty Generator: Convert Google Gadgets to Dashboard Widgets

Amnesty Generator: Double the size of your Widget universe Amnesty GeneratorDownloaded 10/5/06. From the developers who brought us Amnesty comes a new freeware tool that aims to let you turn Google's thousands of web-page "gadgets" into Dashboard widgets. Now, if only they'd do the same with Yahoo widgets, we'd be cookin'! Seriously, though, I guess my next stop is to the Google gadget repository to see if there's anything there worth converting. Google's gadgets are free web page plugins, obviously built with the same Javascript/HTML/CSS brew as Dashboard widgets.

Version as tested: 0.5b

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
August 31st, 2006

Widgetbox Is An Amazing New Resource for Web 2.0 Site Developers

Widgetbox › Widget Directory

Widgetbox LogoWow! This is one slick site and service, and it’s as yet only in “beta” mode. It worked perfectly for me, coming in for the first time with Safari, and I’m amazed by the variety and quality of the available widgets! This is going to be a great way to add interesting content to blog sites the world over! Bless, you Widgetbox guys! If I have time, I’d love to develop a widget for you, too. FYI, in case anyone’s interested, it looks like the site itself is built with the Yahoo User Interface Ajax toolkit.

    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
August 3rd, 2006

Apple Releases New “Resizer” Sample Widget

Resizer demonstrates how to use the Apple Animation and Animator classes Here's another useful sample Dashboard widget that demos how to auto-resize your widgets --- for example, you can resize when switching to the back side for preferences and then resize to return to the front at the same size you left it. Pretty cool! The download includes sample before and after widgets as well as the source code.
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
July 29th, 2006

AppButton: A Powerful Launcher in Widget Form

AppButton: Completely customizable application launcher AppButton WidgetI've been trying out beta versions of AppButton for a month or so, and now version 1.0 has been released. It's even better than I had thought! Besides having the best way to find and add apps to your custom lists and categories on the widget's preference "side," the final release also has a simple app search thingy that you can pull out on the widget's face. Each app it finds can then be quickly added to existing categories. Man, what a steal at Zero Dollars! If you're not already using one of the many menubar-based launchers, or the keyboard ones (Quicksilver, etc), you could increase the utility of your system just by using this little fella. Be sure to check out my article on Widgetdom to find out the best approach for using widgets in Mac OS X.
    
  • del.icio.us
  • Google
  • Slashdot
  • Technorati
  • blogmarks
  • Tumblr
  • Digg
  • Facebook
  • Mixx
Just Say No To Flash