[Accessibility] console, back-compatibe to terminal emulator, but with an advanced mode of full keyboard support and high level commands (looking for a mentor at GSoC)

Alexey Bashtanov bashtanov at imap.cc
Fri Mar 28 07:33:57 PDT 2008


I'm going to write a new text-mode IO system, backwords-compatible to a
terminal emulator.
Let me describe the problem this application is going to solve.

Today there is a lot of different terminal emulators now, they have
menus and support styled 
semi-transparent background, but they don't suppord keyboard input
fully. Console applications
get the information about keys pressed or released in a form of
ESCAPE-sequences. So it's
hard to write a console application, which hears a separate ESC pressed
(timeouts are used),
and console app, detecting all presses and releases, is impossible (or
possible usings bad hacks).
That's why many curses applications use an ESC-ESC, that's why the text
editors and shells do not
support text blocks selecting with shift+arrows and word selections with
ctrl+shift+arrows and so on.
There are lots of (pseudo-)teminal types, some of them support more
(e.g. http://sourceforge.net/projects/kbterm/), some of them support
but none of them support the keyboard fully, like X window. 
An examlple of an excellent thing that could be ported to Linux if
terminal emulators
supported keyaboard is Windows FAR manager (smth like midnight

You may retort: console is an ancient way of interaction between user an
But don't you use grep or bash or mc? Don't you use SSH to connect to a
remote host?
My position is that such a system is needed, it must be
backword-compatible, e.g. have a 
terminal emulator mode, to support old programs (commonly used shells
and utilities),
but the advanced IO mode should be completely new (unlike the abortive
kbterm and its analogs).
It won't be as monstrous as XKB, I think, more likely somethink like
earlier X Window methods.

My plan is:
1. to develop a standard and a library of interaction of console
programs and a text-mode IO system.
2. to write an X program, based on x terminal emulator (xterm or wterm
or rxvt), that implements it
3. to write a bash (or another shell) fork with a full keyboard support.
That means that the
input field will support as many hotkeys as GUI text input elements do,
it will support blocks and 
work with X clipboard. Of courtse tab completion, ctrl+w and so on will
not be forgiven.

If I live a long life I'll also:
4. write a new non-X console (new getty)
5. write a new ssh client/server
6. port all the ncurses applications (less, top, aptitude ...) to new
7. save the world :)

I'm sorry for the long letter and for my poor English,
I have a favour to ask of you:

1). To help me with the ideas. I beleive this problem is interesting for
you and
you can prevent me from unhappy conceptions, especially at the stage of
IO protocol development.
2) To be my mentor at Google Summer of Code.
It's a program for open source developers, moslty for students, and The
Linux Foundation
is mentioned as a mentors organization there. I'm sorry I'm almost late:
Google's deadline for
students to apply is 31st of March (mon).

 Alexey Bashtanov

http://www.fastmail.fm - A fast, anti-spam email service.

More information about the Accessibility mailing list