;;; -*- lexical-binding: t; -*- ;;; Commentary: ;;; Code: (require 'transient) (use-package autorevert :init (global-auto-revert-mode) :custom (global-auto-revert-non-file-buffers t) (auto-revert-interval 30)) (use-package shackle :demand t :config (shackle-mode) :custom (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) ))) (add-to-list 'default-frame-alist '(alpha . (92 . 92))) (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