summaryrefslogtreecommitdiff
path: root/.config/emacs/modules/bd--windows.el
diff options
context:
space:
mode:
Diffstat (limited to '.config/emacs/modules/bd--windows.el')
-rw-r--r--.config/emacs/modules/bd--windows.el120
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)