add NabuxRemote branded configuration
7
.gitignore
vendored
|
|
@ -17,6 +17,11 @@ cert.pfx
|
|||
*png
|
||||
*svg
|
||||
*jpg
|
||||
!branding/
|
||||
!branding/nabuxai.png
|
||||
!branding/nabuxai.svg
|
||||
!flutter/android/app/src/main/res/drawable-*/
|
||||
!flutter/android/app/src/main/res/drawable-*/ic_launcher_foreground.png
|
||||
sciter.dll
|
||||
**pdb
|
||||
src/bridge_generated.rs
|
||||
|
|
@ -55,4 +60,4 @@ examples/**/target/
|
|||
vcpkg_installed
|
||||
flutter/lib/generated_plugin_registrant.dart
|
||||
libsciter.dylib
|
||||
flutter/web/
|
||||
flutter/web/
|
||||
|
|
|
|||
BIN
branding/nabuxai.icns
Normal file
BIN
branding/nabuxai.png
Normal file
|
After Width: | Height: | Size: 1.9 MiB |
33
branding/nabuxai.svg
Normal file
|
|
@ -0,0 +1,33 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<defs>
|
||||
<radialGradient id="space" cx="50%" cy="42%" r="65%">
|
||||
<stop offset="0%" stop-color="#07336b"/>
|
||||
<stop offset="58%" stop-color="#03162f"/>
|
||||
<stop offset="100%" stop-color="#01050d"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="orbit" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00d9ff"/>
|
||||
<stop offset="55%" stop-color="#75fff5"/>
|
||||
<stop offset="100%" stop-color="#ffd15a"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect width="512" height="512" rx="96" fill="url(#space)"/>
|
||||
<circle cx="256" cy="226" r="154" fill="none" stroke="url(#orbit)" stroke-width="12"/>
|
||||
<g fill="none" stroke="#54eeff" stroke-linecap="round" stroke-width="7">
|
||||
<path d="M115 228h282"/>
|
||||
<path d="M164 123l184 214"/>
|
||||
<path d="M169 329c61-7 121-39 176-136"/>
|
||||
<path d="M201 113c-14 74 5 146 89 218"/>
|
||||
</g>
|
||||
<g fill="#eaffff" stroke="#54eeff" stroke-width="5">
|
||||
<circle cx="156" cy="228" r="13"/>
|
||||
<circle cx="217" cy="184" r="19"/>
|
||||
<circle cx="270" cy="229" r="16"/>
|
||||
<circle cx="329" cy="228" r="23"/>
|
||||
<circle cx="288" cy="153" r="14"/>
|
||||
<circle cx="247" cy="291" r="20"/>
|
||||
<circle cx="309" cy="278" r="13"/>
|
||||
</g>
|
||||
<text x="256" y="421" fill="#ffd15a" font-family="Arial, sans-serif" font-size="48" letter-spacing="12" text-anchor="middle">NABUX</text>
|
||||
<text x="256" y="463" fill="#eaffff" font-family="Arial, sans-serif" font-size="20" letter-spacing="9" text-anchor="middle">REMOTE</text>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 1.5 KiB |
|
|
@ -13,7 +13,8 @@ validate a config without modifying the source tree.
|
|||
|
||||
The script configures application metadata, platform IDs, URL schemes, launcher
|
||||
icons, an optional SVG `ui_logo`, default or forced server settings, and an
|
||||
optional update-check endpoint.
|
||||
optional update-check endpoint. For the legacy macOS runner, provide an optional
|
||||
`mac_icns` path to replace `flutter/macos/Runner/AppIcon.icns`.
|
||||
|
||||
The update-check endpoint must accept the same POST request and return the same
|
||||
JSON response shape as the RustDesk version endpoint. For Windows, placeholders
|
||||
|
|
|
|||
|
|
@ -97,7 +97,7 @@ android {
|
|||
|
||||
defaultConfig {
|
||||
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
|
||||
applicationId "com.carriez.flutter_hbb"
|
||||
applicationId "com.nabuxai.nabuxremote"
|
||||
minSdkVersion 22
|
||||
targetSdkVersion 33
|
||||
versionCode flutterVersionCode.toInteger()
|
||||
|
|
|
|||
|
|
@ -25,7 +25,7 @@
|
|||
<application
|
||||
android:name=".MainApplication"
|
||||
android:icon="@mipmap/ic_launcher"
|
||||
android:label="RustDesk"
|
||||
android:label="@string/app_name"
|
||||
android:requestLegacyExternalStorage="true"
|
||||
android:roundIcon="@mipmap/ic_launcher"
|
||||
android:supportsRtl="true">
|
||||
|
|
@ -76,7 +76,7 @@
|
|||
<action android:name="android.intent.action.VIEW" />
|
||||
<category android:name="android.intent.category.DEFAULT" />
|
||||
<category android:name="android.intent.category.BROWSABLE" />
|
||||
<data android:scheme="rustdesk" />
|
||||
<data android:scheme="nabuxremote" />
|
||||
</intent-filter>
|
||||
</activity>
|
||||
|
||||
|
|
|
|||
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 148 KiB |
|
After Width: | Height: | Size: 254 KiB |
|
|
@ -1,6 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
<monochrome android:drawable="@mipmap/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
<background android:drawable="@color/ic_launcher_background"/>
|
||||
<foreground android:drawable="@drawable/ic_launcher_foreground"/>
|
||||
</adaptive-icon>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 4.6 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 56 KiB |
|
|
@ -1,4 +1,5 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources>
|
||||
<color name="primary">#FF0071FF</color>
|
||||
<color name="ic_launcher_background">#000000</color>
|
||||
</resources>
|
||||
|
|
@ -1,4 +1,4 @@
|
|||
<resources>
|
||||
<string name="app_name">RustDesk</string>
|
||||
<string name="app_name">NabuxRemote</string>
|
||||
<string name="accessibility_service_description">Allow other devices to control your phone using virtual touch, when RustDesk screen sharing is established</string>
|
||||
</resources>
|
||||
|
|
|
|||
|
|
@ -1 +1,33 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" viewBox="66.993 897.484 26 26"><linearGradient id="a" x1=".148" x2=".845" y1=".851" y2=".154" gradientTransform="matrix(26.301 0 0 26.331 90.674 911.757)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#0071ff"/><stop offset="1" stop-color="#00bfe1"/></linearGradient><defs><linearGradient xlink:href="#a" id="b" x1=".148" x2=".845" y1=".851" y2=".154" gradientTransform="matrix(26.00048 0 0 25.99935 66.993 897.485)" gradientUnits="userSpaceOnUse"/></defs><path fill="url(#b)" d="m89.318 903.552-2.135 2.122c-.376.337-.558.879-.347 1.337 1.422 2.976.882 6.524-1.452 8.856-2.335 2.331-5.887 2.87-8.866 1.449-.439-.197-.954-.03-1.292.312l-2.17 2.167a1.154 1.154 0 0 0 .208 1.81 13.005 13.005 0 0 0 15.91-1.912 12.97 12.97 0 0 0 1.956-15.887 1.154 1.154 0 0 0-1.812-.254zm-18.467-2.305a12.969 12.969 0 0 0-2.02 15.885 1.154 1.154 0 0 0 1.812.254l2.124-2.11c.385-.336.572-.884.359-1.348-1.423-2.976-.884-6.524 1.451-8.856 2.334-2.332 5.887-2.871 8.866-1.45.434.194.942.033 1.281-.3l2.182-2.18a1.152 1.152 0 0 0-.208-1.81 13.009 13.009 0 0 0-15.893 1.973z"/></svg>
|
||||
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 512 512">
|
||||
<defs>
|
||||
<radialGradient id="space" cx="50%" cy="42%" r="65%">
|
||||
<stop offset="0%" stop-color="#07336b"/>
|
||||
<stop offset="58%" stop-color="#03162f"/>
|
||||
<stop offset="100%" stop-color="#01050d"/>
|
||||
</radialGradient>
|
||||
<linearGradient id="orbit" x1="0%" y1="0%" x2="100%" y2="100%">
|
||||
<stop offset="0%" stop-color="#00d9ff"/>
|
||||
<stop offset="55%" stop-color="#75fff5"/>
|
||||
<stop offset="100%" stop-color="#ffd15a"/>
|
||||
</linearGradient>
|
||||
</defs>
|
||||
<rect width="512" height="512" rx="96" fill="url(#space)"/>
|
||||
<circle cx="256" cy="226" r="154" fill="none" stroke="url(#orbit)" stroke-width="12"/>
|
||||
<g fill="none" stroke="#54eeff" stroke-linecap="round" stroke-width="7">
|
||||
<path d="M115 228h282"/>
|
||||
<path d="M164 123l184 214"/>
|
||||
<path d="M169 329c61-7 121-39 176-136"/>
|
||||
<path d="M201 113c-14 74 5 146 89 218"/>
|
||||
</g>
|
||||
<g fill="#eaffff" stroke="#54eeff" stroke-width="5">
|
||||
<circle cx="156" cy="228" r="13"/>
|
||||
<circle cx="217" cy="184" r="19"/>
|
||||
<circle cx="270" cy="229" r="16"/>
|
||||
<circle cx="329" cy="228" r="23"/>
|
||||
<circle cx="288" cy="153" r="14"/>
|
||||
<circle cx="247" cy="291" r="20"/>
|
||||
<circle cx="309" cy="278" r="13"/>
|
||||
</g>
|
||||
<text x="256" y="421" fill="#ffd15a" font-family="Arial, sans-serif" font-size="48" letter-spacing="12" text-anchor="middle">NABUX</text>
|
||||
<text x="256" y="463" fill="#eaffff" font-family="Arial, sans-serif" font-size="20" letter-spacing="9" text-anchor="middle">REMOTE</text>
|
||||
</svg>
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.1 KiB After Width: | Height: | Size: 1.5 KiB |
|
|
@ -434,7 +434,7 @@
|
|||
"-framework",
|
||||
"\"wakelock_plus\"",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.carriez.flutterHbb;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.nabuxai.nabuxremote;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
STRIP_STYLE = "non-global";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
|
|
@ -630,7 +630,7 @@
|
|||
"-framework",
|
||||
"\"wakelock_plus\"",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.carriez.flutterHbb;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.nabuxai.nabuxremote;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
STRIP_STYLE = "non-global";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
|
|
@ -718,7 +718,7 @@
|
|||
"-framework",
|
||||
"\"wakelock_plus\"",
|
||||
);
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.carriez.flutterHbb;
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.nabuxai.nabuxremote;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
STRIP_STYLE = "non-global";
|
||||
SWIFT_OBJC_BRIDGING_HEADER = "Runner/Runner-Bridging-Header.h";
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 1.3 MiB |
|
Before Width: | Height: | Size: 511 B After Width: | Height: | Size: 1 KiB |
|
Before Width: | Height: | Size: 989 B After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 755 B After Width: | Height: | Size: 1.9 KiB |
|
Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 6.5 KiB |
|
Before Width: | Height: | Size: 2.2 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 989 B After Width: | Height: | Size: 3.3 KiB |
|
Before Width: | Height: | Size: 2 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 3 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 4.8 KiB After Width: | Height: | Size: 50 KiB |
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 4.4 KiB After Width: | Height: | Size: 44 KiB |
|
|
@ -7,7 +7,7 @@
|
|||
<key>CFBundleDevelopmentRegion</key>
|
||||
<string>$(DEVELOPMENT_LANGUAGE)</string>
|
||||
<key>CFBundleDisplayName</key>
|
||||
<string>RustDesk</string>
|
||||
<string>NabuxRemote</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>$(EXECUTABLE_NAME)</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
|
|
@ -15,7 +15,7 @@
|
|||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundleName</key>
|
||||
<string>RustDesk</string>
|
||||
<string>NabuxRemote</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
|
|
@ -32,10 +32,10 @@
|
|||
<key>CFBundleURLIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>com.carriez.rustdesk</string>
|
||||
<string>com.nabuxai.nabuxremote</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>rustdesk</string>
|
||||
<string>nabuxremote</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
|
|
|||
|
|
@ -7,7 +7,7 @@ project(runner LANGUAGES C CXX)
|
|||
set(BINARY_NAME "rustdesk")
|
||||
# The unique GTK application identifier for this application. See:
|
||||
# https://wiki.gnome.org/HowDoI/ChooseApplicationID
|
||||
set(APPLICATION_ID "com.carriez.flutter_hbb")
|
||||
set(APPLICATION_ID "com.nabuxai.nabuxremote")
|
||||
|
||||
# Explicitly opt into modern CMake behaviors to avoid warnings with recent
|
||||
# versions of CMake.
|
||||
|
|
|
|||
|
|
@ -5,10 +5,10 @@
|
|||
// 'flutter create' template.
|
||||
|
||||
// The application's name. By default this is also the title of the Flutter window.
|
||||
PRODUCT_NAME = RustDesk
|
||||
PRODUCT_NAME = NabuxRemote
|
||||
|
||||
// The application's bundle identifier
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.carriez.flutterHbb
|
||||
PRODUCT_BUNDLE_IDENTIFIER = com.nabuxai.nabuxremote
|
||||
|
||||
// The copyright displayed in application information
|
||||
PRODUCT_COPYRIGHT = Copyright © 2025 Purslane Ltd. All rights reserved.
|
||||
PRODUCT_COPYRIGHT = Copyright (c) 2026 Nabux AI. All rights reserved.
|
||||
|
|
|
|||
|
|
@ -26,10 +26,10 @@
|
|||
<key>CFBundleURLIconFile</key>
|
||||
<string></string>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>com.carriez.rustdesk</string>
|
||||
<string>com.nabuxai.nabuxremote</string>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>rustdesk</string>
|
||||
<string>nabuxremote</string>
|
||||
</array>
|
||||
</dict>
|
||||
</array>
|
||||
|
|
|
|||
|
|
@ -128,6 +128,8 @@ dependency_overrides:
|
|||
flutter_icons:
|
||||
image_path: "../res/icon.png"
|
||||
remove_alpha_ios: true
|
||||
adaptive_icon_background: "#000000"
|
||||
adaptive_icon_foreground: "../res/icon.png"
|
||||
android: true
|
||||
ios: true
|
||||
windows:
|
||||
|
|
|
|||
|
|
@ -89,13 +89,13 @@ BEGIN
|
|||
BEGIN
|
||||
BLOCK "040904e4"
|
||||
BEGIN
|
||||
VALUE "CompanyName", "Purslane Ltd" "\0"
|
||||
VALUE "FileDescription", "RustDesk Remote Desktop" "\0"
|
||||
VALUE "CompanyName", "Nabux AI" "\0"
|
||||
VALUE "FileDescription", "NabuxRemote Remote Desktop" "\0"
|
||||
VALUE "FileVersion", VERSION_AS_STRING "\0"
|
||||
VALUE "InternalName", "rustdesk" "\0"
|
||||
VALUE "LegalCopyright", "Copyright © 2025 Purslane Ltd. All rights reserved." "\0"
|
||||
VALUE "LegalCopyright", "Copyright (c) 2026 Nabux AI. All rights reserved." "\0"
|
||||
VALUE "OriginalFilename", "rustdesk.exe" "\0"
|
||||
VALUE "ProductName", "RustDesk" "\0"
|
||||
VALUE "ProductName", "NabuxRemote" "\0"
|
||||
VALUE "ProductVersion", VERSION_AS_STRING "\0"
|
||||
END
|
||||
END
|
||||
|
|
|
|||
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 4.6 KiB |
BIN
res/icon.png
|
Before Width: | Height: | Size: 39 KiB After Width: | Height: | Size: 1.9 MiB |
BIN
res/mac-icon.png
|
Before Width: | Height: | Size: 35 KiB After Width: | Height: | Size: 1.9 MiB |
|
|
@ -18,7 +18,9 @@ pub fn apply() {
|
|||
.extend(to_owned_settings(generated::OVERRIDE_SETTINGS));
|
||||
}
|
||||
|
||||
fn to_owned_settings(settings: &[(&str, &str)]) -> impl Iterator<Item = (String, String)> + '_ {
|
||||
fn to_owned_settings<'a>(
|
||||
settings: &'a [(&'a str, &'a str)],
|
||||
) -> impl Iterator<Item = (String, String)> + 'a {
|
||||
settings
|
||||
.iter()
|
||||
.map(|(key, value)| ((*key).to_owned(), (*value).to_owned()))
|
||||
|
|
|
|||
|
|
@ -1,5 +1,5 @@
|
|||
// Generated by tools/white_label.py. Do not edit by hand.
|
||||
pub const APP_NAME: &str = "";
|
||||
pub const APP_NAME: &str = "NabuxRemote";
|
||||
pub const UPDATE_CHECK_URL: &str = "";
|
||||
pub const WINDOWS_DOWNLOAD_URL_TEMPLATE: &str = "";
|
||||
pub const DEFAULT_SETTINGS: &[(&str, &str)] = &[];
|
||||
|
|
|
|||
|
|
@ -63,6 +63,11 @@ def rust_pairs(value: Any, name: str) -> str:
|
|||
)
|
||||
|
||||
|
||||
def rust_array(value: Any, name: str) -> str:
|
||||
pairs = rust_pairs(value, name)
|
||||
return f"&[\n {pairs},\n]" if pairs else "&[]"
|
||||
|
||||
|
||||
def write_generated_rust(config: dict[str, Any]) -> None:
|
||||
update = config.get("updates") or {}
|
||||
if not isinstance(update, dict):
|
||||
|
|
@ -71,12 +76,8 @@ def write_generated_rust(config: dict[str, Any]) -> None:
|
|||
pub const APP_NAME: &str = {rust_string(config["app_name"])};
|
||||
pub const UPDATE_CHECK_URL: &str = {rust_string(update.get("check_url", ""))};
|
||||
pub const WINDOWS_DOWNLOAD_URL_TEMPLATE: &str = {rust_string(update.get("windows_download_url_template", ""))};
|
||||
pub const DEFAULT_SETTINGS: &[(&str, &str)] = &[
|
||||
{rust_pairs(config.get("default_settings"), "default_settings")}
|
||||
];
|
||||
pub const OVERRIDE_SETTINGS: &[(&str, &str)] = &[
|
||||
{rust_pairs(config.get("override_settings"), "override_settings")}
|
||||
];
|
||||
pub const DEFAULT_SETTINGS: &[(&str, &str)] = {rust_array(config.get("default_settings"), "default_settings")};
|
||||
pub const OVERRIDE_SETTINGS: &[(&str, &str)] = {rust_array(config.get("override_settings"), "override_settings")};
|
||||
"""
|
||||
(ROOT / "src/white_label_generated.rs").write_text(generated, encoding="utf-8")
|
||||
|
||||
|
|
@ -103,9 +104,19 @@ def copy_icons(config: dict[str, Any], config_path: Path, generate_icons: bool)
|
|||
fail(f"mac_icon does not exist: {mac_icon_path}")
|
||||
shutil.copyfile(mac_icon_path, ROOT / "res/mac-icon.png")
|
||||
|
||||
mac_icns = config.get("mac_icns")
|
||||
if mac_icns:
|
||||
mac_icns_path = (config_path.parent / mac_icns).resolve()
|
||||
if not mac_icns_path.is_file():
|
||||
fail(f"mac_icns does not exist: {mac_icns_path}")
|
||||
shutil.copyfile(mac_icns_path, ROOT / "flutter/macos/Runner/AppIcon.icns")
|
||||
|
||||
if generate_icons:
|
||||
dart = shutil.which("dart")
|
||||
if not dart:
|
||||
fail("dart is required to generate platform icons")
|
||||
subprocess.run(
|
||||
["dart", "run", "flutter_launcher_icons"],
|
||||
[dart, "run", "flutter_launcher_icons"],
|
||||
cwd=ROOT / "flutter",
|
||||
check=True,
|
||||
)
|
||||
|
|
|
|||
|
|
@ -6,6 +6,7 @@
|
|||
"copyright": "Copyright (c) 2026 Acme Inc. All rights reserved.",
|
||||
"icon": "branding/acmedesk.png",
|
||||
"mac_icon": "branding/acmedesk-macos.png",
|
||||
"mac_icns": "branding/acmedesk-macos.icns",
|
||||
"ui_logo": "branding/acmedesk.svg",
|
||||
"updates": {
|
||||
"check_url": "https://updates.example.com/version/latest",
|
||||
|
|
|
|||
13
white_label.nabuxai.json
Normal file
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"app_name": "NabuxRemote",
|
||||
"bundle_id": "com.nabuxai.nabuxremote",
|
||||
"url_scheme": "nabuxremote",
|
||||
"company_name": "Nabux AI",
|
||||
"copyright": "Copyright (c) 2026 Nabux AI. All rights reserved.",
|
||||
"icon": "branding/nabuxai.png",
|
||||
"mac_icon": "branding/nabuxai.png",
|
||||
"mac_icns": "branding/nabuxai.icns",
|
||||
"ui_logo": "branding/nabuxai.svg",
|
||||
"default_settings": {},
|
||||
"override_settings": {}
|
||||
}
|
||||