osx - How to make a shortcut that starts a new terminal window on mac os x 10.9.1 mavericks

06
2014-04
  • Antonio Dolcetta

    I'd like to have a keyboard shortcut to open a new terminal from wherever I am. A default shell in my default home directory would be great. I've been trying for a while to make this happen, but no luck so far. Things that I've tried:

    1) syspref -> keyboard -> shortcuts -> services, select 'new terminal at folder'. Result: it just beeps and does nothing

    2) syspref -> keyboard -> shortcuts -> app shortcuts -> create a new item that links to the 'Terminal' application. Result: beeps and does nothing

    3) From automator, create a new service that accepts no input and launches 'Terminal', bind the new service from the keyboards shortcut menu. (followed these instructions). This kind of works, but only some times (see update)

    What am I doing wrong ?

    Update

    Actually solution 3 kind of works but it has two drawbacks:

    • it only works if some window is focused, it will NOT work if you don't have any window or if no window is currently in focus. Furthermore even if a window is focused, it apparently has to be the right kind of window, e.g. for some reason it does not work if chrome is focused, but it will work if gvim is focused, this is just retarded.
    • if a terminal window is already open it will just focus the existing terminal and bring it on top, i'd like to have a new, fresh terminal window appear (ok I guess I can just do ctrl-command-t to bring it in focus and then control-n for new window, but it kind of sucks)
  • Answers
  • nappo

    1) should work, but the Folder has to be selected (focused). It's not enough to just be in a folder and have nothing (or a regular file) selected.

    Select a folder in finder, if you activated the checkbox under Syspref > Keyboard > Shortcuts > Services > new terminal at folder you can also see the menu entry at Finder > Services.


    A simple shortcut to Terminal.app (or any other) could be done in Automator:

    create a new service, select no input at service receives, add the Launch Application action and select Terminal.app. Now save the the service and go to System Preferences > Keyboard > Shortcuts > Services, the just created service should appear at the bottom with the name as you saved it. Add a keyboard shortcut and you then can start Terminal from any app with that.

  • Lauri Ranta

    You can create a service like this:

    Then give it a shortcut from System Preferences.

    There is a delay of maybe 0.1 - 1 s before Automator services are run, and at least on my installations of 10.7 and 10.8, the shortcuts for services didn't always work until I hovered over the services menu from the menu bar. You might also use FastScripts to assign a shortcut to the script, or use a private.xml like this with KeyRemap4MacBook:

    <?xml version="1.0"?>
    <root>
      <vkopenurldef>
        <name>KeyCode::VK_OPEN_URL_SHELL_TERMINAL</name>
        <url type="shell">osascript -e 'tell app "Terminal"' -e 'do script ""' -e activate -e end</url>
      </vkopenurldef>
      <item>
        <name>test</name>
        <identifier>test</identifier>
        <autogen>__KeyToKey__ KeyCode::F5, ModifierFlag::NONE, KeyCode::VK_OPEN_URL_SHELL_TERMINAL</autogen>
      </item>
    </root>
    

    If others look for a way to open Terminal and only create a new window if there are no existing windows, you can use a private.xml like this with KeyRemap4MacBook:

    <?xml version="1.0"?>
    <root>
      <vkopenurldef>
        <name>KeyCode::VK_OPEN_URL_TERMINAL</name>
        <url>file:///Applications/Utilities/Terminal.app</url>
      </vkopenurldef>
      <item>
        <name>test</name>
        <identifier>test</identifier>
        <autogen>__KeyToKey__ KeyCode::F5, ModifierFlag::NONE, KeyCode::VK_OPEN_URL_TERMINAL</autogen>
      </item>
    </root>
    

    Or if you have bought the Powerpack for Alfred 2, you can create a workflow like this:


  • Related Question

    osx - How to do Page-Up on a Mac in Terminal
  • Questioner

    The laptop has no page-up/down buttons. How can I have page-up/down on the terminal, e.g. when I edit with vi?


  • Related Answers
  • ayaz

    On Snow Leopard on MacBook, I use Fn + Up or Fn + Down to page up and down respectively on the terminal. And when inside an editor, such as vim, I hold the shift key in addition to the mentioned key combinations to page up and down within the editor.

  • Dennis Williamson

    Ctrl-F and Ctrl-B

  • Marko Carter

    Generally on the Macbook page up and page down are a key combination. On current Macbooks Page Up is the FN (function) key (at the bottom left of the keyboard) and up arrow. Page down is FN key and down arrow. On some older macbooks I believe you need to use the 'Apple' key (which is located in roughly the same place as the Windows key on a PC keyboard) instead.