Ask Different is a question and answer site for power users of Apple hardware and software. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

When at home I use my 13" MacBook Pro hooked up to an 27" external monitor. When working on my 27" screen I prefer to have a visible dock at all times. I have enough screen real estate to afford this luxury.

When I'm on the road working on my 13" screen I prefer to automatically hide the dock as it really gets in the way when screen real estate is limited.

I now manually switch between enabling and disabling hiding (using ⌥⌘D) but I would prefer this to happen automatically. Can I enable hiding the dock on my MacBook monitor and disable hiding the dock on my external monitor?

share|improve this question

Applications like Sidekick or ControlPlane allow you to change settings (network, desktop picture, custom terminal actions) based on location evidences (geolocation, attached devices...etc). I'm sure you will be able to use one of those to detect you are at your desk with your 27" plugged in and run a command disabling auto-hide.

share|improve this answer
Thanks for the suggestions! Sidekick doesn't really apply because it's purely based on geolocation and I often use my Macbook in the vicinity of my monitor without it being plugged in. ControlPlane does look potentially interesting though. I'll try it out and accept your answer if it works. – Dennis Laumen Apr 30 '13 at 8:17

I was able to use the previously suggested ControlPlane app along with some simple shell scripts to get this working.

First, I created a context for having my Thunderbolt Display plugged in ("Desk"), and one that negated that choice ("Lap"). Next, I made two simple shell scripts to toggle the autohide setting and restart the Dock. I put them in a .controlplane directory in my home folder.


defaults write autohide -bool true && killall Dock


defaults write autohide -bool false && killall Dock

I then set those files to be executable.

Lastly, I set the correct script to run for the appropriate ControlPlane context. (Note: I had to show hidden files in the dialog with "⌘+⇧+.")

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.