Skip to content

ahachmann/TerminalFX

 
 

Repository files navigation

JavaFX Terminal Emulator

1. JavaFX Terminal Emulator

TerminalFX is a terminal (PTY) emulator application written in JavaFX 12.

We use Pty4J to get VT codes from running process and hterm.js from Chromium project to interact with Pty4J. TerminalFX is using powerful JavaFX WebView component to run hterm.js.

2. Features

  • Multi OS (Mac, Win, *Nix) Support

  • Terminal Emulator (Xterm)

  • Copy and Paste Support

  • CygWin Support

  • Configurable (Color, Size, Font)

  • Multi Tab Support

3. Usage

Default Config
TerminalBuilder terminalBuilder = new TerminalBuilder();
TerminalTab terminal = terminalBuilder.newTerminal();

TabPane tabPane = new TabPane();
tabPane.getTabs().add(terminal);
images\default
Dark Config
TerminalConfig darkConfig = new TerminalConfig();
darkConfig.setBackgroundColor(Color.rgb(16, 16, 16));
darkConfig.setForegroundColor(Color.rgb(240, 240, 240));
darkConfig.setCursorColor(Color.rgb(255, 0, 0, 0.5));

TerminalBuilder terminalBuilder = new TerminalBuilder(darkConfig);
TerminalTab terminal = terminalBuilder.newTerminal();

TabPane tabPane = new TabPane();
tabPane.getTabs().add(terminal);
images\dark

4. CygWin Support

TerminalConfig cygwinConfig = new TerminalConfig();
cygwinConfig.setWindowsTerminalStarter("C:\\cygwin64\\bin\\bash -i"); (1)

TerminalBuilder terminalBuilder = new TerminalBuilder(cygwinConfig);
TerminalTab terminal = terminalBuilder.newTerminal();

TabPane tabPane = new TabPane();
tabPane.getTabs().add(terminal);
  1. Set bash in cygwin path

images\cygwin

5. Maven Dependency

<!-- Add repository -->
<repositories>
    <repository>
    <id>terminalfx-repo</id>
    <url>https://github.com/javaterminal/terminalfx/raw/master/releases</url>
    </repository>
</repositories>

<!-- Add dependency for Java 12-->
<dependency>
    <groupId>com.kodedu.terminalfx</groupId>
    <artifactId>terminalfx</artifactId>
    <version>1.1.0</version>
</dependency>

<!-- Add dependency for Java 8-->
<dependency>
    <groupId>com.kodedu.terminalfx</groupId>
    <artifactId>terminalfx</artifactId>
    <version>1.0.8</version>
</dependency>

6. Compile & Run

git clone https://github.com/rahmanusta/TerminalFX
cd TerminalFX
mvn clean install
mvn javafx:run

7. Run as Java Module (Java 12)

The following modules have to be added in JVM parameters

--add-modules=javafx.controls,javafx.graphics

8. Run command

You can run commands:

terminal.onTerminalFxReady(() -> {
    terminal.getTerminal().command("java -version\r");
});

9. Licence

This project is licensed under the MIT license. See LICENSE for more information.

About

Java FX Terminal Emulator

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Java 98.6%
  • CSS 1.4%