From 786f81fbfebb949c3ef61e9c79c3fbf3dc7ec9b8 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 diff --git a/modules/popper-config.el b/modules/popper-config.el new file mode 100644 index 00000000..b0f503e8 --- /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