Techsenger JediTermFX
October 18, 2025 · View on GitHub
Techsenger JediTermFX is a Terminal Emulator for JavaFX. The project is a result of porting JediTerm (commit 8366f2b) from Swing to JavaFX. JediTermFX exclusively utilizes JavaFX components. Therefore, the Terminal Emulator based on this library can be seamlessly integrated into any JavaFX application. A detailed comparison of terminal libraries is provided below.
Table of Contents
- Demo
- Features
- Terminal Comparison
- Usage
- Code building
- Running the Application
- License
- Contributing
- Support Us
Demo
Htop
Tig
MC
Maven
Bastet
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
Terminal Comparison
| Terminal | JediTermFX | JediTerm | TerminalFX |
|---|---|---|---|
| GUI Library | JavaFX | Swing | JavaFX |
| Main Component | Canvas | JComponent | WebView |
| Languages | Java | Java, Kotlin | Java, JS |
| JPMS Support | Yes | No | Yes |
Usage
It is recommended to start working with JediTermFX by studying and running the BasicTerminalShellExample class. This class contains the minimal code needed to launch a terminal in a JavaFX application.
Dependencies
This project is available on Maven Central:
<dependency>
<groupId>com.techsenger.jeditermfx</groupId>
<artifactId>jeditermfx-core</artifactId>
<version>${jeditermfx.version}</version>
</dependency>
<dependency>
<groupId>com.techsenger.jeditermfx</groupId>
<artifactId>jeditermfx-ui</artifactId>
<version>${jeditermfx.version}</version>
</dependency>
Dark Theme
If you need a dark theme, you should override the getDefaultForeground() and getDefaultBackground() methods in
UserSettingsProvider. To run the demo application in dark theme see Using Maven.
Hyperlinks
JediTermFX provides a wide range of features when working with links. The HighlightMode enumeration specifies multiple
modes of working with links and their colors. In the ALWAYS modes, links are always underlined and always clickable.
In the NEVER modes, links are never underlined and never clickable. In the HOVER modes, links become underlined and
clickable only when hovered over. Now let's clarify the difference between the two types of colors. CUSTOM colors
are those set by the JediTermFX user in the getHyperlinkColor() method of the settings. ORIGINAL colors are those
offered by the program running in the terminal. Thus, links can use either custom colors or the original text colors.
Code Building
To build the library use standard Git and Maven commands:
git clone https://github.com/techsenger/jeditermfx
cd jeditermfx
mvn clean install
Running the Application
The project contains a demo application that shows how to use this library. There are two ways to run the application.
Using Maven
To run application using maven plugin execute the following commands in the root of the project:
cd jeditermfx-app
mvn javafx:run
Please note, that debugger settings are in jeditermfx-app/pom.xml file. If you want to try a dark theme,
uncomment the following line in the JavaFX plugin configuration in the pom.xml file:
<!--<commandlineArgs>theme=dark</commandlineArgs>-->
This will make JediTermFX use the DarkThemeSettingsProvider.
Using Distro
After building the project, you will find a distribution archive named jeditermfx-app-<version>.tar in the
jeditermfx-app/target directory. Extracting this file will allow you to launch the application
using .sh or .bat scripts depending on your operating system.
License
JediTermFX is dual-licensed under both the LGPLv3 (found in the LICENSE-LGPL-3.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.
Contributing
We welcome all contributions. You can help by reporting bugs, suggesting improvements, or submitting pull requests with fixes and new features. If you have any questions, feel free to reach out — we’ll be happy to assist you.
Support Us
You can support our open-source work through GitHub Sponsors. Your contribution helps us maintain projects, develop new features, and provide ongoing improvements. Multiple sponsorship tiers are available, each offering different levels of recognition and benefits.