From d83cf6b2b247f91f4cc9c70332d0378d55661097 Mon Sep 17 00:00:00 2001 From: "Andrew C. Young" Date: Sun, 27 Sep 2026 15:32:50 +0900 Subject: [PATCH] Allow enabling the LocalTalk bridge from the command line with --serial-bridge-a/b localtalk. --- docs/src/manual/network/ltoudp.md | 2 +- frontend_egui/src/app.rs | 4 +++- frontend_egui/src/main.rs | 6 ++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/docs/src/manual/network/ltoudp.md b/docs/src/manual/network/ltoudp.md index 1c6a02546..36abb7627 100644 --- a/docs/src/manual/network/ltoudp.md +++ b/docs/src/manual/network/ltoudp.md @@ -4,7 +4,7 @@ Snow supports bridging LocalTalk over UDP multicast ('LToUDP'), compatible with real Mac hardware through an adapter such as the [TashTalk](https://github.com/lampmerchant/tashtalk). By default, MacOS will use serial port B for LocalTalk. To enable LToUDP, enable the bridge through the -'Ports' -> 'Channel B (printer)' -> 'Enable LocalTalk bridge'. +'Ports' -> 'Channel B (printer)' -> 'Enable LocalTalk (UDP)', or start Snow with `--serial-bridge-b localtalk`. ![LToUDP menu](../../images/ltoudp_menu.png) diff --git a/frontend_egui/src/app.rs b/frontend_egui/src/app.rs index 6d0e248a3..975a0ca43 100644 --- a/frontend_egui/src/app.rs +++ b/frontend_egui/src/app.rs @@ -318,9 +318,11 @@ impl SnowGui { Some(SerialBridgeConfig::Pty) } else if let Some(port_str) = mode.strip_prefix("tcp:") { port_str.parse::().ok().map(SerialBridgeConfig::Tcp) + } else if mode == "localtalk" { + Some(SerialBridgeConfig::LocalTalk) } else { log::warn!( - "Invalid serial bridge mode: '{}'. Use 'pty' or 'tcp:PORT'", + "Invalid serial bridge mode: '{}'. Use 'pty', 'tcp:PORT' or 'localtalk'", mode ); None diff --git a/frontend_egui/src/main.rs b/frontend_egui/src/main.rs index bca868446..951aa3797 100644 --- a/frontend_egui/src/main.rs +++ b/frontend_egui/src/main.rs @@ -64,12 +64,14 @@ struct Args { zen: bool, /// Enable serial bridge on SCC channel A (modem port). - /// Values: "pty" for PTY mode (Unix only), "tcp:PORT" for TCP mode + /// Values: "pty" for PTY mode (Unix only), "tcp:PORT" for TCP mode, + /// "localtalk" for LocalTalk over UDP #[arg(long, value_name = "MODE")] serial_bridge_a: Option, /// Enable serial bridge on SCC channel B (printer port). - /// Values: "pty" for PTY mode (Unix only), "tcp:PORT" for TCP mode + /// Values: "pty" for PTY mode (Unix only), "tcp:PORT" for TCP mode, + /// "localtalk" for LocalTalk over UDP #[arg(long, value_name = "MODE")] serial_bridge_b: Option,