fix table
[nikiroo-utils.git] / README.md
index 44759cf611dac7e8ae051f08ff7162f83a772130..5e8204c0da49b8f4b916dad02dbfc71e42f18d08 100644 (file)
--- a/README.md
+++ b/README.md
@@ -48,6 +48,20 @@ This project is licensed under the MIT License.  See the file LICENSE
 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
 ----------------
@@ -79,13 +93,9 @@ class MyApplication extends TApplication {
         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();
     }
 }
 ```
@@ -127,9 +137,23 @@ it and you'll see an application like this:
 
 ![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
@@ -154,9 +178,9 @@ follows:
   * '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.
 
 
 
@@ -172,6 +196,40 @@ More Screenshots
 ![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(3)     | 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)   | X11                | 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
 -----------------
@@ -305,3 +363,57 @@ 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.
+
+
+
+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.