Giter Club home page Giter Club logo

jeditermfx's Introduction

JediTermFX

Overview

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.

Demo

JediTermFX demo

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.

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/PavelKastornyy/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.

Using Distro

After building the project, you will find a distribution archive named jeditermfx-version-app.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-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.

Feedback

Any feedback is welcome. Besides, it would be interesting to know for what cases this project is used. It will help to understand the way the project should go and provide more information in documentation.

jeditermfx's People

Contributors

pavelkastornyy avatar pavelturk avatar stefman87 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.