aboutsummaryrefslogtreecommitdiff
path: root/bard-emacs-modules/bard-emacs-window.el
blob: 16c386fed6ee0a332368e018347562f9bb7b5fda (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
(require 'bard-window)

(use-package emacs
  ;; configuration for window splits/window sizes
  :config
  (setq focus-follows-mouse t)
  (setq mouse-autoselect-window t)
  (setq window-combination-resize t)
  (setq even-window-sizes 'height-only)
  (setq window-sides-vertical nil)
  (setq switch-to-buffer-in-dedicated-window 'pop)
  (setq split-height-threshold 80)
  (setq split-width-threshold 125)
  (setq window-min-height 3)
  (setq window-min-width 30))

(use-package eyebrowse
  :ensure t
  :config
  (eyebrowse-mode t)
  :bind*
  (("M-0" . eyebrowse-switch-to-window-config-0)
   ("M-1" . eyebrowse-switch-to-window-config-1)
   ("M-2" . eyebrowse-switch-to-window-config-2)
   ("M-3" . eyebrowse-switch-to-window-config-3)
   ("M-4" . eyebrowse-switch-to-window-config-4)
   ("M-5" . eyebrowse-switch-to-window-config-5)
   ("M-6" . eyebrowse-switch-to-window-config-6)
   ("M-7" . eyebrowse-switch-to-window-config-7)
   ("M-8" . eyebrowse-switch-to-window-config-8)
   ("M-9" . eyebrowse-switch-to-window-config-9)))

(use-package bufferbin
  :ensure t
  :bind
  (("C-c b" . bufferbin))
  :config
  (add-to-list 'bufferbin-ignore-regex "^*")
  (dolist (fonts '((org-mode . prot-modeline-indicator-yellow-bg)
                   (emacs-lisp-mode . prot-modeline-indicator-magenta-bg)
                   (lisp-mode . prot-modeline-indicator-magenta-bg)
                   (scheme-mode . prot-modeline-indicator-magenta-bg)
                   (haskell-mode . prot-modeline-indicator-magenta-bg)
                   (c-mode . prot-modeline-indicator-magenta-bg)
                   (c++-mode . prot-modeline-indicator-magenta-bg)))
    (add-to-list 'bufferbin-mode-fonts fonts)))

(use-package windmove
  :bind*
  (("C-M-<up>" . windmove-up)
   ("C-M-<right>" . windmove-right)
   ("C-M-<down>" . windmove-down)
   ("C-M-<left>" . windmove-left)
   ("C-M-S-<up>" . windmove-swap-states-up)
   ("C-M-S-<right>" . windmove-swap-states-right)
   ("C-M-S-<down>" . windmove-swap-states-down)
   ("C-M-S-<left>" . windmove-swap-states-left)))

(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: .*"
	       (display-buffer-same-window)
	       (inhibit-same-window . nil)
	       (dedicated . t))
	      ("\\*Org Agenda\\*"
	       (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)
           (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.*\\).*"
                  prot-window-shell-or-term-p
                  ,world-clock-buffer-name))
           (prot-window-display-buffer-below-or-pop)
           (body-function . prot-window-select-fit-size))
	      ))
  )

(use-package winner-mode
  :init
  (winner-mode 1)
  :bind
  (("C-x <right>" . winner-redo)
   ("C-x <left>" . winner-undo)
   ("C-x C-n" . next-buffer)
   ("C-x C-p" . previous-buffer)
   ("C-x <up>" . next-buffer)
   ("C-x <down>" . previous-buffer)))

(provide 'bard-emacs-window)
;;; bard-emacs-window.el ends here