支持双击快捷键

This commit is contained in:
lanxiuyun 2025-06-10 14:14:37 +08:00
parent 481cd44ab3
commit 1e7a8209b7

View File

@ -10,6 +10,7 @@ import {
import screenCapture from '@/core/screen-capture'; import screenCapture from '@/core/screen-capture';
import localConfig from '@/main/common/initLocalConfig'; import localConfig from '@/main/common/initLocalConfig';
import winPosition from './getWinPosition'; import winPosition from './getWinPosition';
import { uIOhook, UiohookKey } from 'uiohook-napi';
const registerHotKey = (mainWindow: BrowserWindow): void => { const registerHotKey = (mainWindow: BrowserWindow): void => {
// 设置开机启动 // 设置开机启动
@ -80,7 +81,7 @@ const registerHotKey = (mainWindow: BrowserWindow): void => {
mainWindow.show(); mainWindow.show();
} }
let lastModifierPress = 0; let lastModifierPress = Date.now();
if ( if (
config.perf.shortCut.showAndHidden == 'Ctrl+Ctrl' || config.perf.shortCut.showAndHidden == 'Ctrl+Ctrl' ||
config.perf.shortCut.showAndHidden == 'Option+Option' || config.perf.shortCut.showAndHidden == 'Option+Option' ||
@ -88,15 +89,27 @@ const registerHotKey = (mainWindow: BrowserWindow): void => {
config.perf.shortCut.showAndHidden == 'Command+Command' config.perf.shortCut.showAndHidden == 'Command+Command'
) { ) {
// 双击快捷键,如 Ctrl+Ctrl // 双击快捷键,如 Ctrl+Ctrl
uIOhook.stop();
const modifers = config.perf.shortCut.showAndHidden.split('+'); const modifers = config.perf.shortCut.showAndHidden.split('+');
const key = modifers.pop(); const showAndHiddenKey = modifers.pop();
globalShortcut.register(key, () => { const key2uioKeyCode = {
const currentTime = Date.now(); Ctrl: UiohookKey.Ctrl,
if (currentTime - lastModifierPress < 300) { Shift: UiohookKey.Shift,
mainWindowPopUp(); Alt: UiohookKey.Alt,
Comma: UiohookKey.Comma,
};
uIOhook.on('keydown', (e) => {
if (e.keycode === key2uioKeyCode[showAndHiddenKey]) {
const currentTime = Date.now();
if (currentTime - lastModifierPress < 300) {
mainWindowPopUp();
}
lastModifierPress = currentTime;
} }
lastModifierPress = currentTime;
}); });
uIOhook.start();
} else { } else {
// 普通快捷键,如 Ctrl+Space // 普通快捷键,如 Ctrl+Space
globalShortcut.register(config.perf.shortCut.showAndHidden, () => globalShortcut.register(config.perf.shortCut.showAndHidden, () =>