#mouse-input #keyboard-input #mouse #keyboard #input #linux-macos

device_query_revamped

无需窗口即可按需查询键盘和鼠标状态的基库

4个稳定版本

使用旧的Rust 2015

2.2.1 2023年11月4日
2.1.1 2023年11月4日
2.0.0 2023年7月27日
1.1.3 2023年7月27日

#769 in 硬件支持

Download history 8/week @ 2024-03-08 8/week @ 2024-03-15 3/week @ 2024-03-22 29/week @ 2024-03-29 6/week @ 2024-04-05 2/week @ 2024-04-12 6/week @ 2024-05-17 36/week @ 2024-05-24 26/week @ 2024-05-31 16/week @ 2024-06-07 7/week @ 2024-06-14 2/week @ 2024-06-21

70 每月下载量
kbt 中使用

MIT 许可

56KB
1.5K SLoC

这是原始device_query的分支

它添加了Linux和Win中LMeta和RMeta键的区别

device_query

Build Status

一个简单的库,可以在无需窗口的情况下按需查询鼠标和键盘输入。它将在Windows、Linux上的X11和macOS上工作。

use device_query::{DeviceQuery, DeviceState, MouseState, Keycode};

let device_state = DeviceState::new();
let mouse: MouseState = device_state.get_mouse();
println!("Current Mouse Coordinates: {:?}", mouse.coords);
let keys: Vec<Keycode> = device_state.get_keys();
println!("Is A pressed? {}", keys.contains(Keycode::A));

依赖项

Windows无需安装任何特殊软件即可使device_query正常工作。在Linux上,需要X11开发库,以便device_query能够从操作系统查询状态。

在Ubuntu/Debian上

sudo apt install libx11-dev

在Fedora/RHEL/CentOS上

sudo dnf install xorg-x11-server-devel

在macOS的新版本上,您可能会遇到只有元键(如shift、backspace等)可见的问题。这是由于权限问题。为了解决这个问题

  • 打开MacOS系统偏好设置
  • 转到安全 -> 隐私
  • 向下滚动到辅助功能并解锁它
  • 将使用device_query的应用程序(如您的终端)添加到列表中

依赖项

~0–37MB
~524K SLoC