diff options
| author | Craig Jennings <c@cjennings.net> | 2026-06-12 10:07:09 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-06-12 10:07:09 -0500 |
| commit | 936c9fd236024d15c317e2a7fdea419e7eff514e (patch) | |
| tree | 0aa1bd13428647c6f507c0a54b1503f202a0ebc8 | |
| parent | 1894dd4f1be82b3aad87d9bc4d90db8b11b25f01 (diff) | |
| download | dotemacs-936c9fd236024d15c317e2a7fdea419e7eff514e.tar.gz dotemacs-936c9fd236024d15c317e2a7fdea419e7eff514e.zip | |
fix(keys): bind eww/elfeed/calibredb launchers to the uppercase Meta event
Meta+Shift+<letter> emits the uppercase event (M-E/M-R/M-B), so the M-S-e/M-S-r/M-S-b :bind specs on lowercase letters were never reached by the keychord and the three launchers were dead. Rebind them to M-E/M-R/M-B. Three ERT tests assert each chord resolves to eww, cj/elfeed-open, and calibredb respectively.
| -rw-r--r-- | modules/calibredb-epub-config.el | 2 | ||||
| -rw-r--r-- | modules/elfeed-config.el | 2 | ||||
| -rw-r--r-- | modules/eww-config.el | 2 | ||||
| -rw-r--r-- | tests/test-launcher-meta-shift-keys.el | 32 |
4 files changed, 35 insertions, 3 deletions
diff --git a/modules/calibredb-epub-config.el b/modules/calibredb-epub-config.el index a17bf8c91..20262e6e4 100644 --- a/modules/calibredb-epub-config.el +++ b/modules/calibredb-epub-config.el @@ -112,7 +112,7 @@ which re-applies `calibredb-search-filter' instead." (use-package calibredb :commands calibredb :bind - ("M-S-b" . calibredb) ;; was M-B, overrides backward-word + ("M-B" . calibredb) ;; Meta+Shift+b emits the uppercase event; overrides backward-word ;; use built-in filter by tag, add clear-filters (:map calibredb-search-mode-map ("l" . calibredb-filter-by-tag) diff --git a/modules/elfeed-config.el b/modules/elfeed-config.el index ad7bda83a..4f4089157 100644 --- a/modules/elfeed-config.el +++ b/modules/elfeed-config.el @@ -33,7 +33,7 @@ (use-package elfeed :bind - ("M-S-r" . cj/elfeed-open) ;; was M-R + ("M-R" . cj/elfeed-open) ;; Meta+Shift+r emits the uppercase event (:map elfeed-show-mode-map ("w" . eww-open-in-new-buffer)) (:map elfeed-search-mode-map diff --git a/modules/eww-config.el b/modules/eww-config.el index 066fae989..18648c1ba 100644 --- a/modules/eww-config.el +++ b/modules/eww-config.el @@ -67,7 +67,7 @@ (use-package eww :ensure nil ;; built-in :bind - (("M-S-e" . eww) ;; was M-E, overrides forward-sentence + (("M-E" . eww) ;; Meta+Shift+e emits the uppercase event; overrides forward-sentence :map eww-mode-map ("<" . eww-back-url) (">" . eww-forward-url) diff --git a/tests/test-launcher-meta-shift-keys.el b/tests/test-launcher-meta-shift-keys.el new file mode 100644 index 000000000..574a8d68e --- /dev/null +++ b/tests/test-launcher-meta-shift-keys.el @@ -0,0 +1,32 @@ +;;; test-launcher-meta-shift-keys.el --- Meta+Shift launcher keys reach their commands -*- lexical-binding: t; -*- + +;;; Commentary: +;; Meta+Shift+<letter> emits the uppercase event (M-E, M-R, M-B), so a +;; binding written as "M-S-e" on a lowercase letter is never reached by +;; the keychord. These launchers must be bound under the uppercase +;; event the keyboard actually produces. + +;;; Code: + +(require 'ert) +(require 'testutil-general) + +(add-to-list 'load-path (expand-file-name "modules" user-emacs-directory)) +(require 'eww-config) +(require 'elfeed-config) +(require 'calibredb-epub-config) + +(ert-deftest test-launcher-meta-shift-e-opens-eww () + "Normal: M-E (Meta+Shift+e) is bound to `eww'." + (should (eq (key-binding (kbd "M-E")) 'eww))) + +(ert-deftest test-launcher-meta-shift-r-opens-elfeed () + "Normal: M-R (Meta+Shift+r) is bound to `cj/elfeed-open'." + (should (eq (key-binding (kbd "M-R")) 'cj/elfeed-open))) + +(ert-deftest test-launcher-meta-shift-b-opens-calibredb () + "Normal: M-B (Meta+Shift+b) is bound to `calibredb'." + (should (eq (key-binding (kbd "M-B")) 'calibredb))) + +(provide 'test-launcher-meta-shift-keys) +;;; test-launcher-meta-shift-keys.el ends here |
