unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: Eric Abrahamsen <eric@ericabrahamsen.net>
To: emacs-devel@gnu.org
Subject: Re: Understanding atomic window groups
Date: Sat, 25 May 2019 10:54:59 -0700	[thread overview]
Message-ID: <878suuctcc.fsf@ericabrahamsen.net> (raw)
In-Reply-To: 87lfyucxfx.fsf@ericabrahamsen.net

Eric Abrahamsen <eric@ericabrahamsen.net> writes:

> martin rudalics <rudalics@gmx.at> writes:
>
>>> `quit-window' just behaved unpredictably.
>>
>> The idea behind `quit-window' is that it should _never_ bark at the
>> user but silently use the next-best solution when the predefined one
>> fails.  For example, typing C-h m usually displays a new *Help*
>> window.  Typing 'q' in that window conceptually deletes that window
>> because it did not exist before showing *Help*.  But if you do C-x 1
>> in the *Help* window first and then type 'q', that window can't be
>> deleted and thus will have to show some other buffer instead.
>
> Okay, I do see that `quit-window' has a more complicated job to do, and
> multiple conditions are checked. I guess I was hoping/expecting that
> `quit-window' in a member of an atomic window group could somehow be
> altered to act on the whole group, rather than just the current window.

For instance! Side windows have `window-toggle-side-windows', maybe we
could have something similar for atomic windows?

[...]

> It would be great to have more examples in the side windows section as
> well. The two features together feel like they could be very powerful,
> there's just a bit of a documentation gap.
>
> I've had it in the back of my mind to try replacing Gnus' homemade
> windowing functionality with side windows, because they do pretty much
> the same thing, but I'm not sure where to start.

Just to extend this hypothetical:

Gnus configures its various window layouts in
`gnus-buffer-configuration', an assoc list where each element looks
like:

(article
  (horizontal 1.0
    (vertical 0.5
      (group 1.0))
    (vertical 1.0
      (summary 0.25 point)
      (article 1.0))))

This configuration is selected using 'article as a key --
(gnus-configure-windows 'article) -- the rest of it is arbitrarily
nested instructions about how to split the various buffer and how big
the splits should be.

As a lazy developer, I'd like to be able to pull apart the setting
above, find the window with 'point and make that the "main window", and
use the rest of the information to issue a series of (probably)
`display-buffer-in-side-window' calls that put the rest of the windows
in place. It would be particularly nice if we could stick an 'atomic key
in the above setting, and have the resulting side window assembly be
atomic.

Maybe this is totally possible right now, I don't know.

Eric




  reply	other threads:[~2019-05-25 17:54 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-05-22 17:50 Understanding atomic window groups Eric Abrahamsen
2019-05-23  8:39 ` martin rudalics
2019-05-23 20:14   ` Eric Abrahamsen
2019-05-24  8:01     ` martin rudalics
2019-05-24  8:24       ` Eli Zaretskii
2019-05-24 21:32       ` Eric Abrahamsen
2019-05-25  7:59         ` martin rudalics
2019-05-25  8:13           ` Eli Zaretskii
2019-06-03  9:11             ` martin rudalics
2019-06-03 15:10               ` Eli Zaretskii
2019-05-25 16:26           ` Eric Abrahamsen
2019-05-25 17:54             ` Eric Abrahamsen [this message]
2019-06-03  9:13               ` martin rudalics
2019-06-03  9:12             ` martin rudalics
2019-06-03 21:03               ` Eric Abrahamsen
2019-06-04  8:20                 ` martin rudalics
2019-06-04 17:28                   ` Eric Abrahamsen
2019-06-11 21:07                   ` Eric Abrahamsen
2019-06-15  8:16                     ` martin rudalics
2019-06-15 15:47                       ` Eric Abrahamsen

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=878suuctcc.fsf@ericabrahamsen.net \
    --to=eric@ericabrahamsen.net \
    --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).