# TerminalFX **Repository Path**: lilongyang/TerminalFX ## Basic Information - **Project Name**: TerminalFX - **Description**: 一个简单的命令行工具 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 9 - **Forks**: 0 - **Created**: 2021-02-28 - **Last Updated**: 2025-08-27 ## Categories & Tags **Categories**: nms **Tags**: None ## README = JavaFX Terminal Emulator Rahman Usta :doctype: article :encoding: utf-8 :lang: en :toc: left :numbered: :terminalfx-version: 1.1.0 == JavaFX Terminal Emulator TerminalFX is a terminal (PTY) emulator application written in JavaFX 12. We use https://github.com/traff/pty4j[Pty4J] to get VT codes from running process and https://chromium.googlesource.com/apps/libapps/+/master/hterm/[hterm.js] from Chromium project to interact with Pty4J. TerminalFX is using powerful JavaFX WebView component to run hterm.js. == Features * Multi OS (Mac, Win, *Nix) Support * Terminal Emulator (Xterm) * Copy and Paste Support * CygWin Support * Configurable (Color, Size, Font) * Multi Tab Support == Usage .Default Config [source,java] ---- TerminalBuilder terminalBuilder = new TerminalBuilder(); TerminalTab terminal = terminalBuilder.newTerminal(); TabPane tabPane = new TabPane(); tabPane.getTabs().add(terminal); ---- image::images\default.png[] .Dark Config [source,java] ---- 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); ---- image::images\dark.png[] == CygWin Support [source,java] ---- 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 image::images\cygwin.png[] == Maven Dependency [source,xml] ---- terminalfx-repo https://github.com/javaterminal/terminalfx/raw/master/releases com.kodedu.terminalfx terminalfx 1.1.0 com.kodedu.terminalfx terminalfx 1.0.8 ---- == Compile & Run [source,bash] ---- git clone https://github.com/rahmanusta/TerminalFX cd TerminalFX mvn clean install mvn javafx:run ---- == Run as Java Module (Java 12) The following modules have to be added in JVM parameters ---- --add-modules=javafx.controls,javafx.graphics ---- == Run command You can run commands: [source,bash] ---- terminal.onTerminalFxReady(() -> { terminal.getTerminal().command("java -version\r"); }); ---- == Licence This project is licensed under the MIT license. See link:LICENSE[LICENSE] for more information.