blob: 986a932b90595f0ababe4e4573482debac099ea3 (
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
|
;;; -*- lexical-binding: t; -*-
;;; Commentary:
;;; Code:
(require 'transient)
(use-package autorevert
:init
(global-auto-revert-mode)
:config
(setopt global-auto-revert-non-file-buffers t
auto-revert-interval 30))
(use-package shackle
:demand t
:config
(shackle-mode)
(setopt switch-to-buffer-obey-display-actions t
shackle-rules
'(
;; native
(compilation-mode :select nil :align bottom :size 0.2)
(completion-list-mode :select nil :align bottom :size 0.1)
("^\\*Async Shell Command\\*.*$" :regexp t :ignore t)
;; magit
(magit-status-mode :select t :align bottom :size 0.3)
(magit-diff-mode :select nil :align right :size 0.3)
;; emms
(emms-playlist-mode :select t :align left :size 0.2)
)))
(defun bd/layout--do-with-haste (f)
(let* ((args (transient-args 'bd/layout-dispatcher))
(haste (if (member "haste" args) 3 1)))
(funcall f haste)))
(transient-define-prefix bd/layout-dispatcher ()
["Dispatcher > Layout\n"
["Infixes"
("s" "haste" "haste")]]
[["Commands"
("-" "text decrease"
(lambda () (interactive) (bd/layout--do-with-haste #'text-scale-decrease))
:transient t)
("=" "text increase"
(lambda () (interactive) (bd/layout--do-with-haste #'text-scale-increase))
:transient t)
("b" "narrow"
(lambda () (interactive) (bd/layout--do-with-haste #'shrink-window-horizontally))
:transient t)
("f" "widen"
(lambda () (interactive) (bd/layout--do-with-haste #'enlarge-window-horizontally))
:transient t)
("p" "shrink"
(lambda () (interactive) (bd/layout--do-with-haste #'shrink-window))
:transient t)
("n" "enlarge"
(lambda () (interactive) (bd/layout--do-with-haste #'enlarge-window))
:transient t)
("|" "balance" balance-windows)]
[""
("N" "shift down" windmove-swap-states-down :transient t)
("P" "shift up" windmove-swap-states-up :transient t)
("F" "shift right" windmove-swap-states-right :transient t)
("B" "shift left" windmove-swap-states-left :transient t)]
[""
("a" "alpha" bd/set-frame-alpha)
("w" "wallpaper" bd/set-bg)]])
(keymap-global-set "C-c w" #'bd/layout-dispatcher)
(provide 'bd--buffers)
;;; bd--buffers.el ends here
|