Commit | Line | Data |
---|---|---|
28d440ab KL |
1 | -*- coding: utf-8; -*- |
2 | GOAL | |
3 | ---- | |
4 | ||
5 | The ultimate goal of this branch is to implement support for opening | |
6 | multiple, different tty devices and simultaneous X and tty frames from | |
7 | a single Emacs session. | |
8 | ||
9 | WHO IS DOING IT | |
10 | --------------- | |
11 | ||
12 | I'm Károly Lőrentey. My address: lorentey@elte.hu. | |
13 | ||
14 | Patches or suggestions are welcome! | |
15 | ||
16 | ||
17 | STATUS | |
18 | ------ | |
19 | ||
20 | We can create frames on new tty devices, but there are problems with | |
21 | refresh (only the (single) selected frame is refreshed), and input is | |
22 | read only from the initial terminal. At the moment, the type of the | |
23 | new terminals must be the same as the initial terminal. | |
24 | ||
25 | To 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 | |
30 | with M-x other-frame, the new tty is refreshed with the frame | |
31 | contents. The result of input from the original terminal appears on | |
32 | the new. If you exit emacs, both terminals are restored to their | |
33 | previous states. | |
34 | ||
35 | X, Mac, Windows and DOS support is broken. | |
36 | ||
37 | NEWS | |
38 | ---- | |
39 | ||
40 | For 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 | ||
47 | CHANGELOG | |
48 | --------- | |
49 | ||
50 | See arch logs. | |
51 | ||
52 | ||
53 | THINGS 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 | ||
72 | THINGS 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 |