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?

  • 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, 2012 at 10:36

2 Answers 2


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

  • 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? Nov 30, 2012 at 12:53

You could try editing ~/Library/Preferences/com.apple.LaunchServices.plist:

defaults write com.apple.LaunchServices 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

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .