I write a lot of technical emails, and like to use a monospaced font for the code bits. Highlight text, hit apple-T, choose my font from the list of favorites, then close the font window. Is there a way to use a keyboard shortcut to apply a given font to the currently selected text? Ideally this would be OS-wide, but if that's not possible I can use it for just a single app (Mail.app)
migrated from stackoverflow.com Sep 16 '11 at 10:17
I don't know of a system-wide way to script the Fonts panel but here's a few ways to get quick access to monospace fonts in Mail.app
Way 1: Plan Text Message
Go to Mail.app's preferences > Fonts & Colors and check the checkbox for "Use fixed-width font for plain text messages"
Now when you're in a message where you want to use a monospace font you can simply hit: Command-Shift-T and you can toggle between the fixed-width font of your choice and your standard font (plain text message & rich text).
The downside of this method is if the receiver has not set their font to a fixed-width font they may not see the message as intended.
Way 2: Set the Font with Applescript
The second way to do this would be to create a new message with the correct font chosen using Applescript. You can do that like this:
You do have to set the content to something with this script. It seems Mail doesn't let you set the font for an empty message.
Way 3: Use TextExpander
This way costs money but it might give you what you are after. You could setup a couple of TextExpander ($34.99 USD on the app store) shortcuts for fixed width and normal type so that you can switch back and forth by typing a few characters.
TextExpander will allow you to insert rich text (text with a font, color, style, etc set). Just create a snippet of type Formatted Text, Pictures and set a font for the text you'll be inserting. You will need to include at least a space character for this strategy to work.
You will need your snippits to include at least a space character to ensure that the font will take.
Copy a character with a specific style:
Insert a character with a specific style: