During my work day as a software developer, I frequently have multiple Terminal windows open, each dedicated to a specific purpose and directory. I switch between them on a regular basis.

I'd like to create entirely separate applications for each of them. This would give me several benefits over and above the normal windows I have now:

  • Separate icons in the Dock
  • Separate icons in the Command-Tab task switching
  • I could pin each window to separate spaces.

Is there some way to accomplish this?


@mankoff got me on the right path. Here's what I had to do in order to get what I want:

  1. Copy Terminal.app to a new file (ex: MyTerminal.app)
  2. Change the icon of the app by:
    1. Copy an icon image to the clipboard from Preview
    2. Right-click (Command-click) on the app
    3. Select "Get Info"
    4. Click the app icon in the upper left corner
    5. Pasting the new icon image from the clipboard
  3. Right-click on the App and choose "Show Package Contents"
  4. Change the following values in Contents/Info.plist:
    1. "Bundle display name" -> "MyTerminal"
    2. "Bundle identifier" -> a unique app-specific string. I chose "ca.softcraft.myterminal" as I own the domain "softcraft.ca"
    3. Bundle name -> "MyTerminal"
    4. Document Types -> Delete
    5. URL Types -> Delete
    6. Application has localized display name -> uncheck
    7. Exported Type UTIs -> Delete
  5. I deleted a bunch of the localization settings (Contents/Resources/*.lproj) as they're not necessary for me; I just need English
  6. In Contents/Resources/English/InfoPlist.strings, I deleted the "CFBundleName" and "CFBundleDisplayName" override settings
  7. In Contents/Resources/Initial Settings, I deleted all but one of the *.terminal files.
    1. I'm using a custom terminal setting, but there's no reason you couldn't use Basic
    2. In Contents/Resources/Initial Settings/settings.plist, I made sure my "Default Settings" value was set to the name of my .terminal file
  8. I set the values in the .terminal file to match what I wanted on open
    1. This is just a .plist file with a different extension; you can use Property List Editor to modify it
    2. You can also set these using Terminal itself and then export them
    3. I mainly changed "CommandString" to be what I want launched when I run the new "app".

This works excellently. The new "Terminal" apps are independent of each other and of the main Terminal. I can spin off new ones fairly quickly now.

I also did this with Firefox to create a site-specific browser for my development website. (I had tried Mozilla Prism but found it too limiting).

  • Glad I could help point you in the right direction. Prism is limiting and as of last week no longer under development I think. If you want a good SSB check out Fluid.app. – user588 Feb 10 '11 at 22:33
  • I do use Fluid a bunch and like it... but since it's based on Safari I don't get all of my Firefox extensions (in particular Firebug). If there was Fluid for Firefox I'd be set. – Craig Walker Feb 11 '11 at 0:51

You could do something like this but with iTerm or Terminal.

  • This works because firefox has a profile manager. I don't believe this is anything inherent on osx – dstarh Feb 9 '11 at 18:56
  • Oh, I checked and you can run multiple instances of iTerm.app, so you don't need profiles ( Although iterm has profiles, I haven't been able to choose profile from commandline ) but the rest of the process would remain the same. And OP would get a new Dock Icon that spawns a new terminal window – Rohan Monga Feb 9 '11 at 19:02
  • this is very close, and thank you for the answer. However, it doesn't quite give me what I need. Automator can indeed launch new iTerm windows (and new Terminal instances too), but these windows/apps aren't running "inside" the Automator-generated application, so they don't get the app benefits I listed. Instead, the automator app spawns separate instances under the iTerm app name. – Craig Walker Feb 9 '11 at 19:37

Just copy Terminal.app or iTerm.app and rename each copy ProjectA.app, ProjectB.app.

  • 2
    You will still have to go into the App itself and change some other things around as this will still be listed as Terminal in the menubar and the app title bar however in the cmd+tab it will show ProjectA & ProjectB – dstarh Feb 9 '11 at 21:20

You must log in to answer this question.

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