Updating_frame vs. selected_frame in term.c.
[bpt/emacs.git] / README.multi-tty
CommitLineData
28d440ab
KL
1 -*- coding: utf-8; -*-
2GOAL
3----
4
5The ultimate goal of this branch is to implement support for opening
6multiple, different tty devices and simultaneous X and tty frames from
7a single Emacs session.
8
9WHO IS DOING IT
10---------------
11
12I'm Károly Lőrentey. My address: lorentey@elte.hu.
13
14Patches or suggestions are welcome!
15
16
17STATUS
18------
19
20We can create frames on new tty devices, but there are problems with
21refresh (only the (single) selected frame is refreshed), and input is
22read only from the initial terminal. At the moment, the type of the
23new terminals must be the same as the initial terminal.
24
25To try it out, start up emacs, and evaluate the following:
26
27 (make-terminal-frame '((tty . "/dev/pts/5") (tty-type . "xterm")))
28
29(With your own values, of course.) If you switch to the new frame
30with M-x other-frame, the new tty is refreshed with the frame
31contents. The result of input from the original terminal appears on
32the new. If you exit emacs, both terminals are restored to their
33previous states.
34
35X, Mac, Windows and DOS support is broken.
36
37NEWS
38----
39
40For the NEWS file:
41
42** Support for multiple terminal devices has been added. You can
43 specify a terminal device (`tty' parameter) and a terminal type
44 (`tty-type' parameter) to `make-terminal-frame'.
45
46
47CHANGELOG
48---------
49
50See arch logs.
51
52
53THINGS THAT ARE DONE
54--------------------
55
56-- Introduce a new abstraction for terminal devices.
57
58 (Done, see struct tty_output. The abstraction is not yet
59 complete.)
60
61
62-- Change the bootstrap procedure to initialize tty_list.
63
64 (Done, but needs review.)
65
66
67-- Change make-terminal-frame to support specifying another tty.
68
69 (Done, new frame parameters: `tty' and `tty-type'.)
70
71
72THINGS TO DO
73------------
74
75** Make make-terminal-frame look up the tty and tty-type parameters
76 from the currently selected terminal before the global default.
77
78** Move optimalization parameters (costs) from union output_data to
79 struct frame.
80
81** Implement terminal deletion, i.e., closing the tty device and
82 restoring its previous state without exiting Emacs. This should be
83 exported to the Lisp interpreter.
84
85** Implement automatic deletion of terminals, when the last frame on
86 that terminal is closed.
87
88** Put all cached terminal escape sequences into struct tty_output.
89 Currently, they are still stored in global variables, so we don't
90 really support multiple terminal types.
91
92** Support different terminal sizes. (Should be solved by the
93 previous entry.)
94
95** Make sure terminal resizes are handled gracefully. (Could be
96 problematic.)
97
98** Implement support for reading from multiple terminals.
99
100** other-frame should cycle through the frames on the `current'
101 terminal. This means that Emacs must know from which terminal the
102 last keyboard event came from. (Multikeyboard support may help
103 with this.)
104
105** Redisplay must refresh the topmost on all terminals, not just
106 the initial terminal.
107
108** Make struct tty_output available from Lisp.
109
110** Extend emacsclient to automatically open a new tty when it connects
111 to Emacs.
112
113** Implement support for starting an interactive Emacs session without
114 an initial frame. (The user would connect to it and open frames
115 later, with emacsclient.) Not necessary a good idea.
116
117** Fix X support.
118
119** Allow simultaneous X and tty frames.
120
121** Fix Mac support (I can't do this myself).
122
123** Fix W32 support (I can't do this myself).
124
125** Fix DOS support (I can't do this myself).
126
127
128
129;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d