for the full license text.
+Maven
+-----
+
+Jexer is available on Maven Central:
+
+```xml
+<dependency>
+ <groupId>com.gitlab.klamonte</groupId>
+ <artifactId>jexer</artifactId>
+ <version>0.3.0</version>
+</dependency>
+```
+
+
Acknowledgements
----------------
new MyWindow(this);
}
- public static void main(String [] args) {
- try {
- MyApplication app = new MyApplication();
- (new Thread(app)).start();
- } catch (Throwable t) {
- t.printStackTrace();
- }
+ public static void main(String [] args) throws Exception {
+ MyApplication app = new MyApplication();
+ (new Thread(app)).start();
}
}
```
![The Example Code Above](/screenshots/readme_application.png?raw=true "The application in the text of README.md")
-See the files in jexer.demos for many more detailed examples showing
-all of the existing UI controls. The available demos can be run as
-follows:
+
+
+More Examples
+-------------
+
+The examples/ folder currently contains:
+
+ * A [prototype tiling window
+ manager](/examples/JexerTilingWindowManager.java) in less than 250
+ lines of code.
+
+ * A [prototype image thumbnail
+ viewer](/examples/JexerImageViewer.java) in less than 350 lines of
+ code.
+
+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
* '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 one
- application performing I/O to two screens: an xterm screen and a
- Swing screen.
+ * '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.
![Sixel Color Wheel](/screenshots/sixel_color_wheel.png?raw=true "Sixel Color Wheel")
+Terminal Support
+----------------
+
+The table below lists terminals tested against Jexer's ECMA48/Xterm
+backend.
+
+| Terminal | Environment | Mouse Click | Mouse Cursor | Images |
+| -------------- | ------------------ | ----------- | ------------ | ------ |
+| xterm | X11 | yes | yes | yes |
+| lcxterm | CLI, Linux console | yes | yes | no |
+| rxvt-unicode | X11 | yes | yes | no |
+| alacritty(3) | X11 | yes | yes | no |
+| gnome-terminal | X11 | yes | yes | no |
+| xfce4-terminal | X11 | yes | yes | no |
+| aminal(3) | X11 | yes | no | no |
+| konsole | X11 | yes | no | no |
+| yakuake | X11 | yes | no | no |
+| screen | CLI | no(1) | no | no(2) |
+| tmux | CLI | no(1) | no | 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) | CLI | yes | no | no |
+
+1 - Passes mouse to its host console, so will support mouse if the
+host console does.
+
+2 - Also fails to filter out sixel data, leaving garbage on screen.
+
+3 - Latest in repository.
+
+4 - Requires TERM=xterm-1003 before starting.
+
+
System Properties
-----------------
syntax or at least regexp highlighting (not just keywords), paren
matching, paragraph/comment reflow, and dozens more. The
underlying Document/Line/Word model is not going to be sufficient
- to meet these features. It would be up to you if you wish to
- retrofit any improvements you make to the MIT version of Jexer.
+ to meet these features.
* Better Windows and OSX support. It would be nice to ship a
jlink'ed JVM on these platforms with the JRE, JDK, and JPDA
consider doing any of the following: ship a third-party terminal,
use PowerShell, or use the newer ConPTY for TTerminalWindow.
- * Project window awareness for modules. Currently the project
- window knows only simple file paths (where it assumes paths are
- subpackages) and jars. It would be nice to also have module
- awareness here, since modules are the future for Java.
-
- * Bug fixes. The (G)Jexer codebase is quite large despite my best
+ * Bug fixes. The Jexer codebase is quite large despite my best
efforts. Bugs are typically very small to fix, but can take some
time to find: a simple NPE or AssertionError can sometimes take
4-8 hours to squash. Fortunately, fixing issues in one place has
not often led to breakages elsewhere.
- * Plugin support. TJIDE is the first truly new TUI-based IDE to
- emerge in quite some time. It was deliberately built to resemble
- IDEs used to teach computer science courses for decades, and it is
- hoped that instructors will be able to use it soon. A plugin
- system to define new kinds of targets, editors, and debuggers
- would go a long way to using TJIDE for other languages.
-
- * New (G)Jexer applications. So far as I know, (G)Jexer is the only
+ * New Jexer applications. So far as I know, Jexer is the only
mouse-supporting full TUI windowing framework with sixel image
support in existence. I cannot predict what kinds of applications
could be built out of it, and how those needs will push back to
These are what I can clearly see right now. Obviously users are
capable of finding many more.
-I intend to continue poking on TJIDE and Jexer, and will maintain a
+I intend to continue poking on Jexer and TJIDE, and will maintain a
branch to be "the fastest and simplest Java language IDE available",
which will deliberately remain small.
-I hope that other languages choose to transliterate MIT Jexer to
-provide TUIs to their own platforms. I will be happy to help them
-understand the code to support those efforts.
+I hope that other languages choose to transliterate Jexer to provide
+TUIs to their own platforms. I will be happy to help them understand
+the code to support those efforts.