Macintosh Tips and Tricks

This is a list of hardware, software and information that has been useful to me as I’ve moved over to Mac OS X. I hope that you find it useful as well. This version is now up to date for Mac OS 10.8 Mountain Lion and Intel Macs.

Hardware

  • NEC MultiSync LCD 3090WQXi – 30″ color accurate display with a wide color gamut.   Color accuracy is a big deal for photographs.
  • Logitech MX Revolution - More mouse buttons is better.   I use this mouse to scroll, to page backwards and forwards, to trigger Spaces and Expose.   The only sad part is that I needed a third party mouse driver, Steermouse.  Steermouse doesn’t know how to talk to the mouse’s battery indicator, so sometimes I’ve forgotten to recharge the mouse.
  • Griffin Powermate I love this thing. I put in on my keyboard tray on the other side of the mouse, and use the non-mouse hand to do scrolling. I have a mouse with a scroll wheel, but this lets me scroll and click independently.
  • Sandisk Extreme Firewire Compact Flash Reader After I got this, my download times went way down. If you are shooting RAW on a digital SLR, you need an external card reader.
  • X-Rite ColorMunki Photo It’s not enough to have a monitor with a wide color gamut – you also need to calibrate/profile that monitor.
  • Wacom Intuos 3 6×11- This makes fine photo adjustments tolerable.
  • HP 2727nf MFP – I’ve been buying duplexing laser printers for years.   The fact that you can get a duplex printer, a scanner, and a copier in one inexpensive unit still blows my mind.   I’m still not getting all the mileage out of the scanner that I could.
  • Fujitsu ScanSnap S1500M The scanner in the HP2727nf is nice, and for things like books it is useful. But for any other kind of paper that needs to be scanned, the ScanSnap is my go-to device. Receipts, Bills, documents. It’s very easy to scan these into PDFs, directly into mail, or directly into Evernote

Software

Utilities

  • Alfred I used to be a QuickSilver user, but QuickSilver languished for a long time, and it never really grew a large community. Alfred costs money, because you really want the Power Pack extensions to get the real power out of it, but everytime I’ve wondered whether there was an Alfred workflow for some task, there was usually at least one.
  • Pathfinder CocoaTech’s Pathfinder is a Finder replacement that includes many features. Some of the reasons that I like it are that it can open a terminal window on a particular folder. It supports tabbed terminal windows, which makes it easier to manage a proliferation of open shell windows (I feel that I need this even with Expose available).  You can also have tabs of browser windows and save sets of those tabs, which is really handy for managing different projects.  When you select various kinds of files in the file browser, you get a preview of the file contents. The Drop stack makes it easy to drag files from one place to another without requiring multiple windows everywhere.  Pathfinder 5.0 allows you to split a Pathfinder window into two panes, which helps with file management tasks without proliferating windows.
  • DefaultFolder DefaultFolder extends the standard open and save dialog boxed you to remember which folders you visited recently, and allows you to make some favorites permanent. You can create sets of favorite folders on a per application basis. This is a big improvement on the standard dialogs.
  • SteerMouse This is the driver I use to enable all the MX Revolution’s butttons
  • Growl A system wide notification service with command line tools and Python bindings. Supported by Ecto, Adium and everything else
  • iStat Menus iStat Menus is the ultimate system monitoring utility.  Because of it I stopped using iPulse, and MenuCalendarClock, and SlimBatteryMonitor
  • Fastscripts This is an incredibly useful app that allows you to invoke AppleScripts from a menu in the menu bar. That menu is application aware, and you can assign keyboard shortcuts to scripts. The final killer feature for me is the ability to option-select a script in the menu and have it opened in Script Editor
  • TypeIt4Me TypeIt4Me allows you define text abbreviations that will be expanded when they are typed into a text entry box. I have a ton of abbreviations, and I am always adding new ones. I preferred TypeIt4Me to Textpander because TypeIt4Me can invoke applescripts from the abbreviations. Support from Riccardo Ettore, the author has been great.
  • Keyboard Maestro Keyboard Maestro is the new Quickeys, for those of you who know what Quickeys was. If you want to trigger something from the keyboard Keyboard Maestro is it. Alfred for launching and big custom workflows, TypeIt4Me for text substitution / insertion, and Keyboard Maestro for the rest.
  • Hazel is a great tool that allows you to specify rules that run when files appear in particular directories. It also has great functionality for cleaning up the associated files when you delete an application
  • SuperDuper It’s really important to backup your computer. I learned this the hardware when mine was stolen and the backups were old. SuperDuper backs up by copying one drive to another — it doesn’t do incremental backups that allow you to go back in time over versions. That’s fine with me. SuperDuper wakes up early every morning and backs up my disk.  And yes, I use SuperDuper in addition to Time Machine. Cheap, fast, and good.
  • Bwana Bwana allows you to use your default web browser to read UNIX man pages.?
  • WhatSize WhatSize is a tool that helps you figure out where all that disk space is going. It looks like the column view in the Finder except that also shows the amount of space used by entries in the view.?  Later versions have gone payware
  • OmniDiskSweeper ?At the same time, Omni Group’s OmniDiskSweeper has become free, so I use it now.
  • Lingon launchd is OS X’s way of kicking off periodic jobs. Lingon is a good GUI tool for helping to create launchd configuration files. Essential for a highly automated system.
  • blueutil blueutil lets you turn Bluetooth on and off from the command line. Combine that with this hint and you can turn bluetooth on and off from Alfred.
  • Flip4Mac You need Flip4Mac’s Windows Media Components for Quicktime in order to play .wmv files on a Mac.
  • Bonjour Browser A little application that lets you see what computers are offering which services via Bonjour.
  • Sloth Sloth a gui for lsof, which will tell you what files are open and which application has the files.
  • Stay Stay is the solution for windows moving all around on a laptop, particularly when you are also plugging into external monitors
  • Unicode Checker A useful tool for dealing with Unicode. Also makes itself available via the services menu
  • CocoaDialog Mac OS X user interface dialogs that you can call from your favorite UNIX scripting language
  • Pashua Mac OS X user interface dialogs that you can call from your favorite UNIX scripting language – can also do Applescript

