mirror of
https://github.com/kunkundi/crossdesk.git
synced 2025-12-19 05:36:32 +08:00
Compare commits
5 Commits
e3143f3e7a
...
adb6cee326
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
adb6cee326 | ||
|
|
941b5e5cdc | ||
|
|
c602dea58f | ||
|
|
e9ced9fa4f | ||
|
|
6ab5e7487f |
18
.github/workflows/build.yml
vendored
18
.github/workflows/build.yml
vendored
@@ -144,7 +144,7 @@ jobs:
|
|||||||
matrix:
|
matrix:
|
||||||
include:
|
include:
|
||||||
- arch: x64
|
- arch: x64
|
||||||
runner: macos-13
|
runner: macos-15-intel
|
||||||
cache-key: intel
|
cache-key: intel
|
||||||
out-dir: ./build/macosx/x86_64/release/crossdesk
|
out-dir: ./build/macosx/x86_64/release/crossdesk
|
||||||
package_script: ./scripts/macosx/pkg_x64.sh
|
package_script: ./scripts/macosx/pkg_x64.sh
|
||||||
@@ -385,3 +385,19 @@ jobs:
|
|||||||
remote_host: ${{ secrets.SERVER_HOST }}
|
remote_host: ${{ secrets.SERVER_HOST }}
|
||||||
remote_user: ${{ secrets.SERVER_USER }}
|
remote_user: ${{ secrets.SERVER_USER }}
|
||||||
remote_key: ${{ secrets.SERVER_KEY }}
|
remote_key: ${{ secrets.SERVER_KEY }}
|
||||||
|
|
||||||
|
- name: Generate version.json
|
||||||
|
run: |
|
||||||
|
echo "{" > version.json
|
||||||
|
echo " \"latest_version\": \"${{ steps.version.outputs.VERSION_NUM }}\"" >> version.json
|
||||||
|
echo "}" >> version.json cat version.json
|
||||||
|
|
||||||
|
- name: Upload version.json to server
|
||||||
|
uses: burnett01/rsync-deployments@5.2
|
||||||
|
with:
|
||||||
|
switches: -avzr --delete
|
||||||
|
path: version.json
|
||||||
|
remote_path: /var/www/html/version/
|
||||||
|
remote_host: ${{ secrets.SERVER_HOST }}
|
||||||
|
remote_user: ${{ secrets.SERVER_USER }}
|
||||||
|
remote_key: ${{ secrets.SERVER_KEY }}
|
||||||
15
README.md
15
README.md
@@ -15,10 +15,17 @@
|
|||||||
|
|
||||||
## 简介
|
## 简介
|
||||||
|
|
||||||
CrossDesk 是一个轻量级的跨平台远程桌面软件。
|
CrossDesk 是一个轻量级的跨平台远程桌面软件,支持 Web 端控制远程设备。
|
||||||
|
|
||||||
CrossDesk 是 [MiniRTC](https://github.com/kunkundi/minirtc.git) 实时音视频传输库的实验性应用。MiniRTC 是一个轻量级的跨平台实时音视频传输库。它具有网络透传([RFC5245](https://datatracker.ietf.org/doc/html/rfc5245)),视频软硬编解码(H264/AV1),音频编解码([Opus](https://github.com/xiph/opus)),信令交互,网络拥塞控制,传输加密([SRTP](https://tools.ietf.org/html/rfc3711))等基础能力。
|
CrossDesk 是 [MiniRTC](https://github.com/kunkundi/minirtc.git) 实时音视频传输库的实验性应用。MiniRTC 是一个轻量级的跨平台实时音视频传输库。它具有网络透传([RFC5245](https://datatracker.ietf.org/doc/html/rfc5245)),视频软硬编解码(H264/AV1),音频编解码([Opus](https://github.com/xiph/opus)),信令交互,网络拥塞控制,传输加密([SRTP](https://tools.ietf.org/html/rfc3711))等基础能力。
|
||||||
|
|
||||||
|
## 系统要求
|
||||||
|
|
||||||
|
| 平台 | 最低版本 |
|
||||||
|
|----------------|---------------------------|
|
||||||
|
| **Windows** | Windows 10 及以上 (64 位) |
|
||||||
|
| **macOS** | macOS Intel 15.0 及以上 ( 大于 14.0 小于 15.0 的版本可自行编译实现兼容 )<br> macOS Apple Silicon 14.0 及以上 |
|
||||||
|
| **Linux** | Ubuntu 22.04 及以上 ( 低版本可自行编译实现兼容 ) |
|
||||||
|
|
||||||
## 使用
|
## 使用
|
||||||
|
|
||||||
@@ -33,6 +40,10 @@ CrossDesk 是 [MiniRTC](https://github.com/kunkundi/minirtc.git) 实时音视频
|
|||||||
发起连接前,可在设置中自定义配置项,如语言、视频编码格式等。
|
发起连接前,可在设置中自定义配置项,如语言、视频编码格式等。
|
||||||

|

|
||||||
|
|
||||||
|
### Web 客户端
|
||||||
|
浏览器访问 [CrossDesk Web Client](https://web.crossdesk.cn/)。
|
||||||
|
输入 **远程设备 ID** 与 **密码**,点击连接即可接入远程设备。
|
||||||
|
|
||||||
## 如何编译
|
## 如何编译
|
||||||
|
|
||||||
依赖:
|
依赖:
|
||||||
@@ -153,7 +164,7 @@ sudo docker run -d \
|
|||||||
-v /path/to/your/certs:/crossdesk-server/certs \
|
-v /path/to/your/certs:/crossdesk-server/certs \
|
||||||
-v /path/to/your/db:/crossdesk-server/db \
|
-v /path/to/your/db:/crossdesk-server/db \
|
||||||
-v /path/to/your/logs:/crossdesk-server/logs \
|
-v /path/to/your/logs:/crossdesk-server/logs \
|
||||||
crossdesk/crossdesk-server:v1.0.0
|
crossdesk/crossdesk-server:latest
|
||||||
```
|
```
|
||||||
|
|
||||||
上述命令中,用户需注意的参数如下:
|
上述命令中,用户需注意的参数如下:
|
||||||
|
|||||||
16
README_EN.md
16
README_EN.md
@@ -19,6 +19,15 @@ CrossDesk is a lightweight cross-platform remote desktop software.
|
|||||||
|
|
||||||
CrossDesk is an experimental application of [MiniRTC](https://github.com/kunkundi/minirtc.git), a lightweight cross-platform real-time audio and video transmission library. MiniRTC provides fundamental capabilities including network traversal ([RFC5245](https://datatracker.ietf.org/doc/html/rfc5245)), video software/hardware encoding and decoding (H264/AV1), audio encoding/decoding ([Opus](https://github.com/xiph/opus)), signaling interaction, network congestion control, and transmission encryption ([SRTP](https://tools.ietf.org/html/rfc3711)).
|
CrossDesk is an experimental application of [MiniRTC](https://github.com/kunkundi/minirtc.git), a lightweight cross-platform real-time audio and video transmission library. MiniRTC provides fundamental capabilities including network traversal ([RFC5245](https://datatracker.ietf.org/doc/html/rfc5245)), video software/hardware encoding and decoding (H264/AV1), audio encoding/decoding ([Opus](https://github.com/xiph/opus)), signaling interaction, network congestion control, and transmission encryption ([SRTP](https://tools.ietf.org/html/rfc3711)).
|
||||||
|
|
||||||
|
## System Requirements
|
||||||
|
|
||||||
|
| Platform | Minimum Version |
|
||||||
|
|-----------|-----------------|
|
||||||
|
| **Windows** | Windows 10 or later (64-bit) |
|
||||||
|
| **macOS** | macOS Intel 15.0 or later *(versions between 14.0 and 15.0 can be built manually for compatibility)*<br>macOS Apple Silicon 14.0 or later |
|
||||||
|
| **Linux** | Ubuntu 22.04 or later *(older versions can be built manually for compatibility)* |
|
||||||
|
|
||||||
|
|
||||||
## Usage
|
## Usage
|
||||||
|
|
||||||
Enter the remote desktop ID in the menu bar’s “Remote ID” field and click “→” to initiate a remote connection.
|
Enter the remote desktop ID in the menu bar’s “Remote ID” field and click “→” to initiate a remote connection.
|
||||||
@@ -33,6 +42,11 @@ Before connecting, you can customize configuration options in the settings, such
|
|||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
### Web Client
|
||||||
|
|
||||||
|
Visit [CrossDesk Web Client](https://web.crossdesk.cn/).
|
||||||
|
Enter the **Remote Device ID** and **Password**, then click Connect to access the remote device.
|
||||||
|
|
||||||
## How to build
|
## How to build
|
||||||
|
|
||||||
Requirements:
|
Requirements:
|
||||||
@@ -158,7 +172,7 @@ sudo docker run -d \
|
|||||||
-v /path/to/your/certs:/crossdesk-server/certs \
|
-v /path/to/your/certs:/crossdesk-server/certs \
|
||||||
-v /path/to/your/db:/crossdesk-server/db \
|
-v /path/to/your/db:/crossdesk-server/db \
|
||||||
-v /path/to/your/logs:/crossdesk-server/logs \
|
-v /path/to/your/logs:/crossdesk-server/logs \
|
||||||
crossdesk/crossdesk-server:v1.0.0
|
crossdesk/crossdesk-server:v1.1.0
|
||||||
```
|
```
|
||||||
|
|
||||||
The parameters you need to pay attention to are as follows:
|
The parameters you need to pay attention to are as follows:
|
||||||
|
|||||||
@@ -908,6 +908,7 @@ int Render::DrawStreamWindow() {
|
|||||||
|
|
||||||
int Render::Run() {
|
int Render::Run() {
|
||||||
latest_version_ = CheckUpdate();
|
latest_version_ = CheckUpdate();
|
||||||
|
update_available_ = IsNewerVersion(CROSSDESK_VERSION, latest_version_);
|
||||||
|
|
||||||
path_manager_ = std::make_unique<PathManager>("CrossDesk");
|
path_manager_ = std::make_unique<PathManager>("CrossDesk");
|
||||||
if (path_manager_) {
|
if (path_manager_) {
|
||||||
|
|||||||
@@ -308,6 +308,7 @@ class Render {
|
|||||||
|
|
||||||
// main window properties
|
// main window properties
|
||||||
std::string latest_version_ = "";
|
std::string latest_version_ = "";
|
||||||
|
bool update_available_ = false;
|
||||||
bool start_mouse_controller_ = false;
|
bool start_mouse_controller_ = false;
|
||||||
bool mouse_controller_is_started_ = false;
|
bool mouse_controller_is_started_ = false;
|
||||||
bool start_screen_capturer_ = false;
|
bool start_screen_capturer_ = false;
|
||||||
|
|||||||
@@ -45,7 +45,7 @@ int Render::TitleBar(bool main_window) {
|
|||||||
|
|
||||||
std::string about_str =
|
std::string about_str =
|
||||||
localization::about[localization_language_index_];
|
localization::about[localization_language_index_];
|
||||||
if (!latest_version_.empty()) {
|
if (update_available_) {
|
||||||
auto now_time =
|
auto now_time =
|
||||||
std::chrono::duration_cast<std::chrono::milliseconds>(
|
std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
std::chrono::steady_clock::now().time_since_epoch())
|
std::chrono::steady_clock::now().time_since_epoch())
|
||||||
@@ -75,7 +75,7 @@ int Render::TitleBar(bool main_window) {
|
|||||||
show_about_window_ = true;
|
show_about_window_ = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!latest_version_.empty() && ImGui::IsItemHovered()) {
|
if (update_available_ && ImGui::IsItemHovered()) {
|
||||||
ImGui::BeginTooltip();
|
ImGui::BeginTooltip();
|
||||||
ImGui::SetWindowFontScale(0.5f);
|
ImGui::SetWindowFontScale(0.5f);
|
||||||
std::string new_version_available_str =
|
std::string new_version_available_str =
|
||||||
@@ -104,7 +104,7 @@ int Render::TitleBar(bool main_window) {
|
|||||||
ImVec2(bar_pos_x + menu_bar_line_size, bar_pos_y + 6),
|
ImVec2(bar_pos_x + menu_bar_line_size, bar_pos_y + 6),
|
||||||
IM_COL32(0, 0, 0, 255));
|
IM_COL32(0, 0, 0, 255));
|
||||||
|
|
||||||
if (!latest_version_.empty() && show_new_version_icon_in_menu_) {
|
if (update_available_ && show_new_version_icon_in_menu_) {
|
||||||
auto now_time = std::chrono::duration_cast<std::chrono::milliseconds>(
|
auto now_time = std::chrono::duration_cast<std::chrono::milliseconds>(
|
||||||
std::chrono::steady_clock::now().time_since_epoch())
|
std::chrono::steady_clock::now().time_since_epoch())
|
||||||
.count();
|
.count();
|
||||||
|
|||||||
@@ -70,7 +70,7 @@ int Render::AboutWindow() {
|
|||||||
": CrossDesk v" + version;
|
": CrossDesk v" + version;
|
||||||
ImGui::Text("%s", text.c_str());
|
ImGui::Text("%s", text.c_str());
|
||||||
|
|
||||||
if (!latest_version_.empty()) {
|
if (update_available_) {
|
||||||
std::string latest_version =
|
std::string latest_version =
|
||||||
localization::new_version_available[localization_language_index_] +
|
localization::new_version_available[localization_language_index_] +
|
||||||
": " + latest_version_;
|
": " + latest_version_;
|
||||||
|
|||||||
Reference in New Issue
Block a user