-
Notifications
You must be signed in to change notification settings - Fork 394
English Template
To make page creation easier you will only make one page and all content will be translated in that page. This is an example page that shows translators how to format the wiki in another language.
Shuttle - A simple SSH shortcut menu for macOS
#Documentation ##什么是shuttle? Shuttle is an app which mainly launches terminal based commands. Commands live in the shuttle.json file.
Shuttle was created by Trevor Fitzgerald and inspired by SSHMenu, the GNOME applet for Linux.
##What can I do with it? You can...
- Build a menu of your favorite ssh servers.
- Use it to store your web browser bookmarks.
- Keep a list of your file servers.
- Launch commands in existing terminal windows.
Shuttle is very customizable. Each window can have its own theme and title. See the help section for more info.
- Download Shuttle
- Copy to Applications
In your home directory create a file called ~/.shuttle.path
In this file should be a single line with the path to the JSON settings file.
##Global Settings Global settings can be overwritten by command level settings. Use Global settings to change things for all commands, like themes and how windows open.
This changes the app that opens settings.json for editing (Global Setting)
Possible values are default
, nano
, vi
, vim
or any terminal based editor.
default
opens settings.json in whatever app is registered as the default for extension .json
"editor": "vim",
would open ~/.shuttle.json
in vim
This allows you to flag the shuttle.app to start automatically (Global Setting)
Possible values are true
or false
This allows you to set the default terminal (Global Setting)
Possible values are Terminal.app
or iTerm
This changes the applescripts for iTerm (Global Setting)
Possible values are legacy
or stable
or nightly
If terminal
is set to iTerm
this setting is mandatory
"iTerm_version": "legacy",
targeting iTerm 2.14
"iTerm_version": "stable",
targeting new versions of iTerm
"iTerm_version": "nightly",
targeting only the nightly build of iTerm
This setting is ignored if your terminal is set to Terminal.app
This sets the Terminal theme for all windows. (Global Setting)
Possible values are the Profile names in your terminal preferences. iTerm ships with one Profile named "Default". OS X Terminal ships with several. To see the names see the preferences area of the terminal you are using.
In iTerm the profile names are case sensitive.
Please ensure the theme names you set are valid. If shuttle passes theme "Dagobah" and it does not exist in iTerm, shuttle's applescripts fall back to the default profile. In iTerm this profile is called Default
.
If you have removed Default
or renamed it shuttle may not open your command.
This setting can be overwritten by the command level "theme"
settings
This changes the default action for how commands are opened (Global Setting)
Possible values are tab
or new
.
tab
opens the command in the active terminal in a new tab.
new
opens the command in a new window.
This setting can be overwritten by the command level "inTerminal"
settings
This changes parsing ssh config. By default, Shuttle will parse your ~/.ssh/config
file for hosts. (Global Setting)
Possible values are false
or true
This will ignore hosts in the ssh config. (Global Setting)
Possible values are the hosts in your config that you want to ignore. If you had github.com and git.example.com in your ssh config, to ignore them you set:
"ssh_config_ignore_hosts": ["github.com", "git.example.com"],
This will ignore keywords in your ssh config. (Global Setting)
Possible values are the keywords in your ssh config that you want to ignore.
##Command Settings Command level settings are unique to your command and will overwrite the Global setting equivalent
This is the command / script that will be launched in the terminal. (Command setting)
Where Value is a command or script.
"cmd": "ps aux | grep [s]sh"
Would check for ssh processes.
This sets the text that will appear in shuttles drop down menu. (Command setting)
Were Value is the text you want to see in the drop down menu for this command.
"name": "SSH to my wordpress blog"
This value can also set the title of the terminal window if "title" :"VALUE"
is not set.
This sets how command will open in the terminal window. (Command setting)
Possible values are new
, tab
, or current
new
opens the command in a new terminal window.
tab
opens the command in the active terminal window in a new tab.
current
opens the command in the active terminal's window.
When using using current
I recommend that you wrap the command in some user input like this:
echo "are you sure y/n"; read sure; if [ "$sure" == "y" ]; then echo "running command" && ps aux | grep [s]sh; else echo "exiting..."; fi
Do this as a precaution as it could be possible to run a command on the wrong host.
This sets the theme for the terminal window. (Command setting)
Possible values are the profile names for iTerm or OS X Terminal.
If "theme"
is not set and "default_theme"
is not set then shuttle passes Profile Default
for iTerm and Profile basic
for OS X terminal.
This sets the text that will appear in the terminal's title bar. (Command setting)
Where VALUE is the text you want to set in the terminals title bar.
If title
is missing shuttle uses the menu's name and sets this as title
##SSH Config File Settings Additional ssh config customization
Host work/servers/web01
HostName user@web01.example.com
- or -
Host gandalf
# shuttle.name = work/servers/web01 (webserver)
HostName user@web01.example.com
#Resources
Many people ask me how I have my terminal setup to get the colors and such.
I use iTerm2 (with Solarized theme), zsh, and Oh My Zsh (with the agnoster theme). I keep all my dotfiles and such here if you'd like to see.
@hendricius has created a terminal version of the shuttle client. shuttle_cli uses the same .shuttle.json
configuration file.
$ shuttle
+--------+---------------------------------------------------------------------+
| number | name | command |
+--------+----------------------+-----------------------------------------------+
| 1 | Zeit.io | ssh foo@zeit.io |
| 2 | Client X | ssh bar@bar.com |
| 3 | Trapserver | ssh trap@trap.com |
+--------+----------------------+-----------------------------------------------+
Enter a bookmark number to connect:
$ 3
connecting....
You will need Ruby 2
installed on your mac. If you don't have it, have a look at rbenv and ruby-build
Install it yourself as:
$ gem install shuttle_cli
Make sure to rehash your environment:
$ rbenv rehash
The source of the gem can be found at: https://github.com/hendricius/shuttle-cli