diff --git a/kiosk/src/remote_debug.rs b/kiosk/src/remote_debug.rs index 08110fb..e5546e2 100644 --- a/kiosk/src/remote_debug.rs +++ b/kiosk/src/remote_debug.rs @@ -121,15 +121,22 @@ impl JournalStream { let kill_clone = kill.clone(); std::thread::spawn(move || { + // Try unit-scoped first, fall back to all journal if permission denied. let mut child = match Command::new("journalctl") - .args(["-u", "betterframe-kiosk", "-f", "--no-pager", "-o", "short-iso", "-n", "50"]) + .args(["--user-unit", "betterframe-kiosk", "-f", "--no-pager", "-o", "short-iso", "-n", "50"]) .stdout(Stdio::piped()) - .stderr(Stdio::null()) + .stderr(Stdio::piped()) .spawn() + .or_else(|_| Command::new("journalctl") + .args(["-f", "--no-pager", "-o", "short-iso", "-n", "50"]) + .stdout(Stdio::piped()) + .stderr(Stdio::piped()) + .spawn()) { Ok(c) => c, Err(e) => { warn!("remote-debug: journalctl spawn failed: {e}"); + on_line(&format!("[ERROR] journalctl spawn failed: {e}")); return; } }; diff --git a/kiosk/src/ui.rs b/kiosk/src/ui.rs index 6034204..4543d3b 100644 --- a/kiosk/src/ui.rs +++ b/kiosk/src/ui.rs @@ -266,17 +266,10 @@ fn activate(app: &Application) { maybe_apply_firmware_update(&server_for_reload, &key_for_reload); } ServerMsg::ShowTerminalCode(code) => { - // Overlay on all windows: big centered code text. - // NOT logged — security requirement. - let code_clone = code.clone(); - gtk::glib::idle_add_local_once(move || { - show_terminal_code_overlay(&code_clone); - }); + let _ = tx_for_reload.send(WorkerMsg::ShowTerminalCode(code)); } ServerMsg::DismissTerminalCode => { - gtk::glib::idle_add_local_once(|| { - dismiss_terminal_code_overlay(); - }); + let _ = tx_for_reload.send(WorkerMsg::DismissTerminalCode); } } } @@ -334,6 +327,8 @@ fn activate(app: &Application) { } WorkerMsg::Standby(display_id) => standby_display(display_id), WorkerMsg::Wake(display_id) => wake_display(display_id), + WorkerMsg::ShowTerminalCode(code) => show_terminal_code_overlay(&code), + WorkerMsg::DismissTerminalCode => dismiss_terminal_code_overlay(), } } gtk::glib::ControlFlow::Continue @@ -349,6 +344,8 @@ pub enum WorkerMsg { }, Standby(Option), Wake(Option), + ShowTerminalCode(String), + DismissTerminalCode, } fn output_name_for_display(display_id: u32) -> Option {