# input-leap **Repository Path**: AsionTang/input-leap ## Basic Information - **Project Name**: input-leap - **Description**: 基于官方的InputLeap版本, 交换了Win下面的Ctrl为Mac下的Command按键, 并且将Ctrl+H隐射为了Ctrl+Alt+H按键. 达到了几乎和Win系统一样的快捷键操作体验 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: YeMacDiy - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-12-20 - **Last Updated**: 2026-01-08 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Input Leap ## 中文文档 ### 项目介绍 Input Leap 是一款软件 KVM 切换器,允许您使用一套键盘鼠标控制多台计算机。与传统 KVM 不同,Input Leap 通过软件实现,只需将鼠标移动到屏幕边缘即可在不同计算机间切换控制权。 ### 项目目标 - **可靠稳定**:专注于解决 Synergy 存在的问题,提供稳定的用户体验 - **跨平台兼容**:支持 Windows、macOS、Linux、FreeBSD 等多种操作系统 - **开放透明**:所有开发工作公开透明,问题跟踪和解决过程清晰可见 ### 主要功能 - 一套键盘鼠标控制多台计算机 - 剪贴板共享(Linux/Wayland 暂不支持) - 支持多操作系统间无缝切换 ### 使用方法 1. 在所有需要共享键盘鼠标的计算机上安装并运行 Input Leap 2. 在连接键盘鼠标的计算机上,将其设置为服务器 3. 点击 "Configure server" 按钮,为每个客户端计算机在网格上拖动一个新屏幕 4. 确保每个配置的屏幕的 "screen name" 完全匹配(区分大小写) 5. 在客户端上,输入服务器的 IP 地址并启动客户端 ### 常见问题 请参考英文文档部分的 FAQ --- ### YeMacDiy 分支定制内容 本分支基于官方 Input Leap 进行了以下定制优化,主要针对 macOS 平台的使用体验: #### 1. 按键映射优化 **修改文件**:`src/lib/inputleap/KeyMap.cpp` - 将 Mac 下的 **Command 键**映射为 **Control 键** - 将 Mac 下的 **Control 键**映射为 **Command 键** - 目的:保持与 Windows 系统的操作习惯一致,提升跨平台使用体验 #### 2. 编译优化与兼容性 **修改文件**:`CMakeLists.txt`、`src/CMakeLists.txt` 等 - 调整为仅编译客户端发布模式,减少不必要的编译 - 解决 Mac Mini ARM 平台编译报错问题 - 配置命令行程序编译,放弃 UI 编译以提升稳定性 - 添加 Clang 版本检查,自动降级到 Clang 15 以避免性能问题 #### 3. 自动化工具脚本 **新增脚本文件**: - `YeInputLeap.install.command`:安装脚本,自动配置系统启动项 - `YeInputLeap.start.sh`:启动 input-leapc 客户端的脚本 - `YeInputLeap.stop.sh`:停止 input-leapc 客户端的脚本 - `YeInputLeap.list.sh`:列出当前运行的 input-leapc 进程 - `clean_build.sh`:清理构建文件的脚本 #### 4. 客户端管理优化 - 自动清理现有 input-leapc 进程以避免冲突 - 调整测试脚本的 debug 级别并添加构建模式交互选择 - 添加日志文件记录功能并提升调试级别 - 实现 Ctrl+H 到 Ctrl+Alt+H 的映射,方便调试 #### 5. 网络与仓库优化 - 将子项目的 Git 仓库地址修改为国内可用的镜像地址,提升克隆速度 - 添加了 InputLeap 在 Mac 26 版本编译问题的解决历程文档 - 添加了 InputLeap 开机自动启动方式汇总文档 #### 6. 本地化改进 - 将脚本中的英文注释翻译为中文,方便中文用户使用 - 所有新增脚本均使用中文提示和注释 ### 定制特色 1. **Windows 操作习惯兼容**:通过按键映射调整,使 Mac 用户能使用熟悉的 Windows 快捷键 2. **一键式管理**:提供完整的脚本工具链,简化客户端的启动、停止、安装和管理 3. **性能优化**:针对 macOS 平台进行编译优化,解决性能问题 4. **易用性提升**:中文注释和文档,降低使用门槛 ### 如何使用定制版本 1. 克隆本分支:`git clone -b YeMacDiy <仓库地址>` 2. 运行 `clean_build.sh` 构建项目 3. 使用 `YeInputLeap.install.command` 安装并配置启动项 4. 使用 `YeInputLeap.start.sh` 启动客户端 --- ## English Documentation ### Contact info: - `#inputleap` on LiberaChat IRC network, for support with Input Leap. - `#inputleap-dev` on LiberaChat IRC network, for discussing development of Input Leap. ### What is it? Input Leap is software that mimics the functionality of a KVM switch, which historically would allow you to use a single keyboard and mouse to control multiple computers by physically turning a dial on the box to switch the machine you're controlling at any given moment. Input Leap does this in software, allowing you to tell it which machine to control by moving your mouse to the edge of the screen, or by using a keypress to switch focus to a different system. At the moment, Input Leap is not compatible with Synergy. Input Leap needs to be installed on all machines that will share keyboard and mouse. ### What's different? Whereas Synergy has moved beyond its goals from the 1.x era, Input Leap aims to maintain that simplicity. Input Leap will let you use your keyboard and mouse from one computer to control one or more other computers. Clipboard sharing is supported (**Note:** Not currently supported on Linux/Wayland). That's it. ### Project goals Hassle-free reliability. We are users, too. Input Leap was created so that we could solve the issues we had with Synergy and then share these fixes with other users. Compatibility. We use more than one operating system and you probably do, too. Windows, macOS, Linux, FreeBSD... Input Leap should "just work". Communication. Everything we do is in the open. Our issue tracker will let you see if others are having the same problem you're having and will allow you to add additional information. You will also be able to see when progress is made and how the issue gets resolved. ### Usage 1. Install and run Input Leap on each machine that will be sharing. 2. On the machine with the keyboard and mouse, make it the server. 3. Click the "Configure server" button and drag a new screen onto the grid for each client machine. 4. Ensure the "screen name" matches exactly (case-sensitive) for each configured screen -- the clients' Input Leap windows will tell you their screen names (just above the server IP). 5. On the client(s), put in the server machine's IP address (or use Bonjour/auto configuration when prompted) and "start" them. You should see `Input Leap is running` on both server and clients. You should now be able to move the mouse between all the screens as if they were the same machine. Note that if the keyboard's Scroll Lock is active then this will prevent the mouse from switching screens. To find information about configuring Input Leap look at the [wiki](https://github.com/input-leap/input-leap/wiki) ### Contact & support Please be aware that the *only* way to draw our attention to a bug is to create a new issue in [the issue tracker](https://github.com/input-leap/input-leap/issues). Always follow the template, it's there for a reason. Failure to do so will inevitably result in a delay in the issue being fixed! Please also see the IRC channels at the top of the README for other methods of support. ### Contributions At this time we are looking for developers to help fix the issues found in the issue tracker. Submit pull requests once you've polished up your patch and we'll review and possibly merge it. Most pull requests will need to include a release note. See `doc/newsfragments/README.md` for documentation of how to do that. ## Distro specific packages While not a comprehensive list, [repology](https://repology.org/project/input-leap/versions) provides a decent list of distro specific packages. [![Packaging status](https://repology.org/badge/vertical-allrepos/input-leap.svg)](https://repology.org/project/input-leap/versions) ## FAQ - Frequently Asked Questions **Q: Input Leap vs. barrier?** > A: Input Leap is a fork of barrier, by **barrier's active maintainers**. See [issue #1414](https://github.com/input-leap/input-leap/issues/1414) > for more details. Currently, barrier is considered unmaintained. **Q: Does drag and drop work on linux?** > A: No *(see [#855](https://github.com/input-leap/input-leap/issues/855) if you'd like to change that)* **Q: What OSes are supported?** > A: The [most recent release](https://github.com/input-leap/input-leap/releases/latest) of Input Leap is known to work on: > - Windows 10, and 11 > - macOS *(previously known as OS X or Mac OS X)* > - 10.12 and newer > - Linux > - FreeBSD > - OpenBSD **Q: Are 32-bit versions of Windows supported?** > A: No __Q: Is it possible to use Input Leap on Mac OS X / OS X versions prior to 10.12?__ > A: No **Q: How do I load my configuration on startup?** > A: Start the binary with the argument `--config ` **Q: After loading my configuration on the client the field 'Server IP' is still empty!** > A: Edit your configuration to include the server's ip address manually with > >``` >(...) > >section: options > serverhostname= >``` **Q: Are there any other significant limitations with the current version of Input Leap?** > A: Currently: > - Input Leap currently has limited UTF-8 support; issues have been reported with processing various languages. > - *(see [#860](https://github.com/input-leap/input-leap/issues/860))* > - Clipboard sharing is not currently supported on Linux/Wayland. > - AltGr key combinations when Server is linux and client is Windows don't usually work out of the box. See [#100](https://github.com/input-leap/input-leap/issues/100) for a workaround > > The complete list of open issues can be found in the ['Issues' tab on GitHub](https://github.com/input-leap/input-leap/issues?q=is%3Aissue+is%3Aopen). Help is always appreciated.