#mouse-input #hotkey #keyboard #mouse #api-bindings

hookmap

注册热键并模拟键盘和鼠标输入

17个版本

0.5.1 2022年12月6日
0.5.0 2022年5月13日
0.4.8 2022年1月2日
0.4.7 2021年10月11日
0.1.1 2021年7月31日

#1340 in 硬件支持

Download history 2/week @ 2024-05-17 1/week @ 2024-06-28 47/week @ 2024-07-05 61/week @ 2024-07-26 7/week @ 2024-08-02

68 每月下载量

MIT/Apache

105KB
2.5K SLoC

hookmap

Crates.io API reference

注册热键并模拟键盘和鼠标输入。

支持的操作系统

  • Windows 10

示例

use hookmap::prelude::*;

fn main() {
    let mut hotkey = Hotkey::new();

    // Remap H,J,K,L keys as in vim.
    hotkey
        .register(Context::default())
        .remap(Button::H, Button::LeftArrow)
        .remap(Button::J, Button::DownArrow)
        .remap(Button::K, Button::UpArrow)
        .remap(Button::L, Button::RightArrow);

    // You can define hotkeys that work only when specific keys are pressed or released.
    hotkey
        .register(
            Context::new()
                .modifiers(buttons!(LCtrl, !RShift))
                .native_event_operation(NativeEventOperation::Block),
        )
        .on_press(Button::Space, |_| {
            seq!(with(LCtrl), A).send_ignore_modifiers();
        })
        .disable(buttons!(A, B))
        .on_release(buttons!(A, B), |event: ButtonEvent| {
            seq!(with(LShift), [event.target]).send_ignore_modifiers();
        });

    hotkey.install();
}

依赖

~1–26MB
~351K SLoC