A Scrcpy client in Rust, Bevy and React, aimed at providing mouse and key mapping to control Android device, similar to a game emulator
scrcpy-mask版本: v0.7.1
🔗更新日志

更新说明

本次更新为重大更新,本项目已基于 Rust + Bevy + React 重写,带来了更强大、更稳定的功能。 旧版基于 Rust + Tauri + Vue 的分支停止维护。

新增功能:

  1. Scrcpy 视频协议(投屏)#94
  2. 方向轮盘施法 #57
  3. 点击(同步模式)#75
  4. 连点 #84

修复问题:

  1. 连接超时 #65
  2. 开火键准星跳动 #68 #69
  3. 开火键鼠标锁定 #93
  4. 画面与映射不同步缩放 #95 #96

Update Notes

This is a major update — the project has been completely rewritten using Rust + Bevy + React, bringing more powerful and stable features. The previous branch based on Rust + Tauri + Vue has been discontinued.

New Features

  1. Scrcpy video protocol (screen mirroring) #94
  2. PadCastSpell #57
  3. SingleTap (synchronized mode) #75
  4. RepeatTap #84

Bug Fixes

  1. Connection timeout #65
  2. Jitter issue with when fire #68 #69
  3. Mouse lock issue when firing #93
  4. Desynchronized scaling between display and mapping #95 #96
scrcpy-mask版本: v0.6.0
🔗更新日志

更新说明

本次更新新增了:

  1. 新按键映射类型:滑动
  2. 使用了新图标,感谢 @thestmitsuki 的贡献 #10
  3. 设备和电脑剪切板的同步,可以在设置界面进行设定
  4. 为DNF手游添加默认按键映射方案

本次更新还修复了一些小问题,优化用户体验。

Update Notice

This update adds:

  1. new button mapping type: swipe
  2. new icon used, thanks to @thestmitsuki for contribution #10
  3. Synchronisation of device and PC clipboards can be set in the Settings screen.
  4. Add default key mapping scheme for DNF handheld game.

This update also fixes some bugs and optimises user experience.

Commits

  • feat(KeyBoard): activate new button
  • feat(Device): sync clipboard from device
  • feat(i18n): clipboard sync
  • fix(Mask): store button opacity config
  • feat(i18n): update adb not available
  • fix(All): user-select for webkit
  • feat(Device): ctrl+v to past text into device
  • feat(Data): move data management to Data.vue
  • feat(Basic): add clipboardSync setting
  • feat(icon): new logo
  • feat(hotkey): add swipe shortcut
  • feat(KeySwipe): add swipe key setting
  • fix(KeySwipe): performance
  • feat(default-key-config): update
scrcpy-mask版本: v0.5.0
🔗更新日志

更新说明

此次更新主要新增了两项重要功能:

  1. 支持使用 ScreenStream 进行投屏 #48
  2. 支持蒙版随安卓设备旋转

这两项功能均可在蒙版设置中进行相应配置。

ScreenStream 是一个安卓应用,允许在局域网内进行投屏。你需要自行安装后使用。需要注意的是,ScreenStream 的投屏性能非常有限,仅作为一个方便的选择。

此外,本次更新还修复了上次更新中准心模式下右键弹出菜单的问题 #46。


Update Notes

This update introduces two major features:

  1. Support for screen casting using ScreenStream #48
  2. Support for the mask rotating with the Android device

Both of these features can be configured in the mask settings.

ScreenStream is an Android app that allows screen casting within a local network. You will need to install it yourself to use it. Note that the casting performance of ScreenStream is quite limited and is meant as a convenient option.

Additionally, this update fixes the issue with the right-click context menu in crosshair mode from the previous update #46.

Commits

  • fix(hotkey): contextmenu
  • feat(hotkey): use mask size in store
  • feat(ScreenStream): add ScreenStream
  • feat(localStore): load rotation and screenStream data
  • feat(i18n): mask setting
  • fix(Device): retrieve device screen size on reconnect
  • feat(KeyBoard): add ScreenStream for keyboard setting
