Make redefinition of frequently used features keymap work

Replaced keymap with prefix funtion for this.  Not completely understood yet what I am doing here.
This commit is contained in:
Daniel Borchmann 2025-06-16 12:23:31 +02:00
parent 12458f7dc1
commit 66d32f0ff8
No known key found for this signature in database
GPG Key ID: 50EA937BF472ADD1
2 changed files with 8 additions and 10 deletions

View File

@ -92,7 +92,8 @@
db/org-default-home-file
db/org-default-notes-file
db/org-default-refile-file
db/after-init-load-files))
db/after-init-load-files
db/frequently-used-features-prefix))
;; * Core Configuration
@ -3111,7 +3112,7 @@ eventuelly be set to nil, however)."
(bind-key "<XF86Forward>" #'winner-redo)
(bind-key "<Scroll_Lock>" 'scroll-lock-mode)
(bind-key "<f1>" #'db/run-or-hide-eshell)
(bind-key "<f2>" db/frequently-used-features-map) ; TODO: this does not update when the keymap is changed
(bind-key "<f2>" #'db/frequently-used-features-prefix)
(bind-key "<f5>" #'project-find-regexp)
(bind-key "<f6>" #'text-scale-adjust)
(bind-key "<f7>" #'dictcc)

View File

@ -148,9 +148,6 @@ in the main agenda view."
:group 'personal-settings
:type '(choice (const nil) file))
(defvar db/frequently-used-features-map (make-sparse-keymap)
"Functions from `db/frequently-used-features' bound to shortcuts.")
(defcustom db/frequently-used-features
'(("Mail" ?m db/gnus)
("Agenda" ?a db/org-agenda)
@ -177,11 +174,11 @@ character, nil can be chosen, in which case no entry in the
:type '(repeat (list string (choice character (const nil)) function))
:set #'(lambda (symbol value)
(set-default symbol value)
(setq db/frequently-used-features-map (make-sparse-keymap))
(mapc #'(lambda (entry)
(pcase-let ((`(_ ,shortcut ,function) entry))
(keymap-set db/frequently-used-features-map (string shortcut) function)))
db/frequently-used-features)))
(let ((map (make-sparse-keymap)))
(mapc (pcase-lambda (`(_ ,shortcut ,function))
(keymap-set map (string shortcut) function))
value)
(fset 'db/frequently-used-features-prefix map))))