您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
为DeepSeek提供快捷键支持(Mac & Windows)
当前为
// ==UserScript== // @name DeepSeek ShortCuts // @name:zh-CN DeepSeek快捷键 // @name:zh-TW DeepSeek快捷鍵 // @description Keyboard Shortcuts For DeepSeek (Mac & Windows) // @description:zh-CN 为DeepSeek提供快捷键支持(Mac & Windows) // @description:zh-TW 為DeepSeek提供快捷鍵支持(Mac & Windows) // @version 1.3.0 // @icon https://raw.githubusercontent.com/MiPoNianYou/UserScripts/refs/heads/main/Icons/DeepSeekShortcutsIcon.svg // @author 念柚 // @namespace https://github.com/MiPoNianYou/UserScripts // @supportURL https://github.com/MiPoNianYou/UserScripts/issues // @license GPL-3.0 // @match https://chat.deepseek.com/* // @grant GM_addStyle // ==/UserScript== (function () { "use strict"; const Styles = ` .DsShortcutsHelpOverlay { --ds-overlay-bg-color: rgba(44, 44, 46, 0.85); --ds-overlay-text-color: rgba(255, 255, 255, 0.9); --ds-overlay-secondary-text-color: rgba(235, 235, 245, 0.6); --ds-overlay-border-color: rgba(84, 84, 88, 0.65); --ds-overlay-padding: 24px; --ds-overlay-radius: 12px; --ds-key-bg-color: rgba(118, 118, 128, 0.24); --ds-warning-bg-color: rgba(118, 118, 128, 0.24); --ds-warning-border-color: rgba(84, 84, 88, 0.65); --ds-warning-text-color: rgb(255, 159, 10); --ds-font-stack: system-ui, sans-serif; position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.95); z-index: 9999; pointer-events: none; visibility: hidden; min-width: 280px; padding: var(--ds-overlay-padding); border: 0.5px solid var(--ds-overlay-border-color); border-radius: var(--ds-overlay-radius); background: var(--ds-overlay-bg-color); box-shadow: 0 12px 28px rgba(0, 0, 0, 0.2), 0 2px 4px rgba(0, 0, 0, 0.1); backdrop-filter: blur(20px) saturate(180%); color: var(--ds-overlay-text-color); font-family: var(--ds-font-stack); font-size: 14px; font-weight: 500; line-height: 1.5; opacity: 0; transition: opacity 0.3s cubic-bezier(0.4, 0, 0.2, 1), transform 0.3s cubic-bezier(0.4, 0, 0.2, 1), visibility 0s linear 0.3s; } .DsShortcutsHelpOverlay.visible { opacity: 1; transform: translate(-50%, -50%) scale(1); pointer-events: auto; visibility: visible; transition-delay: 0s; } .DsShortcutsHelpTitle { margin: 0 0 20px 0; width: 100%; color: var(--ds-overlay-text-color); font-size: 16px; font-weight: 600; text-align: center; } .DsShortcutsHelpList {} .DsShortcutsHelpRow { display: flex; justify-content: space-between; align-items: center; margin-bottom: 10px; padding: 5px 0; } .DsShortcutsHelpKey { min-width: 90px; padding: 4px 8px; margin-left: 16px; background: var(--ds-key-bg-color); border: 0.5px solid var(--ds-overlay-border-color); border-radius: 5px; box-shadow: 0 1px 1px rgba(0, 0, 0, 0.1); color: var(--ds-overlay-text-color); font-family: inherit; font-size: 13px; text-align: center; flex-shrink: 0; } .DsShortcutsHelpDesc { flex-grow: 1; padding-right: 10px; color: var(--ds-overlay-secondary-text-color); } .DsShortcutsHelpWarning { margin-top: 18px; padding: 12px; background: var(--ds-warning-bg-color); border: 0.5px solid var(--ds-warning-border-color); border-radius: 8px; color: var(--ds-warning-text-color); font-size: 12px; line-height: 1.5; text-align: center; } `; if (typeof GM_addStyle === "function") { GM_addStyle(Styles); } else { const StyleElement = document.createElement("style"); StyleElement.textContent = Styles; document.head.appendChild(StyleElement); } const CreateButtonFinder = (Selector, Text) => () => Array.from(document.querySelectorAll(Selector)).find( (Button) => Button.textContent?.includes(Text) || Button.querySelector(Text) ); const FindRegenButton = CreateButtonFinder(".ds-icon-button", "#重新生成"); const FindContinueButton = CreateButtonFinder(".ds-button", "继续生成"); const FindDeepThinkButton = CreateButtonFinder(".ds-button span", "深度思考"); const FindSearchButton = CreateButtonFinder(".ds-button span", "联网搜索"); const FindUploadButton = () => document.querySelector(".f02f0e25"); const FindNewChatButton = () => document.querySelector("._217e214"); const FindToggleSidebarButton = () => document .querySelector( ".ds-icon-button svg #打开边栏0730, .ds-icon-button svg #折叠边栏0730" ) ?.closest(".ds-icon-button"); const FindChatMenuButton = () => { const SelectedChat = document.querySelector("._83421f9.b64fb9ae"); return SelectedChat?.querySelector("._2090548"); }; const GetModifierKeyInfo = () => { const IsMac = /Macintosh|Mac OS X/i.test(navigator.userAgent); return { Character: IsMac ? "Control" : "Alt", Property: IsMac ? "ctrlKey" : "altKey", }; }; const ModifierKeyInfo = GetModifierKeyInfo(); const HelpItems = [ [`${ModifierKeyInfo.Character} + R`, "重新生成回答"], [`${ModifierKeyInfo.Character} + C`, "继续生成回答"], [`${ModifierKeyInfo.Character} + D`, "深度思考模式"], [`${ModifierKeyInfo.Character} + S`, "联网搜索模式"], [`${ModifierKeyInfo.Character} + U`, "上传本地文件"], [`${ModifierKeyInfo.Character} + N`, "新建对话窗口"], [`${ModifierKeyInfo.Character} + T`, "切换开关边栏"], [`${ModifierKeyInfo.Character} + I`, "当前对话菜单"], [`${ModifierKeyInfo.Character} + H`, "快捷按键帮助"], ]; let HelpOverlayInstance = null; const CreateHelpOverlay = () => { const OverlayElement = document.createElement("div"); OverlayElement.classList.add("DsShortcutsHelpOverlay"); const TitleElement = document.createElement("h3"); TitleElement.textContent = "快捷按键指北"; TitleElement.classList.add("DsShortcutsHelpTitle"); const ListElement = document.createElement("div"); ListElement.classList.add("DsShortcutsHelpList"); HelpItems.forEach(([KeyShortcut, Description]) => { const RowElement = document.createElement("div"); RowElement.classList.add("DsShortcutsHelpRow"); const KeyElement = document.createElement("span"); KeyElement.textContent = KeyShortcut; KeyElement.classList.add("DsShortcutsHelpKey"); const DescriptionElement = document.createElement("span"); DescriptionElement.textContent = Description; DescriptionElement.classList.add("DsShortcutsHelpDesc"); RowElement.append(DescriptionElement, KeyElement); ListElement.append(RowElement); }); const WarningElement = document.createElement("div"); WarningElement.textContent = "⚠️ 脚本依UA自动适配快捷键 篡改UA或致功能异常"; WarningElement.classList.add("DsShortcutsHelpWarning"); OverlayElement.append(TitleElement, ListElement, WarningElement); document.body.append(OverlayElement); return OverlayElement; }; const HandleOutsideClick = (MouseEvent) => { if ( HelpOverlayInstance && HelpOverlayInstance.classList.contains("visible") && !HelpOverlayInstance.contains(MouseEvent.target) ) { CloseHelpOverlay(); } }; const ToggleHelpOverlay = (OverlayElement) => { if (!OverlayElement) return; const IsVisible = OverlayElement.classList.contains("visible"); if (IsVisible) { OverlayElement.classList.remove("visible"); window.removeEventListener("click", HandleOutsideClick, true); } else { OverlayElement.classList.add("visible"); setTimeout(() => { window.addEventListener("click", HandleOutsideClick, true); }, 0); } }; const InitializeHelpOverlay = () => { if (!HelpOverlayInstance) { HelpOverlayInstance = CreateHelpOverlay(); } }; const CloseHelpOverlay = () => { if ( HelpOverlayInstance && HelpOverlayInstance.classList.contains("visible") ) { HelpOverlayInstance.classList.remove("visible"); window.removeEventListener("click", HandleOutsideClick, true); } }; const SafeClickElement = (FinderFunction) => { const Element = FinderFunction(); if (Element) { Element.click(); } }; const KeyActionsMap = { r: () => SafeClickElement(FindRegenButton), c: () => SafeClickElement(FindContinueButton), d: () => SafeClickElement(FindDeepThinkButton), s: () => SafeClickElement(FindSearchButton), u: () => SafeClickElement(FindUploadButton), n: () => SafeClickElement(FindNewChatButton), t: () => SafeClickElement(FindToggleSidebarButton), i: () => SafeClickElement(FindChatMenuButton), h: () => { InitializeHelpOverlay(); ToggleHelpOverlay(HelpOverlayInstance); return true; }, }; const CreateKeyHandler = () => { const IsModifierPressed = (KeyboardEvent) => KeyboardEvent[ModifierKeyInfo.Property]; return (KeyboardEvent) => { if (KeyboardEvent.key === "Escape") { CloseHelpOverlay(); KeyboardEvent.preventDefault(); KeyboardEvent.stopPropagation(); return; } if (!IsModifierPressed(KeyboardEvent)) { return; } const PressedKey = KeyboardEvent.key.toLowerCase(); const ActionFunction = KeyActionsMap[PressedKey]; if (ActionFunction) { const ActionResult = ActionFunction(KeyboardEvent); if (ActionResult !== false) { KeyboardEvent.preventDefault(); KeyboardEvent.stopPropagation(); } } }; }; const GlobalKeyHandler = CreateKeyHandler(); window.addEventListener("keydown", GlobalKeyHandler, true); })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址