global-hotkey

Crates.ioglobal-hotkey
lib.rsglobal-hotkey
version0.5.4
sourcesrc
created_at2023-01-16 16:18:28.579535
updated_at2024-05-27 16:33:35.794015
descriptionGlobal hotkeys for Desktop Applications
homepage
repositoryhttps://github.com/amrbashir/global-hotkey
max_upload_size
id760309
size244,425
tauri (tauri-bot)

documentation

https://docs.rs/global-hotkey

README

global_hotkey lets you register Global HotKeys for Desktop Applications.

Platforms-supported:

  • Windows
  • macOS
  • Linux (X11 Only)

Platform-specific notes:

  • On Windows a win32 event loop must be running on the thread. It doesn't need to be the main thread but you have to create the global hotkey manager on the same thread as the event loop.
  • On macOS, an event loop must be running on the main thread so you also need to create the global hotkey manager on the main thread.

Example

use global_hotkey::{GlobalHotKeyManager, hotkey::{HotKey, Modifiers, Code}};

// initialize the hotkeys manager
let manager = GlobalHotKeyManager::new().unwrap();

// construct the hotkey
let hotkey = HotKey::new(Some(Modifiers::SHIFT), Code::KeyD);

// register it
manager.register(hotkey);

Processing global hotkey events

You can also listen for the menu events using GlobalHotKeyEvent::receiver to get events for the hotkey pressed events.

use global_hotkey::GlobalHotKeyEvent;

if let Ok(event) = GlobalHotKeyEvent::receiver().try_recv() {
    println!("{:?}", event);
}

License

Apache-2.0/MIT

Commit count: 83

cargo fmt