<div class="markdown">
<p>On 28 Jan 2013, at 19:04, Ben Beuchler wrote:</p>

<blockquote>
<blockquote>
<p>Is there a master list of all of the various actions&#47;selectors available<br>
for use in a keybindings plist?</p>

<p>The manual page for custom key bindings is the best resource. At least those<br>
are the key bindings I&#39;m committed to supporting in the future.</p>
</blockquote>

<p>Unless I&#39;m missing something, that page only contains a dozen or so of<br>
the bindings.  The others are spread among the example plists, yes?</p>
</blockquote>

<p>I count 25 (three locations in the page), but you are right that a lot of the examples in <code>Gmail.plist</code> (and the other plists) are not covered in the manual. I didn&#39;t think it would be that many.</p>

<blockquote>
<p>What I was hoping for was a consolidated master list.</p>

<p>If I was to combine the bindings from the manual page with a de-duped<br>
list from the example plists, would that list include all available<br>
bindings?</p>
</blockquote>

<p>There are other bindings used internally in MailMate, but they might not be safe to use. Some key bindings are only mentioned in <a href="http://updates.mailmate-app.com/release_notes">the release notes</a>. I can see that I really should make a complete list in the manual :-)</p>

<p>Here is an attempt to collect everything (53 items). Consider it a first draft for a new page in the manual.</p>

<h3>Navigation</h3>

<table><thead>
<tr>
<th>Selector</th>
<th>Argument</th>
<th>Action</th>
</tr>
</thead><tbody>
<tr>
<td>nextMessage:</td>
<td>-</td>
<td>Move to next message (expand if necessary)</td>
</tr>
<tr>
<td>previousMessage:</td>
<td>-</td>
<td>Move to previous message</td>
</tr>
<tr>
<td>nextThread:</td>
<td>-</td>
<td>Move to next thread</td>
</tr>
<tr>
<td>previousThread:</td>
<td>-</td>
<td>Move to previous thread</td>
</tr>
<tr>
<td>nextUnreadMessage:</td>
<td>-</td>
<td>Move to next unread message (expand if necessary)</td>
</tr>
<tr>
<td>previousUnreadMessage:</td>
<td>-</td>
<td>Move to previous unread message</td>
</tr>
<tr>
<td>nextUnreadThread:</td>
<td>-</td>
<td>Move to next unread thread</td>
</tr>
<tr>
<td>previousUnreadThread:</td>
<td>-</td>
<td>Move to previous unread thread</td>
</tr>
<tr>
<td>expand:</td>
<td>-</td>
<td>Expand selected messages</td>
</tr>
<tr>
<td>collapse:</td>
<td>-</td>
<td>Collapse selected messages</td>
</tr>
<tr>
<td>expandThread:</td>
<td>-</td>
<td>Expand selected threads</td>
</tr>
<tr>
<td>collapseThread:</td>
<td>-</td>
<td>Collapse selected threads</td>
</tr>
<tr>
<td>expandAll:</td>
<td>-</td>
<td>Expand all threads</td>
</tr>
<tr>
<td>collapseAll:</td>
<td>-</td>
<td>Collapse all threads</td>
</tr>
<tr>
<td>scrollPageDown:</td>
<td>-</td>
<td>Scroll one page down</td>
</tr>
<tr>
<td>scrollPageUp:</td>
<td>-</td>
<td>Scroll one page up</td>
</tr>
<tr>
<td>scrollPageDownOrNextUnreadMessage:</td>
<td>-</td>
<td>Scroll one page down if possible or skip to next message</td>
</tr>
<tr>
<td>makeFirstResponder:</td>
<td>View identifier</td>
<td>Identifiers can be found in layout files</td>
</tr>
<tr>
<td>goToMailbox:</td>
<td>Mailbox UUID (optional)</td>
<td>Select mailbox</td>
</tr>
<tr>
<td>searchAllMessages:</td>
<td>-</td>
<td>Initiate search in “All Messages”</td>
</tr>
<tr>
<td>mailboxSearch:</td>
<td>-</td>
<td>Initiate search in currently selected mailbox</td>
</tr>
</tbody></table>

<h3>Selection</h3>

<table><thead>
<tr>
<th>Selector</th>
<th>Argument</th>
<th>Action</th>
</tr>
</thead><tbody>
<tr>
<td>selectAll:</td>
<td>-</td>
<td>Select all messages</td>
</tr>
<tr>
<td>deselectAll:</td>
<td>-</td>
<td>Clear selection of messages</td>
</tr>
<tr>
<td>moveDownAndModifySelection:</td>
<td>-</td>
<td>Extend selection downwards</td>
</tr>
<tr>
<td>moveUpAndModifySelection:</td>
<td>-</td>
<td>Extend selection upwards</td>
</tr>
<tr>
<td>selectWithFilter:</td>
<td>Filter string</td>
<td>Select a subset of messages matched by the filter</td>
</tr>
</tbody></table>

