Setting iTerm2 as the default terminal (OSX Lion)

149,724

Solution 1

Terminal.app declares itself a handler of the ssh, telnet and x-man-page URL schemes.

It also registers the file extensions .term (sessions), .terminal (settings), .tool and .command (scripts), and itself as an editor/viewer for these.

Other than that, there is no default terminal in OS X. It's just an application that can handle URL schemes and file types.


iTerm is capable of handling all of these except the Terminal.app specific .term/.terminal.

For the file types, just open the Get Info dialog and associate all files of this kind with iTerm. For the URL schemes, you can download and install the preference pane Default Apps and change the association there. You can also use it as an alternative method of changing the file type associations.

enter image description here


All of these settings are user specific and stored in ~/Library/Preferences/com.apple.LaunchServices.plist. You can of course edit it in a suitable editor yourself. It's pretty straightforward. Screenshot of Xcode 4 showing the result of changing x-man-page in Default Apps preference pane:

enter image description here


Terminal.app also provides the following Services for other applications:

  • New Terminal at Folder
  • New Terminal Tab at Folder
  • Open man page in Terminal
  • Search man pages in Terminal

The association with Terminal.app is hard-coded. You need to create your own Services e.g. using Automator and/or AppleScript to replace these.


If Terminal is used via its AppleScript API, there is no way to just replace it with iTerm in all cases, as their APIs are quite different. This will often require substantial changes to the programs or scripts doing that.

Solution 2

You should be able to make iTerm.app your default terminal by selecting "Make Default" from the menu bar.

File menu drop down

Alternatively you can use a keyboard shortcut.

+++\

Solution 3

As found on the ma.ttias.be blog, iTerm2 can register itself as the default terminal for some common URL schemes: You just have to check the corresponding schemes at the very bottom of the General tab in the current Profile from iTerm preferences

iTerm > Préférences > Profiles > Général > URL Schemes

Solution 4

To provide a pragmatic summary of the existing answers:

  • macOS (OS X) does NOT support the concept of a default terminal.

    • See Daniel Beck's helpful answer for background information.
    • iTerm2 itself somewhat misleadingly offers a menu item named iTerm2 > Make iTerm2 Default Term (as presented in halfcube's answer), but the only thing that does is to make Finder run shell scripts opened from it in iTerm2 (more specifically, it assigns the shell role of UTI public.unix-executable to Finder) - which is not a typical use case.
  • Therefore, applications must be configured INDIVIDUALLY to use iTerm2 instead of Terminal, IF they support that:

    • While the Go2Shell app that prompted the OP's question does have a configuration dialog that supports iTerm2 (open -a Go2Shell -- config, the application doesn't seem to work at all as of OSX 10.11.6 (on clicking the toolbar button as of v2.23, the only thing that ever happens is that the configuration dialog comes up, even after having clicked Install Go2Shell to Finder).
    • The paid alternative mentioned by the OP - application ShellTo - also supports iTerm2 in principle, but as of this writing doesn't support the current version, v3+.

Solution 5

As mentioned in the comments above Go2Shell can be told to use iTerm2

To open configuration window follow this steps:

  1. Fire up your favorite terminal program.
  2. Enter: open -a Go2Shell --args config
  3. Press [return].

enter image description here

http://zipzapmac.com/Go2Shell

Share:
149,724

Related videos on Youtube

politicus
Author by

politicus

Updated on September 18, 2022

Comments

  • politicus
    politicus almost 2 years

    I would like to set iTerm2 instead of terminal.app as my default terminal.

    Go2Shell for example let you open a terminal to the current directory in Finder. I want to ba able to use iterm2 instad of terminal.app.

    I didn't find any answer on the official documentation.

    Thanks for your help.

    Update: ShellTo is a great alternative to Go2Shell and supports iTerm2

    • HikeMike
      HikeMike over 12 years
      Default terminal for what? You just launch the one you want and leave the other alone...? Please explain in more detail what you're asking.
    • HikeMike
      HikeMike over 12 years
      Go2Shell blurb from the app store: Added support of iTerm, iTerm 2 and even xterm :). Just take a look at its preferences. Also, at least for Terminal.app, this feature has been part of the OS for half a year, see here (last item).
    • politicus
      politicus over 12 years
      Oh I didn't saw it. My fault!
  • politicus
    politicus over 12 years
    Thank you for your amazing answer. Clear, very informative. New to OSX, I didn't know Default Apps.
  • ifwdev
    ifwdev over 8 years
    Awesome tool. Glad it still works well under El Capitan.
  • fregante
    fregante over 8 years
    It doesn't seem to work for most of my tests. GitHub.app still opens Terminal and so does SublimeText.
  • mklement0
    mklement0 almost 8 years
    @bfred.it: Sadly, the name of the menu item is misleading: the only thing it does is to run shell scripts opened from Finder in iTerm2 rather than Terminal. It will not magically cause third-party applications such as GoShell, GitHub, Alfred, ... to use iTerm2, as explained in Daniel Beck's answer.
  • Burgi
    Burgi over 7 years
    Can you expand upon how this software works? Please see How to recommend software.
  • HikeMike
    HikeMike over 7 years
    Are you saying my answer doesn't work anymore for El Capitan? Could you clarify?
  • markus
    markus about 7 years
    Most to the point answer IMO.
  • Scott - Слава Україні
    Scott - Слава Україні almost 7 years
    Wow; configuring a program to automatically kill itself whenever it is started.  What could possibly go wrong?   :-(   ⁠
  • tidelake
    tidelake about 6 years
    Oh goodness, this is so helpful. I accidentally deleted Terminal.app (or screwed it up so bad it won't open) and this works to fix that, and my React Native builds are using iterm so far so good, knock on wood. THX:D
  • Community
    Community over 2 years
    Your answer could be improved with additional supporting information. Please edit to add further details, such as citations or documentation, so that others can confirm that your answer is correct. You can find more information on how to write good answers in the help center.
  • Admin
    Admin about 2 years
    SwiftDefaultApps is a more recent alternative to RCDefaultApp.