summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbd <bdunahu@operationnull.com>2024-05-30 02:58:02 -0600
committerbd <bdunahu@operationnull.com>2024-05-30 02:58:02 -0600
commit465f6ce989b92b7aa4a3353be564c401b11bcae5 (patch)
tree3b33fe0e28132de77004d91f6224ad682fb62551
parent247aff4d997b0b1ad106f1dee00c69a4c39bfab9 (diff)
display-buffer-alist rules -> shackle
-rw-r--r--.config/emacs/init.el3
-rw-r--r--.config/emacs/modules/bd--devel.el5
-rw-r--r--.config/emacs/modules/bd--emms.el9
-rw-r--r--.config/emacs/modules/bd--essential-windowing.el57
-rw-r--r--.config/emacs/modules/bd--essentials.el2
-rw-r--r--.config/emacs/modules/bd--popper.el44
-rw-r--r--.config/emacs/modules/bd--windows.el120
-rw-r--r--.config/guix/modules/base.scm1
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"