In a 2 window setup, is there a way to make all temporary popup buffers (help, compile, occur, etc) always open in a specific window?

For example, I have a left and right window. I do most of my work in the left window. When I lookup something in help it opens in the right window which is what I want.

But let’s say I’m in the right window already and look up help, it will open in the left window. Is there a way to make it always open in the right?

  • nv-elisp@alien.topB
    link
    fedilink
    English
    arrow-up
    2
    ·
    1 year ago

    Customize display-buffer-alist to your liking. There is an Emacs manual section devoted to it as well as several online tutorials.

    • 7890yuiop@alien.topB
      link
      fedilink
      English
      arrow-up
      1
      ·
      1 year ago

      The display-buffer-reuse-mode-window action may be convenient for this use-case.

      Many of your modes-of-interest will be derivatives of special-mode so you may (or may not) find that specifying that as a catch-all is particularly useful.

  • olikn@alien.topB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    I am looking for something similar, I also do my edits in the left window, if I open a read-only buffer (man page, help, helpfull, info …) I would prefer it will always open on the right side. I can’t help you, but I hope someone else can.

  • Tibblediggins@alien.topOPB
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 year ago

    Thank you all for tips. My elisp skills are pretty poor so I’m having trouble figuring out how to make this work, even copying examples online. For example:

    (add-to-list 'display-buffer-alist '("*help*"
                                         (display-buffer-reuse-window)
                                         (display-buffer-in-side-window . ((side . right)
                                                                           (window-width . 0.5)))))
    
    (add-to-list 'display-buffer-alist '("*info*"
                                         (display-buffer-reuse-window)
                                         (display-buffer-in-side-window . ((side . right)
                                                                           (window-width . 0.5)))))
    

    With that in my init.el, if I open emacs and look up “help” it creates a new window on the right, which is the default behavior so I can’t say for sure if the code is doing anything. If I select a link in the help file (like the manual) that opens “info” it opens it back in the left window.

    What am I doing wrong here?