[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Orgmode] Patch for growl notifications without uncommenting hacks
From: |
David Abrahams |
Subject: |
[Orgmode] Patch for growl notifications without uncommenting hacks |
Date: |
Sun, 05 Apr 2009 20:49:23 -0400 |
User-agent: |
Gnus/5.13 (Gnus v5.13) Emacs/23.0.91 (darwin) |
This patch to org-mac-message.el should make it show growl notifications
when searching for flagged messages and growl is running, and work
silently otherwise.
It's a little more complicated than it needs to be, since as noted in a
comment about the "double-tell" idiom, using the creator code to find
the application is probably not going to work unless the application's
name is exactly "GrowlHelperApp" anyway, but I am not motivated to
simpilify this more now that I have it working. Someone else is welcome
to improve on it.
Anyone is welcome to use this patch for any purpose. I hereby place it
in the public domain.
diff --git a/lisp/org-mac-message.el b/lisp/org-mac-message.el
index d91a575..6f5d634 100644
--- a/lisp/org-mac-message.el
+++ b/lisp/org-mac-message.el
@@ -101,26 +101,49 @@ This will use the command `open' with the message URL."
"AppleScript to create links to flagged messages in Mail.app"
(do-applescript
(concat
- "tell application \"Mail\"\n"
- "set theMailboxes to every mailbox of account \""
org-mac-mail-account "\"\n"
- "set theLinkList to {}\n"
- "repeat with aMailbox in theMailboxes\n"
- "set theSelection to (every message in aMailbox whose flagged
status = true)\n"
- "repeat with theMessage in theSelection\n"
- "set theID to message id of theMessage\n"
- "set theSubject to subject of theMessage\n"
- "set theLink to \"message://\" & theID & \"::split::\" & theSubject
& \"\n\"\n"
- "copy theLink to end of theLinkList\n"
- ;; "tell application \"GrowlHelperApp\"\n"
- ;; "set the allNotificationsList to {\"FlaggedMail\"}\n"
- ;; "set the enabledNotificationsList to allNotificationsList\n"
- ;; "register as application \"FlaggedMail\" all notifications
allNotificationsList default notifications enabledNotificationsList icon of
application \"Mail\"\n"
- ;; "notify with name \"FlaggedMail\" title \"Importing flagged
message\" description theSubject application name \"FlaggedMail\"\n"
- ;; "end tell\n"
- "end repeat\n"
- "end repeat\n"
- "return theLinkList as string\n"
- "end tell")))
+;; Locate the GrowlHelperApp application, even if its name has a version
number appended
+"tell application \"System Events\"\n"
+ "set growlHelpers to the name of every process whose creator type contains
\"GRRR\"\n"
+ "if (count of growlHelpers) > 0 then\n"
+ "set growlHelperApp to item 1 of growlHelpers\n"
+ "else\n"
+ "set growlHelperApp to \"\"\n"
+ "end if\n"
+"end tell\n"
+
+"tell application \"Mail\"\n"
+ "set theMailboxes to every mailbox of account \"BoostPro\"\n"
+ "set theLinkList to {}\n"
+ "repeat with aMailbox in theMailboxes\n"
+ "set theSelection to (every message in aMailbox whose flagged status =
true)\n"
+ "repeat with theMessage in theSelection\n"
+ "set theID to message id of theMessage\n"
+ "set theSubject to subject of theMessage\n"
+ "set theLink to \"message://\" & theID & \"::split::\" &
theSubject & \"\n"
+ "\"\n"
+ "copy theLink to end of theLinkList\n"
+ "if growlHelperApp is not \"\" then\n"
+ ;; This "double tell" idiom is described in detail at
+ ;; http://macscripter.net/viewtopic.php?id=24570 The
+ ;; script compiler needs static knowledge of the
+ ;; growlHelperApp. Hmm, since we're compiling
+ ;; on-the-fly here, this is likely to be way less
+ ;; portable than I'd hoped. It'll work when the name
+ ;; is still "GrowlHelperApp", though.
+ "tell application \"GrowlHelperApp\"\n"
+ "tell application growlHelperApp\n"
+ "set the allNotificationsList to {\"FlaggedMail\"}\n"
+ "set the enabledNotificationsList to
allNotificationsList\n"
+ "register as application \"FlaggedMail\" all
notifications allNotificationsList default notifications
enabledNotificationsList icon of application \"Mail\"\n"
+ "notify with name \"FlaggedMail\" title \"Importing
flagged message\" description theSubject application name \"FlaggedMail\"\n"
+ "end tell\n"
+ "end tell\n"
+ "end if\n"
+ "end repeat\n"
+ "end repeat\n"
+ "return theLinkList as string\n"
+"end tell\n"
+ )))
(defun org-mac-message-get-links (select-or-flag)
"Create links to the messages currently selected or flagged in
--
Dave Abrahams
BoostPro Computing
http://www.boostpro.com
- [Orgmode] Patch for growl notifications without uncommenting hacks,
David Abrahams <=