summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/bd--window.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/modules/bd--window.el')
-rw-r--r--.config/emacs/modules/bd--window.el61
1 files changed, 61 insertions, 0 deletions
diff --git a/.config/emacs/modules/bd--window.el b/.config/emacs/modules/bd--window.el
new file mode 100644
index 0000000..b0eecf0
--- /dev/null
+++ b/.config/emacs/modules/bd--window.el
@@ -0,0 +1,61 @@
+;;; -*- 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))
+
+(setopt switch-to-buffer-obey-display-actions t
+ switch-to-buffer-in-dedicated-window 'pop)
+(add-to-list 'display-buffer-alist
+ '("^\\*Async Shell Command\\*.*$"
+ (display-buffer-no-window)))
+
+(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--window)
+;;; bd--window.el ends here