All Projects ā†’ klamonte ā†’ Jexer

klamonte / Jexer

Licence: mit
Java Text User Interface

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Jexer

Py cui
A python library for intuitively creating CUI/TUI interfaces with widgets, inspired by gocui.
Stars: āœ­ 380 (+118.39%)
Mutual labels:  terminal-based, terminal, tui
Spotui
Spotify in the terminal šŸ’»šŸŽ¶
Stars: āœ­ 302 (+73.56%)
Mutual labels:  terminal-based, terminal, tui
Ox
An independent Rust text editor that runs in your terminal!
Stars: āœ­ 2,634 (+1413.79%)
Mutual labels:  terminal-based, terminal, tui
Ftxui
šŸ’» C++ Functional Terminal User Interface. ā¤ļø
Stars: āœ­ 433 (+148.85%)
Mutual labels:  terminal-based, terminal, tui
Neix
neix - a RSS/Atom feed reader for your terminal.
Stars: āœ­ 128 (-26.44%)
Mutual labels:  terminal, tui
Typin
Declarative framework for interactive CLI applications
Stars: āœ­ 126 (-27.59%)
Mutual labels:  terminal-based, terminal
Mandown
man-page inspired Markdown viewer
Stars: āœ­ 173 (-0.57%)
Mutual labels:  terminal, tui
Grofer
A system and resource monitoring tool written in Golang!
Stars: āœ­ 135 (-22.41%)
Mutual labels:  terminal-based, tui
Cordless
The Discord terminal client you never knew you wanted.
Stars: āœ­ 1,391 (+699.43%)
Mutual labels:  terminal, tui
Rust Battop
Interactive batteries viewer
Stars: āœ­ 133 (-23.56%)
Mutual labels:  terminal, tui
Wtf
The personal information dashboard for your terminal
Stars: āœ­ 12,973 (+7355.75%)
Mutual labels:  terminal, tui
Nnn
nĀ³ The unorthodox terminal file manager
Stars: āœ­ 13,138 (+7450.57%)
Mutual labels:  terminal, tui
Termion
Mirror of https://gitlab.redox-os.org/redox-os/termion
Stars: āœ­ 1,654 (+850.57%)
Mutual labels:  terminal, tui
Sty
String styling for your terminal.
Stars: āœ­ 129 (-25.86%)
Mutual labels:  terminal-based, terminal
Phetch
šŸ­ quick lil gopher client for your terminal
Stars: āœ­ 108 (-37.93%)
Mutual labels:  terminal, tui
Lazyhub
lazyhub - Terminal UI Client for GitHub using gocui.
Stars: āœ­ 133 (-23.56%)
Mutual labels:  terminal, tui
Vixl44
Create pixel art inside your terminal using vim movements
Stars: āœ­ 152 (-12.64%)
Mutual labels:  terminal-based, terminal
Bottom
Yet another cross-platform graphical process/system monitor.
Stars: āœ­ 3,182 (+1728.74%)
Mutual labels:  terminal, tui
Hascard
flashcard TUI with markdown cards
Stars: āœ­ 171 (-1.72%)
Mutual labels:  terminal, tui
Tui Go
A UI library for terminal applications.
Stars: āœ­ 2,015 (+1058.05%)
Mutual labels:  terminal, tui

JEXER HAS MOVED TO GITLAB

Hello GitHub users. Jexer's official home is over at GitLab: https://gitlab.com/klamonte/jexer .

Jexer - Java Text User Interface library

This library implements a text-based windowing system loosely reminiscent of Borland's Turbo Vision system. It looks like this:

Several Windows Open Including A Terminal

Jexer works on both Xterm-like terminals and Swing, and supports images in both Xterm and Swing. On Swing, images are true color:

Swing Snake Image

On Xterm, images are dithered to a common palette:

Xterm Snake Image

License

Jexer is available to all under the MIT License. See the file LICENSE for the full license text.

Obtaining Jexer

Jexer is available on Maven Central:

<dependency>
  <groupId>com.gitlab.klamonte</groupId>
  <artifactId>jexer</artifactId>
  <version>0.3.0</version>
</dependency>

Binary releases are available on SourceForge: https://sourceforge.net/projects/jexer/files/jexer/

The Jexer source code is hosted at: https://gitlab.com/klamonte/jexer

Documentation

Programming Examples

The examples/ folder currently contains:

jexer.demos contains official demos showing all of the existing UI controls. The demos can be run as follows:

  • 'java -jar jexer.jar' . This will use System.in/out with Xterm-like sequences on non-Windows non-Mac platforms. On Windows and Mac it will use a Swing JFrame.

  • 'java -Djexer.Swing=true -jar jexer.jar' . This will always use Swing on any platform.

  • 'java -cp jexer.jar jexer.demos.Demo2 PORT' (where PORT is a number to run the TCP daemon on). This will use the Xterm backend on a telnet server that will update with screen size changes.

  • 'java -cp jexer.jar jexer.demos.Demo3' . This will use System.in/out with Xterm-like sequences. One can see in the code how to pass a different InputReader and OutputReader to TApplication, permitting a different encoding than UTF-8.

  • 'java -cp jexer.jar jexer.demos.Demo4' . This demonstrates hidden windows and a custom TDesktop.

  • 'java -cp jexer.jar jexer.demos.Demo5' . This demonstrates two demo applications using different fonts in the same Swing frame.

  • 'java -cp jexer.jar jexer.demos.Demo6' . This demonstrates two applications performing I/O across three screens: an Xterm screen and Swing screen, monitored from a third Swing screen.

More Screenshots

Yo Dawg...

Sixel Pictures Of Cliffs Of Moher And Buoy

Sixel Color Wheel

Terminal Support

The table below lists terminals tested against Jexer's Xterm backend:

Terminal Environment Mouse Click Mouse Cursor Images
xterm X11 yes yes yes
lcxterm(3) CLI, Linux console yes yes no
rxvt-unicode X11 yes yes no(2)
alacritty(3) X11 yes yes no
gnome-terminal X11 yes yes no
xfce4-terminal X11 yes yes no
mlterm X11 yes yes no(5)
aminal(3) X11 yes no no
konsole X11 yes no no
yakuake X11 yes no no
screen CLI yes(1) yes(1) no(2)
tmux CLI yes(1) yes(1) no
putty X11, Windows yes no no(2)
Linux Linux console no no no(2)
qodem(3) CLI, Linux console yes yes(4) no
qodem-x11(3) X11 yes no no

1 - Requires mouse support from host terminal.

2 - Also fails to filter out sixel data, leaving garbage on screen.

3 - Latest in repository.

4 - Requires TERM=xterm-1003 before starting.

5 - Opening image crashes terminal.

See Also

  • Tranquil Java IDE is a TUI-based integrated development environment for the Java language that was built using a very lightly modified GPL version of Jexer. TJ provided a real-world use case to shake out numerous bugs and limitations of Jexer.

  • LCXterm is a curses-based terminal emulator that allows one to use Jexer with full support on the raw Linux console.

  • ptypipe is a small C utility that permits a Jexer TTerminalWindow to resize the running shell when its window is resized.

Acknowledgements

Jexer makes use of the Terminus TrueType font made available here .

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].