diff options
Diffstat (limited to 'README.adoc')
-rw-r--r-- | README.adoc | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/README.adoc b/README.adoc new file mode 100644 index 0000000..ce63059 --- /dev/null +++ b/README.adoc @@ -0,0 +1,72 @@ +termo +===== + +`termo' is a library providing an alternative to ncurses' handling of terminal +input. ncurses does a really terrible job at that, mainly wrt. mouse support +which seems to be utterly broken. If you can drag things in a terminal +application, such as in VIM, I can assure you it's not using ncurses for that. + +Since terminal I/O is really complicated and full of special cases, this project +doesn't aspire to also replace the output part of ncurses, but is rather +complementary to it. In the end it makes use of its terminfo library. + +The API isn't stable yet. Tell me what needs to be done so I can fix it first. + +Building and Installing +----------------------- +Build dependencies: cmake >= 2.8.5, pkg-config + +Optional dependencies: Unibilium (alternative for curses), GLib (for the demos) + + $ git clone https://github.com/pjanouch/termo.git + $ mkdir termo/build + $ cd termo/build + $ cmake .. -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Debug + +To install the library, you can do either the usual: + + # make install + +Or you can try telling CMake to make a package for you. For Debian it is: + + $ cpack -G DEB + # dpkg -i termo-*.deb + +To see the library in action, you can try running the demos, which are +statically linked against the library, and hence they can be run as they are: + + $ make demos + +What's Different From the Original termkey? +------------------------------------------- +The main change is throwing away any UTF-8 dependent code, making the library +capable of handling all unibyte and multibyte encodings supported by iconv on +your system. The characters are still presented as Unicode in the end, however, +as the other sensible option is wchar_t and that doesn't really work well, see +http://gnu.org/software/libunistring/manual/libunistring.html#The-wchar_005ft-mess + +To make the mouse parsing support actually useful, some API has been added to +set the proper modes on request, and unset them appropriately while destroying. +You can have a look at 'demo-draw.c' for an example. + +Another change worth mentioning is the usage of CMake instead of the problematic +libtool-based Makefile. Now you can include this project in your other +CMake-based projects and simply import the target. No package maintainer action +is needed for you to enjoy the benefits of proper terminal input. + +The rest is just me going silly over formatting and various unimportant stuff. +Oh, and I've deleted the manpages. It needs more Doxygen. :) TBD + +Contributing and Support +------------------------ +Use this project's GitHub to report any bugs, request features, or submit pull +requests. If you want to discuss this project, or maybe just hang out with +the developer, feel free to join me at irc://anathema.irc.so, channel #anathema. + +License +------- +'termo' is based on the 'termkey' library, originally written by Paul Evans +<leonerd@leonerd.org.uk>, with additional changes made by Přemysl Janouch +<p.janouch@gmail.com>. + +You may use the software under the terms of the MIT license, the text of which +is included within the package, see the file LICENSE. |