[MlMt] Sharing my current key bindings
Kee Hinckley
kee+freron at hinckley.com
Fri Sep 19 13:01:24 EDT 2014
I have a bunch of key bindings for mass selection and deletion of mail
messages. The deletion ones can be rather dangerous, so sometimes I just
use the selection ones and then hit delete (or file, or whatever is
appropriate).
(I also have an action that sends me a Growl notification of the
subjects and number of messages deleted if I delete more than a few,
that's useful for when I accidentally go overboard. I can upload that if
people are interested.)
The selection ones are particularly useful now that I'm using the
recently shared modification that adds an extra pane showing the
selected messages and (in my case) everything else with the same
subject. It makes it far easier to see what I just selected.
Of those, I probably use t, i, s, and f most often. 'dt' is great for
nuking a conversation you are done with. 'di' is good for deleting just
the conversation in your inbox, but not the items you've filed already
(e.g. you filed that useful post to MailMate, but you want to delete all
the replies). 'ds' is good for when threading isn't capturing
everything, or it's a bunch of automated messages with the same subject.
And 'df' is great for email notifications from online services (a dozen
messages from a store about new products).
In any case, here they are if anyone would like to try them. If you
haven't modified keybindings, they go in
`~/MailMate/Resources/KeyBindings/Kee.plist` and then you'd set your
Custom Key Bindings in preferences to 'Kee'.
Thanks to all the other MailMate users who made it possible to build
these. And of course, our favorite developer!
```json
{
// "r" = ( "replyAll:", "selectAll:", "decreaseQuoteLevel:",
"deselectAll:", "moveToBeginningOfDocument:", "insertNewline:",
"insertNewline:", "moveToBeginningOfDocument:" );
"r" = ( "addTag:", "HTMLReply", "replyAll:" );
"c" = "collapseThread:";
"e" = "expandThread:";
"j" = "nextMessage:";
"k" = "previousThread:";
"n" = "nextUnreadMessage:";
"p" = "previousUnreadMessage:";
"J" = ( "markAsNotJunk:", "removeTag:", "\\Seen",
"moveToMailbox:",'INBOX');
// 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 = '${subject}'",
"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 = '${subject}'"
);
// 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" );
};
// FROM SOMEONE "c" = ( "showThread:", "showCorrespondence" );
// Editing commands
// bold selection
"@b" = (selectWord:, setMark:, swapWithMark:, deleteToMark:,
insertText:, "**", yank:, insertText:, " ", moveLeft:, insertText:,
"**", moveRight:, deleteBackward:);
// italicize selection
"@i" = (selectWord:, setMark:, swapWithMark:, deleteToMark:,
insertText:, "_", yank:, insertText:, " ", moveLeft:, insertText:, "_",
moveRight:, deleteBackward:);
// typewriterize selection
"@t" = (selectWord:, setMark:, swapWithMark:, deleteToMark:,
insertText:, "`", yank:, insertText:, " ", moveLeft:, insertText:, "`",
moveRight:, deleteBackward:);
}
```
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.freron.com/pipermail/mailmate/attachments/20140919/b191542b/attachment-0001.html>
More information about the mailmate
mailing list