Add terminal support table
[nikiroo-utils.git] / README.md
index db12ef6f58d44c8a5d77f1430c11f8ed2325e96c..60b666a211fb97c48fb799b8406b43921b3d7580 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.
 
 
 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
 ----------------
 
 Acknowledgements
 ----------------
@@ -79,13 +93,9 @@ class MyApplication extends TApplication {
         new MyWindow(this);
     }
 
         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")
 
 
 ![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 -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.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")
 
 
 ![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
 -----------------
 
 System Properties
 -----------------
@@ -329,8 +387,7 @@ Some of the areas that will likely require significant efforts are:
     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
     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
 
   * Better Windows and OSX support.  It would be nice to ship a
     jlink'ed JVM on these platforms with the JRE, JDK, and JPDA
@@ -338,25 +395,13 @@ Some of the areas that will likely require significant efforts are:
     consider doing any of the following: ship a third-party terminal,
     use PowerShell, or use the newer ConPTY for TTerminalWindow.
 
     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.
 
     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
     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
@@ -365,10 +410,10 @@ Some of the areas that will likely require significant efforts are:
 These are what I can clearly see right now.  Obviously users are
 capable of finding many more.
 
 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.
 
 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.