Commit | Line | Data |
---|---|---|
5c431342 KL |
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. |