[feat](trx-frontend-appkit): add native macOS AppKit frontend

Add a new trx-frontend-appkit crate using objc2 + AppKit as a
replacement for the removed Qt/QML frontend. The frontend provides
the same feature set: frequency/mode/band display, PTT/power/VFO/lock
controls, signal/TX metering, and frequency/mode/TX-limit input.

Architecture splits platform-agnostic model (model.rs) from AppKit
UI (ui.rs) to facilitate future UIKit porting. State flows from the
async tokio watcher via std::sync::mpsc to the AppKit main thread;
button actions flow back through a channel to stay on the UI thread.

Feature-gated behind `appkit-frontend` cargo feature.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Signed-off-by: Stanislaw Grams <stanislawgrams@gmail.com>
This commit is contained in:
2026-02-07 09:25:13 +01:00
parent 2c128127e6
commit e7512b3cf0
14 changed files with 1032 additions and 0 deletions
+5
View File
@@ -22,3 +22,8 @@ trx-frontend = { path = "trx-frontend" }
trx-frontend-http = { path = "trx-frontend/trx-frontend-http" }
trx-frontend-http-json = { path = "trx-frontend/trx-frontend-http-json" }
trx-frontend-rigctl = { path = "trx-frontend/trx-frontend-rigctl" }
trx-frontend-appkit = { path = "trx-frontend/trx-frontend-appkit", optional = true }
[features]
default = []
appkit-frontend = ["trx-frontend-appkit/appkit"]