| 1 | Jexer 0.3.2 Release |
| 2 | =================== |
| 3 | |
| 4 | I am pleased to announce the release of Jexer 0.3.2. This release |
| 5 | completes nearly every feature I set out to make, and is the last |
| 6 | major milestone before 1.0.0. |
| 7 | |
| 8 | Jexer is not an application itself, but rather an advanced text |
| 9 | windowing system framework to help new applications take full |
| 10 | advantage of the terminal. Its major features are: |
| 11 | |
| 12 | * MIT licensed. |
| 13 | |
| 14 | * Direct support for xterm-like terminals: mouse, keyboard, 24-bit |
| 15 | RGB color, UTF-8, fullwidth characters (CJK and emoji), and sixel |
| 16 | images. |
| 17 | |
| 18 | * A Swing-based GUI window that ships with a good-looking Terminus |
| 19 | font. |
| 20 | |
| 21 | * Sixel image support, for both input in its terminal window and |
| 22 | output to the host terminal. Jexer is (to my knowledge) the first |
| 23 | and only system capable of managing multiple terminal windows |
| 24 | displaying properly overlapping images. |
| 25 | |
| 26 | * Draggable / resizable windows, menu bar, and system-modal dialogs |
| 27 | (message/input boxes and filename picker). |
| 28 | |
| 29 | * A full complement of widgets: button, text field, checkbox, |
| 30 | combobox, list, radio button, scrollbars, data table, calendar |
| 31 | picker, progress bar, text display, and simple text editor. Plus |
| 32 | layout manager support for resizable widgets and windows. |
| 33 | |
| 34 | * A terminal window capable of passing "vttest" (including VT100 |
| 35 | double-width / double-height), and supporting all of Jexer's |
| 36 | features. Jexer can run inside itself, with full keyboard, mouse, |
| 37 | and image support. |
| 38 | |
| 39 | * Extensively documented in the code (Javadoc), a wiki, and ships |
| 40 | with a demonstration application showing off all of its available |
| 41 | widgets. |
| 42 | |
| 43 | |
| 44 | Find out more at the Jexer Sourceforge or GitLab project pages: |
| 45 | |
| 46 | * https://jexer.sourceforge.io/ |
| 47 | |
| 48 | * https://gitlab.com/klamonte/jexer |
| 49 | |
| 50 | |
| 51 | Download |
| 52 | -------- |
| 53 | |
| 54 | GitLab: git clone https://gitlab.com/klamonte/jexer.git |
| 55 | |
| 56 | Binary downloads: http://sourceforge.net/project/showfiles.php?group_id=2829121 |
| 57 | |
| 58 | On Maven: |
| 59 | |
| 60 | group: com.gitlab.klamonte |
| 61 | artifact: jexer |
| 62 | version: 0.3.2 |
| 63 | |
| 64 | |
| 65 | Ugh, Java Sucks! |
| 66 | ---------------- |
| 67 | |
| 68 | (Thor squint) But does it though? |
| 69 | |
| 70 | More seriously, I initially picked D because it was sexy. But D circa |
| 71 | 2013 brought too many headaches for me, so I switched to Java because |
| 72 | I wanted a cross-platform standard library that would be stable over |
| 73 | many years. And Java is OK, it is a solid workhorse that gets the job |
| 74 | done. |
| 75 | |
| 76 | Yet in porting my initial work to Java I stumbled upon an unexpected |
| 77 | benefit: I found ways to accomplish all of what Jexer does _without |
| 78 | calling C directly_. No termios, no ncurses, no forkpty(), and thus |
| 79 | no serious hurdles porting it to anything that can spawn programs and |
| 80 | read their output. On Linux, BSD, or OSX, all you need is 'stty' and |
| 81 | 'script' to make things work. (And if you want resizable terminal |
| 82 | windows, add 'ptypipe'.) |
| 83 | |
| 84 | So for those who want something like Jexer but in your own favorite |
| 85 | language, I encourage you to check out the [Porting |
| 86 | Jexer](https://gitlab.com/klamonte/jexer/wikis/porting) page on the |
| 87 | wiki: it has pointers to where the key features are, and a potential |
| 88 | roadmap if you wanted to take part or all of it into your own hands. |
| 89 | I licensed Jexer as MIT, stuck with simple Java 1.6, and thoroughly |
| 90 | documented it in the hope that fans of other languages could more |
| 91 | easily create or enhance their own text user interfaces. |