<h3>Message actions</h3>

<table><thead>
<tr>
<th>Selector</th>
<th>Argument</th>
<th>Action</th>
</tr>
</thead><tbody>
<tr>
<td>openMessages:</td>
<td>-</td>
<td></td>
</tr>
<tr>
<td>newMessage:</td>
<td>-</td>
<td></td>
</tr>
<tr>
<td>reply:</td>
<td>-</td>
<td></td>
</tr>
<tr>
<td>replySender:</td>
<td>-</td>
<td></td>
</tr>
<tr>
<td>replyAll:</td>
<td>-</td>
<td></td>
</tr>
<tr>
<td>forwardMessage:</td>
<td>-</td>
<td></td>
</tr>
<tr>
<td>forwardAsAttachment:</td>
<td>-</td>
<td>Forward selected message as an attachment</td>
</tr>
<tr>
<td>moveToMailbox:</td>
<td>Mailbox UUID (optional)</td>
<td></td>
</tr>
<tr>
<td>moveThreadToMailbox:</td>
<td>Mailbox UUID</td>
<td>(not fully implemented)</td>
</tr>
<tr>
<td>archive:</td>
<td>-</td>
<td>Shorthand for ( &#39;moveToMailbox:&#39;, &#39;archive&#39; )</td>
</tr>
<tr>
<td>moveToJunk:</td>
<td>-</td>
<td>Shorthand for ( &#39;moveToMailbox:&#39;, &#39;junk&#39; )</td>
</tr>
<tr>
<td>deleteMessage:</td>
<td>-</td>
<td>Shorthand for ( &#39;moveToMailbox:&#39;, &#39;trash&#39; )</td>
</tr>
<tr>
<td>toggleTag:</td>
<td>IMAP keyword</td>
<td></td>
</tr>
<tr>
<td>setTag:</td>
<td>IMAP keyword</td>
<td></td>
</tr>
<tr>
<td>removeTag:</td>
<td>IMAP keyword</td>
<td></td>
</tr>
<tr>
<td>toggleReadState:</td>
<td>-</td>
<td>Shorthand for ( &#39;toggleTag:&#39;, &#39;\Seen&#39; )</td>
</tr>
<tr>
<td>toggleFlag:</td>
<td>-</td>
<td>Shorthand for ( &#39;toggleTag:&#39;, &#39;\Flagged&#39; )</td>
</tr>
<tr>
<td>toggleMuteState:</td>
<td>-</td>
<td>Shorthand for ( &#39;toggleTag:&#39;, &#39;$Muted&#39; )</td>
</tr>
<tr>
<td>saveAttachments:</td>
<td>-</td>
<td>Display “Save Attachments” panel</td>
</tr>
<tr>
<td>saveAttachmentsInDownloads:</td>
<td>-</td>
<td>Save attachments in Downloads folder</td>
</tr>
<tr>
<td>undo:</td>
<td>-</td>
<td></td>
</tr>
<tr>
<td>redo:</td>
<td>-</td>
<td></td>
</tr>
</tbody></table>

<h3>Composer</h3>

<table><thead>
<tr>
<th>Selector</th>
<th>Argument</th>
<th>Action</th>
</tr>
</thead><tbody>
<tr>
<td>saveDocument:</td>
<td>-</td>
<td>Save draft</td>
</tr>
<tr>
<td>showContextMenu:</td>
<td>-</td>
<td>Show context sensitive menu (can be used to show spelling alternatives in the composer)</td>
</tr>
<tr>
<td>sendAndArchiveParent:</td>
<td>-</td>
<td>Send message and then archive the replied message</td>
</tr>
<tr>
<td>sendAndMoveParentToMailbox:</td>
<td>Mailbox UUID</td>
<td>Send message and then move the replied message to the given mailbox</td>
</tr>
<tr>
<td>insertFormatString:*</td>
<td>format string</td>
<td>Insert text in composer using a format string</td>
</tr>
</tbody></table>

<p>* Experimental feature added as an alternative to <code>insertText:</code> for key bindings. Mainly to allow one to do something like <code>&quot;x&quot; = ( &quot;reply:&quot;, &quot;insertFormatString:&quot;, &quot;Hi ${from.name.first},\n\n&quot;);</code>.</p>

<hr>

<p>Benny</p>

</div>