Skip to content

Releases: lihop/godot-xterm

v2.2.0 - Deprecation & Bugfix Release

26 Aug 02:31
7e65be4
Compare
Choose a tag to compare

Changed

  • Changed theme item names to be compatible with Godot version 3.5 (no spaces), consistent with other theme item names (snake_case), and to match the ANSI color names listed on the ANSI escape code Wikipedia page.

Deprecated

  • Deprecated the cols and rows properties of Terminal. These properties will be removed in a future version. Please use get_cols() and get_rows() instead.
  • Deprecated the undocumented get_master() method of PTY that returned its Pipe. This method will be removed in a future version. The Pipe class is for internal use only and may be changed at any time.
  • Deprecated old theme item names. Support for these names will be removed in a future version. Please update the names as follows (paying particular attention to Light Grey, Dark Grey, White, Bold Italic, and the Light * variants):
    • Colors:
      • Black -> black
      • Red -> red
      • Green -> green
      • Yellow -> yellow
      • Blue -> blue
      • Magenta -> magenta
      • Cyan -> cyan
      • Light Grey -> white
      • Dark Grey -> bright_black
      • Light Red -> bright_red
      • Light Green -> bright_green
      • Light Yellow -> bright_yellow
      • Light Blue -> bright_blue
      • Light Magenta -> bright_magenta
      • Light Cyan -> bright_cyan
      • White -> bright_white
      • Foreground -> foreground
      • Background -> background
      • Cursor -> cursor
    • Fonts:
      • Regular -> regular
      • Italic -> italic
      • Bold -> bold
      • Bold Italic -> bold_italic

Removed

  • Removed support for Godot version 3.3.x. GodotXterm might still work with this version of Godot if compiled with the correct version of godot-cpp, but compatibility is no longer officially supported.

Fixed

  • #57: Screen is no longer erased on resize when using a custom theme.
  • #58: Screen is no longer erased when changing themes.

computer terminal in front of a wall of neon paint
"Paint Term", generated using Midjourney, released under CC0 by @lihop.

v2.2.0-rc1

25 Aug 22:22
4f24f2b
Compare
Choose a tag to compare
v2.2.0-rc1 Pre-release
Pre-release

Changed

  • Changed theme item names to be compatible with Godot version 3.5 (no spaces),
    consistent with other theme item names (snake_case), and to match the ANSI
    color names listed on the ANSI escape code Wikipedia page.

Deprecated

  • Deprecated the cols and rows properties of Terminal.
    These properties will be removed in a future version.
    Please use get_cols() and get_rows() instead.
  • Deprecated the undocumented get_master() method of PTY that returned its Pipe.
    This method will be removed in a future version.
    The Pipe class is for internal use only and may be changed at any time.
  • Deprecated old theme item names.
    Support for these names will be removed in a future version.
    Please update the names as follows (paying particular attention to Light Grey, Dark Grey, White, Bold Italic, and the Light * variants):
    • Colors:
      • Black -> black
      • Red -> red
      • Green -> green
      • Yellow -> yellow
      • Blue -> blue
      • Magenta -> magenta
      • Cyan -> cyan
      • Light Grey -> white
      • Dark Grey -> bright_black
      • Light Red -> bright_red
      • Light Green -> bright_green
      • Light Yellow -> bright_yellow
      • Light Blue -> bright_blue
      • Light Magenta -> bright_magenta
      • Light Cyan -> bright_cyan
      • White -> bright_white
      • Foreground -> foreground
      • Background -> background
      • Cursor -> cursor
    • Fonts:
      • Regular -> regular
      • Italic -> italic
      • Bold -> bold
      • Bold Italic -> bold_italic

Removed

  • Removed support for Godot version 3.3.x. GodotXterm might still work with this
    version of Godot if compiled with the correct version of godot-cpp, but compatibility
    is no longer officially supported.

Fixed

  • #57: Screen is no longer erased on resize when using a custom theme.
  • #58: Screen is no longer erased when changing themes.

v2.1.1 - Bugfix Release

15 Aug 09:51
6e9cd13
Compare
Choose a tag to compare

Fixed

Thanks to @ConteZero for reporting and providing feedback on these issues:

  • #51: Fixed issue where terminal would lose focus on Tab/Arrow key presses
    when in a scene with other input nodes.
  • #53: Fixed issue where terminal was not updating when there was no GUI
    activity.
  • #55: Fixed unicode errors that would occur when using PTY with Terminal.
  • #56: Fixed incorrect initial size of PTY when used with Terminal.

dead bugs in a computer terminal
"Dead Bugs", generated using Midjourney, released under CC0 by @lihop.

v2.1.1-beta1

14 Aug 10:39
00609f4
Compare
Choose a tag to compare
v2.1.1-beta1 Pre-release
Pre-release

Fixed

Thanks to @ConteZero for reporting and providing feedback on these issues:

  • #51: Fixed issue where terminal would lose focus on Tab/Arrow key presses
    when in a scene with other input nodes.
  • #53: Fixed issue where terminal was not updating when there was no GUI
    activity.
  • #55: Fixed unicode errors that would occur when using PTY with Terminal.
  • #56: Fixed incorrect initial size of PTY when used with Terminal.

v2.1.0

11 Jul 00:47
3b7bdfc
Compare
Choose a tag to compare

Added

  • Support for macOS universal (x86_64/arm64) binaries. The macOS binary
    libgodot-xterm.osx.64.dylib is now a universal binary that runs natively
    on both x86_64 and arm64.

