Hello!

On 13.11.21 14:15, Max Nikulin wrote:
Some users prefers multiple frames, others multiple windows in a full-screen 
frame. Could you, please, briefly describe what kind of behavior you are truing 
to achieve?

My thought is that I have a perfectly good window manager that allows me to 
manage Emacs frames. This removes the need for things to improve window 
switching (such as winner, which I used previously). Popping up frames to show 
multiple things at the same time integrates well with my WM, and doesn't force 
me to remap things like `C-x o`, which I find cumbersome to use. There are 
packages that make window switching easier, but I've already configured my 
window manager. Thus, I prefer to have my window manager manage Emacs frames, 
instead of adding yet another way to switch between multiple things being 
displayed at the same time, which I would have to do using Emacs windows.

My current configuration is as follows:

(setq display-buffer-base-action '((display-buffer-reuse-window 
display-buffer-pop-up-frame)

                                   (reusable-frames . 0)))

(setq display-buffer-alist

      `(("\\*Packages\\*" display-buffer-pop-up-frame)

        ("\\*stdin.*\\*" display-buffer-same-window)

        ("\\*Help\\*" display-buffer-pop-up-frame)

        ("\\*.*\\*" display-buffer-pop-up-window)))

This allows me to pop up normal frames for regular buffers, and have special buffers pop 
up in windows to fix the "focus stealing" behavior mentioned above.

The central problem with popping up frames is focus stealing: Things such as 
undo-tree or embark don't deal well with having the focus stolen from the 
current buffer by a new frame, which is why I needed to configure 
`display-buffer-alist`.

Some Org buffers, in my opinion, should behave similarly to completion list. On 
the other hand `minibuffer-completion-help' does not use 
`display-buffer-overrining-action'. I do not like that this variable has higher 
priority than `display-buffer-alist'. Action argument of `display-buffer' is 
more appropriate since it keeps ability to customize placement of buffers with 
particular names through `display-buffer-alist'.

I don't fully understand the `display-buffer-alist` definition, and copied 
mostly from the documentation examples.

I hope this helps.

Best regards,
Jan


PS: Sorry for the empty mail I sent previously.

Reply via email to