Termrk
Sliding terminal panel for Atom.
There are various implementations of terminals for Atom; each with their own
vision/perspective. The main focus of this one is to have a slick, quickly
accessible terminal panel: handy when you need it; out-of-the way when you
don't.
It slides in and out with a single keystroke, mapped to alt-space
by
default. Efficient and simple.
Overview
Currently implemented:
- multiple terminal sessions
- user defined commands (→ user defined atom-commands)
- running current file in terminal
(supports
.js
,.node
,.coffee
,.py
and shebang-notation―#!
) - inserting selection to/from the buffer
- inserting current file/directory path
- color/font styling
If some feature that you'd like to see isn't implemented, don't hesitate to create a request.
Demo: running vim inside termrk inside atom
⌨ Keybindings
Designed around the alt-space
keystroke really. It is often unmapped, and
very easy to access.
→ workspace
alt-space
: toggle terminal panelctrl-alt-space
: create terminal in current file's dirctrl-alt-shift-space
: insert current selection in active terminal
→ inside terminal
ctrl-escape
: close current terminalctrl-space
: create terminalctrl-tab
: activate next terminalctrl-shift-tab
: activate previous terminal
Note: if a keystroke
is catched by an atom-command but you need it inside terminal, add the following code to you keymap.cson
.
'.termrk':
'KEYSTROKE_TO_CATCH': 'native!'
Commands
Name | Action | Scope | Keybinding |
---|---|---|---|
termrk:toggle |
Toggle termrk panel | atom-workspace |
alt-space |
termrk:hide |
Hide termrk panel | atom-workspace |
|
termrk:show |
Show termrk panel | atom-workspace |
|
termrk:toggle-focus |
Toggle focus of termrk panel | atom-workspace |
|
termrk:focus |
Focus termrk panel | atom-workspace |
|
termrk:blur |
Blur termrk panel | atom-workspace |
|
termrk:create-terminal |
Creates new session | atom-workspace |
ctrl-space |
termrk:create-terminal-current-dir |
Creates session in current file's directory | atom-workspace |
ctrl-alt-space |
termrk:close-terminal |
Close active terminal session | .termrk |
ctrl-escape |
termrk:insert-selection |
Inserts current selection in terminal | atom-workspace |
ctrl-alt-sphift-space |
termrk:insert-filename |
Insert current file's path in terminal | .termrk |
|
termrk:run-current-file |
Runs current file in terminal | atom-workspace |
|
termrk:create-terminal |
Creates a terminal-session | atom-workspace |
|
termrk:activate-next-terminal |
Cycles forward terminal-sessions | atom-workspace |
|
termrk:activate-previous-terminal |
Cycles backward terminal-sessions | atom-workspace |
User-commands
User commands are defined in the file $ATOM_HOME/userCommands.cson
.
(file path can be configured via Atom Settings)
Commands have this format:
'echofile':
command: 'echo The current file is $FILE'
The previous command description would be mapped to 'termrk:command-echofile'
,
and calling that command would run 'echo The current file is $FILE'
in
terminal.
Other examples:
'shellreplace':
'command': 'gnome-shell --replace --display :0'
'coffeerun':
'command': 'coffee $FILE'
'npmyes':
'command': 'cd $DIR && npm init --yes'
# ...
In addition to environment variables, you can also use these:
Name | Value |
---|---|
$FILE |
path of the current file |
$DIR |
directory of the current file |
$PROJECT |
path of the project directory |
Styling
(through less/css)
Example for black text on white bg, and blue cursor-bg.
.termrk .terminal {
color: black;
background-color: blue;
}
.termrk .terminal-cursor {
color: black;
background-color: white;
}
Credits
Termrk is a terminal implementation based on term.js and pty.js modules by Christopher Jeffrey.
Atom is a text-editor developped by github etc. etc....
License
Same as JSON