目录
目录readme.md

DeviceShare —— 跨平台多主机输入设备共享

项目介绍

DeviceShare 是一款跨平台的多主机输入设备共享工具,支持 Windows、Linux、MacOS 等操作系统。通过 DeviceShare,您可以在多台主机之间共享鼠标、键盘、剪贴板等输入设备,实现多台主机之间的输入设备共享。

功能特性

  1. 跨平台支持:支持 Windows、Linux、MacOS 等操作系统。
  2. 多主机支持:支持多台主机之间的输入设备共享。
  3. 鼠标共享:支持鼠标在多台主机之间的共享。
  4. 键盘共享:支持键盘在多台主机之间的共享。
  5. 剪贴板共享:支持剪贴板在多台主机之间的共享。
  6. 屏幕位置配置:支持配置屏幕位置,方便多台主机之间的切换。

演示环境 1719817611466.png

双机演示

https://github.com/qy-liuhuo/deviceShare/assets/60374114/6e126292-22e0-4d91-bab9-272470689ecd

三机演示

https://github.com/qy-liuhuo/deviceShare/assets/60374114/1b911b8a-976f-4128-9518-9c64c73a7a39

使用说明

针对x86架构的Windows、Kylin、Debian操作系统以及MacOS系统,我们打包构建了可执行程序,可在Github Release界面下载合适的版本。

若构建的版本无法支持目标机器,可选择源码运行或自行打包。该方案需具备Python3 环境,具体步骤如下:

  1. 获取项目代码

  2. 使用pip install -r requirements.txt命令安装依赖

  3. 选择执行run_server.py 或 run_client.py

  4. 安装pyinstaller

  5. 使用pyinstaller打包目标程序

  6. 注意Kylin操作系统在安装python的evdev依赖时可能出现错误,请选择安装预编译版本evdev-binary,参考 https://python-evdev.readthedocs.io/en/latest/install.html

系统架构

1718631831164.png

项目的整体设计框架如上图所示,整体由四个部分构成:

  • 服务端为Hid Input设备的拥有者,可向其他客户端主机共享其拥有的输入设备。
  • 客户端可使用主机共享的输入设备。
  • 网络通信模块用于服务端和客户端的数据传输。
  • 设备控制模块用于读取Hid Input设备信息及控制Hid Input设备。

软件的运行流程如下图所示,客户端与服务端作为两个独立模块单独启动,客户端启动后会向局域网中广播自身信息, 服务端收到广播信息后将其加入主机列表,并配置屏幕间的相对位置信息。当服务端主机的光标移出屏幕范围后,会自动判断接下来被控的主机, 并将本机输入设备产生的输入拦截,通过网络模块转发给客户端,客户端收到输入信息后响应相应的控制信号。当客户端的光标移出范围后向服务端主机发送事件标志, 服务端主机停止控制信号的转发,并恢复输入事件的响应。 1718631845356.png

TODO

  • 主机发现机制
  • 屏幕位置配置
  • 鼠标共享功能
  • 键盘共享功能
  • 剪切板共享功能
  • 文件拖拽共享功能
  • 剪切板内容加密传输
  • 解耦各设备共享模块,支持用户自定义开关相关功能
  • 优化屏幕管理功能
  • 优化代码质量,提升代码可读性,提升软件性能和稳定性
  • 测试更多类型操作系统
  • 优化文档
关于
192.0 KB
邀请码
    Gitlink(确实开源)
  • 加入我们
  • 官网邮箱:gitlink@ccf.org.cn
  • QQ群
  • QQ群
  • 公众号
  • 公众号

©Copyright 2023 CCF 开源发展委员会
Powered by Trustie& IntelliDE 京ICP备13000930号