From e962f52c9ae81bd0c2ea4e57fc5a1e75a750ef7b Mon Sep 17 00:00:00 2001 From: Vanessa Date: Sat, 17 Jun 2023 16:56:05 +0800 Subject: [PATCH] :art: windows keymap --- app/src/config/keymap.ts | 22 +++++++++++++++++++--- app/src/constants.ts | 2 +- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/app/src/config/keymap.ts b/app/src/config/keymap.ts index 32bfa5885..6b9406c3c 100644 --- a/app/src/config/keymap.ts +++ b/app/src/config/keymap.ts @@ -424,9 +424,25 @@ export const keymap = { if (isCtrl(event)) { keymapStr += "⌘"; } - if (event.key !== "Shift" && event.key !== "Alt" && event.key !== "Meta" && event.key !== "Control") { - keymapStr += event.key === "Unidentified" ? "" : - (Constants.KEYCODELIST[event.keyCode] || (event.key.length > 1 ? event.key : event.key.toUpperCase())); + if (event.key !== "Shift" && event.key !== "Alt" && event.key !== "Meta" && event.key !== "Control" && event.key !== "Unidentified") { + if (event.keyCode === 229) { + // windows 中文输入法下 shift + - 等 + if (event.code === "Minus") { + keymapStr += "-"; + } else if (event.code === "Semicolon") { + keymapStr += ";"; + } else if (event.code === "Quote") { + keymapStr += "'"; + } else if (event.code === "Comma") { + keymapStr += ","; + } else if (event.code === "Period") { + keymapStr += "."; + } else if (event.code === "Slash") { + keymapStr += "/"; + } + } else { + keymapStr += Constants.KEYCODELIST[event.keyCode] || (event.key.length > 1 ? event.key : event.key.toUpperCase()); + } } it.setAttribute("data-value", keymapStr); // Mac 中文下会直接输入 diff --git a/app/src/constants.ts b/app/src/constants.ts index f24b1dc0a..1f7bf4025 100644 --- a/app/src/constants.ts +++ b/app/src/constants.ts @@ -161,7 +161,7 @@ export abstract class Constants { 90: "Z", 91: "⌘", 92: "⌘", - 93: "⌘", + 93: "ContextMenu", 96: "0", 97: "1", 98: "2",