kbd-tao
kbd bridge for tao (Tauri's winit fork) — converts key events and modifiers to kbd types.
This lets window-focused key events (from tao) and global hotkey events (from kbd-global) feed into the same Dispatcher. Especially useful in Tauri apps where you want both in-window shortcuts and system-wide hotkeys handled through a single hotkey registry.
Tao is Tauri's fork of winit — both derive from the W3C UI Events specification, so the variant names are nearly identical and the mapping is mechanical. Unlike winit, tao uses KeyCode directly in KeyEvent rather than wrapping it in a PhysicalKey type.
[]
= "0.1"
= "0.1"
Extension traits
TaoKeyExt— converts a taoKeyCodeto akbd::KeyTaoModifiersExt— converts taoModifiersStateto aVec<Modifier>TaoEventExt— converts a taoKeyEventplusModifiersStateto akbd::Hotkey
Usage
Inside tao's event loop, use TaoEventExt to convert key events directly:
use *;
use TaoEventExt;
use ;
use ;
use ModifiersState;
use WindowBuilder;
let event_loop = new;
let _window = new.build.unwrap;
let mut modifiers = empty;
event_loop.run;
The individual conversion traits can also be used separately:
use *;
use ;
use ;
let key = KeyA.to_key;
assert_eq!;
let mods = CONTROL.to_modifiers;
assert_eq!;
Key mapping
| tao | kbd | Notes |
|---|---|---|
KeyCode::KeyA – KeyCode::KeyZ |
Key::A – Key::Z |
Letters |
KeyCode::Digit0 – KeyCode::Digit9 |
Key::DIGIT0 – Key::DIGIT9 |
Digits |
KeyCode::F1 – KeyCode::F35 |
Key::F1 – Key::F35 |
Function keys |
KeyCode::Numpad0 – KeyCode::Numpad9 |
Key::NUMPAD0 – Key::NUMPAD9 |
Numpad |
KeyCode::Enter, KeyCode::Escape, … |
Key::ENTER, Key::ESCAPE, … |
Navigation / editing |
KeyCode::ControlLeft, … |
Key::CONTROL_LEFT, … |
Modifier keys as triggers |
KeyCode::SuperLeft / KeyCode::SuperRight |
Key::META_LEFT / Key::META_RIGHT |
tao's Super = kbd's Meta |
KeyCode::Equal / KeyCode::Plus |
Key::EQUAL |
Same physical key |
KeyCode::MediaPlayPause, … |
Key::MEDIA_PLAY_PAUSE, … |
Media keys |
KeyCode::BrowserBack, … |
Key::BROWSER_BACK, … |
Browser keys |
KeyCode::Unidentified(_) |
None |
No mapping possible |
Modifier mapping
| tao | kbd |
|---|---|
CONTROL |
Modifier::Ctrl |
SHIFT |
Modifier::Shift |
ALT |
Modifier::Alt |
SUPER |
Modifier::Super |
License
kbd-tao is licensed under the MIT license. See the LICENSE file for more information.