fix(client): per-command emojis, remove separator line, fix admin line indent
This commit is contained in:
parent
20e97b932b
commit
314ebab5c9
1 changed files with 22 additions and 21 deletions
|
|
@ -26,14 +26,14 @@ fn banner() {
|
|||
#[cfg(windows)]
|
||||
{
|
||||
let admin = is_admin();
|
||||
let admin_str = if admin {
|
||||
"admin".green().bold()
|
||||
let (icon, admin_str) = if admin {
|
||||
("👑", "admin".green().bold().to_string())
|
||||
} else {
|
||||
"user (no admin)".yellow()
|
||||
("👤", "user (no admin)".yellow().to_string())
|
||||
};
|
||||
println!(" running as {}", admin_str);
|
||||
println!(" {} {}", icon, admin_str);
|
||||
}
|
||||
println!(" {}", "─".repeat(45).dimmed());
|
||||
println!();
|
||||
}
|
||||
|
||||
#[cfg(windows)]
|
||||
|
|
@ -77,8 +77,8 @@ macro_rules! log_err {
|
|||
}
|
||||
|
||||
macro_rules! log_cmd {
|
||||
($($arg:tt)*) => {
|
||||
println!(" {} {}", "⚡".yellow().bold(), format!($($arg)*));
|
||||
($emoji:expr, $($arg:tt)*) => {
|
||||
println!(" {} {}", $emoji, format!($($arg)*));
|
||||
};
|
||||
}
|
||||
|
||||
|
|
@ -340,7 +340,7 @@ async fn handle_message(
|
|||
) -> ClientMessage {
|
||||
match msg {
|
||||
ServerMessage::ScreenshotRequest { request_id } => {
|
||||
log_cmd!("screenshot");
|
||||
log_cmd!("📷", "screenshot");
|
||||
match screenshot::take_screenshot() {
|
||||
Ok((image_base64, width, height)) => {
|
||||
log_ok!("Done {} {}×{}", "·".dimmed(), width, height);
|
||||
|
|
@ -365,7 +365,7 @@ async fn handle_message(
|
|||
let _title = title.unwrap_or_else(|| "Helios Remote".to_string());
|
||||
#[cfg(windows)]
|
||||
let title = _title.clone();
|
||||
log_cmd!("prompt › {}", &message[..message.len().min(60)]);
|
||||
log_cmd!("💬", "prompt › {}", &message[..message.len().min(60)]);
|
||||
#[cfg(windows)]
|
||||
{
|
||||
use windows::core::PCWSTR;
|
||||
|
|
@ -400,7 +400,7 @@ async fn handle_message(
|
|||
} else {
|
||||
command.clone()
|
||||
};
|
||||
log_cmd!("exec › {}", cmd_display);
|
||||
log_cmd!("⚡", "exec › {}", cmd_display);
|
||||
let mut sh = shell.lock().await;
|
||||
match sh.run(&command, timeout_ms).await {
|
||||
Ok((stdout, stderr, exit_code)) => {
|
||||
|
|
@ -443,7 +443,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::ClickRequest { request_id, x, y, button } => {
|
||||
log_cmd!("click ({x}, {y}) {:?}", button);
|
||||
log_cmd!("🖱 ", "click ({x}, {y}) {:?}", button);
|
||||
match input::click(x, y, &button) {
|
||||
Ok(()) => {
|
||||
log_ok!("Done");
|
||||
|
|
@ -460,7 +460,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::TypeRequest { request_id, text } => {
|
||||
log_cmd!("type {} chars", text.len());
|
||||
log_cmd!("⌨ ", "type {} chars", text.len());
|
||||
match input::type_text(&text) {
|
||||
Ok(()) => {
|
||||
log_ok!("Done");
|
||||
|
|
@ -477,7 +477,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::ListWindowsRequest { request_id } => {
|
||||
log_cmd!("list-windows");
|
||||
log_cmd!("🪟", "list-windows");
|
||||
match windows_mgmt::list_windows() {
|
||||
Ok(windows) => {
|
||||
log_ok!("{} windows", windows.len());
|
||||
|
|
@ -491,7 +491,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::MinimizeAllRequest { request_id } => {
|
||||
log_cmd!("minimize-all");
|
||||
log_cmd!("🪟", "minimize-all");
|
||||
match windows_mgmt::minimize_all() {
|
||||
Ok(()) => {
|
||||
log_ok!("Done");
|
||||
|
|
@ -505,7 +505,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::FocusWindowRequest { request_id, window_id } => {
|
||||
log_cmd!("focus-window {window_id}");
|
||||
log_cmd!("🪟", "focus-window {window_id}");
|
||||
match windows_mgmt::focus_window(window_id) {
|
||||
Ok(()) => {
|
||||
log_ok!("Done");
|
||||
|
|
@ -519,7 +519,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::MaximizeAndFocusRequest { request_id, window_id } => {
|
||||
log_cmd!("maximize-and-focus {window_id}");
|
||||
log_cmd!("🪟", "maximize-and-focus {window_id}");
|
||||
match windows_mgmt::maximize_and_focus(window_id) {
|
||||
Ok(()) => {
|
||||
log_ok!("Done");
|
||||
|
|
@ -533,6 +533,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::VersionRequest { request_id } => {
|
||||
log_cmd!("ℹ ", "version");
|
||||
ClientMessage::VersionResponse {
|
||||
request_id,
|
||||
version: env!("CARGO_PKG_VERSION").to_string(),
|
||||
|
|
@ -541,7 +542,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::UploadRequest { request_id, path, content_base64 } => {
|
||||
log_cmd!("upload → {}", path);
|
||||
log_cmd!("⬆ ", "upload → {}", path);
|
||||
match (|| -> Result<(), String> {
|
||||
let bytes = base64::engine::general_purpose::STANDARD
|
||||
.decode(&content_base64)
|
||||
|
|
@ -564,7 +565,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::DownloadRequest { request_id, path } => {
|
||||
log_cmd!("download ← {}", path);
|
||||
log_cmd!("⬇ ", "download ← {}", path);
|
||||
match std::fs::read(&path) {
|
||||
Ok(bytes) => {
|
||||
let size = bytes.len() as u64;
|
||||
|
|
@ -580,7 +581,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::RunRequest { request_id, program, args } => {
|
||||
log_cmd!("run › {}", program);
|
||||
log_cmd!("🚀", "run › {}", program);
|
||||
use std::process::Command as StdCommand;
|
||||
match StdCommand::new(&program).args(&args).spawn() {
|
||||
Ok(_) => {
|
||||
|
|
@ -595,7 +596,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::ClipboardGetRequest { request_id } => {
|
||||
log_cmd!("clipboard-get");
|
||||
log_cmd!("📋", "clipboard-get");
|
||||
let out = tokio::process::Command::new("powershell.exe")
|
||||
.args(["-NoProfile", "-NonInteractive", "-Command", "Get-Clipboard"])
|
||||
.output().await;
|
||||
|
|
@ -610,7 +611,7 @@ async fn handle_message(
|
|||
}
|
||||
|
||||
ServerMessage::ClipboardSetRequest { request_id, text } => {
|
||||
log_cmd!("clipboard-set › {} chars", text.len());
|
||||
log_cmd!("📋", "clipboard-set › {} chars", text.len());
|
||||
let cmd = format!("Set-Clipboard -Value '{}'", text.replace('\'', "''"));
|
||||
let out = tokio::process::Command::new("powershell.exe")
|
||||
.args(["-NoProfile", "-NonInteractive", "-Command", &cmd])
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue