tt-color: color x-terminal for unix and cygwin
Last updated on 20 September 2005.
Copyright © 2005 Alberto Ribeiro
tt-color is a color terminal emulator for Xwindows and Windows/Cygwin with scripting
support on menus. Based on Tcl/Tk, runs with native interface on each system. This
version is just a prototype and never will be declared stable, but it is usable to
execute a logon shell on Linux. On Cygwin, I use just to run the c3270 terminal emulator
(see BUGs sections) because I need to close the window when running a shell.
I start this project because rxvt on Cygwin has broken menus, and I need to add some
buttons for users using c3270. Searching for alternatives, I find the
tkterm source from
Et project. This code was the start point
for this application.
The main features of this terminal are the small size (33 kbytes on Linux) and the facility to add
menus and speedbars on the terminal. The code is small, needs only Tcl libraries to compile,
and install the terminal specific procedures as a Tcl package.
tt-color code is released under BSD license,
but the menu icons comes from redhat-artwork, released under GNU license. This icons are needed only for
the mainframe menu, a helper for c3270 application.
Installation and execution
This program was tested on Linux Fedora Core 4 and Windows XP. To be able to run the program you need
tcl, tk and tcllib installed. At the
download area you can find the sources (tarball and src.rpm) and the binaries rpm for redhat FC4.
This distribution has the 3 packages needed to run the application on CD or repositories. On Cygwin, you
need to install tcl/tk libraries (Libs section) and choice to install from sources tcllib or no install
tcllib and download the tt-color version with the packages needed from tcllib (tt-color+cmdline-cygwin.tgz).
To run the terminal, you just need to invoke the tt command. It uses cmdline library, so you
can use -? or -help to see the options. The
screenhots were invoked with -sb on Linux and -mb mainframe -T Mainframe -dr
-e "c3270 mainframe_hostname" on windows XP.
On Cygwin, after the process controled by the terminal exits, the terminal needs to be killed
or the main window closed. If the user tries to use the terminal after the child process finish,
the application will hang. On Cygwin environment, the signal routines are not working. The child
process is sending the signal, but the parent process is refusing to accept.
TODO for version 2.0
Until next tcl version becomes stable, I'm not going to renew the source code. Only bugfixs may be added.
When Tcl/tk 8.5 becomes stable I will start the alpha version of the new code on CVS. The new files for
download will be available when the ports for cygwin exists.
Tcl/tk 8.5 features interesting for tt-color:
Other things to start with the new version:
- text option -blockcursor 1
- text comand replace
- news on C level API
- anti-aliased fonts
- tile extension (scrollbar)
- more documentation, create man page, improve code readability
- i18n : msgcat on menus, translated man pages
- On Tcl code, create a namespace (ex:tt), on C code, create a terminal structure
and send most global variables to this structure. This will permit to create
multiple instances of terminal components
- use command names similar to expect/tkterm:
- tt::init create component
- tt::spwan instead TerminalRun
- tt::send instead Paste
- new comands for debug / automation:
- tt::snapshot (-html ?)
- new default colors and create cursor color attribute
- Answer to deveice status report ([#n). This allow programs like wsize works