Skip to content

This repository and guide help you build a custom version of RustDesk with your own name, icon, and logo, and connect it to your own server.

License

Notifications You must be signed in to change notification settings

mojtabco/Customizing-the-RustDesk-UI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 

Repository files navigation

Customizing the RustDesk UI - Sciter Version

This repository and guide help you build a custom version of RustDesk with your own name, icon, and logo, and connect it to your own server.

Table of Contents


Prerequisites

To build the latest RustDesk (Sciter GUI version) you need:

  • Visual Studio Installer - MSVC (select .NET desktop development and Desktop development with C++)
  • Git (during installation, select all Environment Variables (PATH) options)
  • Rust (install latest stable using rustup-init.exe) + Cargo
  • vcpkg (a package manager for C++ to handle libraries and dependencies)
  • Clang/LLVM (a compiler for C/C++ — LLVM 15.0.2 (x64))
  • Sciter SDK (download sciter.dll from sciter-sdk/bin.win/x64)
  • Python (required to compile UI resources into the executable)
  • Visual Studio Code (recommended for editing source files)

Note:
Flutter is not required for the Sciter build.
Knowledge of HTML, JavaScript, CSS, and JSX is helpful for customizing the Sciter-based UI.


Cloning and Preparing Source

Note:
These commands must be run in Git Bash, not Command Prompt.

# 1) Clone vcpkg and install
git clone https://github.com/microsoft/vcpkg
vcpkg/bootstrap-vcpkg.bat
export VCPKG_ROOT=$PWD/vcpkg
vcpkg/vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static

# Add System environment variable
VCPKG_ROOT=C:\vcpkg

Install LLVM

  • Download LLVM 15.0.2 (x64): LLVM-15.0.2-win64.exe
  • Install to C:\LLVM and set environment variable:
    LIBCLANG_PATH=C:\LLVM\bin
    

Clone RustDesk

git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll
mv sciter.dll target/debug

Customizing Branding (Logo, Icon, Name)

1. Change Application Icons

Replace .ico, .png, and .svg files in the res/ directory with your own branded icons.

2. Change Application Name

Edit rustdesk/Cargo.toml:

[package]
name = "MyCompany"  # your exe name
version = "1.2.0"
authors = ["mycompany <info@mycompany.com>"]
edition = "2021"
build = "build.rs"
description = "A remote control software."
default-run = "mycompany" # must match 'name'

[package.metadata.bundle]
name = "My Company" # Display name
identifier = "com.mycompany.remote"
icon = ["res/32x32.png", "res/128x128.png", "res/128x128@2x.png"]

3. Change APP_NAME in config.rs

In /rustdesk/libs/hbb_common/src/config.rs (around line 50):

pub static ref APP_NAME: Arc<RwLock<String>> = Arc::new(RwLock::new("My Company".to_owned()));

4. Enable Inline Build (Embed UI)

Edit Cargo.toml:

default = ["use_dasp"] change to default = ["use_dasp", "inline"]

Run:

python res\inline-sciter.py

Note: This command must be run in CMD.


Setting Server (hbbs/hbbr)

To lock RustDesk to your own server:

1. Run OSS or Pro Server

  • Start hbbs and hbbr services (via Docker or systemd).
  • Open required ports:
    • TCP: 21115-21117
    • UDP: 21116
  • Follow official docs: RustDesk Self-Hosting
  • Set up the server according to the official RustDesk instructions, and obtain your IP and encryption key.

You will also need to specify the public key you generated on your server

2. Hardcode Server Address

Edit /rustdesk/libs/hbb_common/src/config.rs:

pub const RENDEZVOUS_SERVERS: &'static [&'static str] = &["myserver.com"]; // or IP address

Also update /rustdesk/src/common.rs (around line 517):

let rendezvous_server = socket_client::get_target_addr(&format!("myserver.com:{}", config::RENDEZVOUS_PORT))?;

3. Hardcode Public Key

Assign your server's id_ed25519.pub key to RS_PUB_KEY:

pub const RS_PUB_KEY: &'static str = "your_public_key_here";

Customizing the RustDesk UI

  • Main UI files:

    rustdesk/src/ui/index.tis
    rustdesk/src/ui/index.css
    
  • Modify index.tis (JSX-like structure) and index.css for styles.

  • At line 566 index.tis, you'll find the function render() related to the UI. You can make changes here according to your custom design, but keep in mind that programming knowledge (as mentioned at the beginning of this document) is required.

    • The file index.css is used for styling and design. You can apply your personal customizations along with the main project files.
  • Run python res/inline-sciter.py after each change.


Build for Windows

Embedding UI / Enable Inline Builds

python res\inline-sciter.py

Note: This command must be run in CMD.

Build and run application

cargo build --release
  • Output: rustdesk\target\release
  • Copy sciter.dll into same folder as .exe before running on other systems.

Troubleshooting & Tips

  • Clear cache after replacing icons:
    cargo clean
    
  • Restart system to refresh icon cache.
  • Ensure Sciter runtime matches build version.

License & Legal Notes

  • RustDesk is under AGPL-3.0.
  • If distributing binaries, publish your changes and credit RustDesk authors.
  • For commercial use, consult RustDesk Pro license.

Credits

Thanks to the RustDesk team for their outstanding open-source project. If this guide helped you, give the original repository a star!


🚀 About Me

portfolio linkedin

About

This repository and guide help you build a custom version of RustDesk with your own name, icon, and logo, and connect it to your own server.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published