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
+11 -1
View File
@@ -69,7 +69,17 @@ lazy_static::lazy_static! {
static ref ONLINE: Mutex<HashMap<String, i64>> = Default::default();
pub static ref PROD_RENDEZVOUS_SERVER: RwLock<String> = RwLock::new("".to_owned());
pub static ref EXE_RENDEZVOUS_SERVER: RwLock<String> = Default::default();
pub static ref APP_NAME: RwLock<String> = RwLock::new("RustDesk".to_owned());
// Custom fork: rename the app from "RustDesk" to "SoonDesk".
// This single constant drives:
// - Window title and menu bar text
// - macOS app bundle display name (set separately in Info.plist)
// - Linux .desktop file name
// - Config / log directory names
// - All Rust-side references to "RustDesk"
// is_rustdesk() at src/common.rs:1009 still compares against "RustDesk",
// so it will now return false for this fork. Update there too if that
// helper is used in any policy check.
pub static ref APP_NAME: RwLock<String> = RwLock::new("SoonDesk".to_owned());
static ref KEY_PAIR: Mutex<Option<KeyPair>> = Default::default();
static ref USER_DEFAULT_CONFIG: RwLock<(UserDefaultConfig, Instant)> = RwLock::new((UserDefaultConfig::load(), Instant::now()));
pub static ref NEW_STORED_PEER_CONFIG: Mutex<HashSet<String>> = Default::default();