Skip to content
 
 

Repository files navigation

📱 输入同步助手 (Input Sync Helper)

弥补遗憾,让手机输入法成为电脑的“最强外挂”

🌟 创作初衷

很多好用的输入法(如豆包输入法)在手机端体验极佳,却迟迟没有电脑版。为了能直接在电脑上使用手机的高质量语音识别和联想输入,我开发了这个轻量工具。它将手机化身为电脑的“无线键盘”,实现跨设备输入无缝衔接。

📸 界面预览

PC 端界面 安卓端界面

✨ 核心亮点

  • 🎙️ 语音输入神器:电脑打字累了?利用手机端强大的语音转文字功能(如豆包、讯飞),对着手机说话,文字即刻“飞”上电脑屏幕。
  • 🔗 扫码即用:无需数据线,无需注册账号。只要手机和电脑处于同一 Wi-Fi,使用微信或浏览器扫码即连。
  • 🧠 智能同步算法
    • 双向感应:在手机上删字,电脑同步退格;检测到电脑主动打字时,手机端自动避让,绝不打乱现有文稿。
    • 极低延迟:基于 WebSocket 协议和增量同步技术,输入体验如丝般顺滑。
    • 双向感应:在手机上删字,电脑同步退格;检测到电脑主动打字时,手机端自动避让,绝不打乱现有文稿。
    • 极低延迟:基于 WebSocket 协议和增量同步技术,输入体验如丝般顺滑。
  • 🎨 极简设计:轻量级后台运行,支持最小化至系统托盘,不打扰你的正常工作流。
  • ⚙️ 自定义设置:支持自定义局域网IP、端口号、窗口大小、退格限制、智能感知开关、自动清空开关和自动清空时间,满足不同网络环境和个人需求。

🛠️ 技术实现

项目采用模块化架构方案:

  • 后端:基于 Python 的 aiohttp 异步框架,确保高并发下的输入稳定性。
  • 前端:移动端采用原生 HTML5 + WebSocket,兼容市面 99% 的手机浏览器。
  • 核心逻辑:自研增量同步算法,仅传输变动字符,极大节省流量并降低延迟。
  • 跨平台:支持 Windows 与 macOS。

🚀 快速上手

  1. 下载安装:前往 Release 页面 下载最新版 InputSyncHelper_Win64_setup.exe
  2. 启动服务:双击运行,程序会自动生成连接二维码和访问链接。
  3. 扫码连接:使用手机浏览器(推荐 Chrome/Safari)或微信扫描二维码,或直接在手机浏览器中输入显示的链接。
  4. 开始创作:在手机输入框内打字或使用语音,文字将实时录入电脑光标位置。
  5. 自定义设置:点击左上角的"自定义"按钮,可设置以下选项:
    • 局域网IP:留空使用自动检测
    • 端口号:默认5000
    • 窗口大小:主窗口大小,格式为"宽x高"
    • 设置窗口:设置窗口大小,格式为"宽x高"
    • 退格限制:最大退格次数,防止误删
    • 智能感知:开启后,电脑操作会重置同步状态
    • 自动清空:开启后,输入一段时间后会自动清空输入框
    • 清空时间:自动清空的时间(秒) 设置保存后会自动应用并重启服务器。

从源码运行(uv,推荐)

适合开发者或想直接跑最新代码的用户。项目依赖在 requirements.txt,用 uv 可以快速配环境。

1. 安装 uv(Windows PowerShell,只需一次)

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

安装后新开一个终端,确认:uv --version

2. 进入项目目录,创建环境并安装依赖

cd InputSyncHelper
uv venv --python 3.10
.\.venv\Scripts\Activate.ps1
uv pip install -r requirements.txt

3. 启动

python main.py

一条命令直接跑(不用手动 activate)

uv run --python 3.10 --with-requirements requirements.txt python main.py

启动后流程与安装版相同:电脑显示二维码 → 手机同 Wi-Fi 扫码 → 即可输入同步。

用户配置会写入 %APPDATA%\InputSyncHelper\settings.json,与 Release 安装版一致。


注意事项

  1. 网络连接:确保手机和电脑处于同一 Wi-Fi 网络环境下。
  2. 安全提示
    • 由于程序需要模拟键盘输入和获取网络信息等敏感权限,部分安全软件(如卡巴斯基)可能会将其识别为病毒或木马。
    • 这是误报,因为程序需要这些权限来实现跨设备输入同步功能。
    • 如需验证安全性,可自行审查代码后打包使用,或在安全软件中添加信任例外。
  3. 使用建议:推荐使用手机端的语音输入法(如豆包、讯飞)以获得最佳体验。

📝 更新日志

v1.3.1

  • 问题修复:修复了与语音输入法的剪贴板冲突问题。之前复制的内容会被错误粘贴,现在输入完成后会清空剪贴板,避免干扰语音输入等使用剪贴板的功能。

v1.3.0

  • 新增功能:添加了智能感知开关,可控制电脑操作是否重置同步状态。
  • 新增功能:添加了自动清空开关和时间自定义功能,可控制输入框是否自动清空及清空时间。
  • 界面优化:为设置窗口添加了滚动条,确保所有设置项都能正常显示。
  • 界面优化:将保存设置按钮移到设置窗口顶部,方便用户操作。
  • 用户体验:实现了窗口大小的自适应功能,确保在不同分辨率的电脑上都能正常显示。
  • 默认设置:默认关闭自动清空功能,避免输入多句话被清空的问题。

v1.2.0

  • 新增功能:添加了完整的自定义设置功能,支持自定义局域网IP、端口号、窗口大小和退格限制。
  • 界面优化:将设置功能移到左上角的"自定义"按钮,点击打开独立的设置窗口。
  • 默认设置:默认局域网IP设置为 192.168.10.23,提高连接稳定性。
  • 用户体验:保存设置后自动重启服务器并更新二维码,确保设置立即生效。
  • 数据持久化:所有设置会保存到 settings.json 文件,下次启动时自动加载。

v1.1.0

  • 新增功能:添加了退格次数限制自定义功能,用户可以在图形界面中输入自己想要的退格次数限制。
  • 界面优化:在主界面中添加了退格次数设置区域,包含输入框和保存按钮。
  • 用户体验:添加了输入验证和保存成功的提示信息,确保用户设置的有效性。
  • 网络优化:改进了 IP 地址获取方式,确保服务能够正确绑定到本地网络地址。

致谢与声明

本项目在开发过程中参考了 CatDB 的设计思路,感谢原作者 @1900chen 的开源贡献。


常见问题

Q: 为什么手机无法连接到电脑?

A: 请检查以下几点:

  1. 确保手机和电脑处于同一 Wi-Fi 网络
  2. 检查防火墙是否阻止了端口 5000 的访问
  3. 确认程序是否正常运行,端口 5000 是否被占用

Q: 输入延迟很高怎么办?

A: 请确保网络连接稳定,避免使用信号较弱的 Wi-Fi。

Q: 如何查看当前服务的 IP 地址?

A: 程序启动后会在界面上显示完整的访问链接,包含当前电脑的 IP 地址。

About

一个简单的跨设备输入同步工具。在移动端网页输入,电脑端自动实时同步。

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages