From 11d4a2fe8cfc5dd9de97d79c3df8a982af9e5f4d Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Wed, 22 Oct 2025 12:40:35 -0500 Subject: feat: modules: Add popper-config for popup window management Introduce popper-config.el to manage secondary buffers as popup windows using popper.el. This configuration includes keybindings for toggling, cycling, and promoting popups, and sets up popper with specific buffer references and display settings. This enhances the user experience by managing secondary buffers efficiently. --- modules/popper-config.el | 41 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100644 modules/popper-config.el (limited to 'modules/popper-config.el') diff --git a/modules/popper-config.el b/modules/popper-config.el new file mode 100644 index 000000000..b0f503e8f --- /dev/null +++ b/modules/popper-config.el @@ -0,0 +1,41 @@ +;;; popper-config.el --- secondary buffers to popup -*- lexical-binding: t; coding: utf-8; -*- +;; author: Craig Jennings +;; +;;; Commentary: +;; +;; Configuration for popper.el, which manages secondary buffers as popup windows. +;; Popup buffers (like *Messages*, help, and compilation output) are displayed in +;; a dedicated bottom window and can be easily toggled, cycled, or promoted to +;; regular windows. +;; +;; Keybindings: +;; C-` - Toggle popup window visibility +;; M-` - Cycle through open popup buffers +;; C-M-` - Promote popup to regular window or demote back to popup +;; +;;; Code: + +(use-package popper + :bind (("C-`" . popper-toggle) + ("M-`" . popper-cycle) + ("C-M-`" . popper-toggle-type)) + :custom + (popper-display-control-nil) + :init + (setq popper-reference-buffers + '("\\*Messages\\*" + "Output\\*$" + "\\*Async Shell Command\\*" + help-mode + compilation-mode)) + (add-to-list 'display-buffer-alist + '(popper-display-control-p ; Predicate to match popper buffers + (display-buffer-in-side-window) + (side . bottom) + (slot . 0) + (window-height . 0.5))) ; Half the frame height + (popper-mode +1) + (popper-echo-mode +1)) + +(provide 'popper-config) +;;; popper-config.el ends here. -- cgit v1.2.3