Lesavka
Lesavka is a remote-control and remote-presence client/server pair built to make a far-away desktop feel as direct and usable as possible. It combines live eye-feed previews, input routing, device staging, capture power control, clipboard send, and operator-focused observability in one launcher.
What Lesavka Can Do
- Launch and control a live remote relay session from a local desktop app
- Preview the left and right remote eye feeds inline or in broken-out windows
- Stage the local camera, microphone, speaker, keyboard, and mouse before connecting
- Route keyboard and mouse ownership between local and remote on demand
- Send clipboard text into the remote session
- Control relay GPIO/capture power from the launcher
- Show local and remote build versions so we know which code is running on each side
- Install cleanly through idempotent client/server install scripts
Current Capabilities
- KDE launcher integration for the local client install
- Session console with copy and breakout support
- Adjustable capture and breakout sizing for each eye feed
- Automatic redocking of broken-out eye windows when the relay disconnects
- Modifier-aware keyboard relay that now supports
Shift+a -> A - Server and client build identity visible in the launcher
Install / Update
Local Client
cd /home/brad/Development/lesavka
git pull --ff-only
sudo LESAVKA_REF=master ./scripts/install/client.sh
Server (theia)
ssh theia 'cd /var/src/lesavka && git pull --ff-only && sudo LESAVKA_REF=master ./scripts/install/server.sh'
These install scripts are intended to be the trusted, repeatable delivery path. They pull the requested ref, ensure the environment is ready, build the correct binaries, install them into sensible system paths, and refresh the launched application or service.
Operator Workflow
- Install or update the client and server through the install scripts.
- Launch
Lesavkafrom the KDE application launcher or runlesavka. - Stage the local devices you want the next relay session to inherit.
- Connect the relay and confirm the eye previews come online.
- Route inputs to the remote when you are ready to drive the far-side machine.
- Use the session console and diagnostics tools to understand what the session is doing.
Roadmap
Highest-Impact Next Steps
- Add a real diagnostics panel with breakout/copy support
- Show stream health metrics such as fps, dropped frames, RTT, jitter, and packet loss
- Improve client decoder selection so preview and breakout paths prefer hardware acceleration when possible
- Surface server adaptive-stream stats directly in the launcher
After That
- Add adaptive bitrate and resolution controls
- Add synthetic motion/input test scenes for objective latency and smoothness measurement
- Add artifact-quality scoring for controlled test patterns
- Keep tightening the “feels local” experience for typing, motion, and conference-style usage
Philosophy
Lesavka is meant to be practical. The goal is not just to establish a remote session, but to make that session reliable, measurable, and comfortable enough for important real-world work.
Description
Languages
Rust
82.8%
Shell
14.9%
C++
1.4%
Python
0.8%