From 2973596913c34e7886577bff9c2b193e658e0bc3 Mon Sep 17 00:00:00 2001 From: Tim McCarthy Date: Mon, 20 Oct 2025 15:03:09 -0700 Subject: [PATCH] Stricter training wheels for command-as-meta --- emacs/init.el | 27 +++++++++++++++++++++++++-- 1 file changed, 25 insertions(+), 2 deletions(-) diff --git a/emacs/init.el b/emacs/init.el index bfa172c..fde8f10 100644 --- a/emacs/init.el +++ b/emacs/init.el @@ -141,8 +141,31 @@ (setq ns-command-modifier 'meta) (setq ns-right-command-modifier 'super) -;; Training wheels for Cmd-S -(global-set-key (kbd "M-s M-s") 'save-buffer) +;;;;; Training wheels +(defun cmd-key-reminder (keybind emacs-alternative) + "Display a beep and reminder message for macOS muscle memory keys. +KEYBIND is the key combination pressed (e.g., 'Cmd-S'). +EMACS-ALTERNATIVE is the Emacs equivalent (e.g., 'C-s')." + (beep) + (message "Muscle memory! Use %s instead of %s" emacs-alternative keybind)) + +;; Define reminders for common macOS shortcuts +(global-set-key (kbd "s-s") (lambda () (interactive) + (cmd-key-reminder "Cmd-S" "C-x C-s (save-buffer)"))) +(global-set-key (kbd "s-z") (lambda () (interactive) + (cmd-key-reminder "Cmd-Z" "C-/ (undo)"))) +(global-set-key (kbd "s-x") (lambda () (interactive) + (cmd-key-reminder "Cmd-X" "C-w (kill-region)"))) +(global-set-key (kbd "s-c") (lambda () (interactive) + (cmd-key-reminder "Cmd-C" "M-w (copy-region-as-kill)"))) +(global-set-key (kbd "s-v") (lambda () (interactive) + (cmd-key-reminder "Cmd-V" "C-y (yank)"))) +(global-set-key (kbd "s-a") (lambda () (interactive) + (cmd-key-reminder "Cmd-A" "C-x h (mark-whole-buffer)"))) +(global-set-key (kbd "s-0") (lambda () (interactive) + (cmd-key-reminder "Cmd-0" "C-x 0 (text-scale-adjust)"))) +(global-set-key (kbd "s-t") (lambda () (interactive) + (cmd-key-reminder "Cmd-T" "C-o t (tab-bar-new-tab)"))) ;;; Editing ;;;; MWIM