Rename app from RustDesk to SoonDesk

Changes:
- libs/hbb_common/src/config.rs: APP_NAME = 'SoonDesk' (single source of truth)
- flutter/lib/desktop/widgets/tabbar_widget.dart: hard-coded tab title
- flutter/macos/Runner/Configs/AppInfo.xcconfig: PRODUCT_NAME, BUNDLE_ID
- flutter/macos/Runner.xcodeproj/project.pbxproj: hard-coded BUNDLE_ID override
- flutter/lib/web/bridge.dart: comment about why isCustomClient comparison unchanged

This single APP_NAME change drives:
- Window title (src/ui.rs:87 frame.set_title(&crate::get_app_name()))
- macOS app bundle display name (CFBundleName via $(PRODUCT_NAME))
- Linux .desktop file name
- Config / log directory paths (~/Library/Logs/SoonDesk/)
- Lang translation strings: src/lang.rs auto-replaces 'RustDesk' in all
  translations with APP_NAME when is_rustdesk() returns false (since
  APP_NAME is no longer 'RustDesk').

Protocol-level 'RustDesk' references are preserved (PunchHoleRequest
fields, etc.) so we still interop with upstream RustDesk servers and
clients.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
xuwenwei
2026-06-10 12:22:28 +08:00
parent f32373643e
commit 7edd24854f
5 changed files with 24 additions and 8 deletions
@@ -641,7 +641,7 @@ class _DesktopTabState extends State<DesktopTab>
Offstage(
offstage: !showTitle,
child: const Text(
"RustDesk",
"SoonDesk",
style: TextStyle(fontSize: 13),
).marginOnly(left: 2))
]).marginOnly(
+6
View File
@@ -1611,6 +1611,12 @@ class RustdeskImpl {
// is_custom_client() checks if app name is not "RustDesk"
return mainGetAppNameSync(hint: hint) != "RustDesk";
}
// NOTE: We don't change the comparison string here. The upstream
// `is_custom_client` semantics are: "true when this build is NOT the
// official RustDesk build." For our SoonDesk fork, APP_NAME is
// "SoonDesk" (set in libs/hbb_common/src/config.rs), which still
// satisfies != "RustDesk" → isCustomClient returns true. So this
// check is correct as-is for the SoonDesk fork.
bool isDisableSettings({dynamic hint}) {
// Checks HARD_SETTINGS["disable-settings"] == "Y"