/jediterm

Pure Java Terminal Emulator. Works with SSH and PTY.

Primary LanguageJavaGNU Lesser General Public License v3.0LGPL-3.0

JediTerm

official JetBrains project

Build Status

The main purpose of the project is to provide a pure Java terminal widget that can be easily embedded into an IDE. It supports terminal sessions both for SSH connections and local PTY on Mac OSX, Linux and Windows.

The library is used by JetBrains IDEs like PyCharm, IDEA, PhpStorm, WebStorm, AppCode, CLion, and Rider.

Since version 2.5 there is a standalone version of the JediTerm terminal, provided as Mac OSX distribution.

The name JediTerm origins from J(from Java) + edi(reversed IDE) + Term(obviously from terminal). Also the word Jedi itself gives some confidence and hope in the Universe of thousands of different terminal implementations.

Run

To run the standalone JediTerm terminal from sources just execute jediterm.sh or jediterm.bat. Or use the binary distribution from the Releases page.

Build

Gradle is used to build this project. The project consists of 4 sub-projects:

  • terminal

    The core library that provides VT100 compatible terminal emulator and Java Swing based implementation of terminal panel UI.

  • pty

    The jediterm-pty.jar library that, by using the Pty4J library, enables a terminal for local PTY terminal sessions.

  • JediTerm

    The standalone version of the JediTerm terminal distributed as a .dmg for Mac OSX.

Features

  • Local terminal for Unix, Mac and Windows using Pty4J
  • Xterm emulation - passes most of tests from vttest
  • Xterm 256 colours
  • Scrolling
  • Copy/Paste
  • Mouse support
  • Terminal resizing from client or server side
  • Terminal tabs

Authors

Dmitry Trofimov dmitry.trofimov@jetbrains.com, Clément Poulain

Links

Open Source Origin and History

The initial version of the JediTerm was a reworked terminal emulator Gritty, which was in it's own turn a reworked JCTerm terminal implementation. Now there is nothing in the source code left from Gritty and JCTerm. Everything was rewritten from scratch. A lot of new features were added.

Character sets designation and mapping implementation is based on respective classes from jVT220 (https://github.com/jawi/jVT220, Apache 2.0 licensed) by J.W. Janssen.

Standalone distribution relies heavily on customized Swing UI widgets taken from IntelliJ Community platform repository (https://github.com/JetBrains/intellij-community) by JetBrains.

Licenses

JediTerm is dual-licensed under both the LGPLv3 (found in the LICENSE-LGPLv3.txt file in the root directory) and Apache 2.0 License (found in the LICENSE-APACHE-2.0.txt file in the root directory). You may select, at your option, one of the above-listed licenses.