From f6732f0147a812e2a4fd6d5c83cb6e1168444cec Mon Sep 17 00:00:00 2001 From: ZiuChen <457353192@qq.com> Date: Tue, 20 Sep 2022 18:15:01 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E4=BA=86linux?= =?UTF-8?q?=E4=B8=8A=E5=89=AA=E8=B4=B4=E6=9D=BF=E7=9B=91=E5=90=AC=E7=A8=8B?= =?UTF-8?q?=E5=BA=8F=E6=97=A0=E6=B3=95=E6=AD=A3=E7=A1=AE=E6=89=A7=E8=A1=8C?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/node_modules/clipboard-event/index.js | 24 +++++++++++++----- .../platform/clipboard-event-handler-linux | Bin 0 -> 12928 bytes src/data/notify.json | 4 +-- src/global/initPlugin.js | 23 +++++++++-------- 4 files changed, 31 insertions(+), 20 deletions(-) create mode 100644 public/node_modules/clipboard-event/platform/clipboard-event-handler-linux diff --git a/public/node_modules/clipboard-event/index.js b/public/node_modules/clipboard-event/index.js index ef85638..6dd6770 100644 --- a/public/node_modules/clipboard-event/index.js +++ b/public/node_modules/clipboard-event/index.js @@ -1,6 +1,8 @@ +const { chmodSync, existsSync, mkdirSync, copyFileSync } = require('fs') const { EventEmitter } = require('events'); const path = require('path'); -const { execFile, exec } = require('child_process'); +const { execFile } = require('child_process'); +const homeDir = require('os').homedir(); class ClipboardEventListener extends EventEmitter { constructor() { @@ -13,8 +15,16 @@ class ClipboardEventListener extends EventEmitter { this.child = execFile(path.join(__dirname, 'platform/clipboard-event-handler-mac')); } else if (platform === 'linux') { - // manually install clipboard-event-handler-linux to /usr/local/bin - this.child = exec('clipboard-event-handler-linux') + // linux: cant execFile without chmod, and cant chmod in app.asar + // so we need to copy the file to /usr/bin + const target = path.resolve(homeDir, '.local', 'bin') + const p = path.join(__dirname, 'platform/clipboard-event-handler-linux') + if(!existsSync(target)) { + mkdirSync(target) + } + copyFileSync(p, path.join(target, 'clipboard-event-handler-linux')) + chmodSync(path.join(target, 'clipboard-event-handler-linux'), 0o755) + this.child = execFile(path.join(target, 'clipboard-event-handler-linux')); } else if (platform === 'darwin') { this.child = execFile(path.join(__dirname, 'platform/clipboard-event-handler-mac')); @@ -27,11 +37,11 @@ class ClipboardEventListener extends EventEmitter { this.emit('change'); } }); - this.child.stdout.on('close', (code) => { - this.emit('close', code); + this.child.stdout.on('close', () => { + this.emit('close'); }); - this.child.stdout.on('exit', (code) => { - this.emit('exit', code); + this.child.stdout.on('exit', () => { + this.emit('exit'); }); } stopListening() { diff --git a/public/node_modules/clipboard-event/platform/clipboard-event-handler-linux b/public/node_modules/clipboard-event/platform/clipboard-event-handler-linux new file mode 100644 index 0000000000000000000000000000000000000000..0f6d129086294a626f72b451cfbd5e7dd9230bcb GIT binary patch literal 12928 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 literal 0 HcmV?d00001 diff --git a/src/data/notify.json b/src/data/notify.json index 41ca309..0d87610 100644 --- a/src/data/notify.json +++ b/src/data/notify.json @@ -1,5 +1,5 @@ { "title": "重要版本更新提示", - "content": "1. 如果你是第一次使用此插件, 请务必设置跟随主程序启动选项, 否则可能导致剪贴板记录丢失
2. v1.4.0及以上版本 Linux用户需手动安装clipboard-event-handler-linux至usr/bin目录 详见插件官网指南
3. 插件使用过程中遇到任何问题, 请到论坛发布页回帖或加入QQ群反馈", - "version": 2 + "content": "1. 如果你是第一次使用此插件, 请务必设置跟随主程序启动选项, 否则可能导致剪贴板记录丢失
2. 插件使用过程中遇到任何问题, 请到论坛发布页回帖或加入QQ群反馈", + "version": 1 } diff --git a/src/global/initPlugin.js b/src/global/initPlugin.js index 3980307..405fb7b 100644 --- a/src/global/initPlugin.js +++ b/src/global/initPlugin.js @@ -212,18 +212,19 @@ export default function initPlugin() { db.addItem(item) }) - const info = '请手动安装 clipboard-event-handler-linux 到 /usr/bin' - const site = - 'https://ziuchen.gitee.io/project/ClipboardManager/guide/#如何手动安装clipboard-event-handler-linux' + const callBack = () => { + const info = '请手动安装 clipboard-event-handler-linux 到 /usr/bin' + const site = + 'https://ziuchen.gitee.io/project/ClipboardManager/guide/#如何手动安装clipboard-event-handler-linux' + utools.showNotification('剪贴板监听退出' + (utools.isLinux() ? info : '')) + utools.isLinux() ? utools.shellOpenExternal(site) : '' + utools.outPlugin() + } listener - .on('close', () => { - utools.showNotification('剪贴板监听异常关闭' + (utools.isLinux() ? info : '')) - utools.isLinux() ? utools.shellOpenExternal(site) : '' - utools.outPlugin() - }) - .on('exit', () => { - utools.showNotification('剪贴板监听异常退出' + (utools.isLinux() ? info : '')) - utools.isLinux() ? utools.shellOpenExternal(site) : '' + .on('close', callBack()) + .on('exit', callBack()) + .on('error', (error) => { + utools.showNotification('剪贴板监听出错' + error) utools.outPlugin() })