diff options
Diffstat (limited to 'bard-emacs-modules/bard-emacs-window.el')
| -rw-r--r-- | bard-emacs-modules/bard-emacs-window.el | 118 |
1 files changed, 75 insertions, 43 deletions
diff --git a/bard-emacs-modules/bard-emacs-window.el b/bard-emacs-modules/bard-emacs-window.el index 529f689..665b0b3 100644 --- a/bard-emacs-modules/bard-emacs-window.el +++ b/bard-emacs-modules/bard-emacs-window.el @@ -14,22 +14,6 @@ (setq window-min-height 3) (setq window-min-width 30)) -(use-package winum - :ensure t - :bind - (("M-1" . winum-select-window-1) - ("M-2" . winum-select-window-2) - ("M-3" . winum-select-window-3) - ("M-4" . winum-select-window-4) - ("M-5" . winum-select-window-5) - ("M-6" . winum-select-window-6) - ("M-7" . winum-select-window-7) - ("M-8" . winum-select-window-8) - ("M-9" . winum-select-window-9)) - :config - (setq winum-scope 'frame-local) - ) - (use-package windmove :bind* (("C-M-<up>" . windmove-up) @@ -44,16 +28,29 @@ (use-package emacs :config (setq display-buffer-alist - `(("\\`\\*Async Shell Command\\*\\'" - (display-buffer-no-window)) - ("\\`\\*\\(Warnings\\|Compile-Log\\|tex-shell\\)\\*\\'" - (display-buffer-no-window) - (allow-no-window . t)) - ("\\*\\(Calendar\\|wclock\\).*" - (display-buffer-reuse-mode-window display-buffer-below-selected) - (dedicated . t) - (window-height . fit-window-to-buffer)) - ("\\magit: .*" + `(;; no window + ("\\`\\*Async Shell Command\\*\\'" + (display-buffer-no-window)) + ("\\`\\*\\(Warnings\\|Compile-Log\\|Org Links\\)\\*\\'" + (display-buffer-no-window) + (allow-no-window . t)) + ;; bottom side window + ("\\*Org \\(Select\\|Note\\)\\*" ; the `org-capture' key selection and `org-add-log-note' + (display-buffer-in-side-window) + (dedicated . t) + (side . bottom) + (slot . 0) + (window-parameters . ((mode-line-format . none)))) + ;; bottom buffer (NOT side window) + ((or . ((derived-mode . flymake-diagnostics-buffer-mode) + (derived-mode . flymake-project-diagnostics-mode) + (derived-mode . messages-buffer-mode) + (derived-mode . backtrace-mode))) + (display-buffer-reuse-mode-window display-buffer-at-bottom) + (window-height . 0.3) + (dedicated . t) + (preserve-size . (t . t))) + ("\\magit: .*" (display-buffer-same-window) (inhibit-same-window . nil) (dedicated . t)) @@ -61,38 +58,73 @@ (display-buffer-same-window) (inhibit-same-window . nil) (dedicated . t)) - ("\\*Embark Actions\\*" + ("\\*cfw-calendar\\*" + (display-buffer-same-window) + (inhibit-same-window . nil) + (dedicated . t)) + ("\\*Embark Actions\\*" (display-buffer-reuse-mode-window display-buffer-below-selected) (window-height . fit-window-to-buffer) (window-parameters . ((no-other-window . t) (mode-line-format . none)))) - ("\\(\\*Capture\\*\\|CAPTURE-.*\\)" - (display-buffer-reuse-mode-window display-buffer-below-selected)) - ;; error stuff - ((or . ((derived-mode . flymake-diagnostics-buffer-mode) - (derived-mode . flymake-project-diagnostics-mode) - (derived-mode . messages-buffer-mode) - (derived-mode . backtrace-mode) - (derived-mode . cider-stacktrace-mode))) - (display-buffer-reuse-mode-window display-buffer-at-bottom) - (window-height . 0.3) + ("\\*\\(Output\\|Register Preview\\).*" + (display-buffer-reuse-mode-window display-buffer-at-bottom)) + ;; below current window + ("\\(\\*Capture\\*\\|CAPTURE-.*\\)" + (display-buffer-in-side-window) + (dedicated . t) + (side . bottom) + (slot . 0) + (window-parameters . ((mode-line-format . none)))) + ("\\*\\vc-\\(incoming\\|outgoing\\|git : \\).*" + (display-buffer-reuse-mode-window display-buffer-below-selected) + (window-height . 0.1) (dedicated . t) (preserve-size . (t . t))) - - ((or . ((derived-mode . occur-mode) + ((derived-mode . reb-mode) ; M-x re-builder + (display-buffer-reuse-mode-window display-buffer-below-selected) + (window-height . 4) ; note this is literal lines, not relative + (dedicated . t) + (preserve-size . (t . t))) + ((or . ((derived-mode . occur-mode) (derived-mode . grep-mode) - (derived-mode . Man-mode) (derived-mode . Buffer-menu-mode) (derived-mode . log-view-mode) (derived-mode . help-mode) ; See the hooks for `visual-line-mode' - "\\*\\(|Buffer List\\|Occur\\|Man.*\\|Org Select\\|vc-change-log\\|eldoc.*\\).*" + "\\*\\(|Buffer List\\|Occur\\|vc-change-log\\|eldoc.*\\).*" prot-window-shell-or-term-p - ,world-clock-buffer-name)) + ;; ,world-clock-buffer-name + )) (prot-window-display-buffer-below-or-pop) (body-function . prot-window-select-fit-size)) - )) + ("\\*\\(Calendar\\|Bookmark Annotation\\|ert\\).*" + (display-buffer-reuse-mode-window display-buffer-below-selected) + (dedicated . t) + (window-height . fit-window-to-buffer)) + ;; NOTE 2022-09-10: The following is for `ispell-word', though + ;; it only works because I override `ispell-display-buffer' + ;; with `prot-spell-ispell-display-buffer' and change the + ;; value of `ispell-choices-buffer'. + ("\\*ispell-top-choices\\*.*" + (display-buffer-reuse-mode-window display-buffer-below-selected) + (window-height . fit-window-to-buffer)) + ;; same window + + ;; NOTE 2023-02-17: `man' does not fully obey the + ;; `display-buffer-alist'. It works for new frames and for + ;; `display-buffer-below-selected', but otherwise is + ;; unpredictable. See `Man-notify-method'. + ((or . ((derived-mode . Man-mode) + (derived-mode . woman-mode) + "\\*\\(Man\\|woman\\).*")) + (display-buffer-same-window)))) ) +(use-package frame + :ensure nil + :bind ("C-x u" . undelete-frame) ; I use only C-/ for `undo' + :hook (after-init . undelete-frame-mode)) + (use-package winner-mode :init (winner-mode 1) |
