Skip to content

Repository files navigation

分批粘贴助手

一个 Chrome Manifest V3 扩展,用于解决基于 Apache Guacamole 的网页远程桌面剪贴板长度受限问题。它会将本地的大段文本拆分成多段,依次同步到远端剪贴板并触发粘贴。

功能

  • 按指定字符数自动拆分长文本
  • 可调节相邻分段的粘贴间隔
  • 支持只同步远端剪贴板,或自动发送 Ctrl+V
  • 任务在扩展弹窗关闭后继续运行
  • 完成或停止后自动恢复原始系统剪贴板
  • 对普通网页输入框提供基础的分段写入支持

安装

  1. 下载或克隆本仓库。
  2. 在 Chrome 中打开 chrome://extensions/
  3. 开启右上角的“开发者模式”。
  4. 点击“加载已解压的扩展程序”,选择本仓库目录。

使用

  1. 复制准备发送的文本。
  2. 在远端终端进入接收状态,例如执行 cat > 文件名,或在 Vim 中按 i
  3. 点击扩展图标,再点击“读取剪贴板”。
  4. 设置每段字符数和发送间隔。建议每段 1000–1500 个字符、间隔 0.5-1 秒。
  5. 点击“开始分批粘贴”。

实现原理

针对 Apache Guacamole 页面,每个分段采用三步流程:

  1. 通过离屏文档将当前分段写入本地系统剪贴板。
  2. 在页面主世界中调用 Guacamole.Client.setClipboard(),将分段同步到远端剪贴板。
  3. 调用 client.sendKeyEvent(),直接向远端发送一组 Ctrl+V 按键事件。

内容脚本运行在隔离世界,无法直接访问页面的 AngularJS 对象,因此扩展通过 chrome.scripting.executeScript() 在页面主世界中定位 Guacamole 客户端。

权限说明

  • clipboardRead / clipboardWrite:读取待发送文本,并在任务结束后恢复剪贴板。
  • offscreen:在 Manifest V3 后台环境中写入系统剪贴板。
  • activeTab / scripting:仅在用户主动操作的当前标签页中调用 Guacamole 客户端。
  • storage:保存分段大小、间隔和粘贴模式。

扩展不会上传、记录或发送剪贴板内容到第三方服务器。

注意事项

  • 自动粘贴依赖目标页面使用 Apache Guacamole,并能从 AngularJS 作用域访问底层客户端。
  • 不同部署版本的页面结构可能不同,需要相应调整客户端定位逻辑。
  • 运行期间不要切换远端输入焦点,以免内容粘贴到错误位置。
  • 请勿向不可信页面发送敏感信息。

License

MIT

About

Chrome extension that splits long clipboard text and pastes it into Apache Guacamole remote desktops in chunks.

Resources

Stars

6 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages