一键跨屏,窗口无缝穿梭
⚡️ 高性能、跨平台的显示器窗口快速移动工具。基于 Rust 构建,支持 macOS 和 Windows。只需鼠标中键点击标题栏,即可在多显示器间瞬间“传送”你的工作窗口,让多屏工作流丝滑流畅。
- 🖱️ 中键一击即飞 — 只需在窗口标题栏按下鼠标中键,窗口立刻飞跃到下一个显示器。
- 📐 智能比例等比缩放 — 自动计算两块屏幕分辨率差异,保持窗口相对新屏幕的比例与位置不变。
- 📏 超大窗口智能适配 — 如果目标显示器较小,窗口会自动缩放适配,避免超出屏幕边界。
- 🚫 标签页防误触保护 — 智能识别浏览器(Chrome/Edge 等)及资源管理器的标签页区域,避免在切换标签时不小心移动整个窗口。
- 🔄 开机自启与静默运行 — 支持随系统开机自启,隐藏在系统托盘,不打扰日常工作。
- 🌍 内置代理支持 — 提供代理设置(支持 HTTP/HTTPS/SOCKS4/SOCKS5 及密码认证)以稳定获取更新。
- 🔔 自动更新检测 — 连接 GitHub Release 自动检查并提醒新版本,确保始终使用最新版。
前往 GitHub Releases 页面 下载最新版本。
- 下载并解压
ScreenHop-macOS-universal-vX.X.X.zip(内含ScreenHop.app)。 - 将
ScreenHop.app拖入/Applications文件夹。 - 双击运行。
⚠️ 首次运行须授权辅助功能权限:
ScreenHop 需要监听鼠标中键事件来控制窗口移动,首次启动会自动弹出授权引导对话框。
点击**「前往授权」,在随后打开的系统设置页面中找到并勾选ScreenHop,然后重新启动** ScreenHop 即可。
也可手动前往:系统设置→隐私与安全性→辅助功能,勾选ScreenHop。
注意:ScreenHop 使用 ad-hoc 方式签名(非 Apple Developer ID),macOS 可能提示"无法确认开发者身份"。
请右键点击ScreenHop.app→打开,在弹出的对话框中选择**「打开」**即可正常运行。
- 下载
ScreenHop-win-x64-vX.X.X.zip。 - 解压后双击运行
screenhop.exe。 - 可在托盘图标右键菜单中设置「开机自动启动」。
右键点击系统托盘图标可进行相关配置:
- 启用/禁用功能:随时暂停或恢复鼠标中键跳转功能。
- 开机自动启动:一键设置随系统启动。
- 检查更新:手动检查最新版本。
- 代理设置:配置代理服务器地址(支持认证),彻底解决国内访问 GitHub 更新过慢或失败的问题。
本项目基于 Rust 编写,通过 Cargo 构建。
# 1. 安装 Rust 工具链
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 2. 克隆项目
git clone https://github.com/EcoRoundDev/ScreenHop.git
cd ScreenHop# 安装 cargo-bundle 工具(仅首次需要)
cargo install cargo-bundle
# 编译并打包(以 Apple Silicon 为例)
cd crates/app
cargo bundle --release --target aarch64-apple-darwin
# Ad-hoc 签名(允许在本机运行)
cd ../..
codesign --force --deep --sign - \
target/aarch64-apple-darwin/release/bundle/osx/ScreenHop.app生成的 .app 位于:target/aarch64-apple-darwin/release/bundle/osx/ScreenHop.app
cargo build --release --target x86_64-pc-windows-msvc
# 输出:target/x86_64-pc-windows-msvc/release/screenhop.exeScreenHop 将核心逻辑与各具体平台的系统 API 调用进行了分离,方便未来扩展和维护:
crates/
├── core/ => 跨平台共享核心(配置读写、显示器几何数学计算、版本更新调度)
├── platform/ => OS 系统接口抽象与具体实现
│ ├── macos/ -> 使用 CGEventTap 拦截鼠标,AXUIElement 移动缩放窗口
│ └── windows/ -> 使用 WH_MOUSE_LL 全局钩子,Win32 API 操作窗口句柄
└── app/ => 主程序入口、系统托盘菜单(tray-icon)、应用状态管理
欢迎提交 Issue 和 Pull Request。如果觉得这个小工具有用,请在 GitHub 上点一个 ⭐ 鼓励一下!
本项目基于 MIT License 协议开源。