unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Thomas Lord <lord@emf.net>
To: Miles Bader <miles@gnu.org>
Cc: martin rudalics <rudalics@gmx.at>,
	Chong Yidong <cyd@stupidchicken.com>,
	emacs-devel <emacs-devel@gnu.org>
Subject: Re: window groups
Date: Thu, 29 May 2008 16:53:58 -0700	[thread overview]
Message-ID: <483F4216.9060606@emf.net> (raw)
In-Reply-To: <874p8gkafs.fsf@catnip.gol.com>

Miles Bader wrote:
>  when
> I've thought about this sort of thing before, my thoughts tended towards
> making the existing Emacs window tree more visible to lisp code, and
> adding some mechanism for specifying where in the tree various
> operations would be directed by default.]
>   

The very tree-centric primitives for window management and the
limited nature of window configurations has been a long-standing
source of frustration, I agree.    Lots of more flexible approaches to
geometry management have come along in the last 20 years.   Emacs
adds to the geometry management problem the constant (but rewarding)
challenge of not breaking terminal support, yet this area still seems
just stuck in the distant past (not because of terminal support -- just
because it could be much nicer).

However, for some simple ideas not requiring radical revision:

The first one should be very easy.   The second one is a little harder:

Temporary windows (e.g., completion, help) would be less of a problem
if there was support for splitting a frame at the *top* of the window
tree.   Ditto for toolbars.    I admit I don't run the current almost
released emacs but, as far as I know, there is no clean way to split
a frame that way.    For example, split a frame vertically.   Split each
half horizontally.   Then invoke a complex command that will pop up
a completion helper.     Ideally the completion helper would split the
entire frame, adding a new temporary window just above the minibuffer.
Instead, one of your four windows is taken over.   In the case of a 
persistent
pop-up (like a help window), it would be nice to take some care so that if
the window config doesn't change other than by that window being deleted,
the former windows return precisely to their former sizes and locations.
Similarly, frame-wide toolbars could be popped up as frame-level window
splits -- this would make the minibuffer less special.   (It might even be
worth exploring the practicality of making complex command invocation
a *non*-recursive operation -- it might be significantly easier than adding
cooperative threads and even if threads come along it could still be a
beneficial thing to do.)

Window-local variables would also be handy.   "Apps" can search
window bindings to find which window to take over for a particular
buffer being popped up.   And, as I earlier argued, window-local variables
could help make the point, mark, and selection cleaner -- so now I've
got two arguments in favor of the long-contemplated window-local vars.

-t






  reply	other threads:[~2008-05-29 23:53 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2008-05-28 12:22 window groups martin rudalics
2008-05-29  1:39 ` Richard M Stallman
2008-05-29  9:26   ` martin rudalics
2008-05-29 16:30     ` Stefan Monnier
2008-05-30  7:05       ` martin rudalics
2008-05-30 13:58         ` Stefan Monnier
2008-05-30 19:27           ` martin rudalics
2008-05-31  4:52             ` Stefan Monnier
2008-05-31  9:10               ` martin rudalics
2008-05-30  0:59     ` Richard M Stallman
2008-05-30  7:08       ` martin rudalics
2008-05-31  2:07         ` Richard M Stallman
2008-05-31  6:17           ` Daniel Colascione
2008-05-31  7:09             ` Miles Bader
2008-05-31  9:10           ` martin rudalics
2008-05-30  0:59     ` Richard M Stallman
2008-05-30  7:08       ` martin rudalics
2008-05-29 15:18 ` Chong Yidong
2008-05-30  7:06   ` martin rudalics
2008-05-29 16:10 ` Chong Yidong
2008-05-29 19:11   ` Miles Bader
2008-05-29 21:40     ` Chong Yidong
2008-05-29 22:33       ` Miles Bader
2008-05-29 23:53         ` Thomas Lord [this message]
2008-05-30  7:07           ` martin rudalics
2008-05-30 16:42             ` Thomas Lord
2008-05-30 16:08               ` Stefan Monnier
2008-05-31  9:10               ` martin rudalics
2008-05-31 11:52                 ` Juanma Barranquero
2008-05-31 13:36                   ` martin rudalics
2008-05-31 17:22                     ` Thomas Lord
2008-05-31 22:37                       ` martin rudalics
2008-06-02  3:49                         ` Thomas Lord
2008-06-02  9:34                           ` martin rudalics
2008-06-02 21:32                             ` Thomas Lord
2008-06-03  5:52                             ` Miles Bader
2008-06-03  9:02                               ` martin rudalics
2008-06-03  9:51                                 ` René Kyllingstad
2008-06-03 11:26                                   ` martin rudalics
2008-06-03 11:54                                     ` Stephen Berman
2008-06-03 13:21                                       ` René Kyllingstad
2008-06-08  2:39                                         ` Stefan Monnier
2008-08-18 15:37                                           ` René Kyllingstad
2008-05-30  7:07         ` martin rudalics
2008-05-30  7:07     ` martin rudalics
2008-05-30  7:07   ` 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

  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=483F4216.9060606@emf.net \
    --to=lord@emf.net \
    --cc=cyd@stupidchicken.com \
    --cc=emacs-devel@gnu.org \
    --cc=miles@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 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).