unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "Károly Lo\"rentey" <karoly@lorentey.hu>
To: emacs-devel@gnu.org
Subject: Re: minibuffer-exit when emacsclient executes Lisp code
Date: Wed, 16 May 2007 14:58:40 +0200	[thread overview]
Message-ID: <f2ev68$73c$1@sea.gmane.org> (raw)
In-Reply-To: <86hcqduh7n.fsf@lola.quinscape.zz>


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

David Kastrup wrote:
> "Lennart Borgman (gmail)" <lennart.borgman@gmail.com> writes:
> 
>> Klaus Zeitler wrote:
>>> My script calls emacsclient with --eval to evaluate lisp code.
>>> Here's a simple example:
>>> 1. in your emacs do M-x to enter the minibuffer
>>> 2. in a shell type e.g.: emacsclient --eval cvs-emacs
>>> => emacs quits the minibuffer
>>>
>> Unfortunately there is currently no way to distinguish your case
>> from the more normal case where emacsclient is used to open a
>> file. In the later case I think the change does what is needed, but
>> for your (a bit more unusual) usage it breaks it.
> 
> --eval '(find-file "xxxx")

Well said.  It is not clear to me if this bug report is for the
multi-tty branch or the trunk, but with the multi-tty emacsclient, a
more useful heuristic would be whether or not the client requested the
creation of a new frame.  (Incidentally, the freeze issue was to be
resolved by better user feedback and an elaborate C-g-based protocol to
let the user manually return to top-level from frozen frames. I like
this simple approach even better.)

To reduce conflicts and parallel effort, I think people should look at
the multi-tty emacsclient, and (if possible) stop enhancing the trunk
version.  The two versions are considerably different.

> I think we should probably try to address this in connection with
> another issue: a suitable way for opening a tty: open a frame only
> once it is "needed".  One problem we currently have is that it is not
> really pleasing to specify Emacs frame geometries, colors, toolbar or
> menubar presence by using .emacs and/or customize: that way, the
> initial frame will first get mapped wrongly, then flicker into
> shape/position.
> So one would want to have a delayed mapping, basically happening when
> sit-for is called.  If this point is never reached, we don't need a
> mapping at all.

The flickering issue may not be strictly relevant for the emacsclient
case, since the parameters that apply on the new frame are (or at least
should be) already known at the time the frame is created.

(Multi-tty) Emacs is dumped with a dummy (no-op) terminal, and creates
the first real terminal only on the second run.  One way to reduce
flickering would be to delay terminal initialization until after .emacs
is loaded.  Is this what you mean?  Wouldn't that make it harder to
debug .emacs errors?

> In a
> similar vein, if emacsclient never reaches a point where it would be
> interested in looking at tty input, maybe it is not worth mapping a
> frame (and stealing the minibuffer).  Of course, the question when to
> call "top-level" remains.

I think something like (run-at-time 0 nil 'top-level) would work fine.

-- 
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

  parent reply	other threads:[~2007-05-16 12:58 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-15 10:10 minibuffer-exit when emacsclient executes Lisp code Klaus Zeitler
2007-05-15 20:47 ` Lennart Borgman (gmail)
2007-05-16  8:28   ` Klaus Zeitler
2007-05-16 11:28     ` Lennart Borgman (gmail)
2007-05-16 11:43       ` David Kastrup
2007-05-16 11:49         ` Lennart Borgman (gmail)
2007-05-16 12:58         ` Károly Lo"rentey [this message]
2007-05-16 13:04           ` Juanma Barranquero
2007-05-16 13:51           ` David Kastrup
2007-05-16 14:15           ` Klaus Zeitler
2007-05-17 13:48           ` Stefan Monnier
2007-05-16 14:10       ` Klaus Zeitler
2007-05-16 14:47         ` Lennart Borgman (gmail)
2007-05-23  9:59       ` Klaus Zeitler
2007-05-23 10:12         ` Lennart Borgman (gmail)
2007-05-23 15:03           ` Stefan Monnier
2007-05-23 18:56           ` Richard Stallman
2007-05-23 19:42             ` Lennart Borgman (gmail)
2007-05-24 13:13             ` Stefan Monnier
2007-05-25  7:37               ` Richard Stallman
  -- strict thread matches above, loose matches on Subject: below --
2007-05-16 14:01 karoly
2007-05-16 14:18 ` Juanma Barranquero
2007-05-16 14:35   ` Károly Lőrentey
2007-05-16 14:55     ` Juanma Barranquero
2007-05-17 13:28       ` Dan Nicolaescu
2007-05-16 14:41 ` David Kastrup
2007-05-16 14:58   ` Juanma Barranquero
2007-05-16 15:52   ` Károly Lo"rentey
2007-05-16 23:36   ` Kenichi Handa

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='f2ev68$73c$1@sea.gmane.org' \
    --to=karoly@lorentey.hu \
    --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).