diff options
-rw-r--r-- | .config/emacs/init.el | 3 | ||||
-rw-r--r-- | .config/emacs/modules/bd--devel.el | 5 | ||||
-rw-r--r-- | .config/emacs/modules/bd--emms.el | 9 | ||||
-rw-r--r-- | .config/emacs/modules/bd--essential-windowing.el | 57 | ||||
-rw-r--r-- | .config/emacs/modules/bd--essentials.el | 2 | ||||
-rw-r--r-- | .config/emacs/modules/bd--popper.el | 44 | ||||
-rw-r--r-- | .config/emacs/modules/bd--windows.el | 120 | ||||
-rw-r--r-- | .config/guix/modules/base.scm | 1 |
8 files changed, 128 insertions, 113 deletions
diff --git a/.config/emacs/init.el b/.config/emacs/init.el index 203e9dd..b49500e 100644 --- a/.config/emacs/init.el +++ b/.config/emacs/init.el @@ -44,7 +44,6 @@ ;;;; load modules (require 'bd--essentials) -(require 'bd--essential-windowing) (require 'bd--rss) (require 'bd--eww) (require 'bd--tabs) @@ -54,7 +53,7 @@ (require 'bd--erc) (require 'bd--shells) (require 'bd--minibuffer) -(require 'bd--popper) +(require 'bd--windows) (require 'bd--devel) (require 'bd--org) (require 'bd--roam) diff --git a/.config/emacs/modules/bd--devel.el b/.config/emacs/modules/bd--devel.el index c80b5a5..0d694b5 100644 --- a/.config/emacs/modules/bd--devel.el +++ b/.config/emacs/modules/bd--devel.el @@ -75,10 +75,13 @@ to.") :hook prog-mode) (use-package paredit - :hook (lisp-mode + :hook (emacs-lisp-mode + lisp-mode scheme-mode + lisp-interaction-mode ;; REPLs eshell-mode + inferior-emacs-lisp-mode geiser-repl-mode slime-repl-mode)) diff --git a/.config/emacs/modules/bd--emms.el b/.config/emacs/modules/bd--emms.el index b240125..84182ab 100644 --- a/.config/emacs/modules/bd--emms.el +++ b/.config/emacs/modules/bd--emms.el @@ -25,6 +25,8 @@ playback." (if (get-buffer emms-playlist-buffer-name) (display-buffer emms-playlist-buffer-name) (message "The Ainur cannot hear you...")))) + ;; "emms-playlist-mode-bury-buffer" plays poorly with shackle + (keymap-set emms-playlist-mode-map "q" #'quit-window) :custom ;; make sure mpd is configured similarly (emms-player-mpd-server-name "localhost") @@ -38,12 +40,5 @@ playback." (emms-playlist-buffer-name "*Playlist*") (emms-mode-line-icon-enabled-p nil)) -(add-to-list 'display-buffer-alist - `(,emms-playlist-buffer-name - (display-buffer-in-side-window) - (side . left) - (window-width . 45) - (body-function . select-window))) - (provide 'bd--emms) diff --git a/.config/emacs/modules/bd--essential-windowing.el b/.config/emacs/modules/bd--essential-windowing.el deleted file mode 100644 index 64dc8ae..0000000 --- a/.config/emacs/modules/bd--essential-windowing.el +++ /dev/null @@ -1,57 +0,0 @@ -;; -*- lexical-binding: t; -*- - - -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; -;; This file contains sane windowing settings for any ;; -;; environment type. ;; -;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; - - -(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 "C-x 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))) - - -(provide 'bd--essential-windowing) diff --git a/.config/emacs/modules/bd--essentials.el b/.config/emacs/modules/bd--essentials.el index 36d26b0..84d7180 100644 --- a/.config/emacs/modules/bd--essentials.el +++ b/.config/emacs/modules/bd--essentials.el @@ -4,8 +4,6 @@ ;;;; standard bindings (keymap-global-unset "C-z") (keymap-global-unset "C-x C-z") -;; the binding to quit emacs -(keymap-global-unset "C-x C-c") (global-set-key (kbd "C-z =") 'text-scale-increase) (global-set-key (kbd "C-z -") 'text-scale-decrease) diff --git a/.config/emacs/modules/bd--popper.el b/.config/emacs/modules/bd--popper.el deleted file mode 100644 index 5c24a16..0000000 --- a/.config/emacs/modules/bd--popper.el +++ /dev/null @@ -1,44 +0,0 @@ -;; -*- lexical-binding: t; -*- - - -(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 - '(("Output\\*$" . hide) - ("\\*Async Shell Command\\*.*" . hide) - "^\\*slime-description.*\\*$" - "^\\*shell.*\\*$" shell-mode - "^\\*eshell.*\\*$" eshell-mode - "^\\*term.*\\*$" term-mode - messages-buffer-mode - help-mode - Info-mode - occur-mode - compilation-mode - emms-playlist-mode - emms-browser-mode)) - (popper-display-control 't) - (popper-mode-line '(:eval (propertize " P" 'face 'mode-line-emphasis))) - (popper-group-function #'popper-group-by-project)) - - -;;;; buffer defaults for default buffers -(add-to-list 'display-buffer-alist - '((or (derived-mode . term-mode) - (derived-mode . eshell-mode) - (derived-mode . shell-mode)) - (display-buffer-in-side-window) - (side . top) - (window-height . 15))) - - -(provide 'bd--popper) 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) diff --git a/.config/guix/modules/base.scm b/.config/guix/modules/base.scm index 231ab9d..8e91cde 100644 --- a/.config/guix/modules/base.scm +++ b/.config/guix/modules/base.scm @@ -79,6 +79,7 @@ "emacs-popper" "emacs-rainbow-delimiters" "emacs-rainbow-mode" + "emacs-shackle" "emacs-simple-httpd" "emacs-slime" "emacs-transmission" |