LKML Archive mirror
 help / color / mirror / Atom feed
* [PATCH 1/1] HID: apple: Option to swap only left side mod keys
@ 2023-05-22 18:40 Lasse Brun
  2023-06-09 15:41 ` Jiri Kosina
  0 siblings, 1 reply; 2+ messages in thread
From: Lasse Brun @ 2023-05-22 18:40 UTC (permalink / raw)
  To: Jiri Kosina, Benjamin Tissoires; +Cc: Lasse Brun, linux-input, linux-kernel

On the Keychron K8 keyboard, and probably others, the right side keys
should not be swapped to maintain PC layout.

Swapping the right side keys moves 'Super' before 'Alt gr' which is not
intended by the default Keychron layout or the ISO layout.

Signed-off-by: Lasse Brun <bruners@gmail.com>
---
 drivers/hid/hid-apple.c | 13 +++++++++++--
 1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/drivers/hid/hid-apple.c b/drivers/hid/hid-apple.c
index cc535d2d6e8c..d7b932925730 100644
--- a/drivers/hid/hid-apple.c
+++ b/drivers/hid/hid-apple.c
@@ -58,7 +58,7 @@ static unsigned int swap_opt_cmd;
 module_param(swap_opt_cmd, uint, 0644);
 MODULE_PARM_DESC(swap_opt_cmd, "Swap the Option (\"Alt\") and Command (\"Flag\") keys. "
 		"(For people who want to keep Windows PC keyboard muscle memory. "
-		"[0] = as-is, Mac layout. 1 = swapped, Windows layout.)");
+		"[0] = as-is, Mac layout. 1 = swapped, Windows layout., 2 = swapped, Swap only left side)");
 
 static unsigned int swap_ctrl_cmd;
 module_param(swap_ctrl_cmd, uint, 0644);
@@ -319,6 +319,12 @@ static const struct apple_key_translation swapped_option_cmd_keys[] = {
 	{ }
 };
 
+static const struct apple_key_translation swapped_option_cmd_left_keys[] = {
+	{ KEY_LEFTALT,	KEY_LEFTMETA },
+	{ KEY_LEFTMETA,	KEY_LEFTALT },
+	{ }
+};
+
 static const struct apple_key_translation swapped_ctrl_cmd_keys[] = {
 	{ KEY_LEFTCTRL,	KEY_LEFTMETA },
 	{ KEY_LEFTMETA,	KEY_LEFTCTRL },
@@ -416,7 +422,10 @@ static int hidinput_apple_event(struct hid_device *hid, struct input_dev *input,
 	}
 
 	if (swap_opt_cmd) {
-		trans = apple_find_translation(swapped_option_cmd_keys, code);
+		if (swap_opt_cmd == 2)
+			trans = apple_find_translation(swapped_option_cmd_left_keys, code);
+		else
+			trans = apple_find_translation(swapped_option_cmd_keys, code);
 
 		if (trans)
 			code = trans->to;
-- 
2.40.1


^ permalink raw reply related	[flat|nested] 2+ messages in thread

* Re: [PATCH 1/1] HID: apple: Option to swap only left side mod keys
  2023-05-22 18:40 [PATCH 1/1] HID: apple: Option to swap only left side mod keys Lasse Brun
@ 2023-06-09 15:41 ` Jiri Kosina
  0 siblings, 0 replies; 2+ messages in thread
From: Jiri Kosina @ 2023-06-09 15:41 UTC (permalink / raw)
  To: Lasse Brun; +Cc: Benjamin Tissoires, linux-input, linux-kernel

On Mon, 22 May 2023, Lasse Brun wrote:

> On the Keychron K8 keyboard, and probably others, the right side keys
> should not be swapped to maintain PC layout.
> 
> Swapping the right side keys moves 'Super' before 'Alt gr' which is not
> intended by the default Keychron layout or the ISO layout.
> 
> Signed-off-by: Lasse Brun <bruners@gmail.com>

Applied, thanks, and sorry for the delay.

-- 
Jiri Kosina
SUSE Labs


^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2023-06-09 15:42 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-05-22 18:40 [PATCH 1/1] HID: apple: Option to swap only left side mod keys Lasse Brun
2023-06-09 15:41 ` Jiri Kosina

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).