terminus_exec
is a drop-in replacement for exec
(the standard command for executing a build) but behind the scenes it’s just executing terminus_open
in order to execute the build, so it takes the same arguments as terminus_open
would take, except that the defaults for arguments when you don’t provide them are different for teminus_exec
than for terminus_open
.
With that said, the argument that makes terminus_open
use a panel over a view is panel_name
; specifying that makes terminus_open
create a panel, and not specifying one opens a view instead. In order to be a drop-in replacement for exec
(which executes in a panel), terminus_exec
enforces the panel_name
argument and in fact will throw an exception if you try to use it or specify it directly (in this case to remove it so that it will open in a view).
So in that sense, what you’re trying to do is not possible using terminus_exec
directly because you can’t provide it the argument that it needs in order to open in a view so that it can be side by side. To do this you need to use terminus_open
instead and pass it some additional arguments. For example:
{
"target": "terminus_open",
"shell_cmd": "sleep 20 && ls",
"title": "Terminus Build Results",
"auto_close": false,
"timeit": true,
"post_window_hooks": [ ["carry_file_to_pane", {"direction": "left"}] ],
}
That will execute the the command in a view with a given title, get it to time its output like a build would, and block it from closing when the task finishes (so you can see the results). It also uses the post_window_hooks
argument to carry the pane left.
In this scenario you need to close the tab manually in order to cancel the build early; the terminus_cancel_build
command won’t work because it’s looking for a panel with a specific name to close but the output is no longer in a panel.
With auto_close
being set to false
, finished builds will stack up in the left pane so you’ll need to clear them manually. You can set the value to true
(or remove it entirely since true
is the default) if you don’t need to see the output of the build after it’s done executing.