Additional backends can be created by subclassing
jexer.backend.Backend and passing it into the TApplication
-constructor.
+constructor. See Demo5 and Demo6 for examples of other backends.
The Jexer homepage, which includes additional information and binary
release downloads, is at: https://jexer.sourceforge.io . The Jexer
jexer.Swing.cursorStyle
-----------------------
- Used by jexer.io.SwingScreen. Selects the cursor style to draw.
- Valid values are: underline, block, outline. Default: underline.
+ Used by jexer.backend.SwingTerminal. Selects the cursor style to
+ draw. Valid values are: underline, block, outline. Default:
+ underline.
jexer.Swing.tripleBuffer
------------------------
- Used by jexer.io.SwingScreen. If true, use triple-buffering which
- reduces screen tearing but may also be slower to draw on slower
- systems. If false, use naive Swing thread drawing, which may be
- faster on slower systems but also more likely to have screen
+ Used by jexer.backend.SwingTerminal. If true, use triple-buffering
+ which reduces screen tearing but may also be slower to draw on
+ slower systems. If false, use naive Swing thread drawing, which may
+ be faster on slower systems but also more likely to have screen
tearing. Default: true.
+ jexer.TTerminal.ptypipe
+ -----------------------
+
+ Used by jexer.TTerminalWindow. If true, spawn shell using the
+ 'ptypipe' utility rather than 'script'. This permits terminals to
+ resize with the window. ptypipe is a separate C language utility,
+ available at https://github.com/klamonte/ptypipe. Default: false.
+
Known Issues / Arbitrary Decisions
input (see the ENABLE_LINE_INPUT flag for GetConsoleMode() and
SetConsoleMode()).
- - TTerminalWindow launches 'script -fqe /dev/null' or 'script -q -F
- /dev/null' on non-Windows platforms. This is a workaround for the
- C library behavior of checking for a tty: script launches $SHELL
- in a pseudo-tty. This works on Linux and Mac but might not on
- other Posix-y platforms.
+ - TTerminalWindow by default launches 'script -fqe /dev/null' or
+ 'script -q -F /dev/null' on non-Windows platforms. This is a
+ workaround for the C library behavior of checking for a tty:
+ script launches $SHELL in a pseudo-tty. This works on Linux and
+ Mac but might not on other Posix-y platforms.
- Closing a TTerminalWindow without exiting the process inside it
may result in a zombie 'script' process.
+ - TTerminalWindow can only notify the child process of changes in
+ window size if using the 'ptypipe' utility, due to Java's lack of
+ support for forkpty() and similar. ptypipe is available at
+ https://github.com/klamonte/ptypipe.
+
- Java's InputStreamReader as used by the ECMA48 backend requires a
valid UTF-8 stream. The default X10 encoding for mouse
coordinates outside (160,94) can corrupt that stream, at best
check the current window size, performing the same function as
ioctl(TIOCGWINSZ) but without requiring a native library.
- - jexer.io.ECMA48Terminal calls 'stty' to perform the equivalent of
- cfmakeraw() when using System.in/out. System.out is also
- (blindly!) put in 'stty sane cooked' mode when exiting.
+ - jexer.backend.ECMA48Terminal calls 'stty' to perform the
+ equivalent of cfmakeraw() when using System.in/out. System.out is
+ also (blindly!) put in 'stty sane cooked' mode when exiting.