;;; -*- lexical-binding: t; -*- ;;; Commentary: ;;; Code: (require 'selector) ;; dedication (defun toggle-current-window-dedication () "Adds or revokes dedicated window status from a buffer. A dedicated buffer will never be automatically orphaned." (interactive) (let* ((window (selected-window)) (dedicated (window-dedicated-p window))) (set-window-dedicated-p window (not dedicated)) (message "Window %sdedicated to %s" (if dedicated "no longer " "") (buffer-name)))) ;; reading mode (defun split-and-follow () (interactive) (delete-other-windows) (split-window-horizontally) (split-window-horizontally) (balance-windows) (other-window -1) (follow-mode 1)) (defun set-frame-alpha (value) "Sets the transparency of the frame background. 0=transparent/100=opaque Due to a bug with guix-packaged emacs, only uses true-transparency on wayland." (interactive "nTransparency Value (30 - 100 opaque): ") (setq value (max 30 (min value 100))) (set-frame-parameter (selected-frame) 'alpha `(,value . ,value)) (message "Alpha set to %d" value)) (add-to-list 'default-frame-alist '(alpha . (92 . 92))) (use-package autorevert :init (global-auto-revert-mode) :custom (global-auto-revert-non-file-buffers t) (auto-revert-interval 30)) (add-to-list 'display-buffer-alist (cons "\\*Async Shell Command\\*.*" (cons #'display-buffer-no-window nil))) (use-package shackle :demand t :config (shackle-mode) :custom (shackle-rules '( ;; native (compilation-mode :select nil :align bottom :size 0.2) (completion-list-mode :select nil :align bottom :size 0.1) ;; info (help-mode :noselect t :align left :size 0.3) (Info-mode :select t :align left :size 0.4) ("^\\*slime-description.*\\*$" :regexp t :select t :align left) ;; repls (geiser-repl-mode :select t :align right) (slime-repl-mode :select t :align right) ;; shells (".*eshell.*\\*$" :regexp t :select t :align above :size 0.3) (".*shell.*\\*$" :regexp t :select t :align above :size 0.3) ("^\\*term.*\\*$" :regexp t :select t :align above :size 0.3) ;; 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) )) (shackle-default-rule '(:select t))) (provide 'bd--buffers) ;;; bd-buffers ends here