From bd6c2439f00baa09545abd877899e9e6443456d3 Mon Sep 17 00:00:00 2001 From: Jim Myhrberg Date: Thu, 21 Nov 2024 01:24:10 +0000 Subject: [PATCH] chore(keybinds): replace nearly all global-set-key with general --- core/siren-core-editor.el | 12 +++--------- core/siren-core-init.el | 1 + core/siren-core-keybinds.el | 19 +++++++++++++++++++ core/siren-core-linux.el | 3 ++- core/siren-core-macos.el | 10 ++++++---- core/siren-core-packages.el | 3 --- modules/core/siren-global-keybindings.el | 6 +++--- modules/debugging/siren-debug-map.el | 2 +- modules/navigation/siren-anzu.el | 5 ++--- modules/navigation/siren-goto-symbol.el | 7 ++++--- .../siren-move-beginning-of-line.el | 2 +- modules/projects/siren-ecb.el | 5 +++-- .../text-editing/siren-safe-change-case.el | 5 +++-- modules/text-editing/siren-shift-text.el | 9 +++++---- modules/ui/siren-transparency.el | 7 ++++--- modules/workspaces/siren-workspace-map.el | 2 +- 16 files changed, 58 insertions(+), 40 deletions(-) create mode 100644 core/siren-core-keybinds.el diff --git a/core/siren-core-editor.el b/core/siren-core-editor.el index 355679f..e7bb186 100644 --- a/core/siren-core-editor.el +++ b/core/siren-core-editor.el @@ -76,15 +76,9 @@ (xterm-mouse-mode t) (defun track-mouse (e)) (setq mouse-sel-mode t) - (global-set-key [mouse-4] (lambda () - (interactive) - (scroll-down 1))) - (global-set-key [mouse-5] (lambda () - (interactive) - (scroll-up 1))) - ;; (global-set-key [mouse-4] 'scroll-down-line) - ;; (global-set-key [mouse-5] 'scroll-up-line) - ) + (siren-general-define-key + "" 'scroll-down-line + "" 'scroll-up-line)) ;; enabled change region case commands (put 'upcase-region 'disabled nil) diff --git a/core/siren-core-init.el b/core/siren-core-init.el index d5841d8..7bcaf67 100644 --- a/core/siren-core-init.el +++ b/core/siren-core-init.el @@ -51,6 +51,7 @@ (require 'siren-core-packages) (require 'siren-core-package-overrides) (require 'siren-core-performance) +(require 'siren-core-keybinds) (require 'siren-core-env) (require 'siren-core-ui) (require 'siren-core-editor) diff --git a/core/siren-core-keybinds.el b/core/siren-core-keybinds.el new file mode 100644 index 0000000..8babf8b --- /dev/null +++ b/core/siren-core-keybinds.el @@ -0,0 +1,19 @@ +;;; siren-core-keybinds.el --- jimeh's Emacs Siren: Core keybinds support + +;;; Commentary: + +;; Install and configure packages for working with and managing keybinds. + +;;; Code: + +(use-package general + :demand t + + :preface + (defun siren-general-define-key (&rest args) + "Wrap `general-define-key' in `with-eval-after-load'." + (with-eval-after-load 'general + (apply #'general-define-key args)))) + +(provide 'siren-core-keybinds) +;;; siren-core-keybinds.el ends here diff --git a/core/siren-core-linux.el b/core/siren-core-linux.el index e21b8c0..0dbad6f 100644 --- a/core/siren-core-linux.el +++ b/core/siren-core-linux.el @@ -25,7 +25,8 @@ (set-face-attribute 'default nil :family family :height 90))) ;; Keybindinds -(global-set-key (kbd "s-") 'toggle-frame-fullscreen) +(siren-general-define-key + "s-" 'toggle-frame-fullscreen) ;; Set initial frame to fullscreen when Emacs starts. (add-to-list 'initial-frame-alist '(fullscreen . maximized)) diff --git a/core/siren-core-macos.el b/core/siren-core-macos.el index 2c5a3c9..91422c1 100644 --- a/core/siren-core-macos.el +++ b/core/siren-core-macos.el @@ -63,8 +63,9 @@ If FRAME is nil, it defaults to the currently selected frame." #'siren-toggle-frame-fullscreen-advice)) ;; macOS Fullscreen (requires Emacs 24.4 or later) -(global-set-key (kbd "s-") 'toggle-frame-fullscreen) -(global-set-key (kbd "C-s-") 'toggle-frame-fullscreen) +(siren-general-define-key + "s-" 'toggle-frame-fullscreen + "C-s-" 'toggle-frame-fullscreen) ;; modifier keys ;; (setq mac-command-modifier 'super) @@ -91,8 +92,9 @@ minutes as it's trying to reach 100,000 font size or something crazy." (interactive (list last-input-event))) -(global-set-key (kbd "C-") 'siren-mouse-wheel-text-scale) -(global-set-key (kbd "C-") 'siren-mouse-wheel-text-scale) +(siren-general-define-key + "C-" 'siren-mouse-wheel-text-scale + "C-" 'siren-mouse-wheel-text-scale) (provide 'siren-core-macos) ;;; siren-core-macos.el ends here diff --git a/core/siren-core-packages.el b/core/siren-core-packages.el index 440c9e1..e8fe34b 100644 --- a/core/siren-core-packages.el +++ b/core/siren-core-packages.el @@ -52,8 +52,5 @@ (if (not (fboundp 'use-package)) (straight-use-package 'use-package)) -;; Make general.el keybinding helpers available. -(use-package general) - (provide 'siren-core-packages) ;;; siren-core-packages.el ends here diff --git a/modules/core/siren-global-keybindings.el b/modules/core/siren-global-keybindings.el index 42dd0e3..f33d308 100644 --- a/modules/core/siren-global-keybindings.el +++ b/modules/core/siren-global-keybindings.el @@ -6,7 +6,7 @@ ;;; Code: -(general-define-key +(siren-general-define-key ;; Enable alternative to M-x. "C-x C-m" 'execute-extended-command @@ -47,9 +47,9 @@ ;; Rename current file and buffer "C-c r" 'siren-rename-file-and-buffer) -;; Mac OS X specific keybindings +;; macOS specific keybindings (when (eq system-type 'darwin) - (general-define-key + (siren-general-define-key ;; Move to beginning/end of buffer "s-" 'beginning-of-buffer "s-" 'end-of-buffer diff --git a/modules/debugging/siren-debug-map.el b/modules/debugging/siren-debug-map.el index 79aa2dc..5527a79 100644 --- a/modules/debugging/siren-debug-map.el +++ b/modules/debugging/siren-debug-map.el @@ -8,7 +8,7 @@ ;;; Code: (define-prefix-command 'siren-debug-map) -(general-define-key "C-c -" 'siren-debug-map) +(siren-general-define-key "C-c -" 'siren-debug-map) (provide 'siren-debug-map) ;;; siren-debug-map.el ends here diff --git a/modules/navigation/siren-anzu.el b/modules/navigation/siren-anzu.el index ac8ceb8..50b5ff9 100644 --- a/modules/navigation/siren-anzu.el +++ b/modules/navigation/siren-anzu.el @@ -10,6 +10,8 @@ :general ("C-x C-r" 'anzu-query-replace-regexp) ("M-%" 'anzu-query-replace) + ([remap query-replace] 'anzu-query-replace) + ([remap query-replace-regexp] 'anzu-query-replace-regexp) :custom (anzu-mode-lighter "") @@ -22,9 +24,6 @@ (set-face-attribute 'anzu-mode-line nil :foreground "yellow" :weight 'bold) - (global-set-key [remap query-replace] 'anzu-query-replace) - (global-set-key [remap query-replace-regexp] 'anzu-query-replace-regexp) - (global-anzu-mode +1)) (provide 'siren-anzu) diff --git a/modules/navigation/siren-goto-symbol.el b/modules/navigation/siren-goto-symbol.el index 3ddf667..61dbdbc 100644 --- a/modules/navigation/siren-goto-symbol.el +++ b/modules/navigation/siren-goto-symbol.el @@ -63,9 +63,10 @@ (add-to-list 'name-and-pos (cons (substring-no-properties name) position)))))))) -(global-set-key (kbd "C-t") 'siren-goto-symbol) -(global-set-key (kbd "C-c C-t") 'siren-flush-cache-and-goto-symbol) -(global-set-key (kbd "C-c t") #'imenu-anywhere) +(siren-general-define-key + "C-t" 'siren-goto-symbol + "C-c C-t" 'siren-flush-cache-and-goto-symbol + "C-c t" #'imenu-anywhere) (provide 'siren-goto-symbol) ;;; siren-goto-symbol ends here. diff --git a/modules/navigation/siren-move-beginning-of-line.el b/modules/navigation/siren-move-beginning-of-line.el index 6f58d6b..17f7c14 100644 --- a/modules/navigation/siren-move-beginning-of-line.el +++ b/modules/navigation/siren-move-beginning-of-line.el @@ -32,7 +32,7 @@ Borrowed from: http://emacsredux.com/blog/2013/05/22/smarter-navigation-to-the-b (move-beginning-of-line 1)))) ;; Use siren-move-beginning-of-line -(global-set-key (kbd "C-a") 'siren-move-beginning-of-line) +(siren-general-define-key "C-a" 'siren-move-beginning-of-line) (provide 'siren-move-beginning-of-line) ;;; siren-move-beginning-of-line.el ends here diff --git a/modules/projects/siren-ecb.el b/modules/projects/siren-ecb.el index ccf5cb4..27487df 100644 --- a/modules/projects/siren-ecb.el +++ b/modules/projects/siren-ecb.el @@ -39,8 +39,9 @@ ("\\(^\\(#\\)\\|\\(~$\\|\\.\\(elc\\|obj\\|o\\|class\\|lib\\|dll\\|a\\|so\\|cache\\)$\\)\\)" "^Icon$") ("^\\.\\(emacs\\|gnus\\)$"))))) - (if window-system (ecb-activate)) - (global-set-key (kbd "C-x C-p") 'ecb-toggle-ecb-windows)) + (when window-system + (ecb-activate) + (siren-general-define-key "C-x C-p" 'ecb-toggle-ecb-windows))) (provide 'siren-ecb) ;;; siren-ecb.el ends here diff --git a/modules/text-editing/siren-safe-change-case.el b/modules/text-editing/siren-safe-change-case.el index 8e59d6a..5748074 100644 --- a/modules/text-editing/siren-safe-change-case.el +++ b/modules/text-editing/siren-safe-change-case.el @@ -25,8 +25,9 @@ additional ARGS passed along to `upcase-region'." (when (region-active-p) (apply #'upcase-region beg end args))) -(global-set-key (kbd "C-x C-l") 'downcase-region-only) -(global-set-key (kbd "C-x C-u") 'upcase-region-only) +(siren-general-define-key + "C-x C-l" 'downcase-region-only + "C-x C-u" 'upcase-region-only) (provide 'siren-safe-change-case) ;;; siren-safe-change-case.el ends here diff --git a/modules/text-editing/siren-shift-text.el b/modules/text-editing/siren-shift-text.el index 28b34a6..42ef345 100644 --- a/modules/text-editing/siren-shift-text.el +++ b/modules/text-editing/siren-shift-text.el @@ -21,10 +21,11 @@ A place is considered `tab-width' character columns." (interactive) (siren-shift-right (* -1 (or arg 1)))) -(global-set-key (kbd "C-c [") 'siren-shift-left) -(global-set-key (kbd "C-c ]") 'siren-shift-right) -(global-set-key (kbd "M-{") 'siren-shift-left) -(global-set-key (kbd "M-}") 'siren-shift-right) +(siren-general-define-key + "C-c [" 'siren-shift-left + "C-c ]" 'siren-shift-right + "M-{" 'siren-shift-left + "M-}" 'siren-shift-right) (provide 'siren-shift-text) ;;; siren-shift-text.el ends here diff --git a/modules/ui/siren-transparency.el b/modules/ui/siren-transparency.el index 00609bb..30c32bd 100644 --- a/modules/ui/siren-transparency.el +++ b/modules/ui/siren-transparency.el @@ -48,9 +48,10 @@ (t num)))) ;; Keybindings -(global-set-key (kbd "C-M-|") 'siren-transparency) -(global-set-key (kbd "C-M-<") 'siren-transparency-decrease) -(global-set-key (kbd "C-M->") 'siren-transparency-increase) +(siren-general-define-key + "C-M-|" 'siren-transparency + "C-M-<" 'siren-transparency-decrease + "C-M->" 'siren-transparency-increase) (provide 'siren-transparency) ;;; siren-transparency.el ends here diff --git a/modules/workspaces/siren-workspace-map.el b/modules/workspaces/siren-workspace-map.el index edd1dce..d0dde38 100644 --- a/modules/workspaces/siren-workspace-map.el +++ b/modules/workspaces/siren-workspace-map.el @@ -8,7 +8,7 @@ ;;; Code: (define-prefix-command 'siren-workspace-map) -(general-define-key "C-z" 'siren-workspace-map) +(siren-general-define-key "C-z" 'siren-workspace-map) (provide 'siren-workspace-map) ;;; siren-workspace-map.el ends here