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.
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.
+
+
+
+Maintainers Wanted
+------------------
+
+Both Jexer and TJIDE are seeking additional maintainers. I am not in
+a position in life to take on significant off-hours programming work,
+and am willing to hand these projects over to one or more persons with
+time and interest.
+
+My personal code design philosophy for TJIDE/Jexer is outlined at
+https://gitlab.com/klamonte/tjide/blob/master/java/docs/code_design.txt
+. I realize that some of the features listed below may require
+deviations from this philosophy, but this is what I have built so far.
+
+Some of the areas that will likely require significant efforts are:
+
+ * Editor improvements. The editor is currently very minimalistic,
+ much closer to MS-DOS edit.com than a real programmer's editor.
+ Users will probably desire many more features: drag-and-drop, real
+ 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.
+
+ * Better Windows and OSX support. It would be nice to ship a
+ jlink'ed JVM on these platforms with the JRE, JDK, and JPDA
+ modules all together. For Windows, it might be preferable to
+ consider doing any of the following: ship a third-party terminal,
+ use PowerShell, or use the newer ConPTY for TTerminalWindow.
+
+ * 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.
+
+ * 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
+ the framework.
+
+These are what I can clearly see right now. Obviously users are
+capable of finding many more.
+
+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 Jexer to provide
+TUIs to their own platforms. I will be happy to help them understand
+the code to support those efforts.