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.
 
 
+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        | 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
 -----------------
@@ -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
-    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
@@ -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.
 
-  * 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
@@ -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.
 
-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.