Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
lamco-rdp-input
RDP input event translation for Rust - keyboard scancodes to evdev keycodes, mouse event handling, and multi-monitor coordinate transformation.
Overview
This crate provides complete input event translation for RDP server implementations. It handles the conversion from RDP protocol input events to Linux evdev keycodes, enabling seamless integration with Wayland compositors and other Linux input systems.
The translation layer supports standard keyboards, extended multimedia keys, international layouts, and complex multi-monitor configurations with per-monitor DPI scaling.
Features
-
Complete Keyboard Support
- 150+ scancode mappings (standard, extended E0, E1 prefix)
- International layout support (US, DE, FR, UK, AZERTY, QWERTZ, Dvorak)
- Full modifier tracking (Shift, Ctrl, Alt, Meta)
- Toggle key handling (Caps Lock, Num Lock, Scroll Lock)
- Key repeat detection with configurable timing
-
Advanced Mouse Support
- Absolute and relative movement
- Sub-pixel precision with accumulation
- 5-button support (Left, Right, Middle, Extra1, Extra2)
- High-precision scrolling with accumulator
- Button state tracking
-
Multi-Monitor Coordinate Transformation
- Complete transformation pipeline (RDP → Virtual Desktop → Monitor → Stream)
- DPI scaling and monitor scale factor support
- Mouse acceleration with Windows-style curves
- Multi-monitor boundary handling
Quick Start
use ;
// Configure monitors
let monitors = vec!;
// Create translator
let mut translator = new?;
// Translate keyboard event
let event = KeyboardScancode ;
let linux_event = translator.translate_event?;
Installation
Add to your Cargo.toml:
[]
= "0.1"
Documentation
See docs.rs/lamco-rdp-input for full API documentation.
About Lamco
This crate is part of the Lamco RDP project. Lamco develops RDP server solutions for Wayland/Linux.
Open source foundation: Protocol components, input translation, clipboard utilities Commercial products: Lamco RDP Portal Server, Lamco VDI
Learn more: lamco.ai
License
Licensed under either of:
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you shall be dual licensed as above, without any additional terms or conditions.