mirror of
https://github.com/tauri-apps/global-hotkey.git
synced 2026-01-31 00:45:22 +01:00
44 lines
1.1 KiB
Markdown
44 lines
1.1 KiB
Markdown
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
|
|
|
|
```rs
|
|
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.
|
|
|
|
```rs
|
|
use global_hotkey::GlobalHotKeyEvent;
|
|
|
|
if let Ok(event) = GlobalHotKeyEvent::receiver().try_recv() {
|
|
println!("{:?}", event);
|
|
}
|
|
```
|
|
|
|
## License
|
|
|
|
Apache-2.0/MIT
|