All Projects → obv-mikhail → InputBot

obv-mikhail / InputBot

Licence: MIT license
A Rust library for creating global hotkeys, and emulating inputs.

Programming Languages

rust
11053 projects

Projects that are alternatives of or similar to InputBot

Chordly
Chordly is a javascript library that may be used to detect and act upon key sequences entered by a user.
Stars: ✭ 14 (-94.31%)
Mutual labels:  hotkeys
rust-ipfs-api
Rust language IPFS API implementation
Stars: ✭ 20 (-91.87%)
Mutual labels:  rust-library
whoami
Rust crate to get the current user and environment.
Stars: ✭ 68 (-72.36%)
Mutual labels:  rust-library
JFHotkeyManager
Global hotkey manager for Cocoa
Stars: ✭ 32 (-86.99%)
Mutual labels:  hotkeys
e621 downloader
E621 and E926 downloader made in the Rust programming langauge.
Stars: ✭ 39 (-84.15%)
Mutual labels:  rust-library
mailparse
Rust library to parse mail files
Stars: ✭ 148 (-39.84%)
Mutual labels:  rust-library
Hotkeys
🔤 A small C# (.NET) Library which allows binding of global HotKeys to any Application's Windows (including Windows Apps such as explorer.exe), even in Background. (using P/Invokes)
Stars: ✭ 66 (-73.17%)
Mutual labels:  hotkeys
cala
Cross-platform system interface for hardware IO
Stars: ✭ 46 (-81.3%)
Mutual labels:  rust-library
rabe
rabe is an Attribute Based Encryption library, written in Rust
Stars: ✭ 52 (-78.86%)
Mutual labels:  rust-library
cdc
A library for performing Content-Defined Chunking (CDC) on data streams.
Stars: ✭ 18 (-92.68%)
Mutual labels:  rust-library
Kursor
Cursor style with javascript and css
Stars: ✭ 140 (-43.09%)
Mutual labels:  mouse-emulation
actix-derive
[ARCHIVED] development moved into main actix repo
Stars: ✭ 38 (-84.55%)
Mutual labels:  rust-library
LipSync
An open-source mouth operated sip and puff joystick that enables people with limited hand function emulate a mouse on their computer and/or smartphone.
Stars: ✭ 27 (-89.02%)
Mutual labels:  mouse-emulation
GlotDict
This extension for WordPress polyglots implements new features to improve the quality of translation/reviews!
Stars: ✭ 52 (-78.86%)
Mutual labels:  hotkeys
pinto
Query builder (SQL) in Rust
Stars: ✭ 23 (-90.65%)
Mutual labels:  rust-library
react-shortcut
Convenient React component that detects if the given key combination is pressed, and triggers a callback
Stars: ✭ 16 (-93.5%)
Mutual labels:  hotkeys
rdp
A library providing FFI access to fast Ramer–Douglas–Peucker and Visvalingam-Whyatt line simplification algorithms
Stars: ✭ 20 (-91.87%)
Mutual labels:  rust-library
blackdesert-fishbot
Fishing bot for Black Desert Online
Stars: ✭ 59 (-76.02%)
Mutual labels:  keyboard-emulation
waihona
Rust crate for performing cloud storage CRUD actions across major cloud providers e.g aws
Stars: ✭ 46 (-81.3%)
Mutual labels:  rust-library
webbrowser-rs
Rust library to open URLs in the web browsers available on a platform
Stars: ✭ 150 (-39.02%)
Mutual labels:  rust-library

InputBot docs link crates.io version

Cross-platform (Windows & Linux) library for simulating keyboard/mouse input events and registering global input device event handlers.

Allows writing automation programs that collapse long action-sequences into single key-presses.

Usage

[dependencies]
inputbot = "0.5"
use inputbot::{KeySequence, KeybdKey::*, MouseButton::*};
use std::{thread::sleep, time::Duration};

fn main() {
    // Bind the number 1 key your keyboard to a function that types 
    // "Hello, world!" when pressed.
    Numrow1Key.bind(|| KeySequence("Hello, world!").send());

    // Bind your caps lock key to a function that starts an autoclicker.
    CapsLockKey.bind(move || {
        while CapsLockKey.is_toggled() {
            LeftButton.press();
            LeftButton.release();

            sleep(Duration::from_millis(30));
        }
    });

    // Call this to start listening for bound inputs.
    inputbot::handle_input_events();
}

NOTE: The README and examples are based off the develop branch of InputBot. If a feature is not working, you are probably using the version from crates.io. If you want to use the latest build, add this to your Cargo.toml:

[dependencies]
inputbot = { git = "https://github.com/obv-mikhail/InputBot", branch = "develop" }

Check out examples for comprehensive examples on how to use each feature.

Build Dependencies

Debian or Ubuntu based distros

  • libx11-dev
  • libxtst-dev
  • libudev-dev
  • libinput-dev

Note: libinput requires InputBot to be run with sudo on Linux - sudo ./target/debug/<program name>.

Examples

You can run the included examples by cloning the library and running cargo run --example <example name>. Similar to the note above, on Linux you have to run cargo build --examples && sudo ./target/debug/<example name>.

This is especially useful for testing the library when contributing.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].