unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Károly Lőrentey" <karoly@lorentey.hu>
To: Eli Zaretskii <eliz@gnu.org>
Cc: emacs-devel@gnu.org
Subject: Re: [multi-tty] Emacs port status
Date: Fri, 18 May 2007 21:09:12 +0200	[thread overview]
Message-ID: <464DF9D8.7080001@lorentey.hu> (raw)
In-Reply-To: <uabw2uqnj.fsf@gnu.org>


[-- Attachment #1.1: Type: text/plain, Size: 4120 bytes --]

Eli Zaretskii wrote:
>> One thing that I personally am concerned about is that it might be
>> difficult to reach a consensus about what kind of environment model we
>> should be using and documenting.  There have not actually been many
>> people involved in the discussion, but it is clear that there are
>> quite different standpoints from the user experience and the system
>> architecture point of view.
> 
> One reason why _I_ wasn't part of the discussion is that I couldn't
> find any place where the design principles of multi-tty are described
> in sufficient detail for me to make up my mind about it.  Is there
> such a document out there?  If not, could someone ``in the know'',
> preferably Karoly himself, please describe the feature and its main
> design principles?

In terms of core Emacs features, the multi-tty branch adds the
capability to create frames on multiple tty devices at once (hence the
name).  It also adds support to simultaneously have X and tty frames in
the same Emacs session.

The tty support is such that different terminals may have different TERM
settings, character encodings, color depths and function key maps
applied to them.

X support is basically similar to what we have in the trunk; i.e., Emacs
can open frames on multiple X servers at once, and this works pretty
reliably.  One area of difference is that on the multi-tty branch, an X
server problem (such as an X server crash) will not necessarily bring
down the entire Emacs process: it will simply delete the broken
terminal. If other terminals remain, then Emacs will continue to work
after such a disconnect.

The original goal of the multi-tty project was to improve how
emacsclient works: I always felt it should open a new frame on
emacsclient's terminal by default.  This wasn't possible before when X
was not available on the emacsclient side, but in this case now Emacs
can simply open a frame on the local tty device.  Some things that
deserve mention about the new Emacsclient:

   1. Emacsclient opens a new frame by default.  It prefers X, but
      falls back to tty when necessary or when forced, just like Emacs
      itself.

   2. Frames are associated with the emacsclient session they were
      created in.  C-x 5 2 makes the new frame inherit the association
      as well.  When the user closes the last frame associated with a
      particular emacsclient session, emacsclient exits automatically,
      and vice versa.  C-x C-c is rebound to exit the client, not Emacs
      itself.

   3. When there is a tty frame open on emacsclient's controlling tty,
      you can send emacsclient into the background by pressing C-z.
      Emacs then suspends input/output to the tty device, and the
      emacsclient process stops itself, returning you to the shell
      prompt.   This works just like any standalone UNIX application
      would.  As a little no-cost extra feature, you can even create
      multiple emacsclient sessions running at the same time on the same
      terminal, and transparently switch between them by C-z and fg.

      More on the tty suspend feature: tty terminals can be suspended
      and resumed from Elisp.  Output is never sent to and input is
      never read from suspended terminals, but otherwise they keep their
      set of frames and windows configurations.  To resume output,
      suspended terminals must be explicitly resumed by another elisp
      call.  (This was something like a low-cost bonus feature that
      was very little work to implement, but considerably improves user
      experience.)

   4. Environment variable handling is currently in a state of flux;
      see the separate thread for that.

I think the best way to get a handle on the multi-tty branch is to
compile it and try out the new emacsclient.  It should be a convincing
emulation of a superfast little standalone editor, but with Emacs's
power, and built-in sharing of state between session.  Achieving this
was my primary goal, and I like how the results turned out very much.

-- 
Karoly


[-- Attachment #1.2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 250 bytes --]

[-- Attachment #2: Type: text/plain, Size: 142 bytes --]

_______________________________________________
Emacs-devel mailing list
Emacs-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/emacs-devel

  reply	other threads:[~2007-05-18 19:09 UTC|newest]

Thread overview: 38+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-17 20:52 [multi-tty] Emacs port status Jason Rumney
2007-05-17 21:14 ` David Kastrup
2007-05-18 14:56   ` Eli Zaretskii
2007-05-18 19:09     ` Károly Lőrentey [this message]
2007-05-18 19:56       ` [multi-tty] X or tty (was Re: Emacs port status) csant
2007-05-18 20:14         ` [multi-tty] X or tty David Kastrup
2007-05-18 20:39           ` csant
2007-05-18 20:59             ` David Kastrup
2007-05-20 11:47           ` Károly Lőrentey
2007-05-20 11:43         ` [multi-tty] X or tty (was Re: Emacs port status) Karoly Lorentey
2007-05-19 11:15       ` [multi-tty] Emacs port status Eli Zaretskii
2007-05-19 10:55     ` Richard Stallman
2007-05-19 11:11       ` Eli Zaretskii
2007-05-19 11:29         ` Juanma Barranquero
2007-05-20  6:50         ` Richard Stallman
2007-05-20  7:35           ` David Kastrup
2007-05-20 18:57             ` Eli Zaretskii
2007-05-20 22:04             ` Richard Stallman
2007-05-20 18:56           ` Eli Zaretskii
2007-05-20 11:32     ` Kenichi Handa
2007-05-20 19:09       ` Eli Zaretskii
2007-05-20 15:49     ` Dan Nicolaescu
2007-05-20 19:14       ` Eli Zaretskii
2007-05-18  3:06 ` Károly Lo"rentey
2007-05-19 23:25 ` MacOS port functional too (was Re: [multi-tty] Emacs port status) Dan Nicolaescu
2007-05-20  9:26   ` MacOS port functional too David Kastrup
2007-05-20 18:59     ` Eli Zaretskii
2007-05-20 20:38     ` Jason Rumney
2007-05-21  6:00       ` vms for emacs [was: MacOS port functional too] Thien-Thi Nguyen
2007-05-21  7:21         ` vms for emacs David Kastrup
2007-05-21 11:21           ` jasonr
2007-05-21 11:32             ` David Kastrup
2007-05-21 13:14             ` Miles Bader
2007-05-22  8:30             ` Richard Stallman
2007-05-21 14:22         ` vms for emacs [was: MacOS port functional too] Chip Coldwell
2007-05-22  5:25           ` dhruva
2007-05-21 10:33       ` MacOS port functional too Richard Stallman
2007-05-20 16:12   ` MacOS port functional too (was Re: [multi-tty] Emacs port status) Karoly Lorentey

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=464DF9D8.7080001@lorentey.hu \
    --to=karoly@lorentey.hu \
    --cc=eliz@gnu.org \
    --cc=emacs-devel@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).