#keyboard-input #mouse-input #input #mouse #keyboard

device_query

A basic library for querying keyboard and mouse state on-demand without a window

20 releases (7 stable)

Uses old Rust 2015

2.1.0 May 26, 2024
2.0.0 Feb 9, 2024
1.1.3 Mar 31, 2023
1.1.1 May 18, 2022
0.1.0 Apr 3, 2018

#54 in Hardware support

Download history 1006/week @ 2024-04-04 926/week @ 2024-04-11 871/week @ 2024-04-18 923/week @ 2024-04-25 916/week @ 2024-05-02 960/week @ 2024-05-09 1096/week @ 2024-05-16 1047/week @ 2024-05-23 853/week @ 2024-05-30 719/week @ 2024-06-06 823/week @ 2024-06-13 814/week @ 2024-06-20 536/week @ 2024-06-27 410/week @ 2024-07-04 732/week @ 2024-07-11 680/week @ 2024-07-18

2,471 downloads per month
Used in 33 crates (30 directly)

MIT license

57KB
1.5K SLoC

device_query

Build Status

A simple library to query mouse and keyboard inputs on demand without a window. Will work in Windows, Linux on X11, and 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));

Dependencies

Windows shouldn't require any special software to be installed for device_query to work properly. On Linux, the X11 development libraries are required for device_query to query state from the OS.

On Ubuntu/Debian:

sudo apt install libx11-dev

On Fedora/RHEL/CentOS:

sudo dnf install xorg-x11-server-devel

On newer versions of MacOS, you may run into issues where you only see meta keys such as shift, backspace, et cetera. This is due to a permission issue. To work around this:

  • open the MacOS system preferences
  • go to Security -> Privacy
  • scroll down to Accessibility and unlock it
  • add the app that is using device_query (such as your terminal) to the list

Dependencies

~0–38MB
~524K SLoC