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

I'm having an issue with forcing a file of a certain type to always open with a specific program. In this case, it's .indd (Adobe InDesign) files. I have Adobe CS6 installed, and also Adobe InDesign 5.5. I would like to always open .indd files with InDesign 5.5.

I've tried using Get Info > Open with: > InDesign 5.5 > Change All... but it keeps automatically switching back to CS6, immediately after clicking Change All....

Is there perhaps a way I can force this in Terminal?

share|improve this question
Although often there's no controlling Adobe, you might try changing permissions to user read/write in all relevant directories, with BatChmod or similar, and trying Change All again. – Zo219 Dec 1 '12 at 10:36

If you don't mind specifying InDesign 5.5 every time, then this command line should work:

open -a 'InDesign 5.5' myfile.indd

If you're going to do this often, you can wrap it in a shell script or bash function like

function indd() { open -a 'InDesign 5.5' "$@" ; }

Then you'll be able to simply say

indd myfile.indd

share|improve this answer
This is quite good, though ideally it should be a little more user-friendly. Is there a way to intercept a double-click on an .indd file, and send that action to the first bash script? – Jezen Thomas Nov 30 '12 at 12:53

You could try editing ~/Library/Preferences/

defaults write LSHandlers -array-add '{LSHandlerContentTag=indd;LSHandlerContentTagClass=public.filename-extension;LSHandlerRoleAll=com.adobe.InDesign;}'

Applying the changes requires restarting (logging out and back in isn't enough).

Rebuilding the LaunchServices database might also work, but it also resets other default applications set in Finder.

/System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -kill -domain local -domain system -domain user

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.