Applications

  • Firefox I am primarily using Firefox as my browser.The first order bit is tabbed browsing. Safari has tabs, but its tools for managing tabs are primitive. The second order bit is extensions. I am using the Tab Mix Plus extension which provides much better tab management facilities then stock Firefox. Other important extensions that I am using are the Adblock which allows me to kill various kinds of ads/Flash, etc, NoScript, which prevents Javascript from running, and FlashBlock, which prevents Flash from running.. Greasemonkey allows you to change the behavior of web apps by injecting Javascript code into the page. There are some pretty cool Flickr tools written using Greasemonkey. The existence of these kinds of plugins is the differentiator between Firefox and Safari (and everyone else). Safari is faster and better integrated withe the Mac OS (Bonjour and Services support are examplse), but Firefox is extensible and is improving. The fact that Firefox is open source is good (it contributes to rapid improvement), but not as important as the plugin architecture. (Actually I am getting more and more unhappy with the lack of integration of Firefox. I am starting to use Safari for some tasks, and I am also using Google Chrome when I need to look at a page with image loading and Javascript turned on. Also Chrome’s web development tools are really really good.
  • NetNewsWire NetNewsWire is the only Macintosh RSS reader that supports my scan and tab pattern of RSS reading. I open up groups of feeds in NetNewsWire’s combined view, and read as much as I can inside of NetNewsWire. If the article is long or good, I click on it to send it to a tab in NetNewsWire’s tabbed browser. After I finish scanning with the combined view, I then walk through all the tabs and read them. I also make use of the fact that NetNewsWire can run scripts that output RSS to generate RSS feeds from my private servers. I also have a pile of custom AppleScripts and Python OSA scripts which I use to customize and integrate NetNewsWire into my desktop. It is a huge plus that Brent Simmons, the developer of NetNewsWire, is accessible and friendly.
  • TweetBot Tweetbot is my choice for desktop Twitter client.   It has the best support for the way that I use Twitter
  • Fluid Fluid lets you create application specific browsers based on WebKit.  I use it for Facebook, and Flickr
  • Ecto Ecto is an excellent application for posting to a blog. It handles HTML, HTML previewing, local composition of posts, ping notification, and more. Currently it has support for blogs that use the Blogger, MetaWeblog, and Movable Type (Blogger/Metaweblog combination) APIs. Atom support is supposedly coming soon. Unfortunately development of Ecto has slowed down substantially.  On the other hand it does almost everything I need it to (except for editing pages in WordPress).
  • Evernote Evernote is a great application for taking text, voice and image notes. It allows you to tag individual notes for later retrieval. There is a web version of Evernote which can sync to the desktop version and to the iPhone version of Evernote, which is the best note taking application on the iPhone. The same is true for the iPad version of Evernote. Evernote is one of the cornerstones of me being up-to date on Mac, iPhone, and iPad.
  • DEVONthink Pro Office This is a super functional program which I use to capture and categorize interesting information, including web pages, PDFs of research papers, OmniOutliner documents and more.  It’s a great researcher’s tool
  • Dropbox Dropbox allows you to create a shared folder which kept in sync with an account on the Dropbox service.  You can share the dropbox via the web client, multiple desktop clients (including Windows and Linux), and the iPad or iPhone (Android too).   If you have more than one computer or an iPad, I think it’s a must. If you sign up for Dropbox using this referral code, you and I will get a little extra space.
  • 1Passwd 1Passwd is the best password manager program for the Mac. It works with all major browsers, including Firefox, Safari, Google Chrome, and NetNewsWire. It does a super job of filling login forms, even unusual ones that Firefox’s built in password manager fails to fill in. It also contains a handy strong password generator, so you can stop using the same password everywhere. And there is an iPhone and iPad version.
  • Pukka Pukka is a handly little application for stuffing URL’s into del.icio.us You can use Pukka as NetNewsWire’s del.icio.us posting application.
  • Snak I spent a lot of time looking for a decent IRC client. I am not in IRC that much any more, but when I was, I was in at least 10 channels on a daily basis. Managing that many channels is tough. I wanted a way to have all the channels visible at once, which rules out a tabbed interface. I also needed customizable actions on a per channel basis. I also wanted to be able to log each channel, since there is often useful information there. Snak allows me to log into all the channels automatically at the start of my day. I create two Snak windows, each tiled with 3 channels, so I can see all the channels at once. These windows and iChat go on the MacBook Pro display, which I reserve for interactive communications. I have actions set to look for my nick in the various channels and notify me accordingly. In the important channels, I get a speech and dock bounce notification. In the others I get beeps. All channels are logged to a directory. Snak is also scriptable, but I haven’t really gotten into that yet.
  • Adium The best multiprotocol IM client for the Mac. Supports OTR encryption of IM’s. I’m pretty much using this, even though iChat can do audio and video. See the next entry for why.
  • Skype I switched to using Skype for both audio and video, because it was just easier to interoperate with people on Windows machines. I could never get the iChat video to work with AIM on Windows. I’m only sorry that I’ve added one more communications program to my system.
  • OmniOutliner I admit to being an outliner lover, all the way back to Dave Winer’s original ThinkTank for the Mac. I use OmniOutliner for all kinds of outlining tasks.
  • OmniFocus In theory I am a practitioner of David Allen’s Getting Things Done. In reality, I’m not quite there yet, but I rely on OmniFocus as my trusted system where information goes so that I eventually act on it. It is a critical application for me, particularly because of the iPad and iPhone apps.I use this one all day, every day.
  • Photoshop Lightroom Lightroom gets the node for organizing and light postprocessing of photographs.  It’s gotten quite capable, so even for some selective adjustments Lightroom is all you need.
  • Photoshop If you need to make fancy adjustments to just a part of a picture, you need Photoshop.
  • GPGToolsFor encrypted signed e-mail I am primarily using PGP. GPGTools a full suite of tools for using PGP on a Mac including integration with Mail.app.
  • iChm  I am using this mostly to read the CHM versions of the Python documentation (available at python.org). The primary benefit of using CHM format is that the viewer contains a good search capability. There’s no need for an internet connection (as would be needed if you used Google to search the web pages for the documentation set.?
  • Virtualbox Virtualbox is an open source desktop virtualization program that runs on Mac OS X, Windows and Linux.  I use it to run Windows, Linux and OpenSolaris VM’s
  • Skim Skim is a PDF reader and note-taker. It’s open source, and I am hoping that the developers will make it into a competitor for Yep or Papers.
  • Movist Being on a “minority” platform such as OS X or Linux can be a pain when dealing with multimedia files. Movist is a great player that can hande most of those files that QuickTime and the MS Windows Media Player can’t play.  When Movist fails, I break out VLC.
  • Perian A collection of A/V codes to augment what QuickTime doesn’t play natively
  • CoRD Open source RDP client for talking to Windows.
  • VisualAck A visual UI to the code oriented replacement for grep, ack.

Built in apps

  • Mail.app I switched from using Thunderbird for mail to Mail.app. Here are some of the reasons.  I like the integration with the Mac OS X address book. There are good built in options for notification, including speech. I used to think that the buddy icons in IM programs were just eye candy, but the I’ve noticed that use of pictures in Mail.app and iChat helps to keep things straight in my head when I have multiple threads of communication going on. In fact, I wish IRC clients could do this. The availability of a good PGP plugin also helped (Enigmail for Thunderbird is also excellent). In general, I found Mail.app to be very snappy (compared to Thunderbird), and the searching was fast enough and useful enough that I actually use it. I also like the way the Mail.app handles threads. The visual grouping works well, and threads with new messages sort to the bottom (or top, depending on how you like it) of the Inbox area, making it easy to follow threads. The only flaw in the thread handling is that not all the thread indentation is preserved.  Also, I use Python to script Mail.app.   This is essential to my ability to deal with my email in any kind of sane way.

    Here are some useful plugins for Mail.app, again demonstrating the value of a plugin system.

    • Mail.app plugins This is a good directory of plugins for Mail.app
    • Mail Act-On Mail Act-On allows you to invoke Mail.app rules from keyboard shortcuts. This is super handy.
    • MailTags MailTags allows you to tag e-mail messages and to build smart folders based on those tags. You can also access the tag information from Mail.app rules.

Unix compatibility

  • Gnu Emacs for Mac OS X If you’re an Emacs users, you need this. If you’re not, I’m not going to try and convince you. This is updated roughly quarterly and works great.
  • XQuartz You’ll need this to run some Linux apps. If you need X support this is what you want.  This is the most up to date version of X
  • Git  Git is available on OS X, and works great. Nowadays I get the latest version via Homebrew
  • GitX GitX is a reasonably nice OS X GUI for Git.
  • Mercurial There are prebuilt Mercurial binaries for OS X.  You want them.
  • Murky Murky is a nice native OS X GUI for Mercurial
  • Zsh zsh is the power user’s interactive shell. It has incredibly powerful command (programmable) and file completion, and a host of other features that I can’t even begin to describe. You can look at my blog for zsh related posts.
  • Homebrew  This is the best of the packaging systems for OS X.

Self Expression/Customization

Screensavers

I used to use a bunch of different screensavers, but since I started taking pictures, I just put a bunch of my best photos in a folder and let the screensaver cycle through those.

Tips and Info

Command Line interface to the Address Book
I don’t make any apologies about being a shell guy, so I like to have command line tools for as much as possible. contacts lets you access the Mac OS X Address Book from the command line. I rebuilt this from source for Intel Mac.
say
One of the nice things about Mac OS X is that you have easy access to speech synthesis. This is useful for all kinds of notifications. Many of the Mac applications can take advantage of this. The say command lets shell scripts (and any program that can exec other programs) have access to the speech syntesizer as well. man say for the details. I use say at the end of long running commands to let me know that the run has finished.
Command line power manager
The built in command pmset lets you display and modify the power management settings.
Controlling NVRAM settings
The nvram command lets you modify the Open Firmware Non-Volatile RAM settings. I used this to make my boot sequence more UNIX like (console w/ scrolling UNIX stuff) by doing sudo nvram boot-args="-v"
Dealing with the Clipboard from the command line
Thanks to Wilhelm Fitzpatrick for this one. You can use the commands pbcopy and pbpaste to manipulate the clipboard from the shell or a shell script.
Manipulating services
The /sbin/service command will let you enable and disable services from the command line
What should I set JAVA_HOME to?
Apple’s Java is a different place that non Mac Java developers will have a hard time finding. Set JAVA_HOME=/Library/Java/Home
CUPS tricks
Mac OS X uses CUPS to manage printing. You can get to the CUPS control panel via http://127.0.0.1:631/. I have a duplexing HP LaserJet 2727nf. In order to get lpr to do duplexing, I had to do lpoptions -p <printer-name> -o sides=two-sided-long-edge. In order to get lpr to recognize the name of the printer (it’s connected over Ethernet via TCP/IP), I had to muck with entries in /etc/cups/printers.conf and I had to copy/rename ppds i /etc/cups/ppd. It was no fun, but it works.
Repairing disk permissions from the shell
To repair disk permissions from the shell use: sudo diskutil repairPermissions /
Automatically loading ~/Library/Java/Extensions
Mac OS X automatically loads jars from the directory ~/Library/Java/Extensions. Whether this is a good thing or a bad thing is up for debate.
~/Applications
This one is a personal preference. I’ve installed most of my applications to a ~/Applications directory instead of /Applications.
readline support for Apple Python
Due to a conflict with readline’s licensing under the GPL, the Python 2.6 shipped on Snow Leopard is missing readline support, which you just plain need in the interactive interpreter. This blog post shows how to get it installed.
Lookup Carbon Error codes from the command line
On Mac OS 7/8 there was a nice desk accessory that let you look up various Macintosh error codes. This MacOSXHints article describes a variety of ways to do this lookup from the Shell on Mac OS X. I ended up using the perl version at the end. If you know of an unobtrusive GUI version let me know.
Automounting SAMBA shares
I have a few Linux boxes lying around the house doing duty as webservers and so on. Because we used to be a Windows household, each of those servers exports directories as SAMBA shares. I’m not really interested in setting up NFS (although maybe I should — but then I’d probably want AFS or CODA), so I just want a way for those shares to get mounted when I log in or when the MacBook Pro wakes up. It turns out that this is harder than it ought to be. You can mount shares in the Finder via Applescript code that looks like this:

tell application "Finder"
    try
    	mount volume "smb://WORKGROUP;username:password@machine_name/directory"
    end try
end tell

Automounting of shares in /Network is controlled by NetInfo — you have to use the NetInfo Manager as described in this article. You need to supply a SAMBA url instead of an AFP url. You can also mount using a shell script.

#!/bin/bash
mount_smbfs //username:password@server1/home ./s1home

You also want to unmount them when you go away / lid close You can unmount non local volumes in Applescript like this:

tell application "Finder"
	eject (every disk whose local volume is false)
end tell
Running shell scripts at login and logout
Note that this is different from running the .profile or equivalent files, since they apply to shells started in Terminal, iTerm or the PathFinder terminal, etc. These scripts are executed when you login and logout of OS X. Mike Bombich, author of Carbon Copy Cloner (which I haven’t tried yet) has a pointer to doing it exclusively via the command line, or by using his free LoginWindow Manager program. This would be a good place to mount and unmount shares, etc.
Viewing any number of individual days in iCal
[Via macosxhints.com] Press Command-Option-{2,3,4,6} to view 2,3,4, or 6 days. Command-Option-5 shows the 5 day week and Command-Option-7 shows the 7 day week
Virtual Hosts and mod_rendezvous_apple
This article tells how to setup virtual hosts so that Apple’s mod_rendezvous will show each virtual host. Rendezvous access to websites is great for conferences and other ad-hoc in person networking situations, as well as mobile work groups. I wish that Firefox had this.
Quit Mac apps from the shell
Command line to quit applications. I’m using the nice zsh functions.
Easier command line Mac app launching
Shell script to make it easier to launch Mac apps from the command line
Tell Mail.app to send a message on a schedule
Andreas Amann’s Mail Scripts, a set of AppleScripts to make Mail.app do various cool things. The one I like the most is Schedule Delivery.
Getting to hidden folders in open/save dialogs
You need to know how to do this!
How to launch a GUI app as root
If you must, you must
Nicer separators for Safari Bookmarks
I’m using Safari a bit more
You can pipe the output of a shell command to “open -f” to get that output into TextEdit [via Macworld 10/2004 p. 87 ]
Some of this type of stuff can be done with Quicksilver
Turn on the Safari Debug Menu
There are a few useful items in the Debug menu – like import/export of bookmarks

Good Resources

  • Faisal Jawdat’s OSXHack mailing list.
  • Mac OS X Hints
  • Gibson Research’s ShieldsUP!
  • A web based port scanner that you can use to test how well your firewall is setup. You have to scroll down the page and click the link (it gets generated according to your IP address)

2 Responses to “Macintosh Tips and Tricks”


  • How about this:

    (*

    Thanks to:

    Tweet by Coda Hale & Mike Keen
    http://blog.codahale.com/2007/01/15/tweet-twitter-quicksilver/

    Growlified Tweet by
    http://www.sauria.com/blog/2007/01/18/growlified-tweet/

    AppleScriptTweet v1.0 ©2010 Jim Mitchell
    http://jimmitchell.org/projects/applescripttweet/

    The script requires installing the “twurl” rubygem — a Twitter-friendly version of the Unix curl — in order to operate properly.
    Point your browser to and carefully follow the directions in the “Read Me” section.

    BE ADVISED: I will politely decline all support requests for installing/using twurl since it is not my code…

    This script is released under the Creative Commons GPL 2.0 license.
    http://creativecommons.org/licenses/GPL/2.0/

    *)

    property theAccount : “theBlueLion” — this is the twitter account to use if you have multiple instances of the script in play.
    –property theApp : “AppleScriptTweet” — this should be the same name as what you registered with http://dev.twitter.com/apps/
    property theApp : “qucs” — this is how Quicksilver is registered with http://dev.twitter.com/apps/
    using terms from application “Quicksilver”
    on process text tweet
    set charcount_max to 140
    set charcount_tweet to (count characters of tweet)
    – Check message length
    if charcount_tweet < charcount_max then

    set theTweet to quoted form of ("source=" & theApp & "&status=" & tweet)
    set TwitterUpdate to "twurl -d " & theTweet & " /1/statuses/update.xml"
    set TwitterResponse to do shell script TwitterUpdate
    if TwitterResponse contains "” then
    growlNotify(“Fout bij posten Tweet”, “Tweet niet gepost. Twitter geeft moeilijkheden.”)
    else
    growlNotify(“Tweet gepost”, tweet)
    end if
    else
    – Tweet is too long
    growlNotify(“Tweet te lang”, “Tweet is ” & charcount_tweet & ” karakters lang. De maximum lengte is ” & charcount_max & ” karakters.”)
    end if
    end process text
    end using terms from

    using terms from application “GrowlHelperApp”
    – Register Growl
    on growlRegister()
    tell application “GrowlHelperApp”
    register as application “Tweet” all notifications {“Alert”} default notifications {“Alert”} icon of application “Script Editor.app”
    end tell
    end growlRegister

    – Notify using Growl
    – Example: growlNotify(“This is an Alert”,”This is a test of the Growl Alert System”)
    on growlNotify(grrTitle, grrDescription)
    tell application “GrowlHelperApp”
    notify with name “Alert” title grrTitle description grrDescription application name “Tweet”
    end tell
    end growlNotify
    end using terms from

  • I definitely give the thumbs up to the NEC 3090WQXi I use it for photography and the gamut is top notch and a great viewing angle to boot.

    I think the A5 wacom Intuos is big enough for me…then again I dont have the desk space for a bigger one!

Leave a Reply