diff options
Diffstat (limited to '.config/emacs/modules/bd--windows.el')
-rw-r--r-- | .config/emacs/modules/bd--windows.el | 120 |
1 files changed, 120 insertions, 0 deletions
diff --git a/.config/emacs/modules/bd--windows.el b/.config/emacs/modules/bd--windows.el new file mode 100644 index 0000000..8d5f410 --- /dev/null +++ b/.config/emacs/modules/bd--windows.el @@ -0,0 +1,120 @@ +;; -*- lexical-binding: t; -*- + + +;;;; defaults +(menu-bar-mode -1) +(tool-bar-mode -1) +(scroll-bar-mode -1) + +;; no fringe +(fringe-mode '(0 . 0)) + +(defvar-keymap bd/windmove + :repeat t + "b" #'windmove-left + "n" #'windmove-down + "f" #'windmove-right + "p" #'windmove-up + "B" #'windmove-swap-states-left + "N" #'windmove-swap-states-down + "F" #'windmove-swap-states-right + "P" #'windmove-swap-states-up) + +(keymap-global-set "H-o" bd/windmove) +(repeat-mode 1) + + +;; 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)))) + +;; alpha +(defun bd/clamp (lower-bound upper-bound value) + (max lower-bound (min value upper-bound))) + +(defun set-frame-alpha (value) + "Sets the transparency of the frame background. 0=transparent/100=opaque" + (interactive "nTransparency Value (30 - 100 opaque): ") + (setq value (bd/clamp 30 100 value)) + (set-frame-parameter (selected-frame) 'alpha `(,value . ,value)) + (message "Alpha set to %d" value)) +(add-to-list 'default-frame-alist '(alpha . (82 . 82))) + + +(require 'project) +;;;; popper +(use-package popper + :demand t + :bind (("C-`" . 'popper-toggle-latest) + ("M-`" . 'popper-cycle) + ("C-M-`" . popper-toggle-type)) + :config + (popper-mode) + (popper-echo-mode) + :custom + (popper-reference-buffers + '( + ;; native + ("\\*Async Shell Command\\*.*" . hide) + compilation-mode + help-mode + messages-buffer-mode + occur-mode + ("Output\\*$" . hide) + ;; info + Info-mode + "^\\*slime-description.*\\*$" + ;; repls + geiser-repl-mode + slime-repl-mode + ;; shells + "^\\*eshell.*\\*$" eshell-mode + "^\\*shell.*\\*$" shell-mode + "^\\*term.*\\*$" term-mode + ;; magit + magit-diff-mode + magit-status-mode + ;; emms + emms-playlist-mode + )) + (popper-display-control 'nil) + (popper-mode-line '(:eval (propertize " P" 'face 'mode-line-emphasis))) + (popper-group-function #'popper-group-by-project)) + + +;;;; shackle +(use-package shackle + :demand t + :config + (shackle-mode) + :custom + (shackle-rules '( + ;; native + (compilation-mode :noselect t) + ;; info + (Info-mode :select t :align left) + ("^\\*slime-description.*\\*$" :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-diff-mode :noselect t :size 0.3) + ;; emms + (emms-playlist-mode :select t :align left :size 0.2) + )) + (shackle-default-rule '(:select t :size 0.5))) + + +(provide 'bd--windows) |