探索创新输入设备管理——Evsieve

探索创新输入设备管理——Evsieve

evsieve A utility for mapping events from Linux event devices. 项目地址: https://gitcode.com/gh_mirrors/ev/evsieve

项目介绍

"Evsieve"(事件筛选器)是一个轻量级工具,专注于处理Linux的[evdev]事件设备和[uinput]虚拟事件设备之间的数据流动,实现简单的事件转换。这个工具能让你重新映射键盘按键、将游戏手柄转化为虚拟键盘,甚至在Qemu的evdev passthrough功能中发挥重要作用。

项目技术分析

Evsieve利用Rust编程语言编写,并依赖libevdev库。它的工作原理是读取来自物理输入设备(如键盘、鼠标或游戏控制器)的事件流,然后根据你的配置进行修改,最后把这些修改后的事件发送到虚拟设备。它的设计目标是让基础操作简单易行,而不是复杂的宏定义或复杂事件处理,对于更复杂的任务,建议使用Python-evdev库。

应用场景与技术应用

  • 在Qemu中,Evsieve可以保留主机上的某些键,而将其他键传递给虚拟机,确保即使键盘被passthrough,你仍能控制主机。
  • 它可用来执行基于热键的脚本,即使键盘已连接到虚拟机。
  • 通过将事件拆分到多个虚拟设备,你可以将这些设备分别传递给不同的虚拟机,或者保持一部分在主机上。
  • 高度的按键重映射能力,使得即使虚拟机也无法察觉原始按键与映射后按键的区别。

项目特点

  1. 易于使用的接口 - 提供命令行参数来控制事件的读取、转换和写入,允许快速设置和调试。
  2. 低级操作 - 直接处理底层事件流,提供对硬件输入的精确控制。
  3. 适用于Qemu evdev-passthrough - 特别优化了与Qemu的兼容性,为虚拟化环境提供强大的定制能力。
  4. 无需复杂脚本 - 对于简单的键盘映射和事件触发任务,Evsieve提供了直观的解决方案,而不需要编写复杂的脚本或程序。

编译与安装

Evsieve的编译要求Rust工具链和libevdev库。在大多数主流Linux发行版中,可以通过包管理器安装所需依赖,然后从GitHub仓库获取源代码并编译。编译完成后,可以在PATH路径下安装二进制文件以便全局使用。

使用示例

基础用法包括观察设备事件,例如:

sudo evsieve --input /dev/input/event* --print

或者将键盘事件重映射为另一个键,如将Caps Lock改为Backspace:

sudo evsieve --input /dev/input/by-id/keyboard grab --map key:capslock key:backspace --output

Evsieve支持顺序处理事件,每个参数都会根据前面的参数处理事件流,最终由--output将结果写入虚拟设备。

Evsieve还提供了钩子机制,可当特定键组合按下时执行自定义脚本,比如:

sudo evsieve --input /dev/input/by-id/keyboard --hook key:leftctrl key:h exec-shell="echo Hello, world!"

总结来说,Evsieve是一个强大且灵活的工具,它以低级别的事件处理能力,为你的硬件输入管理带来了新的可能性。无论是用于日常操作还是虚拟化环境,它都能为你带来便利。现在就尝试一下,探索更多可能吧!

evsieve A utility for mapping events from Linux event devices. 项目地址: https://gitcode.com/gh_mirrors/ev/evsieve

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

井队湛Heath

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值