Features: - Direct Input Engine (no pre-edit buffer, no underline) - Telex + VNI input methods - Auto-restore English words - ESC undo (strip tones) - Smart per-app memory - Macro expansion (ko→không, dc→được, vs→với, lm→làm) - Triple backend: uinput, X11 XTEST, Wayland IM - Hot-reload config - 148 tests passing Packaging: - .deb package - AppImage support - AUR PKGBUILD - Flatpak manifest - Systemd user service
8 lines
286 B
Rust
8 lines
286 B
Rust
use crate::inject::KeyEvent;
|
|
|
|
pub trait KeyMonitor {
|
|
fn grab(&self) -> Result<(), Box<dyn std::error::Error>>;
|
|
fn ungrab(&self) -> Result<(), Box<dyn std::error::Error>>;
|
|
fn read_key(&self) -> Result<KeyEvent, Box<dyn std::error::Error>>;
|
|
fn is_active(&self) -> bool;
|
|
}
|