From: Drew Adams <drew.adams@oracle.com>
To: Juanma Barranquero <lekktu@gmail.com>
Cc: martin rudalics <rudalics@gmx.at>,
Emacs developers <emacs-devel@gnu.org>
Subject: RE: How to restore the layout?
Date: Mon, 1 Jul 2013 09:03:10 -0700 (PDT) [thread overview]
Message-ID: <55419fed-b69d-4d07-81b2-b5b70f113929@default> (raw)
In-Reply-To: <CAAeL0SQTGT9AYMkvP4X5syfVO6+uPbcsxUxwGxoJPO3a9ioCJg@mail.gmail.com>
> > Another possibility/suggestion, from little-to-no knowledge of this
> > stuff: Simply do not record or restore a minibuffer-only frame.
>
> Yes, that's one posibility, but then, if the user moved or resized it,
> these changes won't be restored. Not a deal breaker, but something to
> take into account.
My guess is that, for the reasons I gave earlier (must set up during
startup), someone using a standalone minibuffer frame will already have
set it up, including its position and size, before trying to restore a
desktop. Users will neither want nor need a desktop to record and
restore a standalone minibuffer frame.
My suggestion is to record & restore only the frames that do not have
an `only' value for frame parameter `minibuffer'. No one will miss the "feature" of recording & restoring a standalone minibuffer frame.
This assumes that everything works as expected otherwise:
1. Restoring a frame with nil `minibuffer' property correctly associates
it with the standalone minibuffer frame. I assume that that is the case,
because that is what happens today when `default-frame-alist' specifies
nil as the `minibuffer' property value. That is the only that makes
sense to me.
2. Restoring a frame that had a non-nil, non-`only' `minibuffer' property
correctly associates it with an existing standalone minibuffer frame.
I assume that is the only reasonable behavior, but I'm no expert on that.
Perhaps there is someone who uses both a standalone minibuffer and
separate minibuffers in some frames? I doubt it, however.
If I prove wrong about the expected use cases then you can think later
about providing a user option. The default behavior should anyway,
IMO, be what I described: do not record or restore any frame that has
`only' as its `minibuffer' frame parameter value.
That is at least the first behavior to try out for your prototype, IMO.
> OTOH, restoring a minibuffer-only frame does not
> really make much sense unless you do it first of all and set
> default-minibuffer-frame to it... Time to go doing some
> experimenting.
Exactly.
> > Otherwise, record the `minibuffer' property of a frame, including the
> > case where it is nil (no minibuffer).
>
> The `minibuffer' property can contain non-readable things, like a
> window reference.
Yes. I don't know whether anyone uses that, or whether it is used
somehow internally by Emacs. In any case, I have nothing useful to
offer about that.
If the value is a window then it supposedly must be a minibuffer
window on some other frame. How you would deal with that in the
context of desktop.el I don't know. I guess if you are actually
restoring windows in general then you could restore that value (and
hence the association) as well.
But again, what is a use case for that? It would not be needed for
the usual case of input redirection, AFAIK. For that, you would just
redirect input to your standalone minibuffer. (That's what I do for
a separate *Completions* frame, for instance.)
> > (But from your message I now have a doubt: is it necessary to
> > associate the ordinary restored frames with the existing standalone
> > minibuffer?)
>
> minibuffer can be t/n/only, but also a reference to a minibuffer
> window in another frame.
> - t : nothing to do, it works out of the box
> - nil: emacs will try to associate the frame with
> default-minibuffer-frame or create one minibuffer frame for it
> - only: as discussed above
> - a window: we currently can do nothing about this, because we do not
> have a way to name windows and restore references to them.
See above. I wouldn't worry about the window-valued case, at least
for now. Note too: it is not just any old window - it should (must?)
be a minibuffer window.
> > Keep in mind that to use a standalone minibuffer you really need to
> > set it up at startup time, e.g., from the command line or from your
> > init file. You cannot add a (useful) standalone minibuffer after Emacs
> > has already created its first frame, which has its own minibuffer.
>
> Yes. minibuffer-only frames and their brethren are strange beasts.
Every beast is a strange beast. Every Emacs feature that one is not
used to using seems strange at first.
FWIW, a standalone minibuffer frame was not only not strange but was
the DEFAULT and the TYPICAL way for users to interact with Emacs back
in the days of Epoch. And Epoch's standalone minibuffer worked even
better than what I've been able to cobble together for GNU Emacs.
From http://tonic.physics.sunysb.edu/docs/emacs/emacsFAQ.html#sec93
(long ago):
93: What is the difference between GNU Emacs and Epoch?
Marc Andreessen <marca@ncsa.uiuc.edu> writes:
Epoch is GNU Emacs on steroids: an adaptation of GNU Emacs with lots of
additional support for features made possible by the X11 windowing
system. These features include multiple editing windows, arbitrary
colors and fonts (fixed-width and proportional), selectable zones per
buffer with arbitrary display styles (font, color, underline, stipple,
pixmap), an optional separate minibuffer window, improved keyboard and
mouse handling, full 8-bit character set support, and more.
From http://www.cs.utah.edu/dept/old/texinfo/epoch/epoch.html#SEC9:
Epoch supports two different kinds of minibuffers. The default is a
non-local minibuffer, which is displayed in its own distinct screen;
this is what Epoch has traditionally done. The alternative is to have
minibuffer windows local to each edit screen; this is similar to
traditional GNU Emacs. In the case of non-local minibuffers, there
will always be exactly one minibuffer screen, and one or more edit
screens; a single edit screen and minibuffer screen together act
similarly to normal GNU Emacs. For local minibuffers, the real
minibuffer will be located at the bottom of the current edit screen.
Yes, GNU Emacs has caught up with much of what Epoch offered more than
20 years ago. And it has added important features that Epoch did not have.
But in spite of being the best thing around today, GNU Emacs has still not
caught up with some of what Epoch offered, out of the box, many, many moon
ago.
Strange?
"Bizarre" ? Moi, j'ai dit "bizarre, bizarre" ? Comme c'est drole.
Pourquoi aurais-je dit "bizarre, bizarre" ? ... Moi, j'ai dit
"bizarre" ? Comme c'est bizarre.
http://www.youtube.com/watch?v=Ku-ChVdBwDs
[Louis Jouvet, "Drole de Drame", 1937]
Longer extract (3.5 min):
http://www.youtube.com/watch?v=4QiuzDEWD8I
next prev parent reply other threads:[~2013-07-01 16:03 UTC|newest]
Thread overview: 264+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-22 13:45 How to restore the layout? Angelo Graziosi
2013-06-22 23:01 ` Xue Fuqiao
2013-06-23 10:24 ` Angelo Graziosi
2013-06-23 8:26 ` martin rudalics
2013-06-23 10:35 ` Angelo Graziosi
2013-06-24 17:05 ` martin rudalics
2013-06-24 17:23 ` Juanma Barranquero
2013-06-24 17:30 ` Eli Zaretskii
2013-06-24 17:52 ` Juanma Barranquero
2013-06-24 18:18 ` Eli Zaretskii
2013-06-24 18:33 ` Stephen Berman
2013-06-24 18:33 ` Stephen Berman
2013-06-24 20:10 ` Juanma Barranquero
2013-06-24 20:11 ` Juanma Barranquero
2013-06-24 20:22 ` Jambunathan K
2013-06-24 20:28 ` Juanma Barranquero
2013-06-24 20:57 ` martin rudalics
2013-06-24 22:47 ` Juanma Barranquero
2013-06-24 23:38 ` Juri Linkov
2013-06-24 23:43 ` Juanma Barranquero
2013-06-25 6:03 ` Juri Linkov
2013-06-25 16:05 ` Juanma Barranquero
2013-06-25 6:46 ` martin rudalics
2013-06-25 15:32 ` Juanma Barranquero
2013-06-25 16:32 ` Stefan Monnier
2013-06-25 16:38 ` martin rudalics
2013-06-25 17:21 ` Juanma Barranquero
2013-06-25 21:36 ` Angelo Graziosi
2013-06-25 21:40 ` Juanma Barranquero
2013-06-26 0:52 ` chad
2013-06-26 14:03 ` chad
2013-06-26 17:21 ` Juanma Barranquero
2013-06-26 18:27 ` martin rudalics
2013-06-26 23:05 ` Juanma Barranquero
2013-06-27 2:35 ` Stefan Monnier
2013-06-27 2:57 ` Juanma Barranquero
2013-06-27 4:30 ` Stefan Monnier
2013-06-27 8:55 ` Juanma Barranquero
2013-06-27 15:20 ` Stefan Monnier
2013-06-27 15:23 ` Juanma Barranquero
2013-06-27 8:05 ` martin rudalics
2013-06-27 9:00 ` Juanma Barranquero
2013-06-27 9:38 ` martin rudalics
2013-06-27 21:02 ` Juanma Barranquero
2013-06-28 6:34 ` martin rudalics
2013-06-28 11:53 ` Juanma Barranquero
2013-06-28 14:02 ` martin rudalics
2013-06-27 13:29 ` Angelo Graziosi
2013-06-27 14:05 ` Juanma Barranquero
2013-06-27 14:31 ` Angelo Graziosi
2013-06-27 14:45 ` Juanma Barranquero
2013-06-27 18:27 ` martin rudalics
2013-06-27 20:30 ` Juanma Barranquero
2013-06-27 20:49 ` martin rudalics
2013-06-27 20:52 ` Juanma Barranquero
2013-06-27 21:00 ` martin rudalics
2013-06-27 21:03 ` Juanma Barranquero
2013-06-27 23:33 ` Juanma Barranquero
2013-06-28 6:07 ` Eli Zaretskii
2013-06-28 8:17 ` Jan Djärv
2013-06-28 11:54 ` Juanma Barranquero
2013-06-28 11:48 ` Juanma Barranquero
2013-06-28 17:55 ` Eli Zaretskii
2013-06-28 18:15 ` Stefan Monnier
2013-06-28 17:22 ` Stefan Monnier
2013-06-28 17:51 ` Juanma Barranquero
2013-06-28 19:36 ` Stefan Monnier
2013-06-29 0:54 ` Juanma Barranquero
2013-06-29 8:29 ` martin rudalics
2013-06-29 22:06 ` Juanma Barranquero
2013-06-30 9:35 ` martin rudalics
2013-06-30 10:32 ` Juanma Barranquero
2013-06-30 12:55 ` martin rudalics
2013-06-30 17:55 ` Juanma Barranquero
2013-07-01 6:48 ` martin rudalics
2013-07-04 20:41 ` Angelo Graziosi
2013-07-04 21:34 ` Juanma Barranquero
2013-07-04 23:10 ` Angelo Graziosi
2013-07-04 23:19 ` Juanma Barranquero
2013-07-05 7:45 ` martin rudalics
2013-07-05 9:37 ` Juanma Barranquero
2013-07-05 14:02 ` Angelo Graziosi
2013-07-05 14:55 ` Juanma Barranquero
2013-07-05 15:02 ` Angelo Graziosi
2013-07-05 15:10 ` Juanma Barranquero
2013-07-05 15:30 ` martin rudalics
2013-07-05 15:39 ` Juanma Barranquero
2013-07-05 15:54 ` martin rudalics
2013-07-05 16:02 ` Juanma Barranquero
2013-07-05 17:03 ` martin rudalics
2013-07-05 17:06 ` Juanma Barranquero
2013-07-05 17:37 ` martin rudalics
2013-07-06 14:32 ` Juanma Barranquero
2013-07-07 10:57 ` martin rudalics
2013-07-05 15:21 ` martin rudalics
2013-07-05 15:26 ` Juanma Barranquero
2013-07-05 15:39 ` martin rudalics
2013-07-05 15:40 ` Juanma Barranquero
2013-07-05 15:55 ` martin rudalics
2013-07-05 17:04 ` Angelo Graziosi
2013-07-05 17:09 ` Juanma Barranquero
2013-07-05 7:45 ` martin rudalics
2013-07-05 10:07 ` Angelo Graziosi
2013-07-05 12:58 ` martin rudalics
2013-07-05 13:13 ` Jan Djärv
2013-07-05 13:41 ` Angelo Graziosi
2013-07-05 14:42 ` martin rudalics
2013-07-05 18:22 ` Eli Zaretskii
2013-07-05 20:30 ` Angelo Graziosi
2013-07-06 8:47 ` martin rudalics
2013-07-06 9:10 ` Angelo Graziosi
2013-07-06 10:44 ` martin rudalics
2013-07-06 11:04 ` Angelo Graziosi
2013-07-06 13:06 ` martin rudalics
2013-07-06 13:18 ` Eli Zaretskii
2013-07-06 13:43 ` martin rudalics
2013-07-06 13:53 ` Eli Zaretskii
2013-07-07 10:56 ` martin rudalics
2013-07-06 14:27 ` Angelo Graziosi
2013-07-06 18:57 ` Drew Adams
2013-07-07 10:57 ` martin rudalics
2013-07-07 11:32 ` Juanma Barranquero
2013-07-07 12:46 ` martin rudalics
2013-07-07 15:53 ` Drew Adams
2013-07-08 6:47 ` martin rudalics
2013-07-08 13:56 ` Drew Adams
2013-07-08 17:29 ` Juanma Barranquero
2013-07-09 9:08 ` martin rudalics
2013-07-09 9:07 ` martin rudalics
2013-07-09 15:32 ` Drew Adams
2013-07-10 7:20 ` martin rudalics
2013-07-10 13:50 ` Drew Adams
2013-07-06 9:13 ` Juanma Barranquero
2013-07-06 10:44 ` martin rudalics
2013-07-06 14:39 ` Juanma Barranquero
2013-07-05 7:44 ` martin rudalics
2013-06-29 8:51 ` Stephen Leake
2013-06-29 18:00 ` chad
2013-06-29 18:12 ` Eli Zaretskii
2013-06-29 22:36 ` Juanma Barranquero
2013-06-30 15:27 ` Stephen Leake
2013-06-30 18:12 ` Juanma Barranquero
2013-06-28 8:13 ` Jan Djärv
2013-06-28 8:31 ` martin rudalics
2013-06-28 8:46 ` Jan Djärv
[not found] ` <51CD5489.10902@g>
2013-06-28 9:16 ` martin rudalics
2013-06-28 10:01 ` Jan Djärv
2013-06-28 10:19 ` martin rudalics
2013-06-28 10:26 ` Jan Djärv
2013-06-28 11:50 ` martin rudalics
2013-06-29 8:47 ` Stephen Leake
2013-06-29 22:26 ` Juanma Barranquero
2013-06-30 15:25 ` Stephen Leake
2013-06-30 18:09 ` Juanma Barranquero
2013-06-28 12:46 ` Eli Zaretskii
2013-06-28 14:03 ` martin rudalics
2013-06-28 14:58 ` Eli Zaretskii
2013-06-28 15:06 ` Juanma Barranquero
2013-06-28 17:53 ` Eli Zaretskii
2013-06-29 0:49 ` Juanma Barranquero
2013-06-28 15:22 ` Jan Djärv
2013-06-28 15:32 ` Juanma Barranquero
2013-06-28 15:53 ` Jan Djärv
2013-06-28 12:05 ` Juanma Barranquero
2013-06-28 13:06 ` Eli Zaretskii
2013-06-28 13:22 ` Juanma Barranquero
2013-06-28 14:51 ` Eli Zaretskii
2013-06-28 15:22 ` Juanma Barranquero
2013-06-28 17:52 ` Eli Zaretskii
2013-06-29 0:47 ` Juanma Barranquero
2013-06-29 8:39 ` Stephen Leake
2013-06-29 22:18 ` Juanma Barranquero
2013-06-29 23:48 ` Drew Adams
2013-06-30 10:16 ` Juanma Barranquero
2013-06-30 16:30 ` Drew Adams
2013-06-30 18:15 ` Juanma Barranquero
2013-06-30 7:51 ` Jan Djärv
2013-06-30 9:35 ` martin rudalics
2013-06-30 10:01 ` Jan Djärv
2013-06-30 10:11 ` martin rudalics
2013-06-30 10:34 ` Juanma Barranquero
2013-06-30 10:29 ` Juanma Barranquero
2013-06-30 12:55 ` martin rudalics
2013-06-30 18:03 ` Juanma Barranquero
2013-06-30 21:32 ` Jan Djärv
2013-07-01 0:28 ` Juanma Barranquero
2013-07-01 3:31 ` Juanma Barranquero
2013-07-01 6:50 ` martin rudalics
2013-07-01 10:38 ` Juanma Barranquero
2013-07-02 10:38 ` martin rudalics
2013-07-02 16:32 ` Juanma Barranquero
2013-07-03 9:27 ` martin rudalics
2013-07-03 10:36 ` Juanma Barranquero
2013-07-03 12:42 ` martin rudalics
2013-07-03 14:20 ` Juanma Barranquero
2013-07-03 14:32 ` Juanma Barranquero
2013-07-04 9:35 ` martin rudalics
2013-07-03 14:08 ` Drew Adams
2013-07-08 2:50 ` Juanma Barranquero
2013-07-08 6:47 ` martin rudalics
2013-07-08 12:13 ` Juanma Barranquero
2013-07-01 14:11 ` Drew Adams
2013-07-01 14:40 ` Juanma Barranquero
2013-07-01 16:03 ` Drew Adams [this message]
2013-07-01 16:37 ` Juanma Barranquero
2013-07-01 18:03 ` Drew Adams
2013-07-02 0:25 ` Juanma Barranquero
2013-07-02 3:46 ` Drew Adams
2013-07-02 17:32 ` Juanma Barranquero
2013-07-02 19:40 ` Drew Adams
2013-07-03 9:03 ` Juanma Barranquero
2013-07-03 9:34 ` martin rudalics
2013-07-03 10:38 ` Juanma Barranquero
2013-07-03 12:42 ` martin rudalics
2013-07-03 14:35 ` Juanma Barranquero
2013-07-04 9:35 ` martin rudalics
2013-07-04 14:17 ` Juanma Barranquero
2013-07-05 7:43 ` martin rudalics
2013-07-05 9:35 ` Juanma Barranquero
2013-07-03 14:08 ` Drew Adams
2013-07-03 14:54 ` Juanma Barranquero
2013-07-03 9:27 ` martin rudalics
2013-07-03 14:08 ` Drew Adams
2013-07-03 9:27 ` martin rudalics
2013-07-03 10:37 ` Juanma Barranquero
2013-07-03 14:08 ` Drew Adams
2013-07-03 15:16 ` Juanma Barranquero
2013-07-03 17:01 ` Drew Adams
2013-06-30 15:23 ` Stephen Leake
2013-06-30 15:34 ` Eli Zaretskii
2013-06-28 14:03 ` martin rudalics
2013-06-28 15:12 ` Juanma Barranquero
2013-06-28 10:22 ` Eli Zaretskii
2013-06-28 11:50 ` martin rudalics
2013-06-28 12:11 ` Juanma Barranquero
2013-06-28 12:24 ` Angelo Graziosi
2013-06-28 13:02 ` Eli Zaretskii
2013-06-28 14:07 ` martin rudalics
2013-06-28 14:59 ` Eli Zaretskii
2013-06-28 12:08 ` Juanma Barranquero
2013-06-28 13:07 ` Eli Zaretskii
2013-06-28 13:29 ` Juanma Barranquero
2013-06-28 14:53 ` Eli Zaretskii
2013-06-28 15:24 ` Juanma Barranquero
2013-06-29 8:03 ` Stephen Leake
2013-06-29 8:11 ` Eli Zaretskii
2013-06-30 15:29 ` Stephen Leake
2013-06-30 15:39 ` Eli Zaretskii
2013-06-28 12:00 ` Juanma Barranquero
2013-06-28 12:31 ` Jan Djärv
2013-06-28 13:18 ` Juanma Barranquero
2013-06-28 14:26 ` Jan Djärv
2013-06-28 15:19 ` Juanma Barranquero
2013-06-28 14:03 ` martin rudalics
2013-06-28 15:13 ` Jan Djärv
2013-06-28 15:14 ` Juanma Barranquero
2013-06-28 14:02 ` martin rudalics
2013-06-28 15:10 ` Juanma Barranquero
2013-06-28 16:17 ` martin rudalics
2013-06-29 8:41 ` Stephen Leake
2013-06-28 13:29 ` Drew Adams
2013-06-25 3:22 ` Stephen J. Turnbull
2013-06-24 17:38 ` martin rudalics
2013-06-23 12:28 ` Juanma Barranquero
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=55419fed-b69d-4d07-81b2-b5b70f113929@default \
--to=drew.adams@oracle.com \
--cc=emacs-devel@gnu.org \
--cc=lekktu@gmail.com \
--cc=rudalics@gmx.at \
/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).