Adds Gmail style keyboard shortcuts to Apple Mail. Tested on El Capitan, may not work on older versions of OSX. Inspiration taken from Gmailnator.
| Key | Action |
|---|---|
! |
Mark as junk |
# |
Delete message |
/ |
Find in mailbox/message |
? |
Open Keyboard shortcuts |
<shift> + i |
Mark as read |
<shift> + j |
Older conversation select |
<shift> + k |
Newer conversation select |
<shift> + u |
Mark as unread |
^! |
Mark as junk |
a |
Reply all |
c |
Compose message |
e |
Archive message |
f |
Forward message |
g then a |
Go to Archive |
g then c |
Go to Contacts |
g then d |
Go to Draft |
g then i |
Go to Inbox |
g then l |
Go to Label |
g then s |
Go to Flaggged |
g then t |
Go to Sent |
j |
Older conversation |
k |
Newer conversation |
l |
Open "copy to" menu |
n |
Read next message |
o |
Open message |
p |
Read previous message |
r |
Reply |
s |
Toggle flag |
u |
Back to thread list |
v |
Open "move to" menu |
y |
Archive message |
NOTE: u works only for open messages
NOTE: ^ = Control key
Gmail supports g then (a, c, d, i, s, t) shortcuts to go to specific mailboxes. In order for the g then ... configuration to work for Archive and Flagged, you will need to configure your Favorites Bar to include these two folders. You can have other folders as well, but you must include Archive and Flagged. Your Favorites Bar should look something like the following:
If you are not familiar with the favorites bar, see the following instructions for help.
- Download Gapple.mailbundle.zip located in the build directory, note if your building the bundle then you don't follow this step
- Enable
Mail.appplugins:defaults write com.apple.mail EnableBundles -bool true, note you only need to do this once - Expand
Gapple.mailbundle.zip - Copy
Gapple.mailbundleto~/Library/mail/bundles, note: you may have to create thebundlesfolder
Apple Mail requires a Plugin Compatibility UUID in order for a mailbundle to load. If you get an error regarding Gapple.mailbundle when Mail loads, it is most likely due to the UUID. To fix this, follow these steps:
- Download the project as laid out in Setup Workspace
- From
terminalrundefaults read /Applications/Mail.app/Contents/Info PluginCompatibilityUUID - This will print the current Mail
UUIDto the screen - It should looks something like
DAF41AB7-F9AD-4273-9934-C81C74705B69 Copythe value to the clipboard.- Edit the
info.plistfile located in~/Desktop/Gapple/Supporting Files - Add the
UUIDto theSupportedPluginCompatibilityUUIDsof the file - Save the
info.plistand follow the Compile instructions
The SupportedPluginCompatibilityUUIDs section of the info.plist looks like this:
<key>SupportedPluginCompatibilityUUIDs</key>
<array>
<string>B61772F2-9975-4EC0-B22F-9A277C46ADD2</string>
<string>0A13A9ED-4864-4F07-AE70-60FB2F7EA63D</string>
<string>DAFFB2B4-77BC-4C25-8CE1-2405E652D54B</string>
<string>2B98D2DD-000B-4521-83EB-7BFCB9B161C8</string>
<string>608CE00F-4576-4CAD-B362-F3CCB7DE8D67</string>
<string>1146A009-E373-4DB6-AB4D-47E59A7E50FD</string>
<string>2183B2CD-BEDF-4AA6-AC18-A1BBED2E3354</string>
<string>19B53E95-0964-4AAB-88F9-6D2F8B7B6037</string>
<string>0941BB9F-231F-452D-A26F-47A43863C991</string>
<string>04D6EC0A-52FF-4BBE-9896-C0B5FB851BBA</string>
<string>FBE5B158-5602-4A6D-9CC5-8461B9B7054E</string>
<string>1CD40D64-945D-4D50-B12D-9CD865533506</string>
<string>88ED2D4C-D384-4BF5-8E94-B533455E6AAF</string>
<string>F4C26776-22B3-4A0A-96E1-EA8E4482E0B5</string>
<string>D1EFE124-86FF-4751-BF00-80B2C0D6F2E4</string>
<string>800E5C92-87D3-429B-8740-5C6183CD13EA</string>
<string>7C051997-F45A-4523-B053-2D262F94C775</string>
<string>YOUR NEW UUID GOES HERE</string>
</array>You will need to be somewhat familiar with git and xcode.
- Open
terminaland run the following command
mkdir ~/Desktop/test
mkdir ~/Desktop/Gapple
cd ~/Desktop/Gapple
git clone https://github.com/ironfish/Gapple.git- Run
Xcode - Select
Open...from theFilemenu - Choose
~/Desktop/Gappleas the project - Select
Buildfrom theProductmenu
This will generate Gapple.mailbundle in the ~/Desktop/test folder. Follow How to Install for installation.
- Write tests
Find a way to useginstead of thectrlkeyImplementg then lforGo to labelImplementg then cforOpen contactsImplementlforOpen "copy to" menuImplementvforOpen "move to" menu- Implement
copy tofunction - Implement
move tofunction
I wrote this project to learn Swift. That being said, I am far from being a Swift or Objective-C expert.
