From bc15d8950f251a265408268bdb176f23a37da1fc Mon Sep 17 00:00:00 2001 From: Leroy Hopson Date: Fri, 29 Mar 2024 19:07:43 +1300 Subject: [PATCH] docs(rtd): move documentation to read the docs --- .gitattributes | 1 - .gitignore | 1 + README.md | 29 ++ docs/.gdignore | 0 docs/.gitignore | 5 - docs/.readthedocs.yaml | 13 + docs/404.html | 25 -- docs/Gemfile | 2 - docs/Gemfile.lock | 261 ------------------ docs/Makefile | 20 ++ docs/README.md | 144 ---------- docs/_config.yml | 12 - docs/_sass/custom/custom.scss | 3 - docs/_static/images/button_live_demo.png | Bin 0 -> 2343 bytes .../images/button_view_documentation.png | Bin 0 -> 3982 bytes .../images/button_view_it_on_github.png | Bin 0 -> 3586 bytes .../images/diagram_flow.svg} | 22 +- docs/_static/images/diagram_pty.png | Bin 0 -> 93326 bytes .../images/diagram_pty.svg} | 0 docs/{media => _static/images}/icon.png | Bin docs/{media => _static/images}/logo.png | Bin docs/{media => _static/images}/logo.svg | 0 .../images}/screenshot_editor.png | Bin .../images}/screenshot_retro_term.jpg | Bin .../images}/screenshot_the_guest.png | Bin .../images}/screenshot_xterminate.png | Bin docs/api/api.md | 9 - docs/api/index.md | 7 + docs/api/pty.md | 214 +++++++------- docs/api/terminal.md | 229 ++++++++------- docs/conf.py | 65 +++++ docs/favicon.ico | Bin 3062 -> 0 bytes docs/index.md | 36 ++- docs/introduction.md | 112 ++++++++ docs/make.bat | 35 +++ docs/media/live_demo_button.png | Bin 2550 -> 0 bytes docs/media/pty_diagram.png | Bin 89868 -> 0 bytes docs/media/view_it_on_github_button.png | Bin 2925 -> 0 bytes docs/requirements.txt | 2 + docs/setup/building_from_source.md | 35 +-- docs/setup/index.md | 7 + docs/setup/precompiled_binaries.md | 32 +-- docs/setup/setup.md | 9 - project.godot | 2 +- 44 files changed, 580 insertions(+), 752 deletions(-) create mode 100644 README.md delete mode 100644 docs/.gdignore delete mode 100644 docs/.gitignore create mode 100644 docs/.readthedocs.yaml delete mode 100644 docs/404.html delete mode 100644 docs/Gemfile delete mode 100644 docs/Gemfile.lock create mode 100644 docs/Makefile delete mode 100644 docs/README.md delete mode 100644 docs/_config.yml delete mode 100644 docs/_sass/custom/custom.scss create mode 100644 docs/_static/images/button_live_demo.png create mode 100644 docs/_static/images/button_view_documentation.png create mode 100644 docs/_static/images/button_view_it_on_github.png rename docs/{media/flow_diagram.svg => _static/images/diagram_flow.svg} (99%) create mode 100644 docs/_static/images/diagram_pty.png rename docs/{media/pty_diagram.svg => _static/images/diagram_pty.svg} (100%) rename docs/{media => _static/images}/icon.png (100%) rename docs/{media => _static/images}/logo.png (100%) rename docs/{media => _static/images}/logo.svg (100%) rename docs/{media => _static/images}/screenshot_editor.png (100%) rename docs/{media => _static/images}/screenshot_retro_term.jpg (100%) rename docs/{media => _static/images}/screenshot_the_guest.png (100%) rename docs/{media => _static/images}/screenshot_xterminate.png (100%) delete mode 100644 docs/api/api.md create mode 100644 docs/api/index.md create mode 100644 docs/conf.py delete mode 100644 docs/favicon.ico create mode 100644 docs/introduction.md create mode 100644 docs/make.bat delete mode 100644 docs/media/live_demo_button.png delete mode 100644 docs/media/pty_diagram.png delete mode 100644 docs/media/view_it_on_github_button.png create mode 100644 docs/requirements.txt create mode 100644 docs/setup/index.md delete mode 100644 docs/setup/setup.md diff --git a/.gitattributes b/.gitattributes index 91d5213..0a17c69 100644 --- a/.gitattributes +++ b/.gitattributes @@ -16,7 +16,6 @@ # Files to exclude from asset-lib download. /addons/gd-plug export-ignore -/CHANGELOG.md export-ignore /default_env.tres export-ignore /docs export-ignore /.env.example export-ignore diff --git a/.gitignore b/.gitignore index b1acd76..b5dd769 100644 --- a/.gitignore +++ b/.gitignore @@ -39,6 +39,7 @@ addons/* !addons/godot_xterm/ docs/demo docs/logs +docs/_build # Imported translations (automatically generated from CSV files) *.translation diff --git a/README.md b/README.md new file mode 100644 index 0000000..34ece19 --- /dev/null +++ b/README.md @@ -0,0 +1,29 @@ + + +# GodotXterm - Terminal Emulator + +
+ +[![Godot Version](https://img.shields.io/badge/Godot-4.2+-blue.svg)](#supported-godot-versions) +[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/lihop/godot-xterm/blob/stable/LICENSE.md) +[![Build and Test](https://github.com/lihop/godot-xterm/actions/workflows/main.yml/badge.svg?event=schedule)](https://github.com/lihop/godot-xterm/actions/workflows/main.yml) + +GDNative terminal for Godot. +Built using [libtsm](https://www.freedesktop.org/wiki/Software/libtsm/), [libuv](https://github.com/libuv/libuv), and [node-pty](https://github.com/microsoft/node-pty). +Primarily developed and tested on Linux, it also supports macOS with partial support for Windows and HTML5. See the [Features section](https://docs.godot-xterm.nix.nz/en/stable/introduction.html#features) of [the documentation](https://docs.godot-xterm.nix.nz/en/stable) for more detail. + +The plugin currently supports Godot 3.x, with a Godot 4 (GDExtension) version under development on the [`main`](https://github.com/lihop/godot-xterm/tree/main) branch. +The latest code for the Godot 3 version can be found on the [`godot-3.x`](https://github.com/lihop/godot-xterm/tree/godot-3.x) branch. + + + +
+ +https://user-images.githubusercontent.com/3696783/126894061-a69eb6ad-9979-4723-ade7-829494a9fc87.mp4 + +
+ +[![Live Demo](./docs/_static/images/button_live_demo.png)](https://lihop.github.io/godot-xterm-dist/demo) +[![View Documentation](./docs/_static/images/button_view_documentation.png)](https://docs.godot-xterm.nix.nz/en/stable) diff --git a/docs/.gdignore b/docs/.gdignore deleted file mode 100644 index e69de29..0000000 diff --git a/docs/.gitignore b/docs/.gitignore deleted file mode 100644 index f40fbd8..0000000 --- a/docs/.gitignore +++ /dev/null @@ -1,5 +0,0 @@ -_site -.sass-cache -.jekyll-cache -.jekyll-metadata -vendor diff --git a/docs/.readthedocs.yaml b/docs/.readthedocs.yaml new file mode 100644 index 0000000..b668cb0 --- /dev/null +++ b/docs/.readthedocs.yaml @@ -0,0 +1,13 @@ +version: "2" + +build: + os: "ubuntu-22.04" + tools: + python: "3.10" + +python: + install: + - requirements: docs/requirements.txt + +sphinx: + configuration: docs/conf.py diff --git a/docs/404.html b/docs/404.html deleted file mode 100644 index 086a5c9..0000000 --- a/docs/404.html +++ /dev/null @@ -1,25 +0,0 @@ ---- -permalink: /404.html -layout: default ---- - - - -
-

404

- -

Page not found :(

-

The requested page could not be found.

-
diff --git a/docs/Gemfile b/docs/Gemfile deleted file mode 100644 index 858d935..0000000 --- a/docs/Gemfile +++ /dev/null @@ -1,2 +0,0 @@ -source "https://rubygems.org" -gem "github-pages", "~> 227", group: :jekyll_plugins diff --git a/docs/Gemfile.lock b/docs/Gemfile.lock deleted file mode 100644 index d733d2f..0000000 --- a/docs/Gemfile.lock +++ /dev/null @@ -1,261 +0,0 @@ -GEM - remote: https://rubygems.org/ - specs: - activesupport (6.0.5.1) - concurrent-ruby (~> 1.0, >= 1.0.2) - i18n (>= 0.7, < 2) - minitest (~> 5.1) - tzinfo (~> 1.1) - zeitwerk (~> 2.2, >= 2.2.2) - addressable (2.8.0) - public_suffix (>= 2.0.2, < 5.0) - coffee-script (2.4.1) - coffee-script-source - execjs - coffee-script-source (1.11.1) - colorator (1.1.0) - commonmarker (0.23.5) - concurrent-ruby (1.1.10) - dnsruby (1.61.9) - simpleidn (~> 0.1) - em-websocket (0.5.3) - eventmachine (>= 0.12.9) - http_parser.rb (~> 0) - ethon (0.15.0) - ffi (>= 1.15.0) - eventmachine (1.2.7) - execjs (2.8.1) - faraday (2.4.0) - faraday-net_http (~> 2.0) - ruby2_keywords (>= 0.0.4) - faraday-net_http (2.1.0) - ffi (1.15.5) - forwardable-extended (2.6.0) - gemoji (3.0.1) - github-pages (227) - github-pages-health-check (= 1.17.9) - jekyll (= 3.9.2) - jekyll-avatar (= 0.7.0) - jekyll-coffeescript (= 1.1.1) - jekyll-commonmark-ghpages (= 0.2.0) - jekyll-default-layout (= 0.1.4) - jekyll-feed (= 0.15.1) - jekyll-gist (= 1.5.0) - jekyll-github-metadata (= 2.13.0) - jekyll-include-cache (= 0.2.1) - jekyll-mentions (= 1.6.0) - jekyll-optional-front-matter (= 0.3.2) - jekyll-paginate (= 1.1.0) - jekyll-readme-index (= 0.3.0) - jekyll-redirect-from (= 0.16.0) - jekyll-relative-links (= 0.6.1) - jekyll-remote-theme (= 0.4.3) - jekyll-sass-converter (= 1.5.2) - jekyll-seo-tag (= 2.8.0) - jekyll-sitemap (= 1.4.0) - jekyll-swiss (= 1.0.0) - jekyll-theme-architect (= 0.2.0) - jekyll-theme-cayman (= 0.2.0) - jekyll-theme-dinky (= 0.2.0) - jekyll-theme-hacker (= 0.2.0) - jekyll-theme-leap-day (= 0.2.0) - jekyll-theme-merlot (= 0.2.0) - jekyll-theme-midnight (= 0.2.0) - jekyll-theme-minimal (= 0.2.0) - jekyll-theme-modernist (= 0.2.0) - jekyll-theme-primer (= 0.6.0) - jekyll-theme-slate (= 0.2.0) - jekyll-theme-tactile (= 0.2.0) - jekyll-theme-time-machine (= 0.2.0) - jekyll-titles-from-headings (= 0.5.3) - jemoji (= 0.12.0) - kramdown (= 2.3.2) - kramdown-parser-gfm (= 1.1.0) - liquid (= 4.0.3) - mercenary (~> 0.3) - minima (= 2.5.1) - nokogiri (>= 1.13.6, < 2.0) - rouge (= 3.26.0) - terminal-table (~> 1.4) - github-pages-health-check (1.17.9) - addressable (~> 2.3) - dnsruby (~> 1.60) - octokit (~> 4.0) - public_suffix (>= 3.0, < 5.0) - typhoeus (~> 1.3) - html-pipeline (2.14.2) - activesupport (>= 2) - nokogiri (>= 1.4) - http_parser.rb (0.8.0) - i18n (0.9.5) - concurrent-ruby (~> 1.0) - jekyll (3.9.2) - addressable (~> 2.4) - colorator (~> 1.0) - em-websocket (~> 0.5) - i18n (~> 0.7) - jekyll-sass-converter (~> 1.0) - jekyll-watch (~> 2.0) - kramdown (>= 1.17, < 3) - liquid (~> 4.0) - mercenary (~> 0.3.3) - pathutil (~> 0.9) - rouge (>= 1.7, < 4) - safe_yaml (~> 1.0) - jekyll-avatar (0.7.0) - jekyll (>= 3.0, < 5.0) - jekyll-coffeescript (1.1.1) - coffee-script (~> 2.2) - coffee-script-source (~> 1.11.1) - jekyll-commonmark (1.4.0) - commonmarker (~> 0.22) - jekyll-commonmark-ghpages (0.2.0) - commonmarker (~> 0.23.4) - jekyll (~> 3.9.0) - jekyll-commonmark (~> 1.4.0) - rouge (>= 2.0, < 4.0) - jekyll-default-layout (0.1.4) - jekyll (~> 3.0) - jekyll-feed (0.15.1) - jekyll (>= 3.7, < 5.0) - jekyll-gist (1.5.0) - octokit (~> 4.2) - jekyll-github-metadata (2.13.0) - jekyll (>= 3.4, < 5.0) - octokit (~> 4.0, != 4.4.0) - jekyll-include-cache (0.2.1) - jekyll (>= 3.7, < 5.0) - jekyll-mentions (1.6.0) - html-pipeline (~> 2.3) - jekyll (>= 3.7, < 5.0) - jekyll-optional-front-matter (0.3.2) - jekyll (>= 3.0, < 5.0) - jekyll-paginate (1.1.0) - jekyll-readme-index (0.3.0) - jekyll (>= 3.0, < 5.0) - jekyll-redirect-from (0.16.0) - jekyll (>= 3.3, < 5.0) - jekyll-relative-links (0.6.1) - jekyll (>= 3.3, < 5.0) - jekyll-remote-theme (0.4.3) - addressable (~> 2.0) - jekyll (>= 3.5, < 5.0) - jekyll-sass-converter (>= 1.0, <= 3.0.0, != 2.0.0) - rubyzip (>= 1.3.0, < 3.0) - jekyll-sass-converter (1.5.2) - sass (~> 3.4) - jekyll-seo-tag (2.8.0) - jekyll (>= 3.8, < 5.0) - jekyll-sitemap (1.4.0) - jekyll (>= 3.7, < 5.0) - jekyll-swiss (1.0.0) - jekyll-theme-architect (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-cayman (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-dinky (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-hacker (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-leap-day (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-merlot (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-midnight (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-minimal (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-modernist (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-primer (0.6.0) - jekyll (> 3.5, < 5.0) - jekyll-github-metadata (~> 2.9) - jekyll-seo-tag (~> 2.0) - jekyll-theme-slate (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-tactile (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-theme-time-machine (0.2.0) - jekyll (> 3.5, < 5.0) - jekyll-seo-tag (~> 2.0) - jekyll-titles-from-headings (0.5.3) - jekyll (>= 3.3, < 5.0) - jekyll-watch (2.2.1) - listen (~> 3.0) - jemoji (0.12.0) - gemoji (~> 3.0) - html-pipeline (~> 2.2) - jekyll (>= 3.0, < 5.0) - kramdown (2.3.2) - rexml - kramdown-parser-gfm (1.1.0) - kramdown (~> 2.0) - liquid (4.0.3) - listen (3.7.1) - rb-fsevent (~> 0.10, >= 0.10.3) - rb-inotify (~> 0.9, >= 0.9.10) - mercenary (0.3.6) - minima (2.5.1) - jekyll (>= 3.5, < 5.0) - jekyll-feed (~> 0.9) - jekyll-seo-tag (~> 2.1) - minitest (5.16.2) - nokogiri (1.13.8-x86_64-linux) - racc (~> 1.4) - octokit (4.25.1) - faraday (>= 1, < 3) - sawyer (~> 0.9) - pathutil (0.16.2) - forwardable-extended (~> 2.6) - public_suffix (4.0.7) - racc (1.6.0) - rb-fsevent (0.11.1) - rb-inotify (0.10.1) - ffi (~> 1.0) - rexml (3.2.5) - rouge (3.26.0) - ruby2_keywords (0.0.5) - rubyzip (2.3.2) - safe_yaml (1.0.5) - sass (3.7.4) - sass-listen (~> 4.0.0) - sass-listen (4.0.0) - rb-fsevent (~> 0.9, >= 0.9.4) - rb-inotify (~> 0.9, >= 0.9.7) - sawyer (0.9.2) - addressable (>= 2.3.5) - faraday (>= 0.17.3, < 3) - simpleidn (0.2.1) - unf (~> 0.1.4) - terminal-table (1.8.0) - unicode-display_width (~> 1.1, >= 1.1.1) - thread_safe (0.3.6) - typhoeus (1.4.0) - ethon (>= 0.9.0) - tzinfo (1.2.10) - thread_safe (~> 0.1) - unf (0.1.4) - unf_ext - unf_ext (0.0.8.2) - unicode-display_width (1.8.0) - zeitwerk (2.6.0) - -PLATFORMS - x86_64-linux - -DEPENDENCIES - github-pages (~> 227) - -BUNDLED WITH - 2.3.19 diff --git a/docs/Makefile b/docs/Makefile new file mode 100644 index 0000000..d4bb2cb --- /dev/null +++ b/docs/Makefile @@ -0,0 +1,20 @@ +# Minimal makefile for Sphinx documentation +# + +# You can set these variables from the command line, and also +# from the environment for the first two. +SPHINXOPTS ?= +SPHINXBUILD ?= sphinx-build +SOURCEDIR = . +BUILDDIR = _build + +# Put it first so that "make" without argument is like "make help". +help: + @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) + +.PHONY: help Makefile + +# Catch-all target: route all unknown targets to Sphinx using the new +# "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS). +%: Makefile + @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O) diff --git a/docs/README.md b/docs/README.md deleted file mode 100644 index dc685dd..0000000 --- a/docs/README.md +++ /dev/null @@ -1,144 +0,0 @@ - - -# GodotXterm - Terminal Emulator - -
- -[![Godot Version](https://img.shields.io/badge/Godot-4.2+-blue.svg)](#supported-godot-versions) -[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/lihop/godot-xterm/blob/stable/LICENSE.md) -[![Build and Test](https://github.com/lihop/godot-xterm/actions/workflows/main.yml/badge.svg?event=schedule)](https://github.com/lihop/godot-xterm/actions/workflows/main.yml) - -GDNative terminal for Godot. -Built using [libtsm](https://www.freedesktop.org/wiki/Software/libtsm/), [libuv](https://github.com/libuv/libuv), and [node-pty](https://github.com/microsoft/node-pty). -Primarily developed and tested on Linux, it also supports macOS with partial support for Windows and HTML5. See the [Features section](#features) for more detail. - - - -
- -https://user-images.githubusercontent.com/3696783/126894061-a69eb6ad-9979-4723-ade7-829494a9fc87.mp4 - -
- -[![Live Demo](./media/live_demo_button.png)](https://lihop.github.io/godot-xterm-dist/demo) -[![View it on GitHub](./media/view_it_on_github_button.png)](https://github.com/lihop/godot-xterm) - -#### Table of Contents - -1. [Features](#features) -2. [Screenshots](#screenshots) -3. [Demos and Examples](#demos-and-examples) -4. [Supported Godot Versions](#supported-godot-versions) -5. [Installation](#installation) -6. [Documentation](#documentation) -7. [License](#license) - -## Features - -- ### [Terminal](https://lihop.github.io/godot-xterm/api/terminal) - - A Terminal emulator Control node. - - Supports ANSI and (some) XTerm Control Sequences which can be used to do things such as clear the screen, move the cursor, change printed text color, ring a bell, and so on. - For an exhaustive list of terminal control sequences (not all of which are supported by GodotXterm) see ["XTerm Control Sequences"](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html). - -- ### [PTY](https://lihop.github.io/godot-xterm/api/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](https://docs.microsoft.com/en-us/windows/console) or [WinPTY](https://github.com/rprichard/winpty). - See issue [\#25](https://github.com/lihop/godot-xterm/issues/25). - -- ### Terminal Editor Plugin - - _Linux and macOS only._ - - Adds a panel to the Editor's bottom panel that can be used to spawn terminals in the editor. - Similar to VSCode's integrated terminal and IntelliJ's embedded terminal. - -- ### Asciicast Import Plugin - - Adds support for importing asciinema v2 `.cast` files as animations that can be played by an AnimationPlayer that is a child of a Terminal node. - Example `.cast` files can be downloaded from the [asciinema website](https://asciinema.org). - -- ### Xresources Import Plugin - Adds support for importing color schemes from `.xrdb` or `.Xresources` files. - Example xresources files can be exported from [terminal.sexy](https://terminal.sexy). - The [iTerm2-Color-Schemes repo](https://github.com/mbadolato/iTerm2-Color-Schemes) also has many example color scheme files in [xrdb](https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/xrdb) and [Xresources](https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/Xresources) format. - -## Screenshots - -| | | -| -------------------------------------- | -------------------------------------- | -| ![](./media/screenshot_editor.png) | ![](./media/screenshot_the_guest.png) | -| ![](./media/screenshot_retro_term.jpg) | ![](./media/screenshot_xterminate.png) | - -## Demos and Examples - -The GodotXterm repository contains several example scenes in the [`/examples`](https://github.com/lihop/godot-xterm/tree/stable/examples) directory. -After cloning this repo you will need to either build the GDNative binaries from source or copy pre-compiled binaries into your project. -See the [Setup section](https://lihop.github.io/godot-xterm/setup) for more details. - -Other examples of GodotXterm usage are available online: - -- [**Live Demo**](https://lihop.github.io/godot-xterm-dist/demo): An HTML5 export of the GodotXterm repo's example scenes. - -- [**The Guest**](https://lihop.itch.io/the-guest): A Linux only submission to the [Linux Game Jam 2022](https://itch.io/jam/linux-game-jam-2022). Uses GodotXterm in conjunction with the [gdtemu addon](https://github.com/lihop/gdtemu) and Linux's Kernel-based Virtual Machine, to provide the player with interactive VM that can be used in the game world. - -- [**Xterminate**](https://lihop.itch.io/xterminate): A Linux, macOS, and Windows demo which uses an older version GodotXterm in conjunction with [Godot Python](https://github.com/touilleMan/godot-python). - -Are you using GodotXterm in your project and want it listed here? Please [open a pull request](https://github.com/lihop/godot-xterm/pulls) to have it added. - -## Supported Godot Versions - -GodotXterm aims to support the current stable release of Godot, but may lag slightly. -Currently, Godot versions 3.5.x and 3.4.x are supported, but custom export templates -are required for HTML5 exports from versions < 3.5. -Versions 3.3.x are no longer officially supported but _may_ work if the GDNative libraries are -compiled using an older version of godot-cpp. - -## Installation - -GodotXterm is available on the [Godot Asset Library](https://godotengine.org/asset-library/asset/1007). -For more ways to install see the [Setup section](https://lihop.github.io/godot-xterm/setup). - -## Documentation - -Documentation is available on [GitHub Pages](https://lihop.github.io/godot-xterm). -If you have a question not answered by the docs, or would like more support, feel free to open a new discussion in the [discussions](https://github.com/lihop/godot-xterm/discussions) section of this project. - -## License - -Copyright (c) 2020-2022, Leroy Hopson and [contributors](https://github.com/lihop/godot-xterm/graphs/contributors) (MIT License). - -See the [full license](https://github.com/lihop/godot-xterm/blob/stable/LICENSE.md). - -### Third-party components - -The GDNative source code incorporates code snippets and source code from many third-party libraries. The licenses of these components can be found in the various sub-directories of this project (provided git submodules have been cloned). Many of these licenses must be distributed with source and binary distributions of this software. For convenience, the texts of these licenses have been bundled together (but clearly demarcated) in the [THIRDPARTY_NOTICES.txt](https://github.com/lihop/godot-xterm/blob/stable/addons/godot_xterm/THIRDPARTY_NOTICES.txt) file. - -**Note:** On platforms where the PTY node is not supported or if the library has been compiled with the option `disable_pty=yes` then only the licenses bundled in [THIRDPARTY_NOTICES_nopty.txt](https://github.com/lihop/godot-xterm/blob/stable/addons/godot_xterm/THIRDPARTY_NOTICES_nopty.txt) are applicable. - -### Fonts - -- The Hack regular font is bundled with GodotXterm as the default Terminal font. This is also the default monospace font of the Godot editor. See the [full license](https://github.com/lihop/godot-xterm/blob/stable/addons/godot_xterm/themes/fonts/hack/LICENSE.md). - -### Nonbundled Resources - -The following resources are not bundled with GodotXterm (i.e. are not included in the `addons/godot_xterm` directory) but are included in this repository for demo and testing purposes. They are: - -#### Sounds - -- [bell.wav](https://github.com/lihop/godot-xterm/blob/stable/themes/audio/bell.wav) by [InspectorJ](https://www.jshaw.co.uk), downloaded from [freesound.org](https://freesound.org/people/InspectorJ/sounds/484344/), released under [CC-BY-3.0](https://creativecommons.org/licenses/by/3.0/). - -#### Fonts - -- The **bold**, _italic_, and **_bold italic_** styles of the Hack font which are covered by the same license as above. -- Nerd Fonts. Combines symbols from a multitude of other fonts. See [license information](https://github.com/lihop/godot-xterm/blob/stable/themes/fonts/nerd_fonts/README.md). -- Noto Color Emoji. Released under the [SIL Open Font License](https://github.com/lihop/godot-xterm/blob/stable/themes/fonts/noto_color_emoji/LICENSE_OFL.txt). -- Unifont. Dual-licensed (since version 13.0.04) under the GNU GPL 2+ with the GNU font embedding exception and the SIL Open Font License (OFL) version 1.1. This project uses it under the terms of the [SIL Open Font License](https://github.com/lihop/godot-xterm/blob/stable/themes/fonts/unifont/LICENSE_OFL-1.1.txt). diff --git a/docs/_config.yml b/docs/_config.yml deleted file mode 100644 index 2974185..0000000 --- a/docs/_config.yml +++ /dev/null @@ -1,12 +0,0 @@ -# Site settings. -title: GodotXterm -email: godotxterm@leroy.geek.nz -description: Terminal emulator for the Godot game engine. -github_username: lihop - -# Build settings. -remote_theme: just-the-docs/just-the-docs - -# Just-the-docs settings. -color_scheme: dark -logo: /media/logo.png diff --git a/docs/_sass/custom/custom.scss b/docs/_sass/custom/custom.scss deleted file mode 100644 index eab5db8..0000000 --- a/docs/_sass/custom/custom.scss +++ /dev/null @@ -1,3 +0,0 @@ -#video-preview { - display: none; -} diff --git a/docs/_static/images/button_live_demo.png b/docs/_static/images/button_live_demo.png new file mode 100644 index 0000000000000000000000000000000000000000..037bc4cacf3b128686d1a797f54ffa5bd1da4c7a GIT binary patch literal 2343 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 literal 0 HcmV?d00001 diff --git a/docs/_static/images/button_view_it_on_github.png b/docs/_static/images/button_view_it_on_github.png new file mode 100644 index 0000000000000000000000000000000000000000..e2bf0508557e033b8f42936aef839b27909e6db5 GIT binary patch literal 3586 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 IM6N<$g4Sf;@c;k- literal 0 HcmV?d00001 diff --git a/docs/media/flow_diagram.svg b/docs/_static/images/diagram_flow.svg similarity index 99% rename from docs/media/flow_diagram.svg rename to docs/_static/images/diagram_flow.svg index 2529ccb..61d36ab 100644 --- a/docs/media/flow_diagram.svg +++ b/docs/_static/images/diagram_flow.svg @@ -5,8 +5,8 @@ viewBox="0 0 446.16424 184.60277" version="1.1" id="svg8" - inkscape:version="1.2.1 (9c6d41e410, 2022-07-14)" - sodipodi:docname="flow_diagram.svg" + inkscape:version="1.3.2 (091e20ef0f, 2023-11-25)" + sodipodi:docname="diagram_flow.svg" xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" xmlns="http://www.w3.org/2000/svg" @@ -103,10 +103,10 @@ + PhaBnkrD~PwZ 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 er-2q^OQr6# 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 awf-Nlj$vYXEkl$50000"PTY Diagram" is a derivative of [Termios-script-diagram.svg](https://commons.wikimedia.org/wiki/File:Termios-script-diagram.svg) by [Krishnavedala](https://en.wikipedia.org/wiki/User:Krishnavedala?rdfrom=commons:User:Krishnavedala), used under [CC0](https://creativecommons.org/share-your-work/public-domain/cc0/). ## Properties -| Type | Name | Default | -| ------------ | ------------------------------------ | ------------------------------------------------------ | -| [NodePath] | [terminal_path](#prop-terminal_path) | None | -| [int] | [cols](#prop-cols) | `80` | -| [int] | [rows](#prop-rows) | `24` | -| [Dictionary] | [env](#prop-env) | `{ COLORTERM = "truecolor", TERM = "xterm-256color" }` | -| [bool] | [use_os_env](#prop-use_os_env) | `true` | +| Type | Name | Default | +| -------------- | ------------------------------------ | ------------------------------------------------------ | +| {{NodePath}} | [terminal_path](#prop-terminal_path) | None | +| {{int}} | [cols](#prop-cols) | 80 | +| {{int}} | [rows](#prop-rows) | 24 | +| {{Dictionary}} | [env](#prop-env) | `{ COLORTERM = "truecolor", TERM = "xterm-256color" }` | +| {{bool}} | [use_os_env](#prop-use_os_env) | true | ## Methods -| Returns | Signature | -| ------- | ----------------------------------------------------------------------------------------------------------------------------------- | -| [Error] | [fork](#mthd-fork) **(** [String] file=`$SHELL`, [PoolStringArray] args=[], [String] cwd=`$PWD`, [int] cols=80, [int] rows=24 **)** | -| void | [kill](#mthd-kill) **(** [int] signum **)** | -| [Error] | [open](#mthd-open) **(** [int] cols=80, [int] rows=24 **)** | -| void | [resize](#mthd-resize) **(** [int] cols, [int] rows **)** | -| void | [resizev](#mthd-resizev) **(** [Vector2] size **)** | -| void | [write](#mthd-write) **(** [String]\|[PoolByteArray] data **)** | +| Returns | Signature | +| --------- | ------------------------------------------------------------------------------------------------------------------------------------------ | +| {{Error}} | [fork](#mthd-fork) **(** {{String}} file=$SHELL, {{PoolStringArray}} args=[ ], {{String}} cwd=$PWD, {{int}} cols=80, {{int}} rows=24 **)** | +| void | [kill](#mthd-kill) **(** {{int}} signum=1 **)** | +| {{Error}} | [open](#mthd-open) **(** {{int}} cols=80, {{int}} rows=24 **)** | +| void | [resize](#mthd-resize) **(** {{int}} cols, {{int}} rows **)** | +| void | [resizev](#mthd-resizev) **(** {{Vector2}} size **)** | +| void | [write](#mthd-write) **(** {{String}}\|{{PoolByteArray}} data **)** | ## Signals -- **data_received** **(** [PoolByteArray] data **)** +
- Emitted when data is read from the pseudoterminal master device. +**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 and `signum` is the number of the signal that terminated the child program. +**exited** **(** {{int}} exit_code, {{int}} signum **)** + +Emitted when the child program exits. `exit_code` is the exit status of the child program and `signum` is the number of the signal that terminated the child program. + +
## Enumerations -###
enum **Signal**: +
+ +enum **Signal**: - **SIGHUP** = 1 --- Hangup. - **SIGINT** = 2 --- Terminal interrupt signal. @@ -73,121 +73,119 @@ See issue [\#25](https://github.com/lihop/godot-xterm/issues/25). - **SIGALRM** = 14 --- Alarm clock. - **SIGTERM** = 15 --- Termination signal. + + ## Property Descriptions -###
[NodePath] **terminal_path** +
-| | | -| --------- | ------------------------ | -| _Default_ | None | -| _Setter_ | set_terminal_path(value) | -| _Getter_ | None | +{{NodePath}} **terminal_path** -[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. +| | | +| --------- | --------------------------------------------- | +| _Default_ | None | +| _Setter_ | void set_terminal_path ( {{NodePath}} 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 | +{{int}} **cols** - The column size in characters. +| | | +| --------- | ------------------------------- | +| _Default_ | 80 | +| _Setter_ | void set_cols ( {{int}} value ) | +| _Getter_ | None | ---- +The column size in characters. --
[int] **rows** +
- | | | - | --------- | --------------- | - | _Default_ | `24` | - | _Setter_ | set_rows(value) | - | _Getter_ | None | +{{int}} **rows** - The row size in characters. +| | | +| --------- | ------------------------------- | +| _Default_ | 24 | +| _Setter_ | void set_rows ( {{int}} value ) | +| _Getter_ | None | ---- +The row size in characters. --
[Dictionary] **env** +
- | | | - | --------- | ------------------------------------------------------ | - | _Default_ | `{ COLORTERM = "truecolor", TERM = "xterm-256color" }` | - | _Setter_ | None | - | _Getter_ | None | +{{Dictionary}} **env** - Environment variables to be set for the child program. +| | | +| --------- | ------------------------------------------------------ | +| _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 | +{{bool}} **use_os_env** - If `true` the environment variables from `env` will be merged with the environment variables of the current program (i.e. Godot), with the variables from `env` taking precedence over the environment variables of the current program. +| | | +| --------- | ---- | +| _Default_ | true | +| _Setter_ | None | +| _Getter_ | None | + +If `true` the environment variables from `env` will be merged with the environment variables of the current program (i.e. Godot), with the variables from `env` 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 the `SHELL` environment variable, falling back to `sh`. - The arguments specified in `args` 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 and `rows` is the initial number of rows. - Returns [OK] if successful. +{{Error}} **fork** **(** {{String}} file=$SHELL, {{PoolStringArray}} args=[ ], {{String}} cwd=$PWD, {{int}} cols=80, {{int}} rows=24 **)** - See also Godot's [OS.execute()](https://docs.godotengine.org/en/stable/classes/class_os.html#class-os-method-execute) method. +Opens a pseudoterminal and starts a new process using the program specified by `file`. +`file` defaults to the value of the `SHELL` environment variable, falling back to `sh`. +The arguments specified in `args` 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 and `rows` is the initial number of rows. +Returns {{OK}} if successful. ---- +:::{seealso} +Godot's {{ '[OS.execute()]({}/classes/class_os.html#class-os-method-execute)'.format(godot_docs) }} method. +::: --
void **kill** **(** [int] signum=1 **)** +
- Sends the specified signal (`signum`) to the PTY's child process, if any. Defaults to 1 (SIGHUP). +void **kill** **(** {{int}} signum=1 **)** - See also Godot's [OS.kill()](https://docs.godotengine.org/en/stable/classes/class_os.html#class-os-method-kill) method. +Sends the specified signal (`signum`) to the PTY's child process, if any. Defaults to `1` (`SIGHUP`). ---- +:::{seealso} +Godot's {{ '[OS.kill()]({}/classes/class_os.html#class-os-method-kill)'.format(godot_docs) }} method. +::: --
[Error] **open** **(** [int] cols=80, [int] rows=24 **)** +
- Opens a pseudoterminal but does not start any process. Returns [OK] if successful. +{{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 **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 and `y` is rows. +void **resizev** **(** {{Vector2}} size **)** ---- +Same as resize, but accepts a {{Vector2}} where `x` is cols and `y` is rows. --
void **write** **(** [String] \| [PoolByteArray] data **)** +
- Writes data to the pseudoterminal master device. +void **write** **(** {{String}}\|{{PoolByteArray}} data **)** -[Dictionary]: https://docs.godotengine.org/en/stable/classes/class_dictionary.html -[Error]: https://docs.godotengine.org/en/stable/classes/class_%40globalscope.html#enum-globalscope-error -[Node]: https://docs.godotengine.org/en/stable/classes/class_node.html -[NodePath]: https://docs.godotengine.org/en/stable/classes/class_nodepath.html -[Object]: https://docs.godotengine.org/en/stable/classes/class_object.html -[OK]: https://docs.godotengine.org/en/stable/classes/class_%40globalscope.html#class-globalscope-constant-ok -[PoolByteArray]: https://docs.godotengine.org/en/stable/classes/class_poolbytearray.html -[PoolStringArray]: https://docs.godotengine.org/en/stable/classes/class_poolstringarray.html -[String]: https://docs.godotengine.org/en/stable/classes/class_string.html -[Terminal]: /api/terminal -[Vector2]: https://docs.godotengine.org/en/stable/classes/class_vector2.html -[bool]: https://docs.godotengine.org/en/stable/classes/class_bool.html -[int]: https://docs.godotengine.org/en/stable/classes/class_int.html +Writes data to the pseudoterminal master device. diff --git a/docs/api/terminal.md b/docs/api/terminal.md index 1a5ae2e..6015a66 100644 --- a/docs/api/terminal.md +++ b/docs/api/terminal.md @@ -1,14 +1,6 @@ ---- -layout: default -title: Terminal -parent: API -nav_order: 2 -permalink: /api/terminal ---- - # Terminal -**Inherits:** [Control] < [CanvasItem] < [Node] < [Object] +**Inherits:** {{Control}} < {{CanvasItem}} < {{Node}} < {{Object}} A Terminal emulator Control node. @@ -17,7 +9,7 @@ For an exhaustive list of terminal control sequences (not all of which are suppo ## Overview -![Terminal Flow Diagram](../media/flow_diagram.svg) +![Terminal Flow Diagram](../_static/images/diagram_flow.svg) "Terminal Flow Diagram" is a derivative of ["computer keyboard 2"](https://openclipart.org/detail/2396/computer-keyboard-2) and ["monitor"](https://openclipart.org/detail/1637/monitor), from U.S. patent drawings, uploaded by [johnny_automatic](https://openclipart.org/artist/johnny_automatic), used under [CC0](https://creativecommons.org/share-your-work/public-domain/cc0/). ### (1) User Input @@ -44,165 +36,172 @@ For example if the string `"\u001b[38;2;0;255;0;mA"` was written to the terminal | Type | Name | Default | | ------------ | ------------------------------------ | ------- | -| [bool] | [bell_muted](#prop-bell_muted) | `false` | -| [float] | [bell_cooldown](#prop-bell_cooldown) | `0.1` | -| [UpdateMode] | [update_mode](#prop-update_mode) | `AUTO` | +| {{bool}} | [bell_muted](#prop-bell_muted) | false | +| {{float}} | [bell_cooldown](#prop-bell_cooldown) | 0.1 | +| [UpdateMode] | [update_mode](#prop-update_mode) | AUTO | ## Methods -| Returns | Signature | -| -------- | ----------------------------------------------------------------- | -| void | [clear](#mthd-clear) **()** | -| [String] | [copy_all](#mthd-copy_all) **()** | -| [String] | [copy_selection](#mthd-copy_selection) **()** | -| [int] | [get_cols](#mthd-get_cols) **()** | -| [int] | [get_rows](#mthd-get_rows) **()** | -| void | [write](#mthd-write) **(** [String] \| [PoolByteArray] data **)** | +| Returns | Signature | +| ---------- | ------------------------------------------------------------------- | +| void | [clear](#mthd-clear) **( )** | +| {{String}} | [copy_all](#mthd-copy_all) **( )** | +| {{String}} | [copy_selection](#mthd-copy_selection) **( )** | +| {{int}} | [get_cols](#mthd-get_cols) **( )** | +| {{int}} | [get_rows](#mthd-get_rows) **( )** | +| void | [write](#mthd-write) **(** {{String}}\|{{PoolByteArray}} data **)** | ## Signals --
**bell** **()** +
- Emitted when the [bell character](https://en.wikipedia.org/wiki/Bell_character) (`"\u0007"`) is written to the terminal. +**bell** **(** **)** ---- +Emitted when the [bell character](https://en.wikipedia.org/wiki/Bell_character) (`"\u0007"`) is written to the terminal. --
**data_sent** **(** [PoolByteArray] data **)** +
- Emitted when some data comes out of the terminal. - This typically occurs when the user interacts with the terminal by typing on the keyboard. - Input can be interpreted differently depending on modifier keys and the terminal's settings/state. +**data_sent** **(** {{PoolByteArray}} data **)** - When connected to a [PTY], this data will be forwarded to it. +Emitted when some data comes out of the terminal. +This typically occurs when the user interacts with the terminal by typing on the keyboard. +Input can be interpreted differently depending on modifier keys and the terminal's settings and state. ---- +:::{note} +When connected to a {{PTY}}, this data will be forwarded to it. +::: --
**key_pressed** **(** [String] data, [InputEventKey] event **)** +
- Emitted when a key is pressed. `data` is the data that would be emitted by the terminal via the [`data_sent()`](#sgnl-data_sent) signal and may vary based on the terminal's state. `event` is the event captured by Godot in the `_gui_input(event)` method. +**key_pressed** **(** {{String}} data, {{InputEventKey}} event **)** ---- +Emitted when a key is pressed. `data` is the data that would be emitted by the terminal via the [`data_sent()`](#sgnl-data_sent) signal and may vary based on the terminal's state. `event` is the event captured by Godot in the `_gui_input(event)` method. --
**size_changed** **(** [Vector2] new_size **)** +
- Emitted when the terminal's size changes, typically in response to its `rect_size` changing. - `new_size.x` will be the number of columns and `new_size.y` will be the number of rows. - This information should be forwarded to a pseudoterminal, if it is connected, so that it can update its size accordingly. +**size_changed** **(** {{Vector2}} new_size **)** + +Emitted when the terminal's size changes, typically in response to its `rect_size` changing. +`new_size.x` will be the number of columns and `new_size.y` will be the number of rows. +This information should be forwarded to a pseudoterminal, if it is connected, so that it can update its size accordingly. + +
## Enumerations -
enum **UpdateMode**: +
-- **DISABLED** = **0** --- The terminal's `update()` method will never be called. No new cells will be drawn. -- **AUTO** = **1** --- Only changed cells will be drawn after `update()` is called, but will switch to **ALL_NEXT_FRAME** when mass redraws are required. -- **ALL** = **2** --- Every cell will be drawn on every `update()` call. -- **ALL_NEXT_FRAME** = **3** --- Draws every cell afetr the next `update()` call, then returns to **AUTO**. +enum **UpdateMode**: + +- **DISABLED** = 0 --- The terminal's `update()` method will never be called. No new cells will be drawn. +- **AUTO** = 1 --- Only changed cells will be drawn after `update()` is called, but will switch to `ALL_NEXT_FRAME` when mass redraws are required. +- **ALL** = 2 --- Every cell will be drawn on every `update()` call. +- **ALL_NEXT_FRAME** = 3 --- Draws every cell after the next `update()` call, then returns to `AUTO`. + +
## Property Descriptions --
[bool] **bell_muted** +
- | | | - | --------- | ------- | - | _Default_ | `false` | - | _Setter_ | None | - | _Getter_ | None | +{{bool}} **bell_muted** - If muted, no [`bell`](#sgnl-bell) signal will be emitted when the bell character (`"\u0007"`) is written to the terminal. +| | | +| --------- | ----- | +| _Default_ | false | +| _Setter_ | None | +| _Getter_ | None | ---- +If muted, no [`bell`](#sgnl-bell) signal will be emitted when the bell character (`"\u0007"`) is written to the terminal. --
[float] **bell_cooldown** +
- | | | - | --------- | ----- | - | _Default_ | `0.1` | - | _Setter_ | None | - | _Getter_ | None | +{{float}} **bell_cooldown** - The minimum amount of time to wait before emitting another [`bell`](#sgnl-bell) signal on subsequent writes of the bell character. - Writing the bell character too frequently, for example by running the command `while true; do echo -e "\a"; done`, - can have a negative impact on performance depending on how the signal is connected. - This property allows throttling of that signal. +| | | +| --------- | ---- | +| _Default_ | 0.1 | +| _Setter_ | None | +| _Getter_ | None | ---- +The minimum amount of time to wait before emitting another [`bell`](#sgnl-bell) signal on subsequent writes of the bell character. --
[UpdateMode] **update_mode** +:::{caution} +Writing the bell character too frequently, for example by running the command `while true; do echo -e "\a"; done`, +can have a negative impact on performance depending on how the signal is connected. +This property allows throttling of that signal's emission. +::: - | | | - | --------- | ---------------------- | - | _Default_ | `AUTO` | - | _Setter_ | set_update_mode(value) | - | _Getter_ | None | +
- Determines which cells of the terminal will be updated when its state changes. - By default `AUTO` will only update cells that changed, but will update all cells (i.e. the entire screen) on major changes, - such as terminal resize. - If you are having trouble with the terminal not updating correctly or exhibiting artifacts, you can try remedying this by setting `update_mode` to `ALL`, however, this will have a negative impact on performance. +[UpdateMode] **update_mode** + +| | | +| --------- | ------------------------------------------- | +| _Default_ | AUTO | +| _Setter_ | void set_update_mode ( [UpdateMode] value ) | +| _Getter_ | None | + +Determines which cells of the terminal will be updated when its state changes. +By default `AUTO` will only update cells that changed, but will update all cells (i.e. the entire screen) on major changes, +such as terminal resize. + +:::{hint} +If the screen is not updating properly, then setting the `update_mode` to `ALL` can be a workaround for this. However, this will have a negative impact on performance. Update issues should be reported to [the issue tracker](https://github.com/lihop/godot-xterm/issues). +::: + +
## Method Descriptions --
void **clear** **()** +
- Removes all but the bottommost row of the terminal including scrollback buffer. +void **clear** **( )** ---- +Removes all but the bottommost row of the terminal including scrollback buffer. --
[String] **copy_all** **()** +
- Copies all of the text in the terminal including scrollback buffer. +{{String}} **copy_all** **( )** ---- +Copies all of the text in the terminal including scrollback buffer. --
[String] **copy_selection** **()** +
- Copies only selected (i.e. highlighted) text in the terminal. - Will return an empty string if nothing is highligted. +{{String}} **copy_selection** **( )** ---- +Copies only selected (i.e. highlighted) text in the terminal. +Will return an empty string if nothing is highlighted. --
[int] **get_cols** **()** +
- Returns the width of the terminal in characters. - When using a monospace font, this is the number of visible characters that can fit from one side of the terminal to the other in a single row. - It will automatically update according to the terminal's rect_size and theme's font size. +{{int}} **get_cols** **( )** ---- +Returns the width of the terminal in characters. +When using a monospace font, this is the number of visible characters that can fit from one side of the terminal to the other in a single row. +It will automatically update according to the terminal's rect_size and theme's font size. --
[int] **get_rows** **()** +
- Returns the height of the terminal in characters. - When using a monospace font, this is the number of visible characters that can fit from the top of the terminal to the bottom in a single column. - It will automatically update according to the terminal's rect_size and theme's font size. +{{int}} **get_rows** **( )** ---- +Returns the height of the terminal in characters. +When using a monospace font, this is the number of visible characters that can fit from the top of the terminal to the bottom in a single column. +It will automatically update according to the terminal's rect_size and theme's font size. --
void **write** **(** [String] \| [PoolByteArray] data **)** +
- Writes data to the terminal emulator. Accepts either a [String] or [PoolByteArray]. - Typically it would be connected to the output of a [PTY]'s [`data_received()`](/api/pty#sgnl-data_received) signal. +void **write** **(** {{String}}\|{{PoolByteArray}} data **)** - Example: +Writes data to the terminal emulator. Accepts either a {{String}} or {{PoolByteArray}}. +Typically it would be connected to the output of a {{PTY}}'s [`data_received()`](pty.md#sgnl-data_received) signal. - ```gdscript - $Terminal.write("Hello World") - $Terminal.write("Hello World".to_utf8()) - $Terminal.write(PoolByteArray([0x1b, 0x9e]) - ``` +Example: + +```gdscript +$Terminal.write("Hello World") +$Terminal.write("Hello World".to_utf8()) +$Terminal.write(PoolByteArray([0x1b, 0x9e]) +``` -[AudioStream]: https://docs.godotengine.org/en/stable/classes/class_audiostream.html -[CanvasItem]: https://docs.godotengine.org/en/stable/classes/class_canvasitem.html -[Color]: https://docs.godotengine.org/en/stable/classes/class_color.html -[Control]: https://docs.godotengine.org/en/stable/classes/class_control.html -[Font]: https://docs.godotengine.org/en/stable/classes/class_font.html -[InputEventKey]: https://docs.godotengine.org/en/stable/classes/class_inputeventkey.html -[Node]: https://docs.godotengine.org/en/stable/classes/class_node.html -[Object]: https://docs.godotengine.org/en/stable/classes/class_object.html -[PoolByteArray]: https://docs.godotengine.org/en/stable/classes/class_poolbytearray.html -[PTY]: /api/pty -[String]: https://docs.godotengine.org/en/stable/classes/class_string.html [UpdateMode]: #enum-update_mode -[Vector2]: https://docs.godotengine.org/en/stable/classes/class_vector2.html -[bool]: https://docs.godotengine.org/en/stable/classes/class_bool.html -[float]: https://docs.godotengine.org/en/stable/classes/class_float.html -[int]: https://docs.godotengine.org/en/stable/classes/class_int.html diff --git a/docs/conf.py b/docs/conf.py new file mode 100644 index 0000000..0c43690 --- /dev/null +++ b/docs/conf.py @@ -0,0 +1,65 @@ +# Configuration file for the Sphinx documentation builder. +# +# For the full list of built-in configuration values, see the documentation: +# https://www.sphinx-doc.org/en/master/usage/configuration.html + +import os + +# -- Project information ----------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#project-information + +project = 'GodotXterm' +copyright = '2024, Leroy Hopson' +author = 'Leroy Hopson' +godot_version = '3.5' + +# -- General configuration --------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration + +extensions = ['myst_parser', 'sphinx_rtd_theme'] +myst_enable_extensions = ['colon_fence', 'substitution'] + +templates_path = ['_templates'] +exclude_patterns = ['_build', 'Thumbs.db', '.DS_Store'] + +current_branch = os.getenv('CURRENT_BRANCH', 'main') +godot_class = 'https://docs.godotengine.org/en/' + godot_version + '/classes/class_{}' + +# -- Options for HTML output ------------------------------------------------- +# https://www.sphinx-doc.org/en/master/usage/configuration.html#options-for-html-output + +html_static_path = ['_static'] +html_theme = 'sphinx_rtd_theme' +html_theme_options = { + 'logo_only': True +} +html_logo = '_static/images/logo.png' + +myst_substitutions = { + 'repo': 'https://github.com/lihop/godot-xterm/blob/{}'.format(current_branch), + 'godot_docs': 'https://docs.godotengine.org/en/' + godot_version, + + 'PTY': '[PTY](/api/pty.md)', + 'Terminal': '[Terminal](/api/terminal.md)', + + # Godot classes. + 'AudioStream': '[AudioStream](' + godot_class.format('audiostream.html') + ')', + 'CanvasItem': '[CanvasItem](' + godot_class.format('canvasitem.html') + ')', + 'Color': '[Color](' + godot_class.format('color.html') + ')', + 'Control': '[Control](' + godot_class.format('control.html') + ')', + 'Error': '[Error](' + godot_class.format('%40globalscope.html#enum-globalscope-error') + ')', + 'Font': '[Font](' + godot_class.format('font.html') + ')', + 'InputEventKey': '[InputEventKey](' + godot_class.format('inputeventkey.html') + ')', + 'Node': '[Node](' + godot_class.format('node.html') + ')', + 'NodePath': '[NodePath](' + godot_class.format('nodepath.html') + ')', + 'Object': '[Object](' + godot_class.format('object.html') + ')', + 'OK': '[OK](' + godot_class.format('%40globalscope.html#class-globalscope-constant-ok') + ')', + 'PoolByteArray': '[PoolByteArray](' + godot_class.format('poolbytearray.html') + ')', + 'PoolStringArray': '[PoolStringArray](' + godot_class.format('poolstringarray.html') + ')', + 'String': '[String](' + godot_class.format('string.html') + ')', + 'Vector2': '[Vector2](' + godot_class.format('vector2.html') + ')', + 'bool': '[bool](' + godot_class.format('bool.html') + ')', + 'float': '[float](' + godot_class.format('float.html') + ')', + 'int': '[int](' + godot_class.format('int.html') + ')', +} + diff --git a/docs/favicon.ico b/docs/favicon.ico deleted file mode 100644 index eea3b1440b6815b3be18d81be689e5a7b818daad..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3062 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 -{% include_relative README.md %} +# GodotXterm - Terminal Emulator + +
+ +[![Godot Version](https://img.shields.io/badge/Godot-3.4.x-blue.svg)](#supported-godot-versions) +[![License](https://img.shields.io/badge/License-MIT-green.svg)](https://github.com/lihop/godot-xterm/blob/stable/LICENSE.md) +[![Build and Test](https://github.com/lihop/godot-xterm/actions/workflows/main.yml/badge.svg?event=schedule)](https://github.com/lihop/godot-xterm/actions/workflows/main.yml) + +GDNative terminal for Godot. +Built using [libtsm](https://www.freedesktop.org/wiki/Software/libtsm/), [libuv](https://github.com/libuv/libuv), and [node-pty](https://github.com/microsoft/node-pty). +Primarily developed and tested on Linux, it also supports macOS with partial support for Windows and HTML5. See the [Features section](introduction.md#features) for more detail. + + + +[![Live Demo](./_static/images/button_live_demo.png)](https://lihop.github.io/godot-xterm-dist/demo) +[![View it on GitHub](./_static/images/button_view_it_on_github.png)](https://github.com/lihop/godot-xterm) + +```{toctree} +:maxdepth: 2 +:caption: Table of Contents + +introduction +setup/index +api/index +CHANGELOG +``` diff --git a/docs/introduction.md b/docs/introduction.md new file mode 100644 index 0000000..53318dd --- /dev/null +++ b/docs/introduction.md @@ -0,0 +1,112 @@ +# Introduction + +## Features + +- ### {{Terminal}} + + A Terminal emulator Control node. + + Supports ANSI and (some) XTerm Control Sequences which can be used to do things such as clear the screen, move the cursor, change printed text color, ring a bell, and so on. + For an exhaustive list of terminal control sequences (not all of which are supported by GodotXterm) see ["XTerm Control Sequences"](https://invisible-island.net/xterm/ctlseqs/ctlseqs.html). + +- ### {{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](https://docs.microsoft.com/en-us/windows/console) or [WinPTY](https://github.com/rprichard/winpty). + See issue [\#25](https://github.com/lihop/godot-xterm/issues/25). + +- ### Terminal Editor Plugin + + _Linux and macOS only._ + + Adds a panel to the Editor's bottom panel that can be used to spawn terminals in the editor. + Similar to VSCode's integrated terminal and IntelliJ's embedded terminal. + +- ### Asciicast Import Plugin + + Adds support for importing asciinema v2 `.cast` files as animations that can be played by an AnimationPlayer that is a child of a Terminal node. + Example `.cast` files can be downloaded from the [asciinema website](https://asciinema.org). + +- ### Xresources Import Plugin + Adds support for importing color schemes from `.xrdb` or `.Xresources` files. + Example xresources files can be exported from [terminal.sexy](https://terminal.sexy). + The [iTerm2-Color-Schemes repo](https://github.com/mbadolato/iTerm2-Color-Schemes) also has many example color scheme files in [xrdb](https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/xrdb) and [Xresources](https://github.com/mbadolato/iTerm2-Color-Schemes/tree/master/Xresources) format. + +## Screenshots + +| | | +| -------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------- | +|
![](./_static/images/screenshot_editor.png) | ![](./_static/images/screenshot_the_guest.png) | +| ![](./_static/images/screenshot_retro_term.jpg) | ![](./_static/images/screenshot_xterminate.png) | + +## Demos and Examples + +The GodotXterm repository contains several example scenes in the {{ '[`/examples`]({}/examples)'.format(repo) }} directory. +If cloning the repo, you will need to either build the GDNative binaries from source or copy pre-compiled binaries into your project. +See the [Setup section](/setup/index.md) for more details. + +Other examples of GodotXterm usage are available online: + +- [**Live Demo**](https://lihop.github.io/godot-xterm-dist/demo): An HTML5 export of the GodotXterm repo's example scenes. + +- [**The Guest**](https://lihop.itch.io/the-guest): A Linux only submission to the [Linux Game Jam 2022](https://itch.io/jam/linux-game-jam-2022). Uses GodotXterm in conjunction with the [gdtemu addon](https://github.com/lihop/gdtemu) and Linux's Kernel-based Virtual Machine, to provide the player with an interactive VM that can be used in the game world. + +- [**Xterminate**](https://lihop.itch.io/xterminate): A Linux, macOS, and Windows demo which uses an older version GodotXterm in conjunction with [Godot Python](https://github.com/touilleMan/godot-python). + +Are you using GodotXterm in your project and want it listed here? Please [open a pull request](https://github.com/lihop/godot-xterm/pulls) to have it added. + +## Supported Godot Versions + +GodotXterm aims to support the current stable release of Godot, but may lag slightly. +Currently, Godot 3.x versions are supported with support for Godot 4 coming soon. + +:::{tip} +Godot 3.3.x versions are no longer officially supported but _may_ work if the GDNative libraries are compiled using an older version of godot-cpp. +::: + +## Installation + +GodotXterm is available on the [Godot Asset Library](https://godotengine.org/asset-library/asset/1007). +For more ways to install see the [Setup section](/setup/index.md). + +## Help + +Documentation is available here on [Read the Docs](https://docs.godot-xterm.nix.nz). +If you have a question not answered by the docs, or would like more support, feel free to open a new discussion in the [discussions](https://github.com/lihop/godot-xterm/discussions) section of the project repo. + +## License + +Copyright (c) 2020-2024, Leroy Hopson and [contributors](https://github.com/lihop/godot-xterm/graphs/contributors) (MIT License). + +See the {{ '[full license]({}/LICENSE.md)'.format(repo) }}. + +### Third-party components + +The GDNative source code incorporates code snippets and source code from many third-party libraries. The licenses of these components can be found in the various sub-directories of this project (provided git submodules have been cloned). Many of these licenses must be distributed with source and binary distributions of this software. For convenience, the texts of these licenses have been bundled together (but clearly demarcated) in the {{ '[THIRDPARTY_NOTICES.txt]({}/addons/godot_xterm/THIRDPARTY_NOTICES.txt)'.format(repo) }} file. + +:::{note} +On platforms where the PTY node is not supported or if the library has been compiled with the option `disable_pty=yes` then only the licenses bundled in {{ '[THIRDPARTY_NOTICES_nopty.txt]({}/addons/godot_xterm/THIRDPARTY_NOTICES_nopty.txt)'.format(repo) }} are applicable. +::: + +### Fonts + +- The Hack regular font is bundled with GodotXterm as the default Terminal font. This is also the default monospace font of the Godot editor. See the {{ '[full license]({}/addons/godot_xterm/themes/fonts/hack/LICENSE.md)'.format(repo) }}. + +### Nonbundled Resources + +The following resources are not bundled with GodotXterm (i.e. are not included in the `addons/godot_xterm` directory) but are included in the project repository for demo and testing purposes. They are: + +#### Fonts + +- The **bold**, _italic_, and **_bold italic_** styles of the Hack font, covered by the same Hack font license as above. +- Nerd Fonts. Combines symbols from a multitude of other fonts. See {{ '[license information]({}/themes/fonts/nerd_fonts/README.md)'.format(repo) }}. +- Noto Color Emoji. Released under the {{ '[SIL Open Font License]({}/themes/fonts/noto_color_emoji/LICENSE_OFL.txt)'.format(repo) }}. +- Unifont. Dual-licensed (since version 13.0.04) under the GNU GPL 2+ with the GNU font embedding exception and the SIL Open Font License (OFL) version 1.1. This project uses it under the terms of the {{ '[SIL Open Font License]({}/themes/fonts/unifont/LICENSE_OFL-1.1.txt)' }}. + +#### Sounds + +- {{ '[bell.wav]({}/themes/audio/bell.wav)'.format(repo) }} by [InspectorJ](https://www.jshaw.co.uk), downloaded from [freesound.org](https://freesound.org/people/InspectorJ/sounds/484344/), released under [CC-BY-3.0](https://creativecommons.org/licenses/by/3.0/). diff --git a/docs/make.bat b/docs/make.bat new file mode 100644 index 0000000..954237b --- /dev/null +++ b/docs/make.bat @@ -0,0 +1,35 @@ +@ECHO OFF + +pushd %~dp0 + +REM Command file for Sphinx documentation + +if "%SPHINXBUILD%" == "" ( + set SPHINXBUILD=sphinx-build +) +set SOURCEDIR=. +set BUILDDIR=_build + +%SPHINXBUILD% >NUL 2>NUL +if errorlevel 9009 ( + echo. + echo.The 'sphinx-build' command was not found. Make sure you have Sphinx + echo.installed, then set the SPHINXBUILD environment variable to point + echo.to the full path of the 'sphinx-build' executable. Alternatively you + echo.may add the Sphinx directory to PATH. + echo. + echo.If you don't have Sphinx installed, grab it from + echo.https://www.sphinx-doc.org/ + exit /b 1 +) + +if "%1" == "" goto help + +%SPHINXBUILD% -M %1 %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% +goto end + +:help +%SPHINXBUILD% -M help %SOURCEDIR% %BUILDDIR% %SPHINXOPTS% %O% + +:end +popd diff --git a/docs/media/live_demo_button.png b/docs/media/live_demo_button.png deleted file mode 100644 index a4a96cc6aef208f4049ce3013fa7ba2582b19b3e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2550 zcmV&-5=8fIw`07u(Ue&Gd{_3k+uQ|wOa)41Ecpx0db|Z6p&VwfV1nd zN~&cn5#%r?1!EZVGvp172xbY6=4urkSRbg zq>9cU(jbQ+MT9|wp&EuE$3+-K800V{i!g{V$Y8J=^6p{qbuqz)1)VT`Wj0c>io{fC zhytA5;3UDE!P(vrG0WW$d7uERqjKwAqOU81p)yU{A_j+<#cEA!&LyVGs<*1ct$#V7R3c295)Cb+quR@-?J_&Hi?RZ4Gwi zVF-=Rr8wxjI&BWd`X9i_)&MT{MtE6Kg=L$rV=qDRzBGd2s9@=kIfF+v3^z1dLm3P$ z;4W9JCwIw!u z>x}6uexYOH0lb|}urbI5A)BvZ`{CQQ))u$Q18rOD!FOUBs$R?3Wr>y2#0Uj796O&{0*UG>&0&UCbD1g&uCL(1O;=)_3CE1N=KS4<%1tHMrKl+JUnj zlqjGx7$KHm*h<1Q1Vi|@E||9BA`gR>7Lc~3J03hL$7i!oE5&Z!Mi0j}_#o=wEv(#n zo&T(jNn`9>EkWZ(+SrwJ2e*HJ4l`3djOc4d;+JD6jq&VxrAiGVgWY%-oCA_;IfMMc zBWu0Uu5D9D#-{R{u#Z- zI(+i-Za;-rClmO%wB+Hj{HQ4mo9Xfz7|{_mroTDv6~92=Y3YjNvzeX_;zK>bbl7ve z5Lfaa!=b$aKI_#MckVyu*ZP!d9U&TLJ1{|57*=+X!4N4+TwRShL-;~hOk2)iknN^9 zWMhc9RT6~l z$iw=bzp92|iMtGj;Yszv5IWn5-?ahXWa83|QaH5J$KD^hV*8N-EZcZhY5WLUk1M%} z_xM!BcuC>iU`9!t^L;iBoxG>$zyDueu(fE8j9-c{iH;$8-862X1?GKWk1rRWqtA-@ z{(m2BgDC`GaQGF(y#d;YK4w@n#SvTf-NbiM^=th$kPr+<1cpIU4Z}4RFtn3F8-@#hDygjgb`Y z3%w@V@EVt*)OSIk1G#_&0)x*X{bJ2+N(P%3mTtU)7y^#9BVj(gYj}@OQ5=!%@7i=c zos8^(=P#=Gc!X#g0|Q$O6M|Lr-M>ubcMIG7+m?5sH(t zW#}{Y&kHKhO~qXm@317b9dwM-1-S7Tsu96qm~G{2l2i z*hMhxO)13Aqq5!e=f;Y(>o=dMhG8jl1`{|BJ6f+ZByRA9#fMZgj85WfhE0py(Y13+ zjG3QFwZiK<$1k{7rl>EHBD(W&kDU8w7;M0R@Sl8wuXmJS*xUnQ1VdPy>^)6(d>?|L z6r=uG+v&C~m%y39FgQUd7!C;tgE3+iFesm?Z$|6O!{A;G!yk%|m>r&q@nVdP`@az!eUCm{?t24dQJZ6g}hg|~_RKlRE!yzNOH`sB&lDaS~yUyX*?hhPlg`Qp7 zfE8XWd91?E%r3%?#9RD#462$O26-R0%bBS8cb?)5)hqGIx9Poy@{K{>x0`Egj2qYv z9mqkN(7TR@r4`66c!K22-}#so&L98`Y%I1`24GJQ)9RN_%MzLXHc8`nl&-O z5HG@@SvgT#Gz7zL5eBu%uUQjwR((VmG%F?Qi-us>B|3xp^w+4FIV-;{^xvT3ueE4Y zR@4*>XXQCx3jL01nqHh%lN8`At(>LW7Lx%T@drCJDKYOnmdYpi4=Xn(c!9NPX8-^I M07*qoM6N<$f<|`3N&o-= diff --git a/docs/media/pty_diagram.png b/docs/media/pty_diagram.png deleted file mode 100644 index b780094ad6ae6559a0a0b598e70f59dd979f1dd9..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89868 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�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%0D{uA~1ygdQ`7<+#V8j*(x2HO|!aFDQkt= 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⩔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