summaryrefslogtreecommitdiff
path: root/emacs/.config
diff options
context:
space:
mode:
authorKjetil Orbekk <kj@orbekk.com>2023-04-24 06:49:06 -0400
committerKjetil Orbekk <kj@orbekk.com>2023-04-24 06:52:01 -0400
commitb8579b0dfcecc7fd88d807f1550bcb6a5103f070 (patch)
tree21b64d760ed0dd3960b01cbe128f5ad42ae9cfa1 /emacs/.config
parenteb3b5880bf5d4d3e57f168f2c6b44c2c4548ea5d (diff)
Disable popup buffer handling
Diffstat (limited to 'emacs/.config')
-rw-r--r--emacs/.config/emacs-kj/lisp/kj-popup.el61
1 files changed, 38 insertions, 23 deletions
diff --git a/emacs/.config/emacs-kj/lisp/kj-popup.el b/emacs/.config/emacs-kj/lisp/kj-popup.el
index af448f3..0ac99a5 100644
--- a/emacs/.config/emacs-kj/lisp/kj-popup.el
+++ b/emacs/.config/emacs-kj/lisp/kj-popup.el
@@ -1,10 +1,12 @@
;;; -*- lexical-binding: t; -*-
-(global-set-key (kbd "C-`") #'window-toggle-side-windows)
-(global-set-key (kbd "M-`") #'kj/popup-toggle-override)
-(setq window-sides-slots '(0 0 2 2)) ; 2 right side windows
+;;; Window placement
+;;; TODO: Test popper.el.
+;; (global-set-key (kbd "C-`") #'window-toggle-side-windows)
+;; (global-set-key (kbd "M-`") #'kj/popup-toggle-override)
+;; (setq window-sides-slots '(0 0 2 2)) ; 2 right side windows
(setq switch-to-buffer-obey-display-actions t)
(setq switch-to-buffer-in-dedicated-window 'pop)
-
+(setq even-window-sizes 'width-only)
(defvar kj/popup-override nil)
(defun kj/popup-clear-overrides ()
@@ -55,26 +57,39 @@
kj/popup-override
(kj/popup-buffer-base buffer condition))))
-(setq transient-display-buffer-action
- '(display-buffer-in-best-side
- (slot . -1)
- (inhibit-same-window . t)
- (window-parameters
- (no-other-window . t))))
+;; (setq transient-display-buffer-action
+;; '(display-buffer-in-best-side
+;; (slot . -1)
+;; (inhibit-same-window . t)
+;; (window-parameters
+;; (no-other-window . t))))
+
+(defun kj/display-new-popup (buffer alist)
+ (let ((popup-window
+ (display-buffer-in-direction
+ buffer
+ (append (if (> (frame-width) 160)
+ '((direction . rightmost)
+ (window-width . 80))
+ '((direction . bottom)))))))
+ (set-window-parameter popup-window 'kj/popup t)
+ popup-window))
+
+(defun kj/find-popup-window ()
+ (seq-find
+ (lambda (w)
+ (window-parameter w 'kj/popup))
+ (window-list)))
-(defun display-buffer-in-best-side (buffer alist)
- (display-buffer-in-side-window
- buffer
- (append (if (> (frame-width) 160)
- '((side . right)
- (window-width . 85))
- '((side . bottom)
- (window-height . 0.5)))
- alist)))
+(defun display-popup-buffer (buffer alist)
+ (let ((window (kj/find-popup-window)))
+ (if window
+ (window--display-buffer buffer window 'reuse alist)
+ (kj/display-new-popup buffer alist))))
-(add-to-list 'display-buffer-alist
- `(kj/popup-buffer
- (display-buffer-in-best-side)
- (slot . 0)))
+;; (add-to-list 'display-buffer-alist
+;; `(kj/popup-buffer
+;; (display-popup-buffer)
+;; (slot . 0)))
(provide 'kj-popup)