Changed

  • Linux binaries now support systems with older GLIBC versions. By building the
    binaries inside a docker container with an older GLIBC version, the minimum
    required GLIBC version is now 2.17 which was released in 2012.
  • Prevent all editor shortcuts while terminal is focused except for:
    • The shortcuts used to switch between terminal tabs (Ctrl+Page up, Ctrl+Page down).
    • Shortcuts starting with Ctrl+Shift. This includes the remaining default terminal
      panel shortcuts such as 'Copy' (Ctrl+Shift+C) and 'New Terminal' (Ctrl+Shift+T).
  • Changed target Godot version from 3.3.2-stable -> 3.4.4-stable.
  • Prevent scrollback buffer reset (i.e. scrolling to the bottom of terminal output) when
    pressing modifier keys in isolation or when copying text using the shortcut Ctrl+Shift+C.

Removed

  • Removed custom TerminalSettings Resource type.
    This Resource was not being used but would still appear in every resource dropdown.
    (Related issue godotengine/godot#24643).

Fixed

  • The kill() method of unix PTY node can now be called without error as the underlying
    pipe.close() method of the gdnative library is now registered.
  • Fixed 'Condition "!obj" is true.' error that would often print to console when
    closing terminals in the Terminal panel of the editor plugin.
  • Fixed leaked instances that would occur when PTY exited but child process was still
    running.
  • Fixed "Resumed function after yield, but class instance is gone" error that would
    sometimes occur when closing a Terminal after calling write() but before VisualServer
    had finished drawing the current frame.

v2.1.0-beta1

04 Jun 06:31
26871a0
Compare
Choose a tag to compare
v2.1.0-beta1 Pre-release
Pre-release

Added

  • Support for macOS universal (x86_64/arm64) binaries. The macOS binary
    libgodot-xterm.osx.64.dylib is now a universal binary that runs natively
    on both x86_64 and arm64.

Changed

  • Linux binaries now support systems with older GLIBC versions. By building the
    binaries inside a docker container with an older GLIBC version, the minimum
    required GLIBC version is now 2.17 which was released in 2012.
  • Prevent all editor shortcuts while terminal is focused except for:
    • The shortcuts used to switch between terminal tabs (Ctrl+Page up, Ctrl+Page down).
    • Shortcuts starting with Ctrl + Shift. This includes the remaining default terminal
      panel shortcuts such as 'Copy' (Ctrl+Shift+C) and 'New Terminal' (Ctrl+Shift+T).
  • Target Godot version from 3.3.2-stable -> 3.4.4-stable.

Removed

  • Removed custom TerminalSettings Resource type.
    This Resource was not being used but would still appear in every resource dropdown.
    Related issue godotengine/godot#24643.

Fixed

  • The kill() method of unix PTY node can now be called without error as the underlying
    pipe.close() method of the gdnative library is now registered.
  • Fixed 'Condition "!obj" is true.' error that would often print to console when
    closing terminals in the Terminal panel of the editor plugin.

v2.0.0

25 Jul 18:03
2a9ecb5
Compare
Choose a tag to compare

Added

  • Terminal editor plugin. Adds integrated terminal to Godot editor.
  • Xresources import plugin.
  • #39: Support for the bell "\u0007" character.
  • HTML5 Support.
  • #24: Support for Windows 32-bit (Terminal node only).
  • PTY node. Similar to Pseudoterminal node, but better. Uses libuv and code copied from node-pty.

Changed

  • GDNative Terminal node is now wrapped by gdscript.
  • #44: Default theme to match Godot's default theme.
  • Supported Godot version -> 3.3.2.
  • Set a default theme if no theme property has been set.
  • Changed default font from Cousine to Hack, which is the same as Godot's script editor, and reduced size from 16 to 14.
  • TPut no longer registered as a unique global class (i.e. removed class_name TPut).

Fixed

  • #40: Vim related bugs, caused by incorrectly handled control sequences.
  • Don't swap red and blue channels of theme colors.
  • Use "Light Cyan" color from theme. Previously ignored.

Removed

  • Pseudoterminal node.

v1.2.1

23 Nov 09:35
Compare
Choose a tag to compare

Changed

  • GitHub Actions workflow now produces both a release and debug zip archive.

Fixed

  • Release binary for Windows 64-bit export.

v1.2.0

21 Nov 12:47
Compare
Choose a tag to compare

Added

  • Support for macOS 64-bit including Pseudoterminal.
  • Partial support for Windows 64-bit and compiling on Windows using MSVC. Pseudoterminal not yet supported. 32-bit builds might be possible but not yet built/tested.

Changed

  • Updated build script. On Linux ./build.sh will create a debug build of the gdnative library for the current platform.
  • Removed all pre-compiled binaries using BFG Repo-Cleaner, thus re-writing git history.

Fixed

  • Fixed bug where incorrect data would sometimes be written to the terminal when passing a string to the Terminal's write() method.
  • Positioned background rect at 0,0 so it is no longer offset if a margin is added when Terminal is a child of a Container node.
  • Passed correct argv to the execvp call of Pseudoterminal. Previously argv[0] was not set to the program's name which caused the Pseudoterminal node not to work on macOS with the zsh shell.

v1.0.0

05 Oct 11:22
Compare
Choose a tag to compare

Added

  • Changelog.
  • Asciicast importer plugin. Enables the import of .cast (asciicast files v2) that can be made using the asciinema terminal session recorder. See the asciicast scene for example usage.
  • Pre-built binary for x11 platform.

Changed

  • Implementation of Terminal node from GDScript to GDNative using Aetf's patched version of libtsm.
  • Move input handling to the Terminal node itself, rather than handling it in a seperate Control node.
  • The Terminal write() method now accepts both String and PoolByteArray.