8.5 KiB
layout | title | parent | nav_order | permalink |
---|---|---|---|---|
default | PTY | API | 1 | /api/pty |
PTY
Linux and macOS only.
Node for forking processes (e.g. bash, nodejs, python) with pseudoterminal file descriptors. Can be used with the Terminal node to get an actual shell.
Not currently supported on Windows, but it could be in the future using ConPTY or WinPTY. See issue #25.
Overview
"PTY Diagram" is a derivative of Termios-script-diagram.svg by Krishnavedala, used under CC0.
Properties
Type | Name | Default |
---|---|---|
NodePath | terminal_path | None |
int | cols | 80 |
int | rows | 24 |
Dictionary | env | { COLORTERM = "truecolor", TERM = "xterm-256color" } |
bool | use_os_env | true |
Methods
Returns | Signature |
---|---|
Error | fork ( String file=$SHELL , PoolStringArray args=[], String cwd=$PWD , int cols=80, int rows=24 ) |
void | kill ( int signum ) |
Error | open ( int cols=80, int rows=24 ) |
void | resize ( int cols, int rows ) |
void | resizev ( Vector2 size ) |
void | write ( String|PoolByteArray data ) |
Signals
-
data_received ( PoolByteArray data )
Emitted when data is read from the pseudoterminal master device.
-
exited ( int exit_code, int signum )
Emitted when the child program exits.
exit_code
is the exit status of the child program andsignum
is the number of the signal that terminated the child program.
Enumerations
enum Signal:
- SIGHUP = 1 --- Hangup.
- SIGINT = 2 --- Terminal interrupt signal.
- SIGQUIT = 3 --- Terminal quit signal.
- SIGILL = 4 --- Illegal instruction.
- SIGTRAP = 5 --- Trace/breakpoint trap.
- SIGABRT = 6 --- Process abort signal.
- SIGFPE = 8 --- Erroneous arithmetic operation.
- SIGKILL = 9 --- Kill (cannot be caught or ignored).
- SIGSEGV = 11 --- Invalid memory reference.
- SIGPIPE = 13 --- Write on a pipe with no one to read it.
- SIGALRM = 14 --- Alarm clock.
- SIGTERM = 15 --- Termination signal.
Property Descriptions
NodePath terminal_path
Default | None |
Setter | set_terminal_path(value) |
Getter | None |
NodePath to a Terminal. Setting this path will automatically connect the appropriate signals of both nodes for standard operation. It will also disconnected the signals of the previously set terminal, if any.
-
int cols
Default 80
Setter set_cols(value) Getter None The column size in characters.
-
int rows
Default 24
Setter set_rows(value) Getter None The row size in characters.
-
Dictionary env
Default { COLORTERM = "truecolor", TERM = "xterm-256color" }
Setter None Getter None Environment variables to be set for the child program.
-
bool use_os_env
Default true
Setter None Getter None If
true
the environment variables fromenv
will be merged with the environment variables of the current program (i.e. Godot), with the variables fromenv
taking precedence over the environment variables of the current program.
Method Descriptions
-
Error fork ( String file=
$SHELL
, PoolStringArray args=[], String cwd=$PWD
, int cols=80, int rows=24 )Opens a pseudoterminal and starts a new process using the program specified by
file
.file
defaults to the value of theSHELL
environment variable, falling back tosh
. The arguments specified inargs
are passed to the program.cwd
is the directory in which the program will be executed. Defaults to the working directory of the current program (typically the project directory, when running from editor).cols
is the initial number of columns androws
is the initial number of rows. Returns OK if successful.See also Godot's OS.execute() method.
-
void kill ( int signum=1 )
Sends the specified signal (
signum
) to the PTY's child process, if any. Defaults to 1 (SIGHUP).See also Godot's OS.kill() method.
-
Error open ( int cols=80, int rows=24 )
Opens a pseudoterminal but does not start any process. Returns OK if successful.
-
void resize ( int cols, int rows )
Resizes the dimensions of the pseudoterminal.
-
void resizev ( Vector2 size )
Same as resize, but accepts a Vector2 where
x
is cols andy
is rows.
-
void write ( String | PoolByteArray data )
Writes data to the pseudoterminal master device.