diff --git a/src/ssh.rs b/src/ssh.rs index cb7e8d5..d94f121 100644 --- a/src/ssh.rs +++ b/src/ssh.rs @@ -52,7 +52,11 @@ impl SshSession { fn base_cmd(&self) -> Command { let mut cmd = Command::new(&self.command); + // Non-interactive mode: do not prompt for host keys or passwords. + cmd.arg("-o").arg("BatchMode=yes"); + cmd.arg("-o").arg("StrictHostKeyChecking=accept-new"); cmd.args(&self.target.args); + cmd.stdin(Stdio::null()); cmd } diff --git a/src/ui.rs b/src/ui.rs index 429e239..1f88e61 100644 --- a/src/ui.rs +++ b/src/ui.rs @@ -2,7 +2,7 @@ use ratatui::{ layout::{Alignment, Constraint, Direction, Layout, Margin}, style::{Color, Modifier, Style}, text::{Line, Span, Text}, - widgets::{Block, Borders, Clear, List, ListItem, Paragraph, Wrap}, + widgets::{Block, Borders, Clear, List, ListItem, ListState, Paragraph, Wrap}, Frame, }; @@ -81,7 +81,8 @@ fn draw_log_list(f: &mut Frame, app: &App, area: ratatui::layout::Rect) { let title = format!(" Logs ({}/{}) ", app.filtered_indices.len(), app.logs.len()); let list = List::new(items).block(default_block(&title)); - f.render_widget(list, area); + let mut state = ListState::default().with_selected(Some(app.selected_index)); + f.render_stateful_widget(list, area, &mut state); } fn draw_preview(f: &mut Frame, app: &App, area: ratatui::layout::Rect) {