scrcpy-mask版本: v0.4.4
🔗更新日志

更新说明

本次更新主要修复两个问题:

  • 侧边栏、标题栏表现异常 #43
  • 默认窗口坐标不恰当 #41

Update Notice

This update mainly fixes two issues:

  • Sidebar and title bar behave abnormally #43
  • Default window coordinates are inappropriate #41

Commits

  • fix(win): drag region
  • fix(main): window default pos
scrcpy-mask版本: v0.4.3
🔗更新日志

更新说明

本次更新主要新增了按键输入模式(删除了原有的文本输入框),可用于打字输入等功能。你可以通过宏切换到该模式,具体参考README中的介绍。

在按键输入模式下,你键盘的输入都会被转发到安卓设备上。对于需要输入非英文文本的用户,建议在安卓设备上安装讯飞输入法等对外部键盘输入有优化的输入法。

此外,本次更新还修复了以下问题:

  • 屏幕旋转问题 (#34)
  • 准心键边界问题 (#37)

Update Notice

This update primarily introduces a new key input mode (replacing the previous text input box), which can be used for typing input. You can switch to this mode via macros, as described in the README.

In key input mode, your keyboard inputs will be forwarded to the Android device. For users who need to input non-English text, it is recommended to install input methods like Sogou Input Method on the Android device, which optimize external keyboard input.

Additionally, this update also fixes the following issues:

  • Screen rotation issue (#34)
  • Crosshair key boundary issue (#37)

Commits

  • feat(hotkey): change input-box to key-input-mode
  • feat(README+default-key-config): update
  • fix(scrcpy-mask-server): size and rotation mismatch
  • fix(hotkey): mouse reset in full screen
  • fix(hotkey): hide cursor

Scrcpy Mask

English

Scrcpy Mask 是一款基于 Rust + Bevy + React 构建的跨平台桌面客户端,用于高效控制安卓设备。 它提供了可视化的鼠标与键盘按键映射配置,实现了类似安卓模拟器的多点触控操作,具备毫秒级响应速度,带来流畅自然的交互体验。该工具可广泛应用于在电脑上操控安卓设备、玩手游等场景。

v0.7.0 开始,项目已完全迁移至 Bevy 游戏引擎,带来了更强大、更稳定的功能,包括 scrcpy 投屏组合按键映射、以及更灵活的 内置脚本系统与外部控制机制

⚠️ 旧版基于 Rust + Tauri + Vue 的分支已停止维护。

特别感谢 Scrcpy 项目的开发者。Scrcpy 是一个功能强大、性能卓越的开源工具,为 Android 设备的远程控制提供了坚实基础。 Scrcpy Mask 基于其优秀架构,针对鼠标与键盘控制进行了进一步的增强与扩展。

为了更好地支持 Scrcpy Mask 与安卓设备的交互,对原 scrcpy-server 进行了功能扩展与优化,并基于此创建了分支项目 scrcpy-mask-server

特性

  • [x] 国际化
  • [x] 有线、无线连接安卓设备
  • [x] Scrcpy 控制协议(映射)
  • [x] Scrcpy 视频协议(投屏)
  • [x] 按键映射配置可视化
  • [x] 内置脚本,见脚本语法规则简介
  • [x] 鼠标、键盘按键映射
  • [ ] 手柄按键映射(等待赞助支持❤️)
  • [ ] 外部程序控制,见外部控制(等待更新)
  • [ ] 帮助文档

截图

  • 设备

  • 映射

  • 投屏

  • 设置

贡献

build-help 简要说明了如何运行和编译项目。

如果你对本项目感兴趣,欢迎提交 PR 或 Issue。 由于个人时间和精力有限,可能无法及时处理所有反馈,敬请谅解。

Star History Chart