您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Modify keymap layout by replacing keys, works with keymap next
// ==UserScript== // @name Keymap Overlay For Monkeytype // @namespace http://tampermonkey.net/ // @version 0.2 // @description Modify keymap layout by replacing keys, works with keymap next // @author Pira // @match https://monkeytype.com/ // @grant none // @license MIT // ==/UserScript== (function() { 'use strict'; const keyMapping = { q: "q", w: "w", e: "e", r: "r", t: "t", y: "y", u: "u", i: "i", o: "o", p: "p", "[": "[", "]": "]", a: "a", s: "s", d: "d", f: "f", g: "g", h: "h", j: "j", k: "k", l: "l", ";": ";", "'": "'", z: "z", x: "x", c: "c", v: "v", b: "b", n: "n", m: "m", ',': ",", '.': ".", '/': "/" }; async function modifyKeymap() { const keys = document.querySelectorAll('.keymapKey'); const updatedMapping = {}; keys.forEach(function(key) { const letter = key.querySelector('.letter'); const currentKey = letter.textContent.toLowerCase(); const newKey = keyMapping[currentKey]; if (currentKey === ',<' && keyMapping[currentKey]) { letter.textContent = keyMapping[currentKey];} if (newKey) { const tempValue = letter.textContent; letter.textContent = newKey; key.setAttribute('data-key', newKey.toLowerCase() + newKey.toUpperCase()); updatedMapping[newKey.toLowerCase()] = currentKey; } else { updatedMapping[currentKey] = currentKey; } }); Object.assign(keyMapping, updatedMapping); } function updateActiveKey() { const activeKeyElement = document.querySelector('.activeKey'); const activeKey = activeKeyElement.textContent.toLowerCase(); const mappedKey = keyMapping[activeKey]; if (mappedKey) { activeKeyElement.textContent = mappedKey.toUpperCase(); } } // Right-click event listener window.addEventListener("contextmenu", async function(event) { event.preventDefault(); // Modify the keymap await modifyKeymap(); // Update the active key updateActiveKey(); }); })();