18 Comments

Summary:

My enthusiastic use and promotion of Growl should come as no surprise to regular readers of The Apple Blog. While some dismiss it as an annoyance reminiscent of the Windows notification popups, others — like myself – view it as a way be informed without stopping […]

My enthusiastic use and promotion of Growl should come as no surprise to regular readers of The Apple Blog. While some dismiss it as an annoyance reminiscent of the Windows notification popups, others — like myself – view it as a way be informed without stopping what I am currently doing (and that is definitely not the case with its Windows pseudo-counterpart).

Even though many of the applications and utilities that help me with my daily workflows have embedded Growl support in some fashion, there is one use of Growl that may help convert even the most stalwart Growl skeptic: Hardware Growler.

Setting Up Hardware Growler

You’ll find this handy utility in the “Extras” folder on your Growl installer disk image. It’s main purpose is to fire off a Growl notification each time devices are connected or disconnected from your Mac, and includes support for FireWire, USB and filesystem volumes (i.e. disks) as well as Bluetooth devices and network interfaces. Unfortunately, to make the best of use of Hardware Growler, you will have to do some work to get it installed properly.

First, copy the “Hardware Growler” application to either “/Applications” or “/Applications/Utilities” on your Mac. The application itself is nothing to write home about. Double-click on it to see a very sparse menu and an innocuous Dock icon. The “Preferences” window is even sparse, only providing a means to enable or disable a notification about what devices are currently connected upon startup of Hardware Growler (not very useful, at least for me).

You can leave Hardware Growler running this way and it will go about it’s job quite nicely. However, since it is not really an interactive program, it would be best to “make it go away”, especially if you happen to miss-hit a Cmd-Q and accicentally cancel out of it. The easiest way to accomplish this is to modify one of the Hardware Growler configuration files.

Depending on where you decided to install Hardware Growler, either open /Applications/HardwareGrowler.app/Contents/Info.plist or /Applications/Utilities/HardwareGrowler.app/Contents/Info.plist add the following two lines after the <dict> line:

   <dict>
      <key>LSUIElement</key>
   <true/>

You will need to quit and re-start Hardware Grolwer for this setting to take effect. (CocoaDev has more good info on the LSUIelement propery.)

Next, to make it even easier to ensure Hardware Growler is running after you login, go to System Preferences > Accounts and add it as a “Login Item” and check the “Hide” checkbox just for good measure.

Using Hardware Growler to Spy on Your System & Applications

Because Hardware Growler hooks itself into the device events on your system, you now have the opportunity to see some of what happens underneath the pretty OS X GUI. While you should be aware of when you connect FireWire and USB devices, Hardware Growler still notifies you when those devices are inserted or removed and having a notification of that may help troubleshoot issues.

For me, it is very handy to be notified when my Option Express 3G card suddenly decides to disconnect itself from the card slot and it has saved me a ton of grief. Expanding on that particular example, you will see that many PCI ExpressCard adapters show up as USB devices. This is actually the most common way for vendors to utilize the ExpressCard slot and you really are not getting much benefit out of using the card versus an external adapter, apart from freeing up an external USB slot for other uses.

One activity that is especially interesting to have a view into is when your applications that are set to auto-update are downloading and mounting disk images. I managed to “spy” on the Google updater (no screen capture, though) doing it’s work just this past week (I had actually forgotten I let it auto-update).

Gaining a view into network-related events is also pretty handy. Not only will you see which adapter is connecting, you will also see the current MAC (unique hardware) address and all changes of IP address. This can be especially handy when you are attempting to diagnose connection issues.


If you do decide to give Hardware Growler a try, let it run in the background for a week as you go about your workflow. I think you’ll find the experience illuminating and you may just gain more insight into how your system and many of your applications work.

  1. Cool! This makes Growl a lot more useful — I had no idea it was in there. It’s like those little windows dialogue bubbles, but less obnoxious.

    Share
  2. What’s the memory footprint?

    Share
  3. 11:37 [0|2146]% ps auxwww | grep Growl
    alex 82481 0.5 0.0 591508 280 s001 R+ 4:09pm 0:00.00 grep Growl
    alex 189 0.0 0.4 439684 9360 ?? S 27Oct08 0:12.47 /Applications/HardwareGrowler.app/Contents/MacOS/HardwareGrowler -psn_0_65552

    Share
  4. @Alex much obliged!

    @jn apologies. I should have included that.

    Share
  5. This didn’t work for me until I added:

    LSUIElement
    true

    After:

    NSPrincipalClass
    NSApplication

    Before:

    Thanks for the heads up – it’s a nifty little hack.

    Share
  6. Perfect!

    Had no idea Growl could do this too.

    Bob – can you comment on Jonathan’s tweak? Do we need to do that?

    Thanks :)

    Share
  7. What style is used here for the growl notification?

    Share
  8. I totally agree. Hardware Growler is one of those apps I immediately install on my system because it’s so useful.

    Share
  9. The official documentation for HardwareGrowl is at http://growl.info/extras.php#growlnotify

    One of the most useful Growl extensions for sure!

    Share
  10. Very cool, thanks for sharing. :)

    Share

Comments have been disabled for this post