aboutsummaryrefslogtreecommitdiffstats
path: root/README.multi-tty
diff options
context:
space:
mode:
Diffstat (limited to 'README.multi-tty')
-rw-r--r--README.multi-tty77
1 files changed, 50 insertions, 27 deletions
diff --git a/README.multi-tty b/README.multi-tty
index 31e71446039..c8cd7279adf 100644
--- a/README.multi-tty
+++ b/README.multi-tty
@@ -25,19 +25,18 @@ STATUS
25------ 25------
26 26
27We can create frames on new tty devices, but there are problems with 27We can create frames on new tty devices, but there are problems with
28refresh (only the (single) selected frame is refreshed), and input is 28redisplay. Input is read from all terminals (NOT via MULTIKBOARD!).
29read only from the initial terminal. At the moment, the type of the 29At the moment, the type of the new terminals must be the same as the
30new terminals must be the same as the initial terminal. 30initial terminal. Emacsclient is extended to support opening a new
31terminal frame.
31 32
32To try it out, start up emacs, and evaluate the following: 33To try it out, start up the emacs server (M-x server-start), and then
34start emacsclient with
33 35
34 (make-terminal-frame '((tty . "/dev/pts/5") (tty-type . "xterm"))) 36 emacsclient -h
35 37
36(With your own values, of course.) If you switch to the new frame 38If you exit emacs, both terminals are restored to their previous
37with M-x other-frame, the new tty is refreshed with the frame 39states.
38contents. The result of input from the original terminal appears on
39the new. If you exit emacs, both terminals are restored to their
40previous states.
41 40
42X, Mac, Windows and DOS support is broken. 41X, Mac, Windows and DOS support is broken.
43 42
@@ -50,6 +49,8 @@ For the NEWS file:
50 specify a terminal device (`tty' parameter) and a terminal type 49 specify a terminal device (`tty' parameter) and a terminal type
51 (`tty-type' parameter) to `make-terminal-frame'. 50 (`tty-type' parameter) to `make-terminal-frame'.
52 51
52** Emacsclient has been extended to support opening a new terminal
53 frame.
53 54
54CHANGELOG 55CHANGELOG
55--------- 56---------
@@ -76,15 +77,50 @@ THINGS THAT ARE DONE
76 (Done, new frame parameters: `tty' and `tty-type'.) 77 (Done, new frame parameters: `tty' and `tty-type'.)
77 78
78 79
80-- Implement support for reading from multiple terminals.
81
82 (Done, read_avail_input tries to read from each terminal, until one
83 succeeds.)
84
85-- other-frame should cycle through the frames on the `current'
86 terminal.
87
88 (Done. A little fragile, but seems to work.)
89
90-- Support different terminal sizes.
91
92 (Done, no problem.)
93
94-- Make sure terminal resizes are handled gracefully. (Could be
95 problematic.)
96
97 (Done. We don't get SIGWINCH for additional ttys, though.)
98
99-- Extend emacsclient to automatically open a new tty when it connects
100 to Emacs.
101
102 (Done. It's an ugly hack, needs more work.)
103
104-- Redisplay must refresh the topmost frame on all terminals, not just
105 the initial terminal.
106
107 (Done, but introduced ugly redisplay problems. Ugh.)
108
109
79THINGS TO DO 110THINGS TO DO
80------------ 111------------
81 112
113** Fix redisplay problems.
114
82** Make make-terminal-frame look up the tty and tty-type parameters 115** Make make-terminal-frame look up the tty and tty-type parameters
83 from the currently selected terminal before the global default. 116 from the currently selected terminal before the global default.
84 117
85** Move optimalization parameters (costs) from union output_data to 118** Move optimalization parameters (costs) from union output_data to
86 struct frame. 119 struct frame.
87 120
121** Provide a way for emacsclient to tell Emacs that the tty has been
122 resized.
123
88** Implement terminal deletion, i.e., closing the tty device and 124** Implement terminal deletion, i.e., closing the tty device and
89 restoring its previous state without exiting Emacs. This should be 125 restoring its previous state without exiting Emacs. This should be
90 exported to the Lisp interpreter. 126 exported to the Lisp interpreter.
@@ -96,27 +132,14 @@ THINGS TO DO
96 Currently, they are still stored in global variables, so we don't 132 Currently, they are still stored in global variables, so we don't
97 really support multiple terminal types. 133 really support multiple terminal types.
98 134
99** Support different terminal sizes. (Should be solved by the
100 previous entry.)
101
102** Make sure terminal resizes are handled gracefully. (Could be
103 problematic.)
104 135
105** Implement support for reading from multiple terminals. 136** Each keypress should automatically select the frame corresponding
106 137 to the terminal that it was coming from. This means that Emacs
107** other-frame should cycle through the frames on the `current' 138 must know from which terminal the last keyboard event came from.
108 terminal. This means that Emacs must know from which terminal the 139 (Multikeyboard support may help with this.)
109 last keyboard event came from. (Multikeyboard support may help
110 with this.)
111
112** Redisplay must refresh the topmost on all terminals, not just
113 the initial terminal.
114 140
115** Make struct tty_output available from Lisp. 141** Make struct tty_output available from Lisp.
116 142
117** Extend emacsclient to automatically open a new tty when it connects
118 to Emacs.
119
120** Implement support for starting an interactive Emacs session without 143** Implement support for starting an interactive Emacs session without
121 an initial frame. (The user would connect to it and open frames 144 an initial frame. (The user would connect to it and open frames
122 later, with emacsclient.) Not necessary a good idea. 145 later, with emacsclient.) Not necessary a good idea.