all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: martin rudalics <rudalics@gmx.at>
To: "N. Jackson" <nljlistbox2@gmail.com>,
	 Eric Abrahamsen <eric@ericabrahamsen.net>
Cc: emacs-devel@gnu.org, Roland Winkler <winkler@gnu.org>,
	Stefan Monnier <monnier@iro.umontreal.ca>
Subject: Re: Suggesting `frame-split-biggest-window' Re: customize location and shape of a new window in a frame
Date: Thu, 13 Sep 2018 09:45:29 +0200	[thread overview]
Message-ID: <5B9A1599.2060800@gmx.at> (raw)
In-Reply-To: <875zzawbd6.fsf_-_@moondust.localdomain>

 > 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.

We have a number of options for that.  One of them is the option
'split-window-preferred-function' (a misnomer) which is by default set
to 'split-window-sensibly'.  Consult their definitions first.  The
latter's behavior is guided by the options 'split-height-threshold'
and 'split-width-threshold' (two more misnomers) .  Together, these
should provide a boilerplate for writing your own function which you
can then put into 'display-buffer-alist'.

One functionality Emacs is sadly lacking is that of orderly setting up
and saving compositions of windows in form of a rectangle.  Eclipse
calls these "perspectives", in Emacs the concept of "window state"
comes most closely.  Currently, you have to set up such a state by
using a sequence of 'split-window' calls which requires to know the
intrinsics of window splitting, the relationship of parent and child
windows, window combinations and the like.  Using 'display-buffer' for
setting up states will hardly produce good results.

It would be nice to have some sort of basic, prefabricated layouts
like the ones you sketched and choose from them (though a four window
layout with a different window in each corner of them frame would
still require to know whether the root window is a vertical or
horizontal combination).  But I have no good idea yet which layout
types are really needed and how to provide a suitable interface for
accessing them.  IIRC the "Emacs IDE" had provisions for them but I
have not heard from its developers for years.

martin



  reply	other threads:[~2018-09-13  7:45 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       ` Suggesting `frame-split-biggest-window' " N. Jackson
2018-09-13  7:45         ` martin rudalics [this message]
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

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=5B9A1599.2060800@gmx.at \
    --to=rudalics@gmx.at \
    --cc=emacs-devel@gnu.org \
    --cc=eric@ericabrahamsen.net \
    --cc=monnier@iro.umontreal.ca \
    --cc=nljlistbox2@gmail.com \
    --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 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.