I was using TotalTerminal to get visor like terminal on a shortcut. But TotalTerminal is abandoned so I have switched to the iTerm2. My problem is that when I use a shortcut to trigger iTerms visor behavior and profile it also gets activated like a normal app and gets into Cmd+Tab list of apps and I do not want that. Is there a way to prevent such behavior for visor profile of iTerm2?

  • 1
    In general, the program needs to present itself to the OS as a menu / faceless app with no icon in the dock. Have you checked the iTerm settings or contacted the developer?
    – bmike
    Oct 5, 2015 at 14:45
  • I have checked iTerm preferences but could not get the desired behavior. I have not contacted the developers yet. Oct 5, 2015 at 14:46

5 Answers 5


Currently as of October 2016 iTerm2 has enabled this functionality. Go to Preferences -> Advanced -> General -> Hide iTerm2 from the dock and from the ⌘-Tab app switcher.

  • 4
    As of v3.1.2, this preference was moved to Appearance tab, under System -> Exclude from Dock and ⌘-Tab Application Switcher.
    – Alex Lipov
    Oct 4, 2017 at 14:13
  • 1
    After doing this there's no menu bar to access the settings again. If you get stuck you can undo this change by running defaults write com.googlecode.iterm2 HideFromDockAndAppSwitcher 0 then killall iTerm and restarting it. Apr 21, 2019 at 5:43

Open iTerm2 Preferences, go to Appearance tab and under System item check Exclude from Dock and ⌘-Tab Application Switcher.



The "launch service key" LSUIElement in the .plist file for iTerm2 is your friend.

To hide iTerm2 from the switcher, open Terminal and enter:

/usr/libexec/PlistBuddy -c "Add :LSUIElement bool true" /Applications/iTerm.app/Contents/Info.plist

You will need to relaunch iTerm2 for the setting to have an effect.

If you wish to show iTerm again, use the following command:

 /usr/libexec/PlistBuddy -c "Delete :LSUIElement" /Applications/iTerm.app/Contents/Info.plist

Explanation from Apple:

LSUIElement “Application is agent (UIElement)”. Specifies whether the app is an agent app, that is, an app that should not appear in the Dock or Force Quit window. See LSUIElement for details.

  • This settings doesn't work for MAMP :(
    – Alisso
    Apr 19, 2016 at 11:28
  • @Alisso, could you provide a little more detail?
    – crishoj
    Apr 19, 2016 at 18:47
  • I solved it through keyboard maestro :) (I found the "exclude" tab inside Keyboard Maestro - though that wasn't obvious at first either.)
    – Alisso
    Apr 22, 2016 at 12:05
  • This answer didn't work for me (while the accepted one worked). That's strange as they basically do the same.
    – bumbu
    May 12, 2016 at 14:41
  • @bumbu, any error message?
    – crishoj
    May 13, 2016 at 15:13

There are some good modifications on GitHub. The easiest I found is here:

Ensure you have a Hot Key set to toggle iTerm. Once you disable the dock icon, there's no way to launch a window otherwise. To get the TotalTerminal visor style, you'll want to set your iTerm window preferences style drop-down to "Top of Screen"

Place the code from the GitHub post in your bash_profile:

  1. Open iTerm (make sure iTerm is in your applications folder or modify the code to point to the correct path)
  2. Enter nano .bash_profile
  3. Paste this code:

    # toggle iTerm Dock icon
    # add this to your .bash_profile or .zshrc
    function toggleiTerm() {
        echo "Do you wish to hide iTerm in Dock?"
        select ync in "Hide" "Show" "Cancel"; do
            case $ync in
                'Hide' )
                    $pb -c "Add :LSUIElement bool true" $iTerm
                    echo "relaunch iTerm to take effectives"
                'Show' )
                    $pb -c "Delete :LSUIElement" $iTerm
                    echo "run killall 'iTerm' to exit, and then relaunch it"
            'Cancel' )
  4. Control + X to exit nano
  5. Y and Enter to save
  6. Launch iTerm and type toggleiTerm
  7. Type 1 and Enter
  8. Relaunch application.


  • This works as expected. The only issue is that it also hides the menu bar permanently. But since the behavior can be toggled with a command, I think it suffices. Preferences can still be accessed by [cmd + ,] Jul 7, 2016 at 12:11
  • This is first hit in Google with keywords "osx remove cmd tab iterm". The gist link is dead, but based on the edit history the code needed is provided in the answer.
    – Christian
    Aug 29, 2016 at 7:49

There are a few applications that can "switch hit" in that they run either as a windowed/traditional app where it shows in the application switcher screen and as a background app or menu bar app.

For examples of this, look at Dash, Take Five and Skitch. Each has a preference to run in the "foreground" or the "background" and when you make a change to that preference, you have to quit and re-launch the app for the system to know how to handle the dock, windows and menu bar as well as the application switcher.

enter image description here

I see no sign that iTerm 2 has this functionality, so at best you will need to modify the application or recompile it if it's ready to go and just lacks the preference toggle in the application. My suspicion is the application will need more programming added to handle both cases and you'll need to live with that app in the switcher or choose a different terminal emulation tool.

Basically, the OS can accommodate an app designed to opt out of the dock and the app switcher, but it's not as simple as setting one preference on any app you want to change.

You must log in to answer this question.

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