Subject: 28.0.50; [PATHC][NS] Make s-<left/right> to move to beginning/end of line
From: Andrii Kolomoiets <[email-masked]>
To: [email-masked]
Date: Mon, 12 Oct 2020 14:36:53 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

On macOS, 'Command-Left/Right Arrow' are the common shortcuts to move
the insertion point to the beginning/end of line.

See https://support.apple.com/en-us/HT201236, 'Document shortcuts'
section.

Considering that Emacs is the text editor (mostly), lets make it behave
more like TextEdit.app and not like Terminal.app about those shortcuts.

Patch attached.

Thanks!
From ccea06f8b53589cdb1dff20e91f33fd8b8beb0a3 Mon Sep 17 00:00:00 2001
From: Andrii Kolomoiets <[email-masked]>
Date: Mon, 12 Oct 2020 14:24:25 +0300
Subject: [PATCH] NS: Make s-<left/right> to move to beginning/end of line

* lisp/term/ns-win.el: Bind 's-<left>' to 'move-beginning-of-line';
bind 's-<right>' to 'move-end-of-line'.
* etc/NEWS: Mention new bindings.
---
 etc/NEWS            | 4 ++++
 lisp/term/ns-win.el | 6 +++---
 2 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/etc/NEWS b/etc/NEWS
index cc8733c2c0..c7b34bdc1c 100644
--- a/etc/NEWS
+++ b/etc/NEWS
@@ -1683,6 +1683,10 @@ image API via 'M-x report-emacs-bug'.
 ---
 ** The user option 'make-pointer-invisible' is now honored on macOS.
 
+--
+** On macOS, 's-<left>' and 's-<right> are now bound to
+'move-beginning-of-line' and 'move-end-of-line' respectively.
+
 
 ----------------------------------------------------------------------
 This file is part of GNU Emacs.
diff --git a/lisp/term/ns-win.el b/lisp/term/ns-win.el
index cc7a3762b4..28bb851b30 100644
--- a/lisp/term/ns-win.el
+++ b/lisp/term/ns-win.el
@@ -148,9 +148,9 @@ global-map
 (define-key global-map [?\s-|] 'shell-command-on-region)
 (define-key global-map [s-kp-bar] 'shell-command-on-region)
 (define-key global-map [?\C-\s- ] 'ns-do-show-character-palette)
-;; (as in Terminal.app)
-(define-key global-map [s-right] 'ns-next-frame)
-(define-key global-map [s-left] 'ns-prev-frame)
+;; (as in TextEdit.app)
+(define-key global-map [s-right] 'move-end-of-line)
+(define-key global-map [s-left] 'move-beginning-of-line)
 
 (define-key global-map [home] 'beginning-of-buffer)
 (define-key global-map [end] 'end-of-buffer)
-- 
2.15.1