unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
From: "N. Jackson" <nljlistbox2@gmail.com>
To: Eric Abrahamsen <eric@ericabrahamsen.net>
Cc: Roland Winkler <winkler@gnu.org>,
	Stefan Monnier <monnier@iro.umontreal.ca>,
	emacs-devel@gnu.org
Subject: Suggesting `frame-split-biggest-window' Re: customize location and shape of a new window in a frame
Date: Wed, 12 Sep 2018 19:21:25 -0400	[thread overview]
Message-ID: <875zzawbd6.fsf_-_@moondust.localdomain> (raw)
In-Reply-To: <87o9d2eaql.fsf@ericabrahamsen.net> (Eric Abrahamsen's message of "Wed, 12 Sep 2018 13:12:18 -0700")

Thanks Eric,

At 13:12 -0700 on Wednesday 2018-09-12, Eric Abrahamsen wrote:
>
> On 09/12/18 15:36 PM, N. Jackson wrote:
>> At 14:22 -0700 on Tuesday 2018-09-11, Eric Abrahamsen wrote:
>>>
>>> (add-to-list 'gnus-window-to-buffer
>>>        `(bbdb-gnus . "*BBDB*"))
>>>
>>> (gnus-add-configuration
>>>   (article
>>>     ,(cond
>>>       (gnus-use-trees
>>>        '(vertical 1.0
>>> 		  (summary 0.25 point)
>>> 		  (tree 0.25)
>>> 		  (horizontal 1.0
>>> 			      (article 1.0)
>>> 			      (bbdb-gnus 0.4))))
>>>       (t
>>>        '(vertical 1.0
>>> 		  (summary 0.25 point)
>>> 		  (horizontal 1.0
>>> 			      (article 1.0)
>>> 			      (bbdb-gnus 0.4))))))
>>
>> Evaluating the second form gives:
>>
>> Debugger entered--Lisp error: (void-function article)
>
> Yup, that was a cut-and-paste problem from my larger config. Just stick
> a ` before the "(article" part.

After quoting with a ' (not a `) and removing the comma before the
`cond', this does exactly what I was looking for. I now have the
following in my .gnus file:

  ;;; 2018-09-12 Arrange for Gnus to place BBDB window sensibly.
  (add-to-list 'gnus-window-to-buffer
	       `(bbdb-gnus . "*BBDB*"))
  (gnus-add-configuration
   '(article
     (cond
      (gnus-use-trees
       '(vertical 1.0
		  (summary 0.25 point)
		  (tree 0.25)
		  (horizontal 1.0
			      (article 1.0)
			      (bbdb-gnus 0.4))))
      (t
       '(vertical 1.0
		  (summary 0.25 point)
		  (horizontal 1.0
			      (article 1.0)
			      (bbdb-gnus 0.4)))))))


However, it seems odd to be able to get this:

  +-------------------------------+
  |                               |
  |           Summary             |
  |                               |
  +-------------------------------+
  |                               |
  |                               |
  |           Article             |
  |                               |
  |                               |
  |-------------------------------|
  |            BBDB               |
  +-------------------------------+
  
and this:

  +-------------------------------+
  |                   |           |
  |      Summary      |   BBDB    |
  |                   |           |
  +-------------------------------+
  |                               |
  |                               |
  |                               |
  |            Article            |
  |                               |
  |                               |
  |                               |
  +-------------------------------+

simply by customizing the variable `bbdb-mua-pop-up', but in order
to get

  +-------------------------------+
  |                               |
  |           Summary             |
  |                               |
  +-------------------------------+
  |                   |           |
  |                   |           |
  |                   |           |
  |      Article      |   BBDB    |
  |                   |           |
  |                   |           |
  |                   |           |
  +-------------------------------+

the user has to do some fairly heavy-duty configuration in Gnus. I'm
impressed by the power of this feature in Gnus, but it feels like
overkill for a case like this.

It seems to me that what is really needed is a new function or three.

Currently `bbdb-pop-up-window' uses `split-window' to display its
window. The problem here is that `split-window' takes a WINDOW
argument so BBDB first has to figure out which window to split.

If there was a function (frame-split-biggest-window FRAME SIZE SIDE
PIXELWISE) to split the "biggest" [*] window in the frame, then
neither BBDB nor any other Elisp code would need to keep reinventing
this wheel.

(The other two functions, more for interactive use, would be
`frame-split-biggest-window-below' and
`frame-split-biggest-window-right'.)

[*] To find the "biggest" window when splitting below, find the
tallest window or windows and split the widest of them; when
splitting right, find the widest window or windows and split the
tallest of them.




  reply	other threads:[~2018-09-12 23:21 UTC|newest]

Thread overview: 31+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-09-11 20:31 customize location and shape of a new window in a frame Roland Winkler
2018-09-11 21:22 ` Eric Abrahamsen
2018-09-12 19:36   ` N. Jackson
2018-09-12 20:12     ` Eric Abrahamsen
2018-09-12 23:21       ` N. Jackson [this message]
2018-09-13  7:45         ` Suggesting `frame-split-biggest-window' " martin rudalics
2018-09-13 13:07           ` N. Jackson
2018-09-14  8:31             ` martin rudalics
2018-09-13 16:33           ` Eric Abrahamsen
2018-09-14  8:33             ` martin rudalics
2018-09-14 16:56               ` Eric Abrahamsen
2018-09-15  8:17                 ` martin rudalics
2018-09-14  5:17           ` Roland Winkler
2018-09-14  8:33             ` martin rudalics
2018-09-14 12:01               ` Stefan Monnier
2018-09-15  4:12                 ` Roland Winkler
2018-09-15  4:58                   ` Drew Adams
2018-09-15  8:18                   ` martin rudalics
2018-09-15 16:34                     ` Roland Winkler
2018-09-15 18:34                       ` Stefan Monnier
2018-09-15 19:21                         ` Roland Winkler
2018-09-15 12:24                 ` N. Jackson
2018-09-15 14:56                   ` Stefan Monnier
2018-09-15  0:46               ` Richard Stallman
2018-09-15  8:17                 ` martin rudalics
2018-09-16  3:14                   ` Richard Stallman
2018-09-16 19:05                     ` John Yates
2018-09-16 19:22                       ` Eli Zaretskii
2018-09-16 20:30                       ` Drew Adams
2018-09-13 16:38         ` Eric Abrahamsen
2018-09-12 14:54 ` Stefan Monnier

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=875zzawbd6.fsf_-_@moondust.localdomain \
    --to=nljlistbox2@gmail.com \
    --cc=emacs-devel@gnu.org \
    --cc=eric@ericabrahamsen.net \
    --cc=monnier@iro.umontreal.ca \
    --cc=winkler@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).