{ //Browsing Behavior "'" = "mailboxSearch:"; "F" = "forwardAsAttachment:"; "n" = ("collapseAll:","selectNextCountedMailbox:", "setFilterKey:", "unread", "makeFirstResponder:", "mainOutline", "selectFirstMessageRow:", "selectFirstMessageRow:"); "," = ( "makeFirstResponder:", "mainOutline", "nextUnreadMessage:", "centerSelectionInVisibleArea:"); "m" = ( "makeFirstResponder:", "mainOutline", "selectFirstMessageRow:" ); "." = ( "deleteMessage:"); "i" = ( "restoreMailboxExpansions:", "makeFirstResponder:", "mailboxesOutline", "goToMailbox:", "INBOX", "selectPreviousMailbox:", "selectNextMailbox:", "makeFirstResponder:", "mainOutline", "removeFilterKey:", "unread"); "x" = ( "toggleFilterKey:", "unread", "makeFirstResponder:", "mainOutline", "selectFirstMessageRow:"); "c" = ("markAllAsRead:"); // Thread Behavior "h" = ("lastOfThread:"); "j" = ("rootOfThread:"); //Mailbox & Search Behavior "/" = ( "newMessagesViewerWindow:", "searchAllMessages:", "removeFilterKey:", "unread"); "?" = ( "mailboxSearch:" , "removeFilterKey:", "unread"); "M" = { "s" = ( "saveMailboxExpansions:"); "r" = ( "restoreMailboxExpansions:"); }; // Message Behavior "e" = ("markAsNotJunk:", "archive:"); "f" = "toggleFlag:"; // delete commands "d" = { // Delete entire thread "t" = ( "selectThread:", "deleteMessage:" ); // Delete the thread in the inbox, but leave filed items alone "i" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path = 'INBOX'", "deleteMessage:" ); // Delete thread except mail that was mine (I sent) "m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'Sent Messages' and #source.path != 'Sent Items'", "deleteMessage:" ); // Delete thread except the stuff in inbox or sent (other) "o" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'INBOX' and #source.path != 'Sent Messages' and #source.path != 'Sent Items'", "deleteMessage:" ); // Delete the subject "s" = ( "selectWithFilter:", "subject.body = '${subject.body}'", "moveToMailbox:", "trash" ); // Delete by from address "f" = ( "selectWithFilter:", "from.address = '${from.address}'", "moveToMailbox:", "trash" ); // Delete any mail to this recipient "r" = ( "selectWithFilter:", "#recipient.address = '${#recipient.address}'", "moveToMailbox:", "trash" ); }; // select commands (good if you aren't sure what the delete in thread action is going to do!) "s" = { // Select an entire thread "t" = "selectThread:"; // Select just the items in the thread that are in my inbox, leaving filed messages alone "i" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path = 'INBOX'" ); // Select thread except mail that was mine (I sent) "m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'Sent Messages' and #source.path != 'Sent Items'" ); // Select thread except the stuff in inbox or sent (other) "o" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.path != 'INBOX' and #source.path != 'Sent Messages' and #source.path != 'Sent Items'" ); // Select the subject "s" = ( "selectWithFilter:", "subject.body = '${subject.body}'" ); // Select by from address "f" = ( "selectWithFilter:", "from.address = '${from.address}'" ); // Select any mail to this recipient (warning, I've had this crash MailMate) "r" = ( "selectWithFilter:", "#recipient.address = '${#recipient.address}'" ); //"m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and #source.mailto !=[x] \\$SENT.source.mailto" ); // "m" = ( "selectWithFilter:", "#thread-id = ${#thread-id} and from.address !=[x] \\$SENT.from.address" ); }; }