Mercurial > emacs
diff README.multi-tty @ 83014:f5cadabb36dd
Support for opening X frames from a tty session.
lisp/cus-face.el (custom-declare-face): Handle multiple concurrent
display methods correctly.
lisp/faces.el (x-create-frame-with-faces): Set the window-system frame
parameter instead of frame-creation-function.
(tty-create-frame-with-faces): Ditto.
lisp/frame.el (frame-creation-function): Removed.
(frame-creation-function-alist): New variable.
(frame-initialize): Use initial-window-system instead of window-system.
Add window-system parameter to initial-frame-alist.
Removed tty initialization, it was moved to frame-creation-function-alist.
(frame-notice-user-settings): Use initial-window-system instead of window-system.
(make-frame-on-display): Make sure term/x-win is loaded. Added
window-system parameter for make-frame.
(make-frame-on-tty): Removed unnecessary autoload declaration. Added
window-system parameter for make-frame.
(make-frame): Use frame-creation-function-alist to determine the
function to use depending on the specified window system.
(select-frame-by-name): Use the window-system function instead of the
variable.
lisp/startup.el (window-system): New variable (previously built-in,
now frame-local).
(normal-top-level, command-line): Use initial-window-system instead
of window-system.
lisp/loadup.el: Load startup.el before faces.el, for the
window-system variable.
lisp/term/x-win.el: Check for the x-create-frame function instead of
window-system to see if X is available. Don't exit Emacs if the
display can not be opened when X is not the initial display method.
Set up frame-creation-function-alist instead of
frame-creation-function. Provide the x-win feature.
src/dispnew.c (Vwindow_system): Renamed to Vinitial_window_system.
(init_display, syms_of_display): Updated to use Vinitial_window_system
instead of Vwindow_system.
src/emacs.c (shut_down_emacs): Updated to use Vinitial_window_system
instead of Vwindow_system.
src/keyboard.c (Fset_input_mode): Call reset_all_sys_modes, not
reset_sys_modes. Ditto for init_all_sys_modes. Process the quit
parameter correctly.
src/sysdep.c (init_sys_modes, reset_sys_modes): Unconditionally set up
the terminal. We don't get called if there is nothing to do anymore.
(sys_select): Use Vinitial_window_system, not Vwindow_system.
src/window.h (Vwindow_system): Renamed to Vinitial_window_system.
src/xfns.c (Fx_create_frame): Don't check_x. We initialize it anyway.
(x_display_info_for_name, Fx_open_connection): Don't look at
Vinitial_window_system.
git-archimport-id: lorentey@elte.hu--2004/emacs--multi-tty--0--patch-54
author | Karoly Lorentey <lorentey@elte.hu> |
---|---|
date | Sun, 11 Jan 2004 21:59:40 +0000 |
parents | e77d1a63471b |
children | 1465425fe2d3 |
line wrap: on
line diff
--- a/README.multi-tty Sun Jan 11 11:26:00 2004 +0000 +++ b/README.multi-tty Sun Jan 11 21:59:40 2004 +0000 @@ -2,9 +2,9 @@ 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. +The 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. Some use cases: @@ -27,7 +27,7 @@ I'm Károly Lőrentey. My address: lorentey@elte.hu. -Patches or suggestions are welcome! +Comments, bug reports, suggestions and patches are welcome! Retrieving the latest version of the branch: @@ -46,9 +46,13 @@ ------ Multi-tty support is stable, I think most of the problems were fixed. -(It still needs testing on other architectures, though.) Please let -me know if you find any bugs in it. Emacsclient has been extended to -support opening a new terminal frame. +(It still needs testing on other architectures, though.) Simultaneous +X and tty frame support works fine, although there are some small +issues. Emacsclient has been extended to support opening a new +terminal frame. + + +Please let me know if you find any bugs in this branch. To try it out, compile and run the multi-tty branch with the following commands: @@ -57,7 +61,7 @@ cd +build ../configure make bootstrap - src/emacs -nw + src/emacs -nw # You can also try without -nw M-x server-start and then (from a shell prompt on another terminal) start emacsclient @@ -77,7 +81,7 @@ This is work in progress, and probably full of bugs. You should always run emacs from gdb, so that you'll have a live instance to -debug if something goes wrong. Please send me your reports. +debug if something goes wrong. Please send me your bug reports. Problems: @@ -85,39 +89,48 @@ devices. Also, there is no way to suspend emacsclient. This will be fixed. - * X support is (I hope) working, but at the moment there are - problems with simultaneous X and tty devices, so don't do - that - start a separate Emacs with -nw and run the server - there. - * Mac, Windows and DOS support is broken, probably doesn't even compile -- this will be solved later. - * Only tested on my GNU/Linux box. + * Only tested on my GNU/Linux box and on Solaris 8. 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'. `tty' must be a - terminal device created by the updated emacsclient, or there will - be problems with terminal input and window resizes. +** 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'. - You can test for the presence of multiple terminal support by - testing for the `multi-tty' feature. +*** You can test for the presence of multiple terminal support by + testing for the `multi-tty' feature. + +*** Emacsclient has been extended to support opening a new terminal + frame (see -t option). + +*** A make-frame-on-tty function has been added to make it easier to + create frames on new terminals. -** A make-frame-on-tty function has been added to make it easier to - create frames on new terminals. +*** New functions: frame-tty-name, frame-tty-type for accessing + terminal parameters, and delete-tty for closing the terminal + device. + +*** talk.el has been extended for multiple tty support. + -** New functions: frame-tty-name, frame-tty-type for accessing - terminal parameters, and delete-tty for closing the terminal - device. +** Support for simultaneous graphical and terminal frames has been + added. + +*** The function `make-frame-on-display' now works during a terminal + session, and `make-frame-on-tty' works during a graphical session. -** Emacsclient has been extended to support opening a new terminal - frame. +*** The `window-system' variable has been made frame-local. + +*** The new `initial-window-system' variable contains the + `window-system' value for the first frame. + CHANGELOG --------- @@ -127,11 +140,13 @@ THINGS TO DO ------------ -** Fix color handling during X+tty combo sessions. (It seems that tty +** Fix color handling during tty+X combo sessions. (It seems that tty sessions automatically convert the face colors to terminal colors when the face is loaded. This conversion must happen instead on the fly in write_glyphs, which might be problematic, as color approximation is currently done in lisp (term/tty-colors.el).) + (Update: hm, colors seem to work fine if I start emacs with -nw and + then create an X frame. Maybe it's just a small buglet somewhere.) ** Fix interactive use of temacs. There are face-related SEGVs, most likely because of changes in realize_default_face, realize_face. @@ -139,17 +154,12 @@ ** Very strange bug: visible-bell does not work on secondary terminals. This might be something xterm (konsole) specific. -** Allow opening an X session after -nw. - ** Find out the best way to support suspending Emacs with multiple ttys. My guess: disable it on the controlling tty, but from other ttys pass it on to emacsclient somehow. (It is (I hope) trivial to extend emacsclient to handle suspend/resume. A `kill -STOP' almost works right now.) -** Exiting Emacs while there are emacsclient frames doesn't restore the - ttys to their default states. - ** Move baud_rate to struct display. ** Implement support for starting an interactive Emacs session without @@ -187,6 +197,8 @@ single_kboard mode, and is not easily solvable. The best thing to do is to simply refuse to create a tty frame of type `eterm'. +** Maybe standard-display-table should be display-local. + DIARY OF CHANGES ---------------- @@ -545,4 +557,14 @@ Note that the above strace output seems to be an unrelated but similar bug. I think that is now fixed.) +-- Exiting Emacs while there are emacsclient frames doesn't restore the + ttys to their default states. + + (This seems to be fixed by some previous change.) + +-- Allow opening an X session after -nw. + + (Done.) + + ;;; arch-tag: 8da1619e-2e79-41a8-9ac9-a0485daad17d