naTE - not another Terminal Emulator

Still in it's infancy and not yet ready for prime time, naTE is a tool I'm writing for my admin stuff. When its ready, I'll be releasing it as open source.

Like many admins, I SSH into multiple servers. So I wanted a tool to:

There are number of open source tools that come pretty close to what I want. But no cigar. So off to the workshop I go.

Here's a look at the first prototype:

Not bad. Not REAL bad.

While most Linux terminal emulators use libvte, I chose to use wxWidgets to be cross-platform. The terminal area used a wxTextCtrl. But it was just a little to slow for my tastes. (Now I don't have very fast tastes, but under 100 glyphs/sec doesn't pass the acceptable test. Especially when 'cat'ing a log file.) After searching the Net and reading others requests, I decided to create a Terminal Control from scratch and if it's good enough, it might be accepted as wxTermCtrl. But I get ahead of myself.

The Base

The base class for wxTermCtrl is wxScrolledWindow. It contains a wxPanel upon which the glyphs are drawn and from which keyboard input is received.

wxTermCtrl interfaces to a custom TermCtrl Class and it's custom subordinate TermBuf Class. TermBuf uses a single UTF-8 encoded std::string for it's actual buffer (easy for searching.) Then additional sparse std::vector arrays contain formatting and attribute information for the buffer (easy for reformatting.) So far it's Unicode Level 1 and some Level 2. The speed is better and hopefully will remain acceptable as features are added. (Right now a single window displays about 4 million glyphs/sec, but I expect that to drop.)

... more to come as it progresses ...

Back to Top

© 2012 and beyond Lawrence L Hovind - All Rights Reserved