summaryrefslogtreecommitdiff
path: root/modules/popper-config.el
diff options
context:
space:
mode:
Diffstat (limited to 'modules/popper-config.el')
-rw-r--r--modules/popper-config.el41
1 files changed, 41 insertions, 0 deletions
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 <c@cjennings.net>
+;;
+;;; 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.