navka -> lesavka migration
This commit is contained in:
parent
90b23145b6
commit
3f0eb0cbbe
@ -1,9 +1,9 @@
|
||||
[[bin]]
|
||||
name = "navka-client"
|
||||
name = "lesavka-client"
|
||||
path = "src/main.rs"
|
||||
|
||||
[package]
|
||||
name = "navka_client"
|
||||
name = "lesavka_client"
|
||||
version = "0.3.0"
|
||||
edition = "2024"
|
||||
|
||||
@ -12,7 +12,7 @@ tokio = { version = "1.45", features = ["full", "fs", "rt-mult
|
||||
tonic = { version = "0.13", features = ["transport"] }
|
||||
tokio-stream = { version = "0.1", features = ["sync"] }
|
||||
anyhow = "1.0"
|
||||
navka_common = { path = "../common" }
|
||||
lesavka_common = { path = "../common" }
|
||||
tracing = { version = "0.1", features = ["std"] }
|
||||
tracing-subscriber = { version = "0.3", features = ["fmt", "env-filter"] }
|
||||
tracing-appender = "0.2"
|
||||
@ -29,5 +29,5 @@ raw-window-handle = "0.6"
|
||||
prost-build = "0.13"
|
||||
|
||||
[lib]
|
||||
name = "navka_client"
|
||||
name = "lesavka_client"
|
||||
path = "src/lib.rs"
|
||||
|
||||
@ -9,12 +9,12 @@ use tokio_stream::{wrappers::BroadcastStream, StreamExt};
|
||||
use tonic::Request;
|
||||
use tracing::{debug, error, info, warn};
|
||||
|
||||
use navka_common::navka::{relay_client::RelayClient, KeyboardReport, MouseReport, MonitorRequest, VideoPacket};
|
||||
use lesavka_common::lesavka::{relay_client::RelayClient, KeyboardReport, MouseReport, MonitorRequest, VideoPacket};
|
||||
|
||||
use navka_client::input::inputs::InputAggregator;
|
||||
use navka_client::output::video::MonitorWindow;
|
||||
use lesavka_client::input::inputs::InputAggregator;
|
||||
use lesavka_client::output::video::MonitorWindow;
|
||||
|
||||
pub struct NavkaClientApp {
|
||||
pub struct LesavkaClientApp {
|
||||
aggregator: Option<InputAggregator>,
|
||||
server_addr: String,
|
||||
dev_mode: bool,
|
||||
@ -22,7 +22,7 @@ pub struct NavkaClientApp {
|
||||
mou_tx: broadcast::Sender<MouseReport>,
|
||||
}
|
||||
|
||||
impl NavkaClientApp {
|
||||
impl LesavkaClientApp {
|
||||
pub fn new() -> Result<Self> {
|
||||
let dev_mode = std::env::var("NAVKA_DEV_MODE").is_ok();
|
||||
let server_addr = std::env::args()
|
||||
|
||||
@ -5,7 +5,7 @@ use evdev::{Device, EventType, KeyCode, RelativeAxisCode};
|
||||
use tokio::{sync::broadcast::Sender, time::{interval, Duration}};
|
||||
use tracing::{debug, info};
|
||||
|
||||
use navka_common::navka::{KeyboardReport, MouseReport};
|
||||
use lesavka_common::lesavka::{KeyboardReport, MouseReport};
|
||||
|
||||
use super::{keyboard::KeyboardAggregator, mouse::MouseAggregator,
|
||||
camera::CameraCapture, microphone::MicrophoneCapture};
|
||||
|
||||
@ -5,7 +5,7 @@ use evdev::{Device, EventType, InputEvent, KeyCode};
|
||||
use tokio::sync::broadcast::Sender;
|
||||
use tracing::{debug, error, info, warn};
|
||||
|
||||
use navka_common::navka::KeyboardReport;
|
||||
use lesavka_common::lesavka::KeyboardReport;
|
||||
|
||||
use super::keymap::{is_modifier, keycode_to_usage};
|
||||
|
||||
|
||||
@ -4,7 +4,7 @@ use evdev::{Device, EventType, InputEvent, KeyCode, RelativeAxisCode};
|
||||
use tokio::sync::broadcast::{self, Sender};
|
||||
use tracing::{debug, error, warn};
|
||||
|
||||
use navka_common::navka::MouseReport;
|
||||
use lesavka_common::lesavka::MouseReport;
|
||||
|
||||
pub struct MouseAggregator {
|
||||
dev: Device,
|
||||
|
||||
@ -6,4 +6,4 @@ pub mod app;
|
||||
pub mod input;
|
||||
pub mod output;
|
||||
|
||||
pub use app::NavkaClientApp;
|
||||
pub use app::LesavkaClientApp;
|
||||
|
||||
@ -8,15 +8,15 @@ use tracing_appender::non_blocking;
|
||||
use tracing_appender::non_blocking::WorkerGuard;
|
||||
use tracing_subscriber::{filter::EnvFilter, fmt, prelude::*};
|
||||
|
||||
use navka_client::NavkaClientApp;
|
||||
use lesavka_client::LesavkaClientApp;
|
||||
|
||||
#[tokio::main]
|
||||
async fn main() -> Result<()> {
|
||||
/*------------- common filter & stderr layer ------------------------*/
|
||||
let env_filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| {
|
||||
EnvFilter::new(
|
||||
"navka_client=trace,\
|
||||
navka_server=trace,\
|
||||
"lesavka_client=trace,\
|
||||
lesavka_server=trace,\
|
||||
tonic=debug,\
|
||||
h2=debug,\
|
||||
tower=debug",
|
||||
@ -33,7 +33,7 @@ async fn main() -> Result<()> {
|
||||
|
||||
/*------------- subscriber setup -----------------------------------*/
|
||||
if dev_mode {
|
||||
let log_path = Path::new("/tmp").join("navka-client.log");
|
||||
let log_path = Path::new("/tmp").join("lesavka-client.log");
|
||||
|
||||
// file → non‑blocking writer (+ guard)
|
||||
let file = OpenOptions::new()
|
||||
@ -56,7 +56,7 @@ async fn main() -> Result<()> {
|
||||
.with(file_layer)
|
||||
.init();
|
||||
|
||||
tracing::info!("navka-client running in DEV mode → {}", log_path.display());
|
||||
tracing::info!("lesavka-client running in DEV mode → {}", log_path.display());
|
||||
} else {
|
||||
tracing_subscriber::registry()
|
||||
.with(env_filter)
|
||||
@ -65,6 +65,6 @@ async fn main() -> Result<()> {
|
||||
}
|
||||
|
||||
/*------------- run the actual application -------------------------*/
|
||||
let mut app = NavkaClientApp::new()?;
|
||||
let mut app = LesavkaClientApp::new()?;
|
||||
app.run().await
|
||||
}
|
||||
|
||||
@ -3,7 +3,7 @@
|
||||
use gstreamer as gst;
|
||||
use gstreamer_app as gst_app;
|
||||
use gst::prelude::*;
|
||||
use navka_common::navka::VideoPacket;
|
||||
use lesavka_common::lesavka::VideoPacket;
|
||||
use winit::{
|
||||
event_loop::EventLoop,
|
||||
window::{Window, WindowBuilder},
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
[package]
|
||||
name = "navka-common"
|
||||
name = "lesavka-common"
|
||||
version = "0.2.0"
|
||||
edition = "2024"
|
||||
build = "build.rs"
|
||||
@ -12,5 +12,5 @@ prost = "0.13"
|
||||
tonic-build = { version = "0.13", features = ["prost"] }
|
||||
|
||||
[lib]
|
||||
name = "navka_common"
|
||||
name = "lesavka_common"
|
||||
path = "src/lib.rs"
|
||||
|
||||
@ -4,6 +4,6 @@ fn main() {
|
||||
tonic_build::configure()
|
||||
.build_server(true)
|
||||
.build_client(true)
|
||||
.compile_protos(&["proto/navka.proto"], &["proto"])
|
||||
.compile_protos(&["proto/lesavka.proto"], &["proto"])
|
||||
.expect("prost build failed");
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
syntax = "proto3";
|
||||
package navka;
|
||||
package lesavka;
|
||||
|
||||
// smaller, fixed-size payloads -> less allocation and simpler decoding
|
||||
message KeyboardReport { bytes data = 1; } // exactly 8 bytes
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
// Re-export the code generated by build.rs (navka.rs, relay.rs, etc.)
|
||||
// Re-export the code generated by build.rs (lesavka.rs, relay.rs, etc.)
|
||||
// common/src/lib.rs
|
||||
|
||||
pub mod navka {
|
||||
include!(concat!(env!("OUT_DIR"), "/navka.rs"));
|
||||
pub mod lesavka {
|
||||
include!(concat!(env!("OUT_DIR"), "/lesavka.rs"));
|
||||
}
|
||||
|
||||
@ -28,7 +28,7 @@ sudo install -Dm755 "$SRC/client/target/release/lesavka-client" /usr/local/bin/l
|
||||
# 6. systemd service for system scope: /etc/systemd/system/lesavka-client.service
|
||||
sudo tee /etc/systemd/system/lesavka-client.service >/dev/null <<'EOF'
|
||||
[Unit]
|
||||
Description=Navka Client
|
||||
Description=Lesavka Client
|
||||
After=network-online.target
|
||||
Wants=network-online.target
|
||||
|
||||
|
||||
@ -34,8 +34,8 @@ echo 0x0200 >"$G/bcdUSB"
|
||||
|
||||
mkdir -p "$G/strings/0x409"
|
||||
echo "$(cat /proc/sys/kernel/random/uuid)" >"$G/strings/0x409/serialnumber"
|
||||
echo "Navka" >"$G/strings/0x409/manufacturer"
|
||||
echo "Navka Composite" >"$G/strings/0x409/product"
|
||||
echo "Lesavka" >"$G/strings/0x409/manufacturer"
|
||||
echo "Lesavka Composite" >"$G/strings/0x409/product"
|
||||
|
||||
# ----------------------- HID keyboard (usb0) -----------------------
|
||||
mkdir -p "$G/functions/hid.usb0"
|
||||
|
||||
@ -1,9 +1,9 @@
|
||||
[[bin]]
|
||||
name = "navka-server"
|
||||
name = "lesavka-server"
|
||||
path = "src/main.rs"
|
||||
|
||||
[package]
|
||||
name = "navka_server"
|
||||
name = "lesavka_server"
|
||||
version = "0.2.0"
|
||||
edition = "2024"
|
||||
|
||||
@ -12,7 +12,7 @@ tokio = { version = "1.45", features = ["full", "fs"] }
|
||||
tokio-stream = "0.1"
|
||||
tonic = { version = "0.13", features = ["transport"] }
|
||||
anyhow = "1.0"
|
||||
navka_common = { path = "../common" }
|
||||
lesavka_common = { path = "../common" }
|
||||
tracing = { version = "0.1", features = ["std"] }
|
||||
tracing-subscriber = { version = "0.3", features = ["env-filter", "fmt"] }
|
||||
libc = "0.2"
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
//! navka-server — receive HidReport and write to /dev/hidg0
|
||||
//! lesavka-server — receive HidReport and write to /dev/hidg0
|
||||
// sever/src/main.rs
|
||||
#![forbid(unsafe_code)]
|
||||
|
||||
@ -12,9 +12,9 @@ use tracing::{error, info, trace, warn};
|
||||
use tracing_subscriber::{fmt, EnvFilter};
|
||||
use udev::{Enumerator, MonitorBuilder};
|
||||
|
||||
use navka_server::{video, usb_reset};
|
||||
use lesavka_server::{video, usb_reset};
|
||||
|
||||
use navka_common::navka::{
|
||||
use lesavka_common::lesavka::{
|
||||
relay_server::{Relay, RelayServer},
|
||||
KeyboardReport, MouseReport,
|
||||
MonitorRequest, VideoPacket,
|
||||
@ -149,7 +149,7 @@ async fn main() -> anyhow::Result<()> {
|
||||
/* logging */
|
||||
fmt().with_env_filter(
|
||||
EnvFilter::try_from_default_env()
|
||||
.unwrap_or_else(|_| EnvFilter::new("navka_server=info")),
|
||||
.unwrap_or_else(|_| EnvFilter::new("lesavka_server=info")),
|
||||
)
|
||||
.init();
|
||||
|
||||
@ -172,7 +172,7 @@ async fn main() -> anyhow::Result<()> {
|
||||
ms: Arc::new(Mutex::new(ms)),
|
||||
};
|
||||
|
||||
println!("🌐 navka-server listening on 0.0.0.0:50051");
|
||||
println!("🌐 lesavka-server listening on 0.0.0.0:50051");
|
||||
Server::builder()
|
||||
.add_service(RelayServer::new(handler))
|
||||
.serve(([0, 0, 0, 0], 50051).into())
|
||||
|
||||
@ -4,7 +4,7 @@ use anyhow::Context;
|
||||
use gstreamer as gst;
|
||||
use gstreamer_app as gst_app;
|
||||
use gst::prelude::*;
|
||||
use navka_common::navka::VideoPacket;
|
||||
use lesavka_common::lesavka::VideoPacket;
|
||||
use tokio_stream::wrappers::ReceiverStream;
|
||||
use tonic::Status;
|
||||
|
||||
|
||||
@ -1,7 +1,7 @@
|
||||
#[tokio::test]
|
||||
async fn hid_roundtrip() {
|
||||
use navka_common::navka::*;
|
||||
use navka_server::RelaySvc; // export the struct in lib.rs
|
||||
use lesavka_common::lesavka::*;
|
||||
use lesavka_server::RelaySvc; // export the struct in lib.rs
|
||||
let svc = RelaySvc::default();
|
||||
let (mut cli, srv) = tonic::transport::Channel::balance_channel(1);
|
||||
tokio::spawn(tonic::transport::server::Server::builder()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user