52

How can I add an application to the Open With menu (shown after right-clicking) for a given file type, without making that file always open with that application?

In this specific instance, I'd like to the option to open an Web site location (.URL) file with TextEdit, while still defaulting to Safari.

I'm running OS 10.7.4.

  • 3
    If the program can open it, then it will add itself to that menu. Otherwise, it means it can't open it. – Anriëtte Myburgh May 31 '11 at 7:56
  • 12
    This seems to not always be true. TextEdit can open URLs, but it is not in the "Open With" submenu. – KatieK Jun 1 '11 at 22:07
25
+200
  1. Add this to the CFBundleDocumentTypes array in /Applications/TextEdit.app/Contents/Info.plist:

    <dict>
        <key>CFBundleTypeExtensions</key>
        <array>
            <string>url</string>
        </array>
    </dict>
    
  2. /System/Library/Frameworks/CoreServices.framework/Versions/A/Frameworks/LaunchServices.framework/Versions/A/Support/lsregister -f /Applications/TextEdit.app/

  3. killall Finder
  4. Change the default application back to Safari in Finder

If the application is signed, modifying an Info.plist invalidates the code signature. It also makes a few applications like TextEdit and WriteRoom crash on launch on 10.8.

  • 1
    Perhaps it's just my computer, but this does not work for me. After following this procedure (to step 3), TextEdit is not available under "Open With" for .URL files. Also, modifying Info.plist seems to cause TextEdit to crash in 10.7, too. – KatieK Oct 16 '12 at 20:50
  • 11
    Is there a way to make this more general? E.g. I want my hex editor (currently HexFiend) as an option to open every goddamn file type including those not having a file extension... – Steven Lu May 20 '16 at 4:05
  • @StevenLu: I made a Finder shortcut in BetterTouchTool to open the currently selected file in HexFiend. – biziclop Dec 27 '18 at 10:52
11

Try selecting the file in the Finder and doing File > Get Info. From there you should be able to choose any application to open it with. Once you've opened that type of file in that application once, it should start appearing in the Open With menu.

EDIT: The answer above does not work. Alternate suggestion:

I felt bad that my prev answer was incorrect, so I googled around. I found this tip from Mac OS X Hints:

  • Control-click (or right-click) the app in question and select "Show Package Contents"
  • Open the Contents folder in the app bundle. There you'll find a file called Info.plist. This is an XML property list that stores all sorts of information about the app.
  • Open the file with your favourite text editor. I recommend Hydra, but TextEdit will do just fine.
  • Search for something that looks like the following:

    <key>CFBundleTypeExtensions</key>
    <array>
        <string>txt</string>
        <string>srt</string>
        <string>suffix1</string>
        <string>suffix2</string>
        …
    

    and so forth, with the suffices the app is able to open contained within the tags. Then you simply delete [or add --newtron] the suffix for items you don't want [or want] the app to open.

  • Save the file, and close it (or quit the editor).

  • This does not seem to work. In "Get Info", I can "Open With" the same applications as normal, or choose "Other". If I choose "Other", I can choose from all applications, and either check or uncheck "Always Open With". Even after opening the file once with TextEditor, it does not appear as an additional option in the "Open With" submenu. – KatieK Jun 1 '11 at 22:12
  • Shoot, you're right. I will edit the answer to reflect this and update it with an alternate suggestion. – newtron Jun 2 '11 at 0:37
  • This updated answer doesn't work all by itself, even after a reboot. – KatieK Jun 8 '11 at 3:37
  • Think this method worked in snow leopard..superuser.com/questions/222065/… – Ryan Hollingsworth Oct 10 '12 at 12:37
8

newtron's second solution worked for me but only after I opened Terminal and executed the following command:

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

After restarting the system the desired app was in my "open with" context menu.

Thanks

  • This is also useful if you want to clear the list and start again. e.g. VMWare Fusion had placed entries somehow that where orphaned when the corresponding VM was deleted. Using this cleared the incorrect entries – ferdil Nov 23 '16 at 12:25
5

Instead of opening the file with the context menu, you can also drag any file to any desired application while pressing + keys. This will force any app to try even if it thinks it can't do so. I use this all the time.

3

You can add the option as a Service with Automator and then trigger it with a Hotkey from Keyboard Maestro.

  1. Open Automator and select Service document type.
  2. Select Files and Folders in the top Service receives selected menu
  3. Search for and select the Open Finder Items action.
  4. Now select TextEdit in Open with:
  5. Save the service with a name you want to see in the menus

You can now find this by:

  • Right-clicking the file > Services

enter image description here

OR

  • Finder Menu > Services (with a file selected)

enter image description here

But you don't have to stop there!

I then made a Keyboard Maestro macro so I can just use a Hotkey to do it: enter image description here

I got this idea from this site: http://www.mactricksandtips.com/2013/05/add-open-with-textedit-or-any-other-app-to-right-click-menu-item.html

  • This is a great way of doing this, thank you very much!! – Lucas P. Nov 7 '18 at 13:07
  • I use the service all the time but I forgot I made a macro to do this. Nothing like rediscovering a macro! – kraftydevil Nov 7 '18 at 13:13
  • I've never used Automator before (or knew what it does), you've just opened a whole new world in OSX for me :) – Lucas P. Nov 7 '18 at 14:04
0

One follow-up to newtron's solution:

There you'll find a file called Info.plist. This is an XML property list that stores all sorts of information about the app. Open the file with your favourite text editor. I recommend Hydra, but TextEdit will do just fine.

Save the file, and close it (or quit the editor).

You can't save the edited .plist if your account doesn't have the correct permissions (the issue I'm dealing with now--even at admin status you won't have read+write permissions over some files and folders...). To save changes to the .plist files you need to give your user read+write permissions.

Some of the default Mac applications make this difficult to do and I'm currently searching for a solution (will update) to do this with TextEdit.

0

This worked for me : Right click your app and goto contents and open /Applications/*****.app/Contents/Info.plist

Open Plist in Xcode as SourceCode and then place this :

        <dict>
            <key>CFBundleTypeExtensions</key>
            <array>
                <string>jpeg</string>
                <string>jpg</string>
                <string>png</string>
                <string>gif</string>
            </array>
            <key>CFBundleTypeIconFile</key>
            <string>AutomatorApplet.icns</string>
            <key>CFBundleTypeName</key>
            <string>AutomatorApplet.icns</string>
            <key>CFBundleTypeOSTypes</key>
            <array>
                <string>GIFf</string>
                <string>JPEG</string>
                <string>PNGf</string>
            </array>
            <key>CFBundleTypeRole</key>
            <string>Viewer</string>
        </dict>

I had 'AutomatorApplet.icns' in Resources Folder.

  • Please add what you tried to achieve by adding the dict entry. As your answer stands now, it doesn't use the example (.url) given in the question. – klanomath Nov 16 '15 at 11:09
-3

Check out the tech-recipes.com for detailed instructions. As @Anriëtte pointed out the app should appear on the Open with menu if it can open the specific file.

  • This doesn't work for me because I don't want to change the default application which opens the file. I just want an additional choice. – KatieK May 31 '11 at 15:12

You must log in to answer this question.

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