Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

pop-up bottom window for temporary buffers

21 views
Skip to first unread message

Dan Kruchinin

unread,
Feb 19, 2011, 6:34:32 PM2/19/11
to help-gn...@gnu.org
Hi, list.

I would like to have a pop-up bottom window for temporary buffers like
compilation, Completions, etc. It should split-vertically the whole
frame even if root window was split horizontally.
For example: Before M-x compile:

+------+------+
| | |
| | |
| | |
+------+------+
After:

+------+------+
| | |
+------+------+
| |
+------+------+

I.e. it should be something like ecb-compilation-window, but without
ECB because I don't want to use ECB and CEDET. Actually I see two ways
to make described behavior but both have their drawbacks.

1) Use split-root.el or popwin-el modules.
Drawback: they use delete-other-windows function and then rebuild
previous windows tree after root window is split as required. They
invalidate all references to existed earlier windows in your code(or
code of any module).
For example it's hard to make elscreen module to work with
them(because elscreen saves current-window-configuration and then
creates another one).

2) Set window-min-height variable to its minimal possible value(1) and
call split-window-vertically during emacs startup minimizing window
height after it's created. Then use this window for temporary buffers
setting its height as required.
Drawbacks: Small annoying window with annoying modeline on the bottom
of the frame, doesn't work with emacs --daemon.

Are there more elegant ways to do that without drawbacks?
P/S: please CC me, I'm not subscribed to this list.

--
W.B.R.
Dan Kruchinin

martin rudalics

unread,
Feb 23, 2011, 2:21:49 AM2/23/11
to dkruc...@acm.org, help-gn...@gnu.org
> I would like to have a pop-up bottom window for temporary buffers like
> compilation, Completions, etc. It should split-vertically the whole
> frame even if root window was split horizontally.
> For example: Before M-x compile:
>
> +------+------+
> | | |
> | | |
> | | |
> +------+------+
> After:
>
> +------+------+
> | | |
> +------+------+
> | |
> +------+------+
>
> I.e. it should be something like ecb-compilation-window, but without
> ECB because I don't want to use ECB and CEDET. Actually I see two ways
> to make described behavior but both have their drawbacks.
>
> 1) Use split-root.el or popwin-el modules.
> Drawback: they use delete-other-windows function and then rebuild
> previous windows tree after root window is split as required. They
> invalidate all references to existed earlier windows in your code(or
> code of any module).

In fact these also break overlays with a window property.

> For example it's hard to make elscreen module to work with
> them(because elscreen saves current-window-configuration and then
> creates another one).
>
> 2) Set window-min-height variable to its minimal possible value(1) and
> call split-window-vertically during emacs startup minimizing window
> height after it's created. Then use this window for temporary buffers
> setting its height as required.
> Drawbacks: Small annoying window with annoying modeline on the bottom
> of the frame, doesn't work with emacs --daemon.

You can get rid of the modeline but you can't get rid of the one-line
window because Emacs doesn't allow zero height windows.

> Are there more elegant ways to do that without drawbacks?

If you have bazaar installed try doing something like

bzr branch bzr://bzr.savannah.gnu.org/emacs/window-pub window-pub

Then you can pop up an arbitrary number of windows on any side of a
frame.

martin

0 new messages