From: Juri Linkov <juri@jurta.org>
To: martin rudalics <rudalics@gmx.at>
Cc: emacs-devel@gnu.org
Subject: Re: Window configurations
Date: Tue, 27 Apr 2010 11:54:11 +0300 [thread overview]
Message-ID: <87d3xlfdd8.fsf@mail.jurta.org> (raw)
In-Reply-To: <4BD5BC62.5070306@gmx.at> (martin rudalics's message of "Mon, 26 Apr 2010 18:16:34 +0200")
> By no means I want to talk you out of this ;-) but `split-window' is a
> socially well-established function. Saved window configurations will
> hardly ever get used that much. And we'll already have a hard time to
> maintain compatibility, for example, when you want to restore a
> configuration saved by Emacs 27 in an Emacs 29 session (or vice-versa).
I agree that when designing this feature, we should think about the future.
Let's imagine that Emacs 27 will switch from the tiling window manager
to an overlapping window manager. Then `split-window' in window
configurations will make no sense. This suggests that for the generality
window configurations should be defined as a list of windows with their
parameters, i.e. very much like frames are defined now. Frame parameters
to define the frame geometry are `left', `top', `height', and `width'.
Window parameters to define the window geometry are `left-col', `top-line',
`total-lines', and `total-cols'. Perhaps, in an overlapping window manager
they should be in pixels.
> Users "define" window configurations by splitting and deleting windows.
> They have no idea of the underlying window tree. But if you don't use
> `split-window' storing the type of window combinations doesn't make
> sense anyway. It's just that current window configurations have lots of
> redundancy: For a vertical combination, the widths of all subwindows are
> the same as that of the parent window, top-lines can be calculated on
> the fly by adding the top-line of the left sibling to its height, ...
Yes, currently window coordinates are redundant because of the
limitations of the tiling window manager. So we have to find a minimal
set of window parameters to define the window location. I agree that
a window tree is an implementation detail and users have no idea of the
underlying window tree.
Another variant is to define window geometry relative to the neighbor
windows, e.g. `left-window', `right-window' in terms of the package
windmove.el. Such window configurations would be easy to define for users.
> Anyway, the greatest problem IMO is to get windows correlate with their
> buffers. I don't think that restoring ediff configurations will become
> ever feasible (unless you build this into the ediff code)
I see no problems with window-to-buffer relations. They can be defined
using buffer names. This works successfully with desktop.el from the
x-tabs branch by saving and restoring window configurations in the
desktop file.
> and I'm also pessimistic about Info buffers
Window configurations with Info buffers are saved and restored
successfully in the desktop file as well.
> - in particular cloned ones.
What problems do you see with cloned Info buffers?
> And obviously we'll fail to handle code based on window objects
> or overlays with a window property.
Maybe a package that uses window overlays should use a new hook
to restore window overlays after a new window is created from
a window configuration.
> But for merely "normal" buffers the integrity of buffer-local variables
> affecting size and appearance of windows displaying them must be
> preserved. For example, when a buffer has `window-size-fixed' non-nil,
> any frame resizing step in your `set-window-configuration' should keep
> the size of the window fixed.
It seems the frame resizing step in `set-window-configuration' already
keeps the size of the window fixed.
--
Juri Linkov
http://www.jurta.org/emacs/
next prev parent reply other threads:[~2010-04-27 8:54 UTC|newest]
Thread overview: 221+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-04-01 16:52 Gtk tabs in emacs, new branch Angelo Graziosi
2010-04-01 17:45 ` Jan Djärv
2010-04-01 18:03 ` Juri Linkov
2010-04-01 20:18 ` Jan Djärv
2010-04-02 7:10 ` Jan Djärv
2010-04-01 20:51 ` Angelo Graziosi
2010-04-02 6:49 ` Jan Djärv
2010-04-02 9:21 ` Angelo Graziosi
2010-04-02 2:06 ` Stephen J. Turnbull
2010-04-02 7:00 ` Jan Djärv
2010-04-02 6:53 ` Jan Djärv
2010-04-02 9:59 ` Angelo Graziosi
2010-04-02 15:10 ` Jan Djärv
2010-04-02 16:55 ` Angelo Graziosi
2010-04-05 8:50 ` Angelo Graziosi
2010-04-10 12:44 ` Jan Djärv
2010-04-10 17:34 ` Angelo Graziosi
2010-04-10 18:03 ` Jan Djärv
2010-04-10 22:09 ` Angelo Graziosi
2010-04-11 5:45 ` Jan Djärv
2010-04-11 8:16 ` Angelo Graziosi
2010-04-11 10:52 ` Jan Djärv
2010-04-11 17:28 ` Angelo Graziosi
2010-04-11 18:33 ` Jan Djärv
2010-04-21 8:55 ` Juri Linkov
2010-04-21 9:46 ` David Kastrup
2010-04-21 15:43 ` Juri Linkov
[not found] ` <jwv633k4rn2.fsf-monnier+emacs@gnu.org>
2010-04-22 8:16 ` Juri Linkov
2010-04-22 15:08 ` Jan Djärv
2010-04-23 8:33 ` Juri Linkov
2010-04-21 13:54 ` Angelo Graziosi
2010-04-21 15:45 ` Juri Linkov
2010-04-21 16:04 ` Jan Djärv
2010-04-22 8:14 ` Juri Linkov
2010-04-22 16:20 ` Juanma Barranquero
2010-04-24 18:45 ` Juri Linkov
2010-04-23 16:53 ` Drew Adams
2010-04-23 18:02 ` Juri Linkov
2010-04-23 18:28 ` Drew Adams
2010-04-24 9:17 ` Juri Linkov
2010-04-24 14:41 ` Drew Adams
2010-04-24 18:49 ` Juri Linkov
2010-04-24 19:24 ` Drew Adams
2010-04-25 5:36 ` Juri Linkov
2010-04-25 9:15 ` martin rudalics
2010-04-25 18:33 ` Window configurations (was: Gtk tabs in emacs, new branch) Juri Linkov
2010-04-26 16:16 ` Window configurations martin rudalics
2010-04-27 8:54 ` Juri Linkov [this message]
2010-04-27 12:54 ` martin rudalics
2010-04-27 18:03 ` Juri Linkov
2010-04-27 19:47 ` Info buffers in Desktop Juri Linkov
2010-04-28 7:12 ` Window configurations martin rudalics
2010-04-28 8:27 ` Juri Linkov
2010-04-27 19:55 ` Davis Herring
2010-04-28 7:12 ` martin rudalics
2010-04-28 14:50 ` Stefan Monnier
2010-04-28 8:35 ` Juri Linkov
2010-04-28 14:15 ` Davis Herring
2010-05-07 18:14 ` Juri Linkov
2010-04-30 3:19 ` Window configurations (was: Gtk tabs in emacs, new branch) Ken Hori
2010-04-30 20:33 ` Window configurations Stefan Monnier
2010-05-02 20:31 ` Juri Linkov
2010-05-02 23:34 ` Drew Adams
2010-05-03 0:50 ` Stefan Monnier
2010-05-03 0:57 ` Juri Linkov
2010-05-03 2:50 ` Stefan Monnier
2010-05-04 16:09 ` Juri Linkov
2010-05-05 6:41 ` Stephen J. Turnbull
2010-05-05 13:22 ` Stefan Monnier
2010-05-05 14:35 ` Stephen J. Turnbull
2010-05-05 21:59 ` Juri Linkov
2010-05-02 20:28 ` Juri Linkov
2010-05-03 3:31 ` Ken Hori
2010-05-04 16:12 ` Juri Linkov
2010-05-05 9:19 ` martin rudalics
2010-05-05 18:05 ` Juri Linkov
2010-05-06 8:21 ` martin rudalics
2010-05-06 20:47 ` Juri Linkov
2010-05-10 19:16 ` Juri Linkov
2010-05-11 7:01 ` martin rudalics
2010-05-11 16:45 ` Juri Linkov
2010-05-12 9:29 ` martin rudalics
2010-05-13 22:46 ` Juri Linkov
2010-05-14 6:59 ` martin rudalics
2010-05-16 22:51 ` Juri Linkov
2010-05-17 9:06 ` martin rudalics
2010-05-17 22:54 ` Juri Linkov
2010-05-18 12:07 ` martin rudalics
2010-05-31 17:28 ` martin rudalics
2010-05-31 18:39 ` Stefan Monnier
2010-05-31 19:12 ` Lennart Borgman
2010-05-31 20:23 ` Juri Linkov
2010-06-01 9:24 ` martin rudalics
2010-05-31 20:19 ` Juri Linkov
2010-06-01 3:13 ` Stefan Monnier
2010-06-01 9:25 ` martin rudalics
2010-06-01 12:58 ` Stefan Monnier
2010-06-01 9:24 ` martin rudalics
2010-06-01 13:08 ` Stefan Monnier
2010-06-01 14:02 ` Lennart Borgman
2010-06-01 16:04 ` martin rudalics
2010-06-01 19:20 ` Stefan Monnier
2010-06-02 12:59 ` martin rudalics
2010-06-02 14:08 ` Stefan Monnier
2010-06-03 8:55 ` martin rudalics
2010-06-01 19:54 ` Juri Linkov
2010-06-02 13:00 ` martin rudalics
2010-06-02 19:46 ` Juri Linkov
2010-06-03 8:55 ` martin rudalics
2010-06-03 18:55 ` Juri Linkov
2010-06-14 17:05 ` martin rudalics
2010-06-14 21:54 ` Juri Linkov
2010-06-15 7:08 ` martin rudalics
2010-06-15 21:31 ` Juri Linkov
2010-06-16 17:25 ` martin rudalics
2010-06-16 20:51 ` Juri Linkov
2010-06-17 7:58 ` martin rudalics
2010-06-17 8:42 ` Juri Linkov
2010-06-17 10:20 ` martin rudalics
2010-06-17 20:38 ` Juri Linkov
2010-06-17 22:55 ` Lennart Borgman
2010-06-18 6:34 ` martin rudalics
2010-06-18 8:28 ` Juri Linkov
2010-06-18 9:04 ` martin rudalics
2010-06-19 8:50 ` Juri Linkov
2010-06-19 13:47 ` martin rudalics
2010-06-19 14:12 ` Juri Linkov
2010-06-19 18:56 ` martin rudalics
2010-06-01 19:51 ` Juri Linkov
2010-06-02 13:00 ` martin rudalics
2010-06-02 19:49 ` Juri Linkov
2010-06-03 8:57 ` martin rudalics
2010-06-03 14:22 ` Stefan Monnier
2010-06-03 15:42 ` martin rudalics
2010-06-04 13:11 ` Stefan Monnier
2010-06-04 14:07 ` martin rudalics
2010-06-04 16:59 ` Juri Linkov
2010-06-05 12:49 ` martin rudalics
2010-06-04 10:36 ` Richard Stallman
2010-06-04 14:06 ` martin rudalics
2010-06-03 18:54 ` Juri Linkov
2010-06-04 8:11 ` martin rudalics
2010-06-04 16:57 ` Juri Linkov
2010-06-05 12:49 ` martin rudalics
2010-06-05 19:47 ` Juri Linkov
2010-06-06 13:21 ` Stefan Monnier
2010-06-07 18:31 ` Juri Linkov
2010-06-03 18:52 ` Juri Linkov
2010-06-04 8:11 ` martin rudalics
2010-06-04 17:09 ` Juri Linkov
2010-06-05 12:49 ` martin rudalics
2010-06-05 19:49 ` Juri Linkov
2010-06-05 21:58 ` Stefan Monnier
2010-06-07 18:30 ` Juri Linkov
2010-06-06 10:38 ` martin rudalics
2010-06-07 1:12 ` Stefan Monnier
2010-06-07 13:40 ` martin rudalics
2010-06-07 15:36 ` Stefan Monnier
2010-06-07 17:38 ` Lennart Borgman
2010-06-08 13:06 ` martin rudalics
2010-06-08 20:19 ` Stefan Monnier
2010-06-11 13:20 ` martin rudalics
2010-06-11 13:52 ` Stefan Monnier
2010-06-11 17:12 ` martin rudalics
2010-05-05 18:19 ` Stefan Monnier
2010-05-06 8:22 ` martin rudalics
2010-05-06 13:04 ` Stefan Monnier
2010-05-06 14:59 ` martin rudalics
2010-05-06 16:17 ` Stefan Monnier
2010-05-08 3:09 ` Kevin Rodgers
2010-05-08 13:54 ` martin rudalics
2010-05-08 15:42 ` Lennart Borgman
2010-05-09 14:01 ` martin rudalics
2010-05-09 14:21 ` Lennart Borgman
2010-05-09 15:01 ` martin rudalics
2010-06-29 9:01 ` martin rudalics
2010-06-29 9:23 ` Juri Linkov
2010-06-29 10:01 ` martin rudalics
2010-06-29 10:37 ` Juanma Barranquero
2010-06-29 12:16 ` martin rudalics
2010-06-29 20:14 ` Juanma Barranquero
2010-06-29 20:01 ` Juri Linkov
2010-06-30 6:35 ` martin rudalics
2010-06-30 8:12 ` Juri Linkov
2010-04-10 19:19 ` Gtk tabs in emacs, new branch Stefan Monnier
2010-04-02 16:19 ` Uwe Siart
2010-04-02 18:31 ` Daniel Colascione
2010-04-02 20:38 ` Stefan Monnier
2010-04-03 6:29 ` Uwe Siart
2010-04-03 9:07 ` Uwe Siart
2010-04-02 6:53 ` Uwe Siart
2010-04-02 7:25 ` Jan Djärv
2010-04-04 11:01 ` Juri Linkov
2010-04-02 12:19 ` Stephen J. Turnbull
-- strict thread matches above, loose matches on Subject: below --
2010-05-05 13:31 Window configurations grischka
2010-05-05 18:10 ` Juri Linkov
2010-05-05 19:47 ` grischka
2010-05-05 20:07 ` Drew Adams
2010-05-06 11:18 grischka
2010-05-11 13:54 grischka
2010-05-12 9:28 ` martin rudalics
2010-05-12 11:12 ` grischka
2010-05-12 13:03 ` martin rudalics
2010-05-12 18:33 ` grischka
2010-05-13 10:22 ` martin rudalics
2010-05-13 11:40 ` grischka
2010-05-13 13:53 ` martin rudalics
2010-05-13 17:13 ` grischka
2010-05-13 22:57 ` Juri Linkov
2010-05-14 6:58 ` martin rudalics
2010-05-14 10:42 ` grischka
2010-05-14 11:45 ` martin rudalics
2010-05-14 13:32 ` grischka
2010-05-13 22:54 ` Juri Linkov
2010-05-14 11:12 ` grischka
2010-05-14 11:45 ` martin rudalics
2010-05-16 22:49 ` Juri Linkov
2010-05-17 9:06 ` martin rudalics
2010-05-17 22:48 ` Juri Linkov
2010-05-13 22:48 ` Juri Linkov
2010-05-14 7:00 ` martin rudalics
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
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=87d3xlfdd8.fsf@mail.jurta.org \
--to=juri@jurta.org \
--cc=emacs-devel@gnu.org \
--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 external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.