2021-10-29 12:53:37 +02:00
:PROPERTIES:
:ID: 45da0115-42c7-4a9a-9288-c5d840a69b92
:END:
#+title : Popper
#+filetags : emacs-load
2022-07-31 11:03:59 +02:00
# SPDX-FileCopyrightText: 2022 Richard Brežák <richard@brezak.sk>
#
# SPDX-License-Identifier: LGPL-3.0-or-later
2021-10-29 12:53:37 +02:00
Enable ~popper~ , a better version of ~popwin~ , which might actually work. It groups popups by context and allows you to specify their exact positioning, or even a custom display function. It also seems to be better at restoring the previous layout.
#+NAME : popper
#+BEGIN_SRC emacs-lisp
(use-package popper
:straight (popper :type git :host github :repo "karthink/popper")
:init
(setq popper-reference-buffers
'("\\*Messages\\* "
"\\*Warnings\\* "
"Output\\*$"
2022-01-10 01:21:14 +01:00
"\\*HS-Error\\* "
2021-10-29 12:53:37 +02:00
help-mode
compilation-mode
rustic-compilation-mode
tex-shell))
(popper-mode +1))
#+END_SRC
2022-10-27 13:23:37 +02:00
Add a [[id:db1d0122-58d6-4dec-84f6-afcb52937fc7 ][consult ]] source for popped buffers.
#+begin_src emacs-lisp
(with-eval-after-load consult
(setq magic_rb/consult-source-popper
`(:name "popper"
:narrow ?P
:category buffer
:face consult-buffer
:history buffer-name-history
:state consult--buffer-state
:items
(lambda ()
(let ((group-name (when popper-group-function
(with-current-buffer buf (funcall popper-group-function)))))
(mapcar #'buffer-name
(append
(mapcar #'cdr (alist-get group-name popper-buried-popup-alist))
(mapcar #'cdr (alist-get group-name popper-open-popup-alist))))))))
(add-to-list 'consult-buffer-sources 'magic_rb/consult-source-popper 'append))
#+end_src
Force user buffer switching to also obey ~display-buffer-alist~ .
#+begin_src emacs-lisp
(setq switch-to-buffer-obey-display-actions t)
#+end_src