dotfiles/emacs-lisp/popper.org
main 74bb8268a7
Make a new cosult source for popped buffers
Signed-off-by: main <magic_rb@redalder.org>
2022-10-29 21:44:27 +02:00

2.2 KiB

Popper

#

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.

  (use-package popper
    :straight (popper :type git :host github :repo "karthink/popper")
    :init
    (setq popper-reference-buffers
          '("\\*Messages\\*"
            "\\*Warnings\\*"
            "\\*Error\\*"
            "Output\\*$"
            "\\*HS-Error\\*"
            "^\\*Ement compose.*\\*$"
            help-mode
            compilation-mode
            rustic-compilation-mode
            tex-shell))
    (popper-mode +1))

Very temporary fix below, fix immediately.

  (setq org-src-window-setup 'other-window)

Add a consult source for popped buffers.

    (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))

Force user buffer switching to also obey display-buffer-alist.

  (setq switch-to-buffer-obey-display-actions t)