Linux主机转换成蓝牙键盘鼠标hdiclient
2022年4月,上海封城已20天...在家办公遇到非常麻烦的事情:原先屏幕损坏的MacBook Pro笔记本电脑外接显示器连线损坏。这样,我不得不放弃使用 macOS ,改为采用 运行sway窗口管理器 ( 树莓派Raspberry Pi 400 硬件 )。
但是,由于工作需要,一些应用如案件没有Linux版本,需要在 Android 或者 iOS 系统上的软件。考虑到视频会议需要,主要使用iOS系统的iPad。不过,平板的输入效率非常低,如果配备独立的蓝牙键盘,那么每次双手从 树莓派Raspberry Pi 400 上移动到iPad的蓝牙键盘再移回来,非常繁琐无聊。
解决的思路就是,使用 树莓派Raspberry Pi 400 主机的蓝牙功能,将键盘输入转换成蓝牙信号转发给通过蓝牙连接的设备,这样就好像主机是一个独立的蓝牙键盘,方便平板设备输入。
备注
本文思路目前尚未实现,原因是早期的 hidclient
所使用的库 stropts.h
已经被废除支持,无法完成编译。后续我再考虑如何接解决这个问题...
转换主机作为蓝牙输入设备
hidclient
是一个将主机作为其他设备的蓝牙键盘和鼠标的应用程序。本地链接的输入设备的输入事件(例如键盘按击和鼠标移动)被抓发给蓝牙连接的其他主机。被连接的移动设备无需越狱,也不需要安装任何特殊应用。
备注
hidclient
已经不再开发,源代码现在可以从 github 上Fork的项目 benizi/hidclient 获取
编译hidclient
安装编译库依赖:
sudo apt install libbluetooth-dev
下载源代码:
git clone https://github.com/benizi/hidclient.git
编译:
cd hidclient make
编译错误处理
没有
stropts.h
dclient.c:105:10: fatal error: stropts.h: No such file or directory 105 | #include <stropts.h> | ^~~~~~~~~~~ compilation terminated. make: *** [Makefile:2: hidclient] Error 1
参考 How do I install libraries for <stropts.h>? :
stropts.h
是Posix STREAMS扩展的部分,Linux不支持这个库(从2008年开始,已经被posix标记为废弃),虽然有一些第三方STREAMS实现,但是可能不解决问题。
我暂时没有时间精力解决这个问题,后续看需求是否能通过修正代码来解决。