view README.multi-tty @ 53230:dfd82236be81

Removed two files that were committed by mistake. git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-6
author Karoly Lorentey <lorentey@elte.hu>
date Fri, 26 Dec 2003 04:26:21 +0000
parents 33c3c7c16e13
children 22aaf1e5fbe6
line wrap: on
line source

			-*- coding: utf-8; -*-
GOAL
----

The ultimate goal of this branch is to implement support for opening
multiple, different tty devices and simultaneous X and tty frames from
a single Emacs session.

WHO IS DOING IT
---------------

I'm Károly Lőrentey.  My address: lorentey@elte.hu.

Patches or suggestions are welcome!

Retrieving the branch:

	tla register-archive lorentey@elte.hu--2004 http://lorentey.web.elte.hu/arch/2004/
	tla get lorentey@elte.hu--2004/emacs--multi-tty--0 <directory>

(I use tla 1.1.)


STATUS
------

We can create frames on new tty devices, but there are problems with
redisplay.  Input is read from all terminals (NOT via MULTIKBOARD!).
At the moment, the type of the new terminals must be the same as the
initial terminal.  Emacsclient is extended to support opening a new
terminal frame.

To try it out, start up the emacs server (M-x server-start), and then
start emacsclient with

	emacsclient -h

If you exit emacs, both terminals are restored to their previous
states.

X, Mac, Windows and DOS support is broken.

NEWS
----

For the NEWS file:

** Support for multiple terminal devices has been added.  You can
   specify a terminal device (`tty' parameter) and a terminal type
   (`tty-type' parameter) to `make-terminal-frame'.

** Emacsclient has been extended to support opening a new terminal
   frame.

CHANGELOG
---------

See arch logs.


THINGS THAT ARE DONE
--------------------

-- Introduce a new abstraction for terminal devices.  

   (Done, see struct tty_output.  The abstraction is not yet
   complete.)


-- Change the bootstrap procedure to initialize tty_list.

   (Done, but needs review.)


-- Change make-terminal-frame to support specifying another tty.

   (Done, new frame parameters: `tty' and `tty-type'.)


-- Implement support for reading from multiple terminals.

   (Done, read_avail_input tries to read from each terminal, until one
   succeeds.)

-- other-frame should cycle through the frames on the `current'
   terminal.  

   (Done.  A little fragile, but seems to work.)

-- Support different terminal sizes.
   
   (Done, no problem.)

-- Make sure terminal resizes are handled gracefully.  (Could be
   problematic.)

   (Done.  We don't get SIGWINCH for additional ttys, though.)

-- Extend emacsclient to automatically open a new tty when it connects
   to Emacs.
   
   (Done.  It's an ugly hack, needs more work.)

-- Redisplay must refresh the topmost frame on all terminals, not just
   the initial terminal.
   
   (Done, but introduced ugly redisplay problems.  Ugh.)


THINGS TO DO
------------

** Fix redisplay problems.

** Make make-terminal-frame look up the tty and tty-type parameters
   from the currently selected terminal before the global default.

** Move optimalization parameters (costs) from union output_data to
   struct frame.

** Provide a way for emacsclient to tell Emacs that the tty has been
   resized.

** Implement terminal deletion, i.e., closing the tty device and
   restoring its previous state without exiting Emacs.  This should be
   exported to the Lisp interpreter.

** Implement automatic deletion of terminals, when the last frame on
   that terminal is closed.

** Put all cached terminal escape sequences into struct tty_output.
   Currently, they are still stored in global variables, so we don't
   really support multiple terminal types.


** Each keypress should automatically select the frame corresponding
   to the terminal that it was coming from.  This means that Emacs
   must know from which terminal the last keyboard event came from.
   (Multikeyboard support may help with this.)

** Make struct tty_output available from Lisp.

** Implement support for starting an interactive Emacs session without
   an initial frame.  (The user would connect to it and open frames
   later, with emacsclient.)  Not necessary a good idea.

** Fix X support.

** Allow simultaneous X and tty frames.

** Fix Mac support (I can't do this myself).

** Fix W32 support (I can't do this myself).

** Fix DOS support (I can't do this myself).



;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d