Download the latest version of Growl for Windows

Growl On Your Phone

Get your Growl notifications on your phone with these apps:

WP7
Android
Notify My Android
iPhone
iPhone

For Developers

Integrate Growl notifications into your applications with just a few lines of code

Download the Integration Guide >

Create custom displays for handling notifications

Download the Display SDK >

Thursday, December 3, 2009

Mac-to-PC Notifications

Growl for Windows uses the TCP-based GNTP protocol for receiving and forwarding notifications. In the near future, Growl on OSX will also support GNTP and then two-way communication will be a breeze. But what about folks that need two-way communication today?

Growl for Windows can forward notifications to existing versions of Growl running on a Mac by using the Growl UDP protocol. That means PC-to-Mac communication will work out-of-the-box. However, Growl on OSX does not use the UDP protocol to forward notifications. Growl/OSX can only forward notifications using Distributed Objects - a Cocoa-only technology that only works on Apple machines. As such, although you can forward notification *to* a Mac from Windows, it has thusfar been impossible to forward *from* a Mac to Windows. Until now.

Today I am announcing 'Growl Impersonator' - a simple utility that solves this problem. Growl Impersonator runs on the Windows machine that you would like to forward notifications to. It acts as a middle-man, posing as a Growl/OSX instance so that Growl/OSX can discover and communicate with it, and then forwarding any notifications it receives on to GfW.

Growl Impersonator running on Windows

Growl Impersonator running on Windows

Forwarding from Growl on OSX

Forwarding from Growl on OSX

Growl/OSX notification on Windows

Growl/OSX notification on Windows

How does it work?

  1. Impersonator advertises itself on Growl's DO port (23052) using Bonjour
  2. Growl/OSX detects the Impersonator and thinks it is another Mac on the network
  3. Growl/OSX displays the Impersonator as a forwarding destination in its PrefPane
  4. When Growl/OSX receives a notification, it forwards it via DO to any destinations, including the Impersonator
  5. DO objects get serialized as binary data and sent over TCP
  6. Impersonator acts as a TCP listener and receives the serialized DO objects
  7. Impersonator understands just enough of the serialized data to be able to parse out the notification information
  8. Impersonator constructs a new GNTP notification using the data it parse and sends that to the local GfW instace

It is very important to note that this is totally experimental and probably has tons of bugs. It does not support images or click callbacks (similar to the UDP protocol). It is not a part of GfW and requires you to run yet another app. Apple could change the format of the DO serialization at any time and it could break (though that is unlikely).

That said, it does supports both registrations and notifications. I have successfully tested it with GrowlTunes and custom AppleScript-based notifications. I am going to continue to test more use cases to ensure the widest range of compatibility. I think that there is even a chance that I may be able to support images at some point as well.

If anybody out there wants to try it out, you can download it from the link below. I make no warranties to how well (or if) it will work for you. But if you do try it out and want to report your successes or failures, you can post up your experience in the GfW discussion group.

Download Growl Impersonator

Leave feedback in the GfW Discussion Group

Note: When configuring the forwarding in Growl on the Mac, you must leave the Password property empty, even if you use a password in GfW. If you do use a password in GfW, you must set it in Growl Impersonator.

16 comments:

  1. Nice. Big ups to the FATA song as well.

    ReplyDelete
  2. How do you configure growl in windows? Do you add a subscription to the networked mac, local host, or does your software register as a growl application? I cannot see it in the growl applications list.

    ReplyDelete
  3. @Anonymous - you do not need to add a subscription to the networked mac or localhost. the GrowlImpersonator app does not register itself in GfW either - it only forwards registrations from the Mac. so if nothing sends a registration request on the Mac, nothing will show up on the Windows side.

    (to force an application to register on the Mac side, you usually have to close/reopen it)

    ReplyDelete
  4. Hi! is it possible to forward notifications from a Linux (Ubuntu) server to some Windows clients via Bash script?

    ReplyDelete
  5. This comment has been removed by the author.

    ReplyDelete
  6. Looks promising. But can't get it to work on my windows machine having two NICs - one for internet and one for my mac computer.

    The computer doesn't show up in Growl->Network->OtherComputers on my Mac.

    Seams like "network notification" used port 23052 TCP (and not 23053 as the old default?). Could anyone confirm?

    ReplyDelete
  7. I was so hopeful for this, but the installer bonks on my Windows XP machine. DOA.

    ReplyDelete
  8. نقدم الان افضل شركة تنظيف خزانات بمكة الان التى تقدم افضل المواد المطهرة لكافة انواع الخزانات فى تنظيف خزانات بمكة الان , وباقل الاسعار التى تقدمة الان فى المملكة العربية السعودية

    ReplyDelete
  9. نقدم الان فى مصر , افضل صيانات الاننا نقدم افضل فريق من المهندسين المتخصصون فى صيانه جولدى كافة الاجهزة الكهربائية الان , وعلى اعلى مستوى ممكن الان يمكنكم الحصول ععلينا فى اقل وقت ممكن الاننا نمتلك اسطول من السيارات الان

    ReplyDelete