3289 Commits
1.2.2 ... ios

Author SHA1 Message Date
rustdesk
a92d2301d9 fix chatgpt review 2025-07-10 16:17:23 +08:00
rustdesk
458090b737 ios 2025-07-07 16:54:45 +08:00
solokot
dd7a124334 Update ru.rs (#12227) 2025-07-06 18:03:45 +08:00
bovirus
7447a36782 Italian language update (#12210) 2025-07-06 18:00:05 +08:00
Lynilia
e2830347e6 Update fr.rs (#12203) 2025-07-06 17:59:51 +08:00
rustdesk
9389f3306d fix https://github.com/rustdesk/rustdesk/issues/12233 2025-07-05 09:24:18 +08:00
RustDesk
f3819e19d4 improve sas (#12226)
* improve sas

* Update windows.rs
2025-07-04 16:47:08 +08:00
Alex Rijckaert
9caf0dddc3 Update nl.rs (#12202) 2025-07-04 16:21:32 +08:00
fufesou
f766d28c36 Fix/linux keep terminal sessions (#12222)
* fix: linux, keep terminal sessions

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: terminal service stucked at reader join

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2025-07-03 17:27:50 +08:00
COYG⚡️
7ad3023285 docs: Render correct "CAUTION" (#12204) 2025-07-02 18:59:59 +08:00
COYG⚡️
86e79b0162 docs: correct jump to other language markdown files (#12205) 2025-07-02 18:59:34 +08:00
COYG⚡️
09098e86ca docs: Correct the path to CONTRIBUTING.md links in the README files for each language to ensure that you point to the correct file location. (#12207) 2025-07-02 18:59:18 +08:00
rustdesk
7ce13a21f8 reorder lang/template.rs 2025-07-01 13:23:59 +08:00
Naveenkumar
cf0d090c08 Update ta.rs (#12200)
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-07-01 13:18:23 +08:00
fufesou
f26d2a7b84 feat: stylus support (#12196)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-07-01 13:13:41 +08:00
RustDesk
5faf0ad3cf terminal works basically. (#12189)
* terminal works basically.
todo:
- persistent
- sessions restore
- web
- mobile

* missed terminal persistent option change

* android sdk 34 -> 35

* +#![cfg_attr(lt_1_77, feature(c_str_literals))]

* fixing ci

* fix ci

* fix ci for android

* try "Fix Android SDK Platform 35"

* fix android 34

* revert flutter_plugin_android_lifecycle to 2.0.17 which used in rustdesk 1.4.0

* refactor, but break something of desktop terminal (new tab showing loading)

* fix connecting...
2025-07-01 13:12:55 +08:00
Alex Rijckaert
ee5cdc3155 Update nl.rs (#12194) 2025-06-30 14:59:21 +08:00
rustdesk
e0f5fa39f3 terminal of hbb common 2025-06-29 14:09:59 +08:00
Melroy dsilva
d21a1023d2 docs: improve grammar and clarity in READM (#12155) 2025-06-28 15:26:00 +08:00
Andrzej Rudnik
884373794a Update pl.rs (#12162) 2025-06-27 18:49:25 +08:00
fufesou
9060f9ec8a fix: linux tray, defunct process (#12177)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-06-26 18:27:22 +08:00
fufesou
fd4e0146e1 fix: replace sh with CMD_SH (#12173)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-06-26 15:54:16 +08:00
fufesou
58fd2d3ccd fix: linux, get_env, break loop (#12174)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-06-26 15:47:01 +08:00
fufesou
bb6e080c1c fix: linux workaround cmd path (#12172)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-06-26 09:49:22 +08:00
21pages
7b7c93b78d fix record directory of custom client (#12171)
* For custom client, the incoming record directory of installing Windows app and the Android record directory still use RustDesk,  it works, but replace 'RustDesk' with the custom client's name.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-06-26 09:29:41 +08:00
Mahdi Rahimi
94ae3886c5 Update Arabic translation in ar.rs (#12134) 2025-06-25 12:43:35 +08:00
RustDesk
79c6da98d2 Update common.rs (#12159) 2025-06-24 21:38:59 +08:00
RustDesk
18ea3a4b59 Update common.rs 2025-06-24 21:38:36 +08:00
Mahdi Rahimi
2ae7f00ceb Updated Persian translations in fa.rs (#12133) 2025-06-24 13:23:35 +08:00
fufesou
4d8bfab86e fix: sequentially post conn audit (#12152)
* fix: sequentially post conn audit

Signed-off-by: fufesou <linlong1266@gmail.com>

* Update connection.rs

* refact: simplify loop

Signed-off-by: fufesou <linlong1266@gmail.com>

* Update connection.rs

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-06-23 23:55:07 +08:00
rustdesk
50b1c02243 fix dup msg for relay request 2025-06-23 20:29:24 +08:00
Adam Lewicki
fa61693ccd Update pl.rs (#12118) 2025-06-22 13:48:31 +08:00
bovirus
7822d3d923 Italian language update (#12095) 2025-06-21 16:29:23 +08:00
solokot
98d99fae64 Update ru.rs (#12096) 2025-06-21 16:29:11 +08:00
fufesou
7330dc70f3 fix: android 7.1, input, crash (#12129)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-06-20 17:50:28 +08:00
fufesou
46cd090f98 Revert "try fix firefox v2 paste problem" (#12126)
This reverts commit 590ecc43ff.
2025-06-19 22:31:40 +08:00
fufesou
d6ba063655 fix: win, privacy mode 2 (#12123)
* fix: win, privacy mode 2

Signed-off-by: fufesou <linlong1266@gmail.com>

* Update src/privacy_mode/win_virtual_display.rs

Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com>
2025-06-19 18:39:15 +08:00
rustdesk
590ecc43ff try fix firefox v2 paste problem 2025-06-19 13:21:47 +09:00
rustdesk
1eee03818d fix https://github.com/rustdesk/rustdesk/discussions/11838 2025-06-19 12:28:38 +09:00
fufesou
5dd15d1282 fix: privacy mode, msgbox sometimes does not show (#12117)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-06-18 16:25:15 +08:00
largemouth
8754579181 chore: fix some typos in comment (#12102)
Signed-off-by: largemouth <largemouth@aliyun.com>
2025-06-17 21:02:35 +08:00
rustdesk
57b826c56b try removing bom 2025-06-16 23:14:49 +09:00
rustdesk
bfd6ca79f8 debugg invalid id issue https://discord.com/channels/804630702657110016/804630702657110018/1384157888603357337 2025-06-16 22:44:22 +09:00
rustdesk
d84b26a9cd try to fix 1.3.8 not work on win7 sp1, https://github.com/rustdesk/rustdesk/discussions/12097 2025-06-16 18:36:15 +09:00
Mr-Update
181b3afc2d Update de.rs (#12092) 2025-06-16 13:30:14 +08:00
XLion
31934e9bd8 Update tw.rs (#12091) 2025-06-16 13:29:59 +08:00
rustdesk
14a8f00e5b fix punch option for non-public 2025-06-15 14:58:12 +08:00
rustdesk
44e00f8ec2 remove xpsprint.dll hard dep, https://github.com/rustdesk/rustdesk/discussions/12042#discussioncomment-13464313 2025-06-14 21:58:51 +08:00
rustdesk
645a76d43f udp / ipv6 punch option 2025-06-14 21:42:18 +08:00
Ibnul Mutaki
bf77f582d0 trans(ID): fix some phrase and add more translation (#12050)
* trans: fix some phrase and add more translation

* trans: change : upgrade tip

* fixing typo Downliad -> Download
2025-06-14 21:17:45 +08:00
rustdesk
c58fd145f2 CLAUDE.md 2025-06-14 18:04:12 +08:00
fufesou
a5a3352655 fix: linux, nokhwa, camera index (#12045)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-06-14 13:19:59 +08:00
21pages
2533493c66 Remove non-existent tags when importing ab peers from another ab (#12062)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-06-13 14:34:27 +08:00
rustdesk
832458c59e 1024 -> 1500 2025-06-13 00:42:52 +08:00
rustdesk
5beebf967d fix kcp_stream 2025-06-13 00:30:21 +08:00
rustdesk
4e9bdcbc1f fix ci 2025-06-13 00:12:07 +08:00
rustdesk
070b0354fd bring back allow-https-21114 https://github.com/rustdesk/rustdesk-server-pro/discussions/570#discussioncomment-13449526 2025-06-12 23:11:07 +08:00
rustdesk
f9405711c6 fix ci 2025-06-12 21:35:32 +08:00
rustdesk
7792ac1481 udp punch and ipv6 punch 2025-06-12 21:32:28 +08:00
lichon
05a812247a fix: use default camera, first element in query result might not be a camera (#12010) 2025-06-12 13:35:42 +08:00
WC3D
645cfd3b3d Bump ring from 0.17.8 to 0.17.13 in the cargo group across 1 directory (#12028)
Bumps the cargo group with 1 update in the / directory: [ring](https://github.com/briansmith/ring).


Updates `ring` from 0.17.8 to 0.17.13
- [Changelog](https://github.com/briansmith/ring/blob/main/RELEASES.md)
- [Commits](https://github.com/briansmith/ring/commits)

---
updated-dependencies:
- dependency-name: ring
  dependency-type: indirect
  dependency-group: cargo
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-06-11 13:28:51 +08:00
rustdesk
294ffcd9d3 hide-powered-by-me 2025-06-10 22:01:30 +08:00
Syed Ghufran Hassan
738afb54d7 Update main.rs (#12027)
common::global_init() might fail silently. Since return is used without any error logging, the user won’t know why the application didn't start so that is why added error print statement in case if it fails
2025-06-10 10:56:10 +08:00
mehdi-song
83f45b2212 Update fa.rs (#11971)
;-)
2025-06-07 19:21:42 +08:00
fufesou
8b2643e060 refact: remove unnecessary printing (#12000)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-06-06 14:52:01 +08:00
Kleofass
e79724644d Update lv.rs (#11966) 2025-06-05 13:06:21 +08:00
Lynilia
861fc91578 Update fr.rs (#11940) 2025-06-04 13:11:14 +08:00
Mahdi Rahimi
fa7770d901 Update Arabic translation in ar.rs (#11934) 2025-06-03 13:31:18 +08:00
21pages
e0f35b9046 test nat type for outgoing-only client (#11962)
* test nat type for outgoing-only client

Signed-off-by: 21pages <sunboeasy@gmail.com>

* test nat type for ios

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-06-03 09:27:02 +08:00
XLion
32e96e3705 Update tw.rs (#11931) 2025-06-02 22:16:24 +08:00
rustdesk
d52d9da043 upgrade android plugin to 7.3.1 2025-06-01 20:16:42 +08:00
rustdesk
68eaedfddc enable force-always-relay option for address book and accessible devices 2025-06-01 19:27:00 +08:00
rustdesk
e08cf3c0eb update kotlin 2025-06-01 17:58:03 +08:00
rustdesk
f919f297ac fix https://github.com/rustdesk/rustdesk/issues/11943 2025-06-01 16:44:55 +08:00
Mahdi Rahimi
c39c49fd17 Updated Persian translations in fa.rs (#11933) 2025-05-31 13:08:30 +08:00
rustdesk
90cb0ee56d fix https://github.com/rustdesk/rustdesk/issues/11927 2025-05-30 23:32:17 +08:00
Robert Galoyan
edab44afdf Update Russian docs to keep them in par with the original readme (#11901)
* Keep `README-RU` up to date with original readme

* Update `CONTRIBUTING-RU.md`

Minor reformat and grammar/orphography fixes
2025-05-30 13:39:38 +08:00
21pages
ec0456e606 clear the accessible devices tab when retrieving accessible devices disabled (#11913)
* clear the accessible devices tab when retrieving accessible devices is disabled

Signed-off-by: 21pages <sunboeasy@gmail.com>

* Update group_model.dart

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-05-29 17:07:32 +08:00
Jun, Koo
4e1a814aeb Update: Korean translation for various strings (#11892)
Updates the Korean translation file (`ko.rs`) to include new and corrected translations for various UI elements and messages. This improves the accuracy and completeness of the Korean localization.
2025-05-29 14:44:09 +08:00
rustdesk
4f8f34ec01 improve err 2025-05-28 23:27:12 +08:00
rustdesk
836950354b force secure tcp 2025-05-28 23:02:46 +08:00
Jun, Koo
527be17eaf Docs: Improve Korean translation for clarity and consistency (#11889)
* Docs: Improve Korean translation for clarity and consistency

Corrected minor grammatical errors and improved phrasing in `CONTRIBUTING-KR.md` and `README-KR.md` for better readability and consistency.

* Docs(KR): Update Korean README/CONTRIBUTING to align with latest English versions and refine translations
2025-05-28 21:42:14 +08:00
rustdesk
a0f4984ba5 update reqwest 2025-05-27 22:37:12 +08:00
Alex Rijckaert
4121e3fd14 Update nl.rs (#11873) 2025-05-27 13:08:03 +08:00
bovirus
a7a2f77ea3 Italian language update (#11862) 2025-05-26 21:05:13 +08:00
Mr-Update
46622f7576 Update de.rs (#11856) 2025-05-25 15:03:53 +08:00
solokot
45c9c505db Update ru.rs (#11855) 2025-05-24 14:27:22 +08:00
rustdesk
777c25bba2 no api for unregistered device 2025-05-24 09:21:06 +08:00
rustdesk
01146574f2 prepare no-register-device 2025-05-23 22:15:31 +08:00
rustdesk
39151531d7 fix ci 2025-05-23 17:22:13 +08:00
flusheDData
a5fefaddf5 New terms added (#11823)
* Update es.rs

* Update es.rs

* Update es.rs

New terms added

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-05-23 17:13:15 +08:00
Y-Ploni
f68d333bf1 Update he.rs (#11795)
* Update he.rs

* Update he.rs
2025-05-23 17:11:40 +08:00
fufesou
3c028fe5b5 feat: numeric one-time password (#11846)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-23 17:10:47 +08:00
fufesou
6ff679c6b4 fix: win, upload sysinfo (#11849)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-23 16:46:50 +08:00
rustdesk
48da2709d7 add youtube to readme 2025-05-23 11:14:35 +08:00
luzpaz
042d031a04 fix: source typo in src/clipboard.rs (#11726)
Found via codespell
2025-05-22 16:17:59 +08:00
VenusGirl❤
b2d5eb9714 Update SECURITY-KR.md (#11725) 2025-05-22 16:17:31 +08:00
fufesou
511a0b3693 refact: macos, comments, resolution list (#11830)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-21 18:23:14 +08:00
fufesou
06ab987e32 fix: macos, hidpi, resolutions (#11825)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-21 16:53:02 +08:00
rustdesk
b4a30cac73 Try to fix https://github.com/rustdesk/rustdesk/discussions/5602#discussioncomment-12482865 2025-05-21 15:00:12 +08:00
rustdesk
f801c251ed enable web socket for all except web 2025-05-20 20:49:21 +08:00
Lars
d3d7b09fe7 fix: mobile never connecting with password from url scheme (#11797) 2025-05-20 16:35:36 +08:00
fufesou
6144a1c97e fix: osx, reset modifiers' state after locking screen (#11806)
https://github.com/rustdesk/rustdesk/issues/11802

Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-19 21:02:07 +08:00
fufesou
118552ad0e refact: osx, handle key events, sleep (#11798)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-19 10:01:42 +08:00
rustdesk
9217205229 all key/mouse in QUEUE since --server has GUI too (--tray) 2025-05-17 14:40:44 +08:00
fufesou
4f6ae08110 fix: macos, key input lags, when service running (#11786)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-17 11:03:02 +08:00
solokot
90ad55d4aa Update ru.rs (#11769) 2025-05-16 15:27:40 +08:00
YGF
f1a4494e3c fix: parameter error (#11777) 2025-05-16 09:52:40 +08:00
fufesou
5fa17e440a fix: nokhwa, windows, x86 target runs on x64 (#11774)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-15 11:04:21 +08:00
fufesou
a73fa3cbf6 refact: oidc, launch url (#11772)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-15 09:06:37 +08:00
rustdesk
ae7faea6d5 --address_book_alias 2025-05-14 19:07:39 +08:00
fufesou
b525185d7f feat: web oidc (#11755)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-14 17:35:50 +08:00
Y-Ploni
dad841e493 Update he.rs (#11761) 2025-05-14 17:34:48 +08:00
21pages
550dd5ad72 update hbb_common, fix sync socks from advanced options to config file (#11757)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-05-14 15:32:04 +08:00
rustdesk
b4eeaee737 vn -> vi, fix https://github.com/rustdesk/rustdesk/issues/11756 2025-05-14 12:51:53 +08:00
RustDesk
cee69bb8b4 Update winget.yml 2025-05-14 01:33:08 +08:00
RustDesk
43501b663e Update winget.yml 2025-05-14 01:21:04 +08:00
RustDesk
9c0711e1db Update winget.yml 2025-05-14 01:18:54 +08:00
rustdesk
d00b8bb580 stupid me 2025-05-13 22:40:49 +08:00
rustdesk
c735fbd54c improve self-host server switch case https://github.com/rustdesk/rustdesk/issues/11749 2025-05-13 19:56:48 +08:00
fufesou
9d0d729522 Refact/update printer (#11748)
* refact: update printer

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: uninstall the printer for normal users

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-13 19:33:00 +08:00
fufesou
4c354ee1ae refact: install printer (#11745)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-13 14:14:54 +08:00
fufesou
f56c5c1bbb fix: win, prompt uac, update_install_option (#11741)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-13 10:20:57 +08:00
fufesou
a615b5e119 fix: nokhwa, dll search path (#11738)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-12 23:17:59 +08:00
Lynilia
12a9745b88 Update fr.rs (#11719) 2025-05-12 21:46:29 +08:00
John Fowler
b05a77ece2 Update hu.rs (#11718)
* Update hu.rs

Translation of the new character strings into Hungarian.

* Update hu.rs

Translation of the new character strings into Hungarian.
I replaced bad characters with good characters.
2025-05-12 21:46:18 +08:00
fufesou
ea106354af fix: win, only start tray if is installed exe (#11737)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-12 21:46:05 +08:00
XLion
e6aefcfa30 Update tw.rs (#11714) 2025-05-11 20:31:08 +08:00
Kleofass
4c5ec42100 Update lv.rs (#11712) 2025-05-11 20:30:59 +08:00
bovirus
f61728e24c Italian language update (#11709) 2025-05-11 20:30:47 +08:00
VenusGirl❤
2d7d1d0545 Create SECURITY-KR.md (#11704) 2025-05-11 20:30:35 +08:00
VenusGirl❤
968a9deee5 Update ko.rs (#11703)
* Update ko.rs

* Update ko.rs
2025-05-11 20:30:12 +08:00
Mr-Update
e79f254e50 Update de.rs (#11702) 2025-05-11 20:29:57 +08:00
Alex Rijckaert
8f712a51a3 Update nl.rs (#11701) 2025-05-11 20:29:33 +08:00
stanil77
7d20e0f26f Update bg.rs (#11700)
Updated translations, fixed some errors.
2025-05-11 20:29:21 +08:00
fufesou
c1b46b6b9d fix: login 2fa (#11715)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-11 20:27:41 +08:00
fufesou
dd0e6c31ba refact: mouse scroll, remote tabs (#11708)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-11 13:32:36 +08:00
rustdesk
54cf1c8225 dialog func 2025-05-11 11:47:35 +08:00
rustdesk
a73be6fc94 fix some build command 2025-05-11 01:15:29 +08:00
rustdesk
2c976eb1e2 prepare self-hosting web client 2025-05-10 21:49:23 +08:00
21pages
9dbb6217f7 fix pull ab twice in log (#11699)
The reason for calling `pullAb` twice is that when `pullAb` is called for the first time, `setCurrentName` is also called. In `setCurrentName`, if the current address book has not been initialized, it will also attempt to pull. Because `quiet` is false during the first call and `setCurrentName` is not `await` synchronously, the `abLoading` can prevent the two calls. However, `abLoading` depends on `quiet`, so we need to add a new variable `_abLoadingLock`.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-05-10 21:40:55 +08:00
Francisco Torres
1a8e3005cd docs: update spanish readme (#11696) 2025-05-10 12:12:41 +08:00
solokot
e9b4e4d170 Update ru.rs (#11683)
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-05-10 12:10:47 +08:00
mehdi-song
fb1661c897 Update fa.rs (#11684)
* Update fa.rs

* Update fa.rs
2025-05-09 16:34:36 +08:00
fufesou
ca7b4872d9 feat, trackpad speed (#11680)
* feat, trackpad speed

Signed-off-by: fufesou <linlong1266@gmail.com>

* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

* Trackpad speed, user default value

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-09 15:36:45 +08:00
21pages
9475743b4e allow use websocket (#11677)
1. Enable the RustDesk client to use WebSocket for either controlling or being controlled.
2. Fix TCP sending `register_pk` frequently

Note:
1. Because hbb_common directly uses `use_ws` to read config directly, rustdesk also directly reads config

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-05-09 12:18:49 +08:00
rustdesk
86bbdf7a5d refactor 2025-05-09 01:15:12 +08:00
rustdesk
4f6818477f less ipc 2025-05-09 00:49:18 +08:00
rustdesk
d46862e47d refactor test_nat 2025-05-09 00:07:06 +08:00
fufesou
61cdb60362 fix: rdp (#11670)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-07 21:24:14 +08:00
rustdesk
419bb3f0b0 fix ci 2025-05-07 16:43:27 +08:00
rustdesk
0869ceb5da hide-remote-printer-settings 2025-05-07 16:33:14 +08:00
Andrzej Rudnik
36e52e41ad Update pl.rs (#11663) 2025-05-07 10:45:54 +08:00
fufesou
bd85e9c322 fix: sciter, check, has_file_clipboard (#11666)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-07 10:07:24 +08:00
Alex Rijckaert
6ffbcd1375 Update nl.rs (#11658) 2025-05-06 17:07:30 +08:00
Alex Rijckaert
a7d0f3b149 Update nl.rs (#11654) 2025-05-05 22:27:06 +08:00
Mr-Update
5e60a47408 Update de.rs (#11650) 2025-05-05 22:26:51 +08:00
Arno
aa30f68c05 Update Korean translation (#11647)
Improved and completed the Korean translation in ko.rs.
Fixed missing and untranslated entries.
2025-05-05 22:24:53 +08:00
solokot
eee5b5f64c Update ru.rs (#11646) 2025-05-05 22:24:29 +08:00
bovirus
5298a5f83b Italian language update (#11641) 2025-05-05 22:24:10 +08:00
fufesou
d56df22838 fix: win, tray, detect cmdline (#11638)
target x86, run on x64

Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-05 08:51:25 +08:00
fufesou
ca00706a38 feat, update, win, macos (#11618)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-05-04 07:32:47 +08:00
Mr-Update
62276b4f4f Update de.rs (#11627) 2025-05-02 07:15:20 +08:00
rustdesk
e55722308e fix ci 2025-05-02 03:53:19 +08:00
rustdesk
7c8d2daaf6 update lock 2025-05-02 03:49:51 +08:00
rustdesk
04e2792f5f use tcp only for socks5 2025-05-02 03:41:55 +08:00
XLion
7196dbed6e Update tw.rs (#11615) 2025-05-02 02:55:50 +08:00
summoner001
ec1de6413a Update hu.rs (#11620)
* Update hu.rs

Translate strings and fixing

* Update hu.rs

fix sentence

* Update hu.rs

fix sentence
2025-05-02 02:55:36 +08:00
bovirus
d30ead1d96 Italian language update (#11619) 2025-05-02 02:55:26 +08:00
fufesou
20fcddffbd fix: build (#11611)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-30 23:49:18 +08:00
solokot
83aae23ba6 Update ru.rs (#11608) 2025-04-30 22:21:54 +08:00
Shahar Naveh
df847e9a60 Add some hebrew translation (#11490)
* Update he.rs

* Update he.rs

* Update he.rs

* Update he.rs

* Update he.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-04-30 22:19:57 +08:00
fufesou
2ad1c907b8 feat: hostname as id (#11605)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-30 17:34:17 +08:00
fufesou
c626c2414d feat: take screenshot (#11591)
* feat: take screenshot

Signed-off-by: fufesou <linlong1266@gmail.com>

* screenshot, vram temp switch capturer

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: misspelling

Signed-off-by: fufesou <linlong1266@gmail.com>

* screenshot, taking

Signed-off-by: fufesou <linlong1266@gmail.com>

* screenshot, rgba stride

Signed-off-by: fufesou <linlong1266@gmail.com>

* Bumps 1.4.0

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-30 17:23:35 +08:00
rustdesk
2864e1984a improve cap 2025-04-29 23:27:43 +08:00
rustdesk
f0c5580f57 cap display name 2025-04-29 23:05:25 +08:00
fufesou
abde556695 fix: lan discovery (#11592)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-28 21:48:14 +08:00
YinMo19
c9d5e15ac0 Using new Stream type adapted to the update of submodules (#11581)
* [fix bug] fix all err stream type.

* [update] update hbb_common.

* [bug fix] Stream in other platform.
2025-04-28 00:47:33 +08:00
fufesou
16e9e716b6 fix: check server running on Windows (#11578)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-27 12:04:05 +08:00
fufesou
f438bf582b fix: http proxy (#11570)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-26 13:04:41 +08:00
21pages
c0789a5fc0 Add custom client judgment for hide cm (#11563)
There is latency in the HTTP request; add a custom client check to avoid the PRO variable being unset during application startup

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-04-25 17:13:19 +08:00
fufesou
198967ea35 fix: allow logon screen password, on lock screen (#11566)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-25 10:37:09 +08:00
fufesou
279fb72a4f fix: remote printer, update install option (#11461)
* fix: remote printer, update install option

Signed-off-by: fufesou <linlong1266@gmail.com>

* Add comments

Signed-off-by: fufesou <linlong1266@gmail.com>

* Add comments

Signed-off-by: fufesou <linlong1266@gmail.com>

* Win, run_cmds, remove extra whitespace and newline

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-24 18:24:22 +08:00
rustdesk
5c2538e7af https://github.com/rustdesk/rustdesk/discussions/9802 2025-04-23 22:24:43 +08:00
21pages
296aa7f8a0 fix build and update comment (#11542)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-04-22 23:18:36 +08:00
rustdesk
2cb096178a ifix PRO 2025-04-22 22:05:46 +08:00
RustDesk
57ee031827 Revert "Translations update from Toolate (#11510)" (#11535)
This reverts commit 86d9e62780.
2025-04-22 16:53:38 +08:00
Yurt Page
52b6541dd0 docs: CONTRIBUTING-DE.md convert to UTF8 (#11523) 2025-04-22 08:17:43 +08:00
Too Late (bot)
86d9e62780 Translations update from Toolate (#11510)
* Added translation using Weblate (Russian)

* Translated using Weblate (Russian)

Currently translated at 100.0% (2 of 2 strings)

Translation: RustDesk/metadata
Translate-URL: https://toolate.othing.xyz/projects/rustdesk/metadata/ru/

* Translated using Weblate (Russian)

Currently translated at 100.0% (31 of 31 strings)

Translation: RustDesk/MSI Package
Translate-URL: https://toolate.othing.xyz/projects/rustdesk/msi-package/ru/

---------

Co-authored-by: Yurt Page <yurtpage+translate@gmail.com>
2025-04-21 10:03:41 +08:00
Yurt Page
a8c822ee5d fastlane: short_description.txt shorten to fit 80 chars limit (#11509) 2025-04-21 09:13:49 +08:00
fufesou
bc1f629c17 fix: ci (#11504)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-19 21:24:44 +08:00
RustDesk
66a9882e30 22.04 runner 2025-04-18 22:34:10 +08:00
RustDesk
978ead4c42 22.04 runner 2025-04-18 22:33:44 +08:00
summoner001
56010344b7 Update hu.rs (#11498)
* Update hu.rs

Translate new strings
Fixing sentences

* Update hu.rs

Fix the translation of TCP-tunneling word

* Update hu.rs

fix placeholders
2025-04-18 22:26:51 +08:00
Dominik
c853dd4279 Update flutter-build.yml (#11492) 2025-04-18 22:26:19 +08:00
rustdesk
f1f504f9f1 OPTION_ENABLE_REMOTE_PRINTER 2025-04-18 11:32:51 +08:00
Miguel Gomez
f34f962b73 adding missing --recurse-submodule in the Build section of the README. Should be present to ensure no issues arise for hbb_common (#11475) 2025-04-17 19:00:28 +08:00
Y-Ploni
ded19ce5b9 Update he.rs (#11460) 2025-04-15 17:12:32 +08:00
rustdesk
3f9ba53dca fix ci 2025-04-14 12:02:08 +08:00
rustdesk
3e82b99f8e fix ci 2025-04-14 11:46:33 +08:00
rustdesk
98e9e2a0e8 fix ci new flexi_logger failed on rustc 1.75 2025-04-14 11:40:41 +08:00
rustdesk
375cede605 fix ci 2025-04-13 23:53:06 +08:00
rustdesk
838decccc4 tokio 1.44 2025-04-13 23:46:34 +08:00
flusheDData
b7742ff806 New terms (#11412)
* Update es.rs

* Update es.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-04-13 17:51:12 +08:00
fufesou
36815e9a02 fix: build macos (#11448)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-12 12:39:05 +08:00
Alex Rijckaert
581313341b Update nl.rs (#11375) 2025-04-11 18:36:11 +08:00
Giorgi
d9109560a7 Revert "RustDesk Georgian (ქართული) Localization" (#11418)
* Create GE.rs

Georgian Language

* Update lang.rs

adding Georgian Language

* Rename GE.rs to ge.rs

* Finalizing translate

* Update ge.rs

fix(lang/ge.rs): remove accidental  header paste

* Update ge.rs

fix(lang/ge.rs): remove  paste

* Update ge.rs
2025-04-10 01:19:53 +08:00
RustDesk
d7dc49f1f7 Revert "RustDesk Georgian (ქართული) Localization (#11362)" (#11413)
This reverts commit f9af3e3a0c.
2025-04-09 23:58:03 +08:00
Giorgi
f9af3e3a0c RustDesk Georgian (ქართული) Localization (#11362)
* Create GE.rs

Georgian Language

* Update lang.rs

adding Georgian Language

* Rename GE.rs to ge.rs

* Finalizing translate
2025-04-09 22:34:13 +08:00
Andrzej Rudnik
3b73ee3a23 Update pl.rs - remote printing (#11360)
Translation updated to version 1.3.9.
2025-04-08 15:04:47 +08:00
fufesou
d8eb23a571 fix: msi, silent install, launch app tray (#11389)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-07 15:40:17 +08:00
Marcos Rodrigo Ladeia
cc0761446f Update ptbr.rs (#11354)
Improvements in translation for better user understanding.
2025-04-07 14:05:14 +08:00
asereze
d972c0eda1 Update sc.rs (#11342)
Some fixes
2025-04-07 14:04:03 +08:00
fufesou
2d403913b5 fix: enigo, macos, F11 (#11371)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-06 10:42:15 +08:00
fufesou
62a83ad319 fix: build (#11365)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-05 10:00:34 +08:00
fufesou
a7aacc7855 refact: win, dlopen mf (#11353)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-05 08:45:33 +08:00
fufesou
9ddeab9be2 fix: vcpkg, cmake, compatibility 3.5 (#11356)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-04-05 08:45:01 +08:00
Marcos Rodrigo Ladeia
d808bb2947 Update Portuguese (Brazil) Translations (#11322)
* Update ptbr.rs

* Update ptbr.rs "web_id_input_tip"
2025-04-03 15:16:00 +08:00
XLion
c19f33a137 Update tw.rs (#11325) 2025-04-02 17:12:10 +08:00
asereze
11d3ea5f24 Update sc.rs (#11309) 2025-04-01 21:57:27 +08:00
solokot
ca1b35440b Update ru.rs (#11306) 2025-04-01 21:57:12 +08:00
Kleofass
3dbe27ea57 Update lv.rs (#11298) 2025-03-31 13:46:38 +08:00
Mahdi Rahimi
a2725df7cd Update Arabic translation in ar.rs (#11281) 2025-03-31 13:46:25 +08:00
Mahdi Rahimi
f32988b454 Updated Persian translations in fa.rs (#11280) 2025-03-31 13:46:15 +08:00
bovirus
adf83a1b25 Italian language update (#11278) 2025-03-31 13:45:59 +08:00
Mr-Update
ea74ed12b8 Update de.rs (#11269) 2025-03-30 14:45:17 +08:00
Lynilia
5f3b980373 Update fr.rs (#11266) 2025-03-29 21:55:28 +08:00
fufesou
23e70c0fd1 refact: remote printer, adapter dll, free data ptr (#11279)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-03-28 21:58:46 +08:00
fufesou
4b14f86134 refact: remote printer, log (#11271)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-03-28 10:56:19 +08:00
fufesou
ee2478168c fix: remote printer (#11270)
* fix: remote printer, log

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: remote printer, avoid double sign

Signed-off-by: fufesou <linlong1266@gmail.com>

* Spawn a new thread to handle the print job.

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2025-03-28 10:36:42 +08:00
fufesou
f4bbf82363 feat: remote printer (#11231)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-03-27 15:34:27 +08:00
Kleofass
1cb53c1f7a Update lv.rs (#11250) 2025-03-27 14:42:31 +08:00
RustDesk
eea9e0fa43 Update README-DE.md (#11247) 2025-03-26 15:23:40 +08:00
RustDesk
ac630c2ca6 Update README-ZH.md 2025-03-25 15:41:36 +08:00
RustDesk
9831f93430 Update README.md 2025-03-24 21:59:08 +08:00
Lynilia
c074a1d6af Update fr.rs (#11184) 2025-03-20 15:12:03 +08:00
asereze
47c93f8544 Update sc.rs (#11176)
* Update sc.rs

* Update sc.rs
2025-03-19 22:26:14 +08:00
rustdesk
c06ac9341a improve check_software_update 2025-03-18 15:12:41 +08:00
Alex Rijckaert
8d231b4605 Update nl.rs (#11172) 2025-03-18 14:48:48 +08:00
Alex Rijckaert
745ba1673d Update nl.rs (#11155) 2025-03-17 22:04:18 +08:00
solokot
2ef1dd99de Update ru.rs (#11132) 2025-03-16 15:11:18 +08:00
XLion
960d9a042f Update tw.rs (#11126) 2025-03-15 21:37:39 +08:00
bovirus
10457dfe45 Italian language update (#11123) 2025-03-14 17:14:05 +08:00
21pages
971d4e6976 ipc example for test (#11127)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-03-14 00:21:05 +08:00
Mr-Update
2dbff45588 Update de.rs (#11106)
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-03-13 09:36:27 +08:00
flusheDData
2bdb621417 Update es.rs (#11111)
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-03-13 09:36:00 +08:00
Alex Rijckaert
47b00054d2 Update nl.rs (#11102)
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-03-13 09:35:21 +08:00
21pages
d1c8b331c5 Option allow-d3d-render and fix ios ci (#11107)
* option `allow-d3d-render`, default false

Add this option because it fails on some machines

Signed-off-by: 21pages <sunboeasy@gmail.com>

* only add nokhwa to windows and linux dependencies

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-03-13 09:34:13 +08:00
fufesou
1403c939db fix: msi, silent install, do not launch app (#11115)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-03-13 09:33:30 +08:00
rustdesk
f1d2073d43 revert back, because useless 2025-03-12 20:06:35 +08:00
rustdesk
f7c930e153 fix https://github.com/rustdesk/rustdesk/discussions/11104 2025-03-12 19:07:25 +08:00
bovirus
22005bac75 Italian language update (#11088) 2025-03-12 15:14:47 +08:00
XLion
8f7bb5a032 Update tw.rs (#11087) 2025-03-12 15:14:21 +08:00
21pages
e0fd698101 opt dropdown button of connection page (#11086)
* Use menu style of the peer card
* Add margin between connection button and dropdown button
* Use thinner icon

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-03-11 16:29:02 +08:00
21pages
b2cc9eac23 set rgba_data.valid to false when open a new single display on the old session (#11078)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-03-10 21:12:13 +08:00
Naveenkumar
5f521c80a7 Create ta.rs (#11068)
* Create ta.rs

* Update lang.rs
2025-03-10 21:07:15 +08:00
21pages
f0f999dc27 view camera (#11040)
* view camera

Signed-off-by: 21pages <sunboeasy@gmail.com>

* `No cameras` prompt if no cameras available,  `peerGetSessionsCount` use
connType as parameter

Signed-off-by: 21pages <sunboeasy@gmail.com>

* fix, use video_service_name rather than display_idx as key in qos,etc

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
Co-authored-by: Adwin White <adwinw01@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-03-10 21:06:53 +08:00
fufesou
df4a101316 fix: build macos, default feature (#11075)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-03-10 10:16:17 +08:00
rustdesk
bdc53f0190 improve lock, https://github.com/rustdesk/rustdesk/issues/11067 2025-03-10 11:10:09 +09:00
Madis Otenurm
cef4175961 Update et.rs (#11054)
* Update et.rs

* Update et.rs

Added more missing translations

* Update et.rs

* Update et.rs

* Update et.rs
2025-03-08 17:38:58 +08:00
asereze
4ff75412c3 Update sc.rs (#11046) 2025-03-07 21:24:45 +08:00
dependabot[bot]
f1329ca69e Git submodule: Bump libs/hbb_common from 7cf11f7 to 83419b6 (#11042)
Bumps [libs/hbb_common](https://github.com/rustdesk/hbb_common) from `7cf11f7` to `83419b6`.
- [Commits](7cf11f7b77...83419b6549)

---
updated-dependencies:
- dependency-name: libs/hbb_common
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-03-07 09:21:40 +08:00
ANB5Dev
c95aaf563e fixed Dutch names for macOS permissions (#11020) 2025-03-06 09:49:44 +08:00
Mani Ka
11fed81c4d Update reference to flutter web UI (#11029)
- the src js web UI has moved to directory v1 in flutter/web/js as v2 is under development . The link in README.md is returning 404
2025-03-06 09:49:25 +08:00
zuiyu
561bc18f49 Fix unused import with dxgiformat (#11032) 2025-03-06 09:49:04 +08:00
Ivan Beà
6946b863f7 Update ca.rs (#11024)
Update catalan localization
2025-03-05 16:14:42 +08:00
Yuni
8f68861920 Update CONTRIBUTING-KR.md (#11016)
* Update CONTRIBUTING-KR.md

Signed-off-by: yeonhee7935 <yeonhee7935@naver.com>

* Update CONTRIBUTING-KR.md

Signed-off-by: yeonhee7935 <yeonhee7935@naver.com>

---------

Signed-off-by: yeonhee7935 <yeonhee7935@naver.com>
2025-03-04 17:37:54 +08:00
21pages
171d178b09 make errorText of DialogTextField selectable (#11013)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-03-04 14:11:18 +08:00
rustdesk
7305b6bd1c https://github.com/rustdesk/rustdesk/discussions/937#discussioncomment-12373814 try to support citrix session 2025-03-03 19:06:01 +08:00
marboroman
6600c8c648 Update ru.rs (#10984)
Changed to the translation which makes sense.
2025-03-03 14:55:32 +08:00
marboroman
32b77f8968 Update ru.rs (#10979)
Made long translation short to fit in user interface.
2025-03-03 14:55:21 +08:00
marboroman
0bda90f8fb Update ru.rs (#10978)
update wrong translation for privacy mode activation
2025-03-03 14:55:11 +08:00
Lynilia
2b68c46fdc French localization rework (#10966) 2025-03-02 18:04:22 +08:00
fufesou
bfbf00f18c fix: custom client, settings button (#10974)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-03-01 19:43:01 +08:00
asereze
e17ab74040 Sardinian translation (#10941)
* Sardinian translation

Sardinian ("Sardu", ISO 639-1 code: "sc") translation.

* Update lang.rs

* Corrected typo
2025-03-01 18:39:58 +08:00
fufesou
41cd375e3c fix: potential memleak (#10955)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-28 12:14:40 +08:00
fufesou
0d919157c9 Fix/win build (#10954)
* fix: win build

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: win, build

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-28 11:56:17 +08:00
fufesou
00293a9902 Feat/macos clipboard file (#10939)
* feat: macos, clipboard file

Signed-off-by: fufesou <linlong1266@gmail.com>

* Can't reuse file transfer

Signed-off-by: fufesou <linlong1266@gmail.com>

* handle paste task

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-28 00:46:46 +08:00
rustdesk
bc3a58f6f4 1.3.9 2025-02-26 18:00:31 +08:00
rustdesk
d8496aba0b refactor is_custom_client 2025-02-26 00:32:54 +08:00
rustdesk
280c12942f improve android build 2025-02-25 00:30:29 +08:00
Andrzej Rudnik
3a5b30a5e7 Update pl.rs (#10901) 2025-02-24 23:08:48 +08:00
dependabot[bot]
c46023bbde Git submodule: Bump libs/hbb_common from 16900b9 to 7cf11f7 (#10895)
Bumps [libs/hbb_common](https://github.com/rustdesk/hbb_common) from `16900b9` to `7cf11f7`.
- [Commits](16900b9b06...7cf11f7b77)

---
updated-dependencies:
- dependency-name: libs/hbb_common
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2025-02-24 08:58:25 +08:00
Kleofass
93feedc212 Update lv.rs (#10883) 2025-02-23 13:39:43 +08:00
luzpaz
6f1a769741 fix: source typo in flutter/lib/common/widgets/address_book.dart (#10884)
Found via codespell
2025-02-23 09:01:52 +08:00
princeyogesh
e191d11f74 before docker run command added git submoulde update command in docker build Updated README.md (#10878)
there is dependency on submodule libs/hbb_common, 
we need to initialize submodule after cloning repo and before running container
2025-02-22 13:17:11 +08:00
fufesou
fc396d2166 fix: check text editing controlling, if selection is valid (#10868)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-21 11:00:19 +08:00
Theofanis Sarmidis
2575e14811 Update el.rs (#10866) 2025-02-21 10:42:12 +08:00
fufesou
0b9a6a280e fix: remote id, update text and reserve selection (#10867)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-21 10:41:57 +08:00
fufesou
343f12b380 fix: load local peers, called two times on select tab (#10859)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-20 22:47:42 +08:00
fufesou
ce1e4863cb fix: load peers, always push event data (#10856)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-20 22:44:18 +08:00
fufesou
f631c1c28d refact: Remote ID editor, only select text on focus (#10854)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-20 19:35:04 +08:00
fufesou
8b9a7a3506 refact: optimize, ID search peers (#10853)
* refact: optimize, preload peers

Signed-off-by: fufesou <linlong1266@gmail.com>

* Update dialogs.dart

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-02-20 18:31:12 +08:00
fufesou
055b351164 refact: optimize, loading recent peers (#10847)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-20 11:53:36 +08:00
fufesou
2e89a33210 fix: android, back function (#10843)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-20 01:02:24 +08:00
Alex Rijckaert
965cc6af26 Update nl.rs (#10834) 2025-02-20 00:25:23 +08:00
rustdesk
16e191f913 fix de 2025-02-20 00:24:24 +08:00
fufesou
1d1e79c802 revert, peers card, sort by online status (#10829)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-19 14:14:02 +08:00
Mr-Update
9ffe516f54 Update de.rs (#10827) 2025-02-19 08:42:15 +08:00
solokot
ac20d2fb56 Update ru.rs (#10794) 2025-02-19 01:11:36 +08:00
bovirus
2217152216 Italian language update (#10796) 2025-02-19 01:11:22 +08:00
XLion
ee288280b3 Update tw.rs (#10799) 2025-02-19 01:11:08 +08:00
John Fowler
cccdb2f289 Update hu.rs (#10804)
Translate new strings.
Clarification of some translations.
2025-02-19 01:10:52 +08:00
ANB5Dev
1ddab27c0e NL lang further improvements (#10813) 2025-02-19 01:10:41 +08:00
Alex Rijckaert
451b6dc651 Update nl.rs (#10812) 2025-02-19 01:10:32 +08:00
rustdesk
86b327ee41 they always forget to remove :21114 for https, so I remove for them 2025-02-18 16:18:41 +08:00
rustdesk
6e305d4865 improve sysinfo update 2025-02-18 16:09:25 +08:00
21pages
77af6c4ce1 clear selected device group or user when search text changes (#10815)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-02-18 09:08:38 +08:00
21pages
fa49c72835 fix, accessible peers filter considering device group name (#10809)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-02-17 17:36:47 +08:00
rustdesk
c150143d86 device_group_name in devices.py 2025-02-17 16:28:47 +08:00
fufesou
023d46b48c refact: android, handle right click (#10806)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-16 20:45:09 +08:00
rustdesk
356adbcd8c more about allow - 2025-02-15 19:00:43 +08:00
rustdesk
33b47dd6e3 allow dash in id 2025-02-15 18:51:30 +08:00
fufesou
a548e9c94d fix: android, controlled side, gesture (#10792)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-15 18:33:26 +08:00
21pages
cefda0dec1 device group (#10781)
1. Rename `Group` tab to `Accessible devices`
2. Add accessible device groups at the top of search list
3. option `preset-device-group-name` and command line `--assign --device_group_name`

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-02-15 12:13:11 +08:00
rustdesk
8f545491a2 verify_login, but not eable yet 2025-02-14 16:39:09 +08:00
rustdesk
263bbfc66f missed clear 2025-02-12 17:04:56 +08:00
fufesou
a039741e5a fix: win10, border (#10753)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2025-02-10 13:50:28 +08:00
fufesou
2a0e8c109b fix: macos, main window, dark theme, border (#10749)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-02-10 00:25:11 +08:00
rustdesk
9614bf266a update READEME 2025-02-08 16:03:04 +08:00
rustdesk
aa63ebc7e5 Misuse Disclaimer 2025-02-05 15:28:30 +08:00
fufesou
fbba8f0b34 refact: file copy&paste, cross platform (no macOS) (#10671)
* feat: unix, file copy&paste

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: unix file c&p, check peer version

Signed-off-by: fufesou <linlong1266@gmail.com>

* Update pubspec.yaml

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2025-02-04 20:33:02 +08:00
ANB5Dev
a27fa43081 Update NL translation: spelling, capitalization, missing entries (#10661) 2025-02-03 22:18:20 +08:00
rustdesk
7a5941de98 remove devcontainer since not maintained yet 2025-02-02 20:31:44 +08:00
rustdesk
db3ca6a373 remove useless code 2025-02-01 13:07:27 +08:00
rustdesk
ce5f0d513f 2024 -> 2025 2025-01-31 16:54:57 +08:00
rustdesk
05b0f95b79 restore entrypoint.sh 2025-01-30 13:53:02 +08:00
rustdesk
8b24b195a2 remove useless files 2025-01-30 13:49:37 +08:00
rustdesk
5fc8e8c428 remove PUBLIC_RS_PUB_KE 2025-01-29 16:57:28 +08:00
RustDesk
25f917a7b4 misused by bad guys (#10614) 2025-01-28 16:16:00 +08:00
fufesou
55005f8129 fix: win, file clipboard, try empty (#10609)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-01-27 16:16:44 +08:00
fufesou
f08cb0412d fix: windows, dll, pre-loading attack (#10608)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-01-26 19:39:38 +08:00
XLion
fc2e27bcf0 Create dependabot.yml (#10593) 2025-01-26 14:18:26 +08:00
Theofanis Sarmidis
7aa4592669 Update and fixes el.rs (#10600) 2025-01-25 16:39:16 +08:00
Y-Ploni
d656ae2956 Update he.rs (#10594) 2025-01-24 15:09:36 +08:00
RustDesk
e4f00361f6 Update README.md (#10587) 2025-01-23 13:24:14 +08:00
RustDesk
1b49d49df2 Update README.md (#10586) 2025-01-23 13:23:20 +08:00
bjoernp
80f759c1ed norwegian translation (#10579)
Signed-off-by: bjoernp116 <bjoernpollen@gmail.com>
2025-01-23 13:22:25 +08:00
21pages
da80f3352a fix vaapi create 2 times at first (#10576)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-01-22 20:27:00 +08:00
Vasyl Gello
ec3ba5be8e Fix issues spotted during 1.3.7 fdroid build (#10570)
* bridge.yml: Explicitly install cargo-expand of certain version

@linsui spotted this trying to fix the build failure of 1.3.7
on f-droid:

https://gitlab.com/fdroid/fdroiddata/-/merge_requests/18766

* flutter-build.yml: drop workarounds for flutter 3.13

@fufesou has removed them from build_fdroid.sh in #10040 but
forgot to remove them in main flutter_build.yml. flutter 3.13
is not used anymore, and those who want to build the old version
using flutter 3.13 can happily check out the appropriate commit
from Git history.

* Bump vcpkg baseline to 2025.01.13

@linsui addressed the missing vcpkg-tools.json file inside vcpkg
revision (microsoft side, not rustdesk's!) by updating the vcpkg
baseline.
2025-01-22 09:26:03 +08:00
21pages
d04756ad70 replace self-hosted arm64 linux with ubuntu-22.04-arm (#10555)
https://github.blog/changelog/2025-01-16-linux-arm64-hosted-runners-now-available-for-free-in-public-repositories-public-preview/

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-01-21 17:09:24 +08:00
21pages
0eba939cd6 fix windows crash (#10562)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-01-21 16:57:07 +08:00
21pages
1f02bc9d3e bump to 1.3.7 (#10548)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-01-20 23:12:00 +08:00
21pages
5fa8c25e65 opt qos (#10459)
* Adjust bitrate and fps based on TestDelay messages.
* Bitrate is adjusted every 3 seconds, fps is adjusted every second and when receiving test lag.
* Latency optimized at high resolutions. However, when the network is poor, the delay when just connecting or sliding static pages is still obvious.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-01-20 17:59:36 +08:00
21pages
c44803f5b0 replace hbb_common with submodule (#10543)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-01-20 17:33:41 +08:00
Samuel FORESTIER
4b066b1fba fix(debian): makes postinst/prerm scripts idempotent (#10541)
* fix(debian): makes `postinst` script idempotent

* fix(debian): makes `prerm` script idempotent
2025-01-20 07:59:40 +08:00
fufesou
dd004f1a2d fix: clipboard, client side, update is required on conn (#10464)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-01-17 02:27:20 +08:00
fufesou
222dbf12cd fix: mobile, don't reset canvas on metrics changed (#10463)
Signed-off-by: fufesou <linlong1266@gmail.com>
2025-01-15 18:24:50 +08:00
是果宝呐
b5d54debce Fix a translation error (#10500) 2025-01-14 22:16:17 +08:00
flusheDData
08cdf7134d Update es.rs (#10468) 2025-01-10 21:14:59 +08:00
add-uos
be5037bd03 fix: [translations] Add the translation in tw.rs (#10452)
Add the translation in tw.rs

Log: Add the translation in tw.rs
2025-01-08 14:16:16 +08:00
rustdesk
f9915df926 update readme 2025-01-08 00:23:17 +08:00
rustdesk
f96c759cf5 fix https://github.com/rustdesk/rustdesk/issues/10440 2025-01-07 11:52:43 +08:00
Xiaobo Liu
8f329ebc1a scrap: style (#10445) 2025-01-07 11:21:43 +08:00
Xiaobo Liu
4a3c11e711 scrap: fixed build warnning (#10442)
```shell
warning: elided lifetime has a name
   --> src/common/mod.rs:192:21
    |
187 |     pub fn to<'a>(
    |               -- lifetime `'a` declared here
...
192 |     ) -> ResultType<EncodeInput> {
    |                     ^^^^^^^^^^^ this elided lifetime gets resolved as `'a`
    |
    = note: `#[warn(elided_named_lifetimes)]` on by default
```
2025-01-07 11:14:20 +08:00
Xiaobo Liu
0dbd3094ec hbb_common: simplify is_compressed_file (#10436)
* hbb_common: simplify is_compressed_file

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>

* `exts` rename to `compressed_exts`

---------

Signed-off-by: Xiaobo Liu <cppcoffee@gmail.com>
2025-01-06 18:20:18 +08:00
21pages
40999c3211 fix ffmpeg videotoolbox wrong log (#10413)
* Fix ffmpeg videotoolbox wrong log when changing bitrate
* Let qsv support abr, and it's safe for qsv to changing bitrate.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2025-01-02 22:19:30 +08:00
rustdesk
7c2d62237f missed file 2025-01-01 23:11:38 +08:00
rustdesk
ef90ab2bd4 compelete fix https://github.com/rustdesk/rustdesk/discussions/10210
rather than the awful workaround
2025-01-01 23:05:52 +08:00
Dimitris Apostolou
4f3b821883 fix: fix crate vulnerabilities (#10407) 2025-01-01 10:15:57 +08:00
21pages
98b00cdb3d Fix image blur occurring at the moment of changing quality (#10399)
1. Fix this issue occurs on FFmepg qsv, FFmpeg nvenc and SDK mfx, other
   codecs don't have this problem. Clear cache is needed.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-30 11:51:36 +08:00
rustdesk
8e4127b6a0 remove all stupid canLaunchUrl 2024-12-29 23:43:31 +08:00
21pages
b1f54acf90 fix andriod update button cannot be clicked (#10394)
1. Remove `canLaunchUrl`, which fix the issue
2. Remove `unregisterEventHandler` of `kCheckSoftwareUpdateFinish` when
   connection page dispose, it's registered on main.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-29 23:37:52 +08:00
rustdesk
39a430f96f upgrade url_launch 2024-12-28 22:03:34 +08:00
Kleofass
a9f2e14091 Update lv.rs (#10381) 2024-12-27 14:47:01 +08:00
Vasyl Gello
77baba3122 Fix missing locked arg in cargo install (#10374)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-12-26 15:54:46 +08:00
fufesou
1c62a28ef3 fix: build (#10364)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-25 16:36:13 +08:00
fufesou
9ed2499666 fix: file clipboard, init disabled (#10361)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-25 15:18:06 +08:00
XLion
06bc554216 Fix: DEBIAN Control md5sums (#10356)
* Fix: DEBIAN Control md5 sums

* I forgot import
2024-12-25 00:04:34 +08:00
Jernej Simončič
090f5b65ac Update sl.rs (#10346) 2024-12-24 14:15:22 +08:00
Integral
49dabd3533 refactor: replace &PathBuf with &Path to enhance generality (#10332) 2024-12-23 20:28:04 +08:00
RustDesk
7289dbc80f Update flutter-build.yml (#10337) 2024-12-22 11:35:55 +08:00
rustdesk
72f5184ee0 unused 2024-12-22 11:20:38 +08:00
fufesou
e9c5e0d26b fix: android, mouse mode, right menu, unexpected click (#10330)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-21 15:09:03 +08:00
rustdesk
03999d900e 1.3.6 2024-12-21 15:00:16 +08:00
fufesou
b24551da7b refact: linux, move rustdesk into /usr/share (#10327)
* refact: linux, move rustdesk into /usr/share

Signed-off-by: fufesou <linlong1266@gmail.com>

* linux, upgrade, try remove old empty folders

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-21 14:53:28 +08:00
21pages
bc461fe99b Revert "Revert "revert linux use cpal "" (#10326)
* Revert "Revert "revert linux use cpal (#10260)" (#10262)"

This reverts commit 827b5f6a4c.

* update Cargo.lock

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-20 22:46:42 +08:00
rustdesk
25e438a663 crate 2024-12-20 22:24:53 +08:00
jkh0kr
1f5aeda41d Update ko.rs (#10320) 2024-12-20 15:09:33 +08:00
fufesou
9114743577 fix: linux, flutter, workaround freeze (#10324)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-20 09:24:08 +08:00
fufesou
7830a9e9f3 refact: linux, install path (#10316)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-19 15:05:24 +08:00
fufesou
5fa8485130 fix: macos, show remote cursor (#10314)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-18 21:17:04 +08:00
Iacopo Modica
ed9cb37283 Fix translation issues in Italian language file (#10312)
Corrected multiple translation errors and typos in the Italian language resource file.
2024-12-18 21:02:53 +08:00
21pages
e4b270a581 update hwcodec (#10306)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-17 21:52:17 +08:00
21pages
9dd9c45afc fix ci (#10305)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-17 15:01:01 +08:00
21pages
e163b75407 update hwcodec (#10304)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-17 12:07:34 +08:00
princeyogesh
10ff3e6937 Fix for compilation due to minimum Cmake version update and arm based compilation of vcpkg (#10297) 2024-12-17 10:37:57 +08:00
21pages
acae6d6558 try fix FFmpeg amf encode hang (#10283)
* Possible Causes
  * GPU API Call Hangs: This could occur, though it's less likely.
  * Infinite Loop: If `QueryOutput` always fails and `hwsurfaces_in_queue_max` is zero, the loop will continue indefinitely.
* Proposed Solution
  * A query_timeout patch has been added to FFmpeg with a value of 1000ms, which exceeds the time required to encode a single frame. This allows us to remove the loop.
* Test
  * After removing the loop, no frame encoding failures were encountered during testing. A single call to QueryOutput is sufficient, as it typically consumes about 12ms on a 2K screen.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-16 19:40:48 +08:00
fufesou
d025ca1d81 refact: linux, chcon, bin_t (#10293)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-16 19:01:12 +08:00
21pages
e5aa31eb4c Fix auto record outgoing sessions ignore record permission (#10294)
1. Fix auto record outgoing sessions ignore record permission
2. Stop record if record permission changed
3. Update hwcodec
4. Make video thread finish faster when connection closed

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-16 17:13:48 +08:00
Dmitry Beskov
771cc565ab Flathub badge in the README (#10288)
* new flathub badge in readme

* replacing badge with svg
2024-12-16 16:04:53 +08:00
summoner001
db3bdb16a1 Update hu.rs (#10287)
* Update hu.rs

Fixes and corrections

* Update hu.rs

more fixes

* Update hu.rs

Minor fixes

* Update hu.rs

Fixing typo
2024-12-16 15:48:17 +08:00
Dmitry Beskov
c06e1d74b4 changes for flatpak build (#10273) 2024-12-15 16:55:43 +08:00
21pages
b544a2889b update vcpkg to 2024.11.16 (#10272)
1. version changes:
* vcpkg: 2024.07.12 -> 2024.11.16
* aom (except linux sciter): 3.9.1 -> 3.11.0
* libvpx: 1.14.1 -> 1.15.0
* libyuv: not update because compiled failed on arm64, and didn't apply
  different version on different archs
* opus: already the latest version
* ffmpeg: 7.0.2 -> 7.1

2. other changes:
* android 5.0 required, otherwise crash when start, because FFmpeg 7.1 link to mediandk directly

3. Tests:
* Except arm, arm64, linux amf, ios, all the other codecs are tested
* Compile on arm32 linux is not tested, ci is failed before vcpkg
  install
* Tested windows FFmpeg qsv, still no memory leak

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-13 13:28:48 +08:00
Yevhen Popok
9c45636875 Update uk.rs (#10265) 2024-12-12 11:13:50 +08:00
RustDesk
827b5f6a4c Revert "revert linux use cpal (#10260)" (#10262)
This reverts commit b0791ba183.
2024-12-11 13:42:25 +08:00
21pages
b0791ba183 revert linux use cpal (#10260)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-11 13:35:50 +08:00
fufesou
b24b381575 fix: macos, keyboard, translate mode, capslock and deadkeys (#10248)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-10 13:03:00 +08:00
fufesou
0751005073 Fix/windows empty file clipboard on disconn (#10242)
* fix: windows, empty file clipboard on disconn

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: Don't send files copied before the conn

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: windows, file clipboard

Empty clipboard if no `Ctrl+C` is pressed, but
`CliprdrDataObject_GetData()` is called.
`CliprdrDataObject_GetData()` is only called in the clipboard object set
by RustDesk.

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-10 11:01:34 +08:00
bovirus
fe06cf77da Italian language update (#10245) 2024-12-10 10:48:38 +08:00
Alex Rijckaert
d57cf204c8 Update nl.rs (#10243) 2024-12-10 10:48:29 +08:00
rustdesk
63e22b7685 fix build error with latest xcode 2024-12-09 18:49:02 +08:00
21pages
a02d2bb4ac fix ios audio output (#10235)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-09 15:41:49 +08:00
solokot
0f7d78c263 Update ru.rs (#10233) 2024-12-09 15:11:09 +08:00
XLion
0e321bd845 Update tw.rs (#10231) 2024-12-09 12:30:50 +08:00
Mr-Update
875b738222 Update de.rs (#10228) 2024-12-09 12:30:32 +08:00
21pages
b39e851262 fix typo (#10227)
newer version -> new version

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-08 20:09:10 +08:00
21pages
ec466d459f add version update translation (#10225)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-08 18:27:45 +08:00
21pages
d4a712bb32 always block desktop settings page if video connection exists (#10224)
1. Always block desktop settings page if video connection exists, both mouse event and key event are blocked..
2. Server control page always block key event.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-08 18:26:55 +08:00
fufesou
1c17fddf51 fix: android clipboard permission (#10223)
* fix: android clipboard permission

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: Android, clipboard, floating ball

Call rust to check if clipboard is enabled.

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-07 22:34:54 +08:00
fufesou
3c838e7a92 fix: Android, try sync clipboard on connecting (#10218)
* fix: Android, try sync clipboard on connecting

Signed-off-by: fufesou <linlong1266@gmail.com>

* Android, clipboard, more clear skip check

Signed-off-by: fufesou <linlong1266@gmail.com>

* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

* comment todo: Android clipboard listener, callback twice

Signed-off-by: fufesou <linlong1266@gmail.com>

* Android, clipboard, remove listner

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-07 15:12:15 +08:00
VenusGirl❤
8f44787ba3 Update README-KR.md (#10217) 2024-12-07 10:24:32 +08:00
fufesou
12e15b5a37 fix: linux, weak network, repeated keys (#10211)
Use `press` as the `click` flag on Linux to avoid repeated keys, like
the Legacy mode.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-06 20:01:11 +08:00
rustdesk
588103c6dc 1.3.5 2024-12-05 18:38:39 +08:00
fufesou
2ce9b108ed fix: linux, transparent window (#10192)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-05 17:26:34 +08:00
RustDesk
93e3107881 Revert "Revert "fix: workaround, linux window, transparent rounded corner (#1…" (#10191)
This reverts commit 468bdd6cc6.
2024-12-05 17:07:23 +08:00
RustDesk
468bdd6cc6 Revert "fix: workaround, linux window, transparent rounded corner (#10128)" (#10186)
This reverts commit 8d4c86fe7f.
2024-12-05 11:08:58 +08:00
Dmytro Zozulia
d5c5825ffd Update uk.rs (#10174) 2024-12-05 11:04:10 +08:00
RustDesk
fe4094777f Revert "fix: linux, window, workaround, mint, mate (#10146)" (#10184)
This reverts commit bd0a33e467.
2024-12-05 10:44:37 +08:00
fufesou
f13ef48cec fix: macos, aarch64, try fix running on 12.3 (#10183)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-05 10:38:22 +08:00
fufesou
a23822074e feat: Android, opt, check update on startup (#10165)
* feat: Android, opt, check update on startup

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: check update only on startup

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: Android, "Download new version"

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-04 17:10:32 +08:00
21pages
3d17bf4990 linux dynamic load libva (#10171)
1. Linux dynamic load libva, which can fix lack of libva dependency for
   appimage or flatpak, also fix libva version mismatch between build
and run.
2. Remove libvdpau, it's not used, and add libva2 explicitly for deb and
   appimage
3. Print FFmpeg configure log to know the actual codecs.

Test
*  ubuntu 22.04 x64
  - [x] deb
  - [x] flatpak
  - [x] appimage
* ubuntu 18.04
  * deb: fcntl64 not found
  - [x]:appimage
  - [ ]: platpak
hwcodec example:
  - [x]: combination of lacking any of libva2, libva-x11-2, libva-drm2,
    intel-media-va-driver
- [ ] federa
- [ ] arch
- [ ] arm64: my ci can't finish arm64 building

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-04 17:10:10 +08:00
Yevhen Popok
fd67be4a16 Update uk.rs (#10162) 2024-12-04 10:31:13 +08:00
fufesou
e6edf39305 fix: support emptry folder transfer for web (#10151)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-03 14:22:20 +08:00
21pages
34d2c62781 set id/relay server with a dialog (#10150)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-03 14:14:29 +08:00
fufesou
bd0a33e467 fix: linux, window, workaround, mint, mate (#10146)
* refact: linux, window, workaround, mint, mate

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: case insensitive

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-03 01:02:41 +08:00
rustdesk
b8d36b6558 revert multi-window plugin 2024-12-02 22:29:37 +08:00
solokot
f38d89aaee Update ru.rs (#10143) 2024-12-02 18:30:24 +08:00
21pages
773b9d6645 win7 uses soft rendering by default (#10139)
win7 vm got black screen on remote window with texture rendering

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-02 17:10:34 +08:00
rustdesk
dea99ffb3a fix rustdesk exit crash 2024-12-02 16:11:12 +08:00
jkh0kr
3251045e22 Update ko.rs (#10138)
Update ko.rs
2024-12-02 15:47:23 +08:00
21pages
dc58c85e30 try fix mac textedit of server config (#10135)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-12-02 12:35:44 +08:00
fufesou
5a2a94d2cc fix: macos, input (#10133)
1. Workaround sticky `Fn` for more keys.
2. Workaround stikey `Help`.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-12-02 00:09:03 +08:00
rustdesk
f330953f4f bump to 1.3.4 2024-12-01 18:49:24 +08:00
fufesou
8d4c86fe7f fix: workaround, linux window, transparent rounded corner (#10128)
* fix: linux window, rounded corner

Signed-off-by: fufesou <linlong1266@gmail.com>

* Update my_application.cc

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-12-01 17:19:21 +08:00
Kleofass
f8c2713c5b Update lv.rs (#10124) 2024-12-01 00:27:39 +08:00
fufesou
082a66b282 refact: remove flutter_improved_scrolling (#10120)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-30 15:01:44 +08:00
21pages
743b0ce8ce fix mediacodec patch (#10119)
ensure set_parameters_id is not null

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-30 13:29:03 +08:00
21pages
9d9b67aca5 update flutter texture rgba renderer plugin, remove switch rgba (#10070)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-30 12:19:42 +08:00
21pages
d60b5a6ca0 videotoolbox/mediacodec support changing bitrate dynamically (#10117)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-30 11:44:51 +08:00
Vasyl Gello
e0ed6ee986 Fix F-Droid build and bump Android NDK to r27c (#10105)
* Fix fdroid build

* Refactor recent @fufesou edits to reflect the fact that
  .gclient file is needed only on x86 to build jit-release
  version of flutter-engine and `flutter-sdk` directory is
  not affected by flutter version checkouts

* Install cargo-ndk and flutter-rust-codegen with `--locked`
  argument to avoid bumping `cargo-platform` to require
  newer Rust toolchain

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* Bump Android NDK to r27c

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

---------

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-11-30 09:24:45 +08:00
21pages
d3f0c80e94 "Untagged" tag uses the theme accent color (#10111)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-30 09:24:05 +08:00
fufesou
b32ff87c6e fix: android, pan, canvas, remove toInt() (#10103)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-29 22:39:07 +08:00
rustdesk
b91b49229a enable our engine to fix dart supporting win7, https://github.com/rustdesk/rustdesk/issues/10085#issuecomment-2506485955 2024-11-29 19:10:57 +08:00
fufesou
afc8bb71dc feat: mobile, key help tool, more keys (#10068)
* feat: mobile, key help tool, vk_enter

Signed-off-by: fufesou <linlong1266@gmail.com>

* Mobile, add more function keys

Signed-off-by: fufesou <linlong1266@gmail.com>

* Mobile, more virtual function keys

Signed-off-by: fufesou <linlong1266@gmail.com>

* uinput, menu maps key_compose

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-29 00:56:38 +08:00
XLion
4f86169f7f Update tw.rs (#10076) 2024-11-28 00:10:47 +08:00
Leo Mozoloa
2cf43042e6 Update fr.rs (#10075) 2024-11-27 23:00:41 +08:00
BoyChai
734fb8d6f7 Update README-ZH.md (#10069)
Modify Alibaba Cloud apt source
2024-11-27 10:47:09 +08:00
bovirus
3c7f6d3127 Italian language update (#10067) 2024-11-27 07:37:49 +08:00
21pages
b99c540210 add "Untagged" to filter addressbook peers without tags (#10063)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-26 20:35:17 +08:00
fufesou
84dab0e96f Fix/android keyboard map mode workaround (#10064)
* fix: Android, keyboard, map mode, workaround

The `KeyEvent.physicalKey.usbHidUsage` are wrong if using Microsoft
SwiftKey keyboard.

`window.addFlags(WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM)` is a workaround for this issue.

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: clear callback on first image

Signed-off-by: fufesou <linlong1266@gmail.com>

* Android disable soft keyboard in remote page if not editing.

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-26 20:33:54 +08:00
fufesou
458a88fb89 fix: mobile autocomplete options (#10060)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-26 16:24:51 +08:00
Yevhen Popok
8a70932cd6 Update Ukrainian UI translation (#10056) 2024-11-26 09:51:27 +08:00
flusheDData
edfae98a01 Update es.rs (#10055)
New term added
2024-11-25 23:46:28 +08:00
fufesou
d61c99b105 fix: Android 29, crash on restart and reconn (#10054)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-25 21:49:09 +08:00
21pages
30a11bfe0a android wait 3s for isStart flag (#10053)
The normal process is that `startCapture` and `VideoService::run` run in parallel,  the `run` function waits for startCapture to complete, then sets the scale, and subsequently calls `stopCapture` and `startCapture`. If the `run` function does not wait long enough, `startCapture` initializes the surface with the original width and height, but the `start` flag is still false, meaning it can't call `stopCapture` and `startCapture`. This results in only capturing the upper-left portion of the virtual display.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-25 21:45:58 +08:00
fufesou
9d2bdfefb1 feat: update build_fdroid.sh (#10040)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-25 11:12:43 +08:00
21pages
34b93c6f83 fix aom pts (#10042)
the old pts/duration is wrong, use timebase 1/1000 like other codecs, not found any differences.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-25 11:09:17 +08:00
21pages
152d0ce74b install vaapi dependencies before vcpkg installs ffmpeg (#10035)
linux vaapi encoding/decoding lost since installing ffmpeg with
vcpkg

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-24 21:07:03 +08:00
rustdesk
32a3bcdc4f no custom engine 2024-11-24 10:05:00 +09:00
zuiyu
314c93b210 Create empty dir on send files in local (#9993)
* feat: Add empty dirs on sendfiles

* Update connection.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-11-23 23:09:11 +08:00
rustdesk
b64f6271e2 typo 2024-11-24 00:08:39 +09:00
RustDesk
ac044c4049 Update config.toml (#10029) 2024-11-23 22:54:43 +08:00
fufesou
0973f51df9 feat: macos, audio, loopback (#10025)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-23 19:41:27 +09:00
21pages
02b046bdbf fix hwcodec ram quality change not work (#10024)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-23 16:36:13 +08:00
Andrzej Rudnik
02c274aeb6 Updated Polish translation (#10019)
* Update pl.rs

* Update README-PL.md
2024-11-23 08:41:25 +08:00
fufesou
ab6a6ca17d fix: ci macos (#10020)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-23 08:38:30 +08:00
21pages
28d38cd71d avoid invalid recording files and fix removing little recording file (#10012)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-22 17:19:22 +08:00
rustdesk
b487f297b8 flutter 3.24.5 2024-11-22 16:58:08 +09:00
21pages
64654ee7cf seperate video decoding thread for each display (#9968)
* seperate video decoding thread for each display

1. Separate Video Decoding Thread for Each Display
2. Fix Decode Errors When Clearing the Queue
Previously, on-flight frames after clearing the queue could not be decoded successfully. This issue can be resolved by setting a discard_queue flag when sending a refresh message. The flag will be reset upon receiving a keyframe.

Signed-off-by: 21pages <sunboeasy@gmail.com>

* update video format along with fps to flutter

Signed-off-by: 21pages <sunboeasy@gmail.com>

* Fix keyframe interval when auto record outgoing sessions

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-22 00:02:25 +08:00
Alex Rijckaert
1c99eb5500 Update nl.rs (#9997) 2024-11-21 19:12:24 +08:00
zyl
74dd0c8fa0 fix mis-align problem when converting &[u8] to &[f32] (#9986)
* fix: windows, improve audio buffer (#9770)

* .

* fix statics does not record

and avoid channel changing when drio audio when audio is stero

* add some commence

* fix mis-align problem when converting &[u8] to &[f32]

* add safety commence

* revert client.rs

* avoid tmp lifetime extends

* avoid move in loop

* avoid use after drop

* another use after free

* another use after free

* make code more reasonable

---------

Co-authored-by: zylthinking <zhaoyulong@qianxin.com>
2024-11-21 13:36:11 +08:00
rustdesk
d26fea41ee upgrade The-Fat-Controller 2024-11-21 02:26:51 +09:00
21pages
bc211c8031 A=b, A case insensitive (#9976)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-20 19:44:24 +08:00
Mr-Update
d4cb7d68c5 Update de.rs (#9975) 2024-11-20 19:41:43 +08:00
KAYUII
608d7d55d5 add env VCPKG_INSTALLED_ROOT (#9985) 2024-11-20 19:41:30 +08:00
fufesou
4a49fbe4a6 fix: privacy mode 2 (#9972)
Do not change the resolutions when setting the new primary display.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-19 17:29:28 +08:00
fufesou
f760e21ff8 fix: android w&h, refresh when no connection (#9966)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-19 15:03:00 +08:00
solokot
251e1a3487 Update ru.rs (#9962) 2024-11-19 08:15:50 +08:00
bovirus
b990ff3782 Update Italian language (#9961) 2024-11-19 08:15:37 +08:00
21pages
c5426b0fbc Fix hevc decode error "Could not find ref with POC" (#9960)
1. Dropping frames can cause this error, reset encoder when this
   happens.
2. There are some logic error for clear video queue, because video queue
   message is not cleared. This need to be fixed.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-18 23:03:27 +08:00
fufesou
8b710f62c8 feat: android clipboard, multi-formats (#9950)
* feat: android clipboard, multi-formats

Signed-off-by: fufesou <linlong1266@gmail.com>

* Chore

Signed-off-by: fufesou <linlong1266@gmail.com>

* Remove unused code

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-18 15:43:41 +08:00
21pages
0707e791e8 opt av1 test data (#9954)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-18 15:05:23 +08:00
XLion
a07392e6b8 Add URL and Vendor to RPM spec (#9947) 2024-11-17 21:07:00 +08:00
21pages
9125a68f81 remove flutter install cache flag (#9944)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-17 11:35:53 +08:00
21pages
9ee77a9b92 fix last commit (#9939)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-17 09:21:34 +08:00
21pages
304e0e465d if av1 is not slow in test, av1 takes precedence over vp9 (#9938)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-16 22:31:28 +08:00
RustDesk
5d2bb9c995 Update bug_report.yaml (#9935) 2024-11-16 16:27:51 +08:00
RustDesk
ddc172bdfa Update bug_report.yaml (#9934) 2024-11-16 16:26:26 +08:00
21pages
06c7bc137f linux android use cpal (#9914)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-14 21:01:41 +08:00
rustdesk
9e4cc91a14 use linux for bridge because macos runner network problem 2024-11-13 17:00:58 +08:00
zyl
0a28d09ff8 fix: windows, improve audio buffer (#9770) (#9893)
* fix: windows, improve audio buffer (#9770)

* .

* fix statics does not record

and avoid channel changing when drio audio when audio is stero

* add some commence

---------

Co-authored-by: zylthinking <zhaoyulong@qianxin.com>
2024-11-13 15:35:23 +08:00
fufesou
ab89d84a8f refact: ci, bridge (#9899)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-12 22:10:56 +08:00
HanaKuru
0aa98eac6d Use base64Url encoding for server configuration to ensure compatibility with the command line --config option. (#9897) 2024-11-12 20:15:34 +08:00
fufesou
d4aa2b7ce4 fix: virtual display, headless, wait plug in done (#9895)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-12 20:12:05 +08:00
21pages
35b4535ebc fix aarch64 nightly build (#9881)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-11 16:28:25 +08:00
fufesou
f0be80c253 fix: macos, workaround app close (#9880)
* fix: macos, workaround app close

Signed-off-by: fufesou <linlong1266@gmail.com>

* Update common.dart

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-11-11 13:06:23 +08:00
21pages
a79a9f697b fix "Add to addresssBook" dropdown menu (#9878)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-11 08:39:54 +08:00
fufesou
6082bb2754 fix: save load window rect, Windows, ignore dpi (#9875)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-11 00:35:41 +08:00
rustdesk
4e6a43288e https://github.com/rustdesk/rustdesk/issues/9877 https://developer.apple.com/documentation/security/ksecusedataprotectionkeychain 2024-11-10 23:57:25 +08:00
fufesou
72a1f1161e refact: flutter 3.24.4 (#9874)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-10 11:18:08 +08:00
RustDesk
912f5265f1 Revert "Refact/flutter 3.24.4 (#9870)" (#9871)
This reverts commit 5eb2c31207.
2024-11-09 23:32:18 +08:00
fufesou
5eb2c31207 Refact/flutter 3.24.4 (#9870)
* Update pubspec.lock

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: flutter 3.24.3

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: workaround Autocomplete options

Signed-off-by: fufesou <linlong1266@gmail.com>

* Replace engine with rustdesk custom flutter engine

* Update flutter-build.yml to use RustDesk flutter engine

* Fix the problem of missing extraction file directory windows-x64-release

* Update pubspec.lock.3.22.3

Signed-off-by: fufesou <linlong1266@gmail.com>

* remove pubspec.lock.3.22.3

Signed-off-by: fufesou <linlong1266@gmail.com>

* upgrade flutter android to 3.24.4

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
Co-authored-by: vitoway <vitoway@email.com>
Co-authored-by: vitoway <167743630+vitoway@users.noreply.github.com>
2024-11-09 20:51:47 +08:00
Lee Jong Mun
062c8d582c kor translation update (#9866) 2024-11-09 11:37:54 +08:00
XLion
68b07505ab Update tw.rs (#9863) 2024-11-08 22:18:30 +08:00
fufesou
d3efcd4223 fix: mobile, soft keyboard (#9860)
Switching the input method, don't affect the canvas.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-08 15:01:36 +08:00
rustdesk
a277b022ff bump to 1.3.3 2024-11-08 15:00:49 +08:00
21pages
740c5358ab rotate ID3D11Texture2D (#9772)
* Rotate ID3D11Texture2D after duplication with d3d11 video processor.
* If display is not rotated, nothing will be created; If the rotation
  fails, it will use the old fallback logic

TODO:
* If changing from Landscape to Landscape(flipped) during capture, the resolution is
  not changed, video service fallback to gdi directly.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-08 12:12:10 +08:00
fufesou
7978e0301d fix: input mobile -> Android (#9767)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-08 12:11:56 +08:00
fufesou
0f070b0108 revert: 9644, iOS, Korean input (#9857)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-07 22:54:14 +08:00
fufesou
6f0cb3b8c2 fix: mobile, two fingers cale, no tapdown (#9856)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-07 22:36:56 +08:00
fufesou
d0ef52e418 fix: touch input, ensure message orders (#9855)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-07 21:23:41 +08:00
fufesou
69277dd16b fix: mobile, don't adjust canvas on gesture help show up (#9846)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-07 14:58:10 +08:00
fufesou
faf97c770c fix: mobile, cursor mode, don't reset canvas (#9843)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-06 21:59:23 +08:00
notlin4
78088360ca Fix traditional Chinese localization (#9833) 2024-11-06 07:59:12 +08:00
fufesou
5cfd1701fb fix: mobile input, touch mode, in display (#9827)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-05 17:55:38 +08:00
21pages
a4bd23c9de fix missing window focus service on windows/macos (#9824)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-11-05 11:28:27 +08:00
fufesou
12c1337b7b fix: mobile mouse mode, cursor range (#9811)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-04 22:37:21 +08:00
fufesou
040253b319 fix: mobile cursor focus (#9803)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-01 15:40:57 +08:00
fufesou
44fa83d080 fix: android input, soft keyboard, mouse mode (#9797)
Cursor movement in the remote screen.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-11-01 11:25:38 +08:00
21pages
4f7e10bac6 Revert "Change the minimum value of the bitrate slider to 5" (#9795)
* Revert "Change the minimum value of the bitrate slider to 5 (#9480)"

This reverts commit beb1084e87.

* Revert "Change the value of kMinQuality to 5  (#9508)"

This reverts commit d563372a91.
2024-10-31 22:57:39 +08:00
jkh0kr
d1fdcf1b16 Update ko.rs (#9792) 2024-10-31 12:01:37 +08:00
fufesou
4c12b83068 fix: android input do not handle composing (#9790)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-31 10:20:57 +08:00
21pages
f86c88b3d8 refresh icon not visible when not using one-time password (#9791)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-31 10:11:42 +08:00
fufesou
697dd87383 Refact/mobile remove adjust 4 soft keyabord (#9787)
* refact: remove adjust for soft keyboard

Signed-off-by: fufesou <linlong1266@gmail.com>

* mobile, do not set the view style after scale end

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-31 10:11:00 +08:00
fufesou
0b8cccd8be fix: mobile view style, on conn (#9786)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-30 19:00:07 +08:00
Kleofass
32dbc0c8fb Update lv.rs (#9785) 2024-10-30 17:08:32 +08:00
fufesou
bae4a2c710 Fix/android check normal usbhid usage (#9784)
* fix: android check normal usbhid usage

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: android input, ignore composing if is deleting

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-30 15:29:52 +08:00
RustDesk
711ed28846 Revert "revert: #9769 (#9780)" (#9783)
This reverts commit 0f5f9f6524.
2024-10-30 13:12:18 +08:00
fufesou
e6c5064ce5 fix: android input, Backspace and Enter (#9782)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-30 13:05:25 +08:00
fufesou
0f5f9f6524 revert: #9769 (#9780)
Not sure TextEditingController.addListener() can handle all composing
changes.

https://github.com/rustdesk/rustdesk/issues/7727#issuecomment-2445721499

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-30 12:17:13 +08:00
21pages
ce7867c1c0 fix wrong display of custom clients when approval mode is not set (#9779)
when approve-mode is not set, the approve mode option shows as
password, it's `both` approve mode in rust, so only ui is wrong.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-30 11:29:39 +08:00
rustdesk
415d2c5c60 OPTION_VERIFICATION_METHOD 2024-10-29 22:52:46 +08:00
fufesou
a289eae07c fix: mobile -> mobile, long press (#9775)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-29 19:57:29 +08:00
RustDesk
1c9b456456 Update bug_report.yaml (#9771) 2024-10-29 15:33:12 +08:00
fufesou
eba19e67ff fix: mobile input (#9769)
1. Map mode. Check if the KeyEvent's usbHidUsage is correct.
2. Korean input, use listener to handle composing state.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-29 14:19:16 +08:00
John Fowler
adc5a7be51 Update hu.rs (#9762)
Making the Hungarian language file complete. Adding tips in Hungarian.
2024-10-29 13:55:13 +08:00
pppanghu77
26d23d588a fix: [translations] Add the translation in cn.rs (#9768)
Add the translation in cn.rs

Log: Add the translation in cn.rs
2024-10-29 13:54:16 +08:00
fufesou
f0450db203 refact: mobile reset canvas (#9766)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-29 09:49:04 +08:00
21pages
3a75947553 add some missing web bridge (#9763)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-28 09:40:16 +08:00
fufesou
c565849062 fix: Function "LockScreen" on macOS since "ignore_flags" in enigo is introduced. (#9757)
1. LockScreen after connection is established.
2. LockScreen after "Map mode" or "Translate mode" keys are sent.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-27 20:36:21 +08:00
21pages
40e8f0d307 revert missing retry and opt keep session (#9755)
* Revert "fix missing retry (#8750)"

If `hasRetry` is true: there is a retry timeout;
If `hasRetry` is false: there is no retry button;

In
https://github.com/rustdesk/rustdesk/discussions/8748#discussioncomment-10081038,when
doesn't want inactive to retry,
cf0e3ec303/flutter/lib/models/model.dart (L444),
1.2.3 always show retry no matter what `hasRetry` is.

This reverts commit c3c99ba107.

* not keep session if there is no remote connection left.

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-26 22:05:54 +08:00
bovirus
129f6c869b Update Italian language (#9752) 2024-10-26 16:06:29 +08:00
Tobias Degen
924aa515c6 fix german translation (#9742) 2024-10-25 08:21:42 +08:00
solokot
c51771c854 Update ru.rs (#9741) 2024-10-25 08:08:02 +08:00
21pages
c8b9031996 refactor session insert, update if already exists (#9739)
* All share the same last_receive_time
* Not second port forward

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-24 23:14:43 +08:00
rustdesk
4da584055d fix ci 2024-10-24 22:52:06 +08:00
rustdesk
bd22b01370 fix "insert ctrl+alt+del" 2024-10-24 22:27:51 +08:00
Tobias Degen
b35b48086a Add translation string for better translationj capability (#9736)
* Add new translation für sending Ctrl+Alt+Del

* Add new translation string for sending Ctrl+Alt+Del
2024-10-24 21:52:39 +08:00
21pages
445e9ac285 no password required for file transfer action in remote control menu (#9731)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-24 17:20:48 +08:00
fufesou
7a3e1fe648 fix: ->macos, mouse events, key flags (#9733)
* fix: win->macos, mouse events,  key flags

Signed-off-by: fufesou <linlong1266@gmail.com>

* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-24 14:33:37 +08:00
Alex Rijckaert
dfa9519d58 Update nl.rs (#9726) 2024-10-23 18:13:05 +08:00
fufesou
cc6f919080 feat: mobile map mode (#9717)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-23 09:28:39 +08:00
bovirus
2cdaca0fa3 Update Italian language (#9718) 2024-10-22 16:20:35 +08:00
21pages
6159449eba move option video-save-directory and allow-auto-record-outgoing to local (#9715)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-22 08:24:52 +08:00
Andrzej Rudnik
6088920f8d Update pl.rs (#9713)
* Update pl.rs

* Update pl.rs

Updated quota chars.
2024-10-21 19:55:34 +08:00
21pages
e8187588c1 auto record outgoing (#9711)
* Add option auto record outgoing session
* In the same connection, all displays and all windows share the same
  recording state.

todo:

Android check external storage permission

Known issue:

* Sciter old issue, stop the process directly without stop record, the record file can't play.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-21 14:34:06 +08:00
solokot
289076aa70 Update ru.rs (#9712) 2024-10-21 14:12:58 +08:00
fufesou
547da31095 fix: windows, exit fullscreen, remove redraw (#9700)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-19 19:41:55 +08:00
Mr-Update
1bf4ef1f46 Update de.rs (#9699) 2024-10-19 19:41:14 +08:00
21pages
1212d9fa2d web uni link (#9697)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-19 15:32:17 +08:00
fufesou
8c8a643cce fix: workaround physical display rotation (#9696)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-19 10:57:42 +08:00
Kleofass
675ffe0381 Update lv.rs (#9694) 2024-10-18 22:51:17 +08:00
bovirus
844caf8c15 Update Italian language (#9692) 2024-10-18 16:07:49 +08:00
flusheDData
0f6d28def7 Update es.rs (#9687)
New terms added
2024-10-18 08:55:39 +08:00
fufesou
0d3243e6dd fix: android, Korean input (#9667)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-18 08:55:18 +08:00
21pages
53d11e99d7 web only decode the latest image (#9689)
1. web only decode the latest image
2. web/ios remove relay server config when import

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-18 08:45:16 +08:00
21pages
defb3e6c73 fix gtk-sudo in non-English linux (#9680)
change LC_ALL from C.UTF-8 to C

Signed-off-by: 21pages <pages21@163.com>
2024-10-17 20:05:13 +08:00
fufesou
ae8dfe84a0 feat, web toast (#9686)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-17 17:23:09 +08:00
rustdesk
5e920f0fd0 fix ci 2024-10-16 22:37:40 +08:00
XLion
1a0814b201 Update tw.rs (#9672) 2024-10-16 19:33:27 +08:00
shleyZ
ace98d98ad fix: TextFormField onChanged event triggered multiple times when Korean input (#9644)
* fix: TextFormField onChanged event triggered multiple times when Korean input

* logic fix for iOS

* add comments

* move 'onChanged' logic to handleSoftKeyboardInput
2024-10-16 19:25:27 +08:00
Mr-Update
09083b3afa Update de.rs (#9668) 2024-10-16 11:23:12 +08:00
bovirus
36e11c61a9 Update Italian language (#9650) 2024-10-14 21:26:55 +08:00
21pages
55187e9243 fix theme radio update (#9647)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-14 17:46:38 +08:00
21pages
ae1c1a56e6 add missing code of last commit (#9646)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-14 15:51:51 +08:00
fufesou
cdd58e77eb fix: flickers child screen when resizing window (#9645)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-14 15:48:56 +08:00
21pages
ce924cc0d3 combine upload files/folder button (#9643)
* combine upload files/folder button

Signed-off-by: 21pages <sunboeasy@gmail.com>

* web compress cache

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-14 15:46:21 +08:00
fufesou
498b8ba3d6 fix: wayland CapsLock (#9641)
* fix: wayland CapsLock

Signed-off-by: fufesou <linlong1266@gmail.com>

* unformat for less changes

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: input, LockModes, do not check evt.down

Remove `evt.down`(revert the change) to avoid potential bugs.

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-14 11:46:28 +08:00
21pages
af610b2408 web (#9640)
resolution, image quality, tab name, last remote id

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-14 11:15:52 +08:00
Yevhen Popok
6cdbcfc082 Update README-UA.md (#9639) 2024-10-14 11:02:57 +08:00
Yevhen Popok
9c7f51bc76 Update uk.rs (#9638) 2024-10-14 11:02:44 +08:00
fufesou
65683cc3e6 refact: remove redundant escape (#9634)
* refact: remove redundant escape

Signed-off-by: fufesou <linlong1266@gmail.com>

* flutter, early assert

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-13 01:07:47 +08:00
21pages
eb1ef0969c web file transfer (#9587)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-12 09:03:13 +08:00
21pages
29b01e9cef remove shift & tap enable multiselect (#9625)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-11 16:47:08 +08:00
21pages
cde7620eda fix web peer card tap (#9622)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-11 16:35:15 +08:00
Ibnul Mutaki
844b853074 update ID trans (#9621) 2024-10-11 10:43:22 +08:00
21pages
97f02ed25e Web password source (#9618)
* ensure window init finish

Signed-off-by: 21pages <sunboeasy@gmail.com>

* web password source

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-11 09:52:09 +08:00
Ibnul Mutaki
22c84bbbd1 Update ID translation (#9609)
* update id trans

* update id trans

* update inv

* update ind trans

* update ind trans

* update ind trans
2024-10-10 10:12:24 +08:00
Jernej Simončič
227f154ee7 Add missing Slovenian translations (#9606) 2024-10-10 07:35:46 +08:00
Ibnul Mutaki
59d7bf1e86 Update indonesian translate (#9601)
* update id trans

* update id trans

* update inv

* update ind trans
2024-10-09 10:44:20 +08:00
rustdesk
38fcf4e039 typo 2024-10-09 10:19:24 +08:00
James
4b3b31147e Update eo.rs (#9600) 2024-10-09 10:01:54 +08:00
fufesou
e6d4067f48 refact: remote toolbar style (#9597)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-08 21:16:07 +08:00
fufesou
507de628c9 fix: web, 2fa, trust (#9594)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-08 18:35:25 +08:00
fufesou
2591d4f044 fix: web chat (#9588)
* fix: web chat

Signed-off-by: fufesou <linlong1266@gmail.com>

* add missing svg

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-08 15:23:00 +08:00
XLion
9bcd0d1b03 Add Priority: to Debian control (#9586) 2024-10-07 22:08:17 +08:00
RustDesk
5555ba6b2f Revert "manifest updates from the Flathub's PR (#9581)" (#9585)
This reverts commit e06f456bbd.
2024-10-07 21:50:01 +08:00
XLion
28b6bc186f Add Section to Debian control (#9584) 2024-10-07 21:46:25 +08:00
fufesou
00d38260e1 fix: web send audit note (#9582)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-07 21:37:43 +08:00
Dmitry Beskov
e06f456bbd manifest updates from the Flathub's PR (#9581)
Signed-off-by: dmitry <43372966+besdar@users.noreply.github.com>
2024-10-07 18:55:25 +08:00
rustdesk
cc860b2906 https://github.com/flathub/flathub/pull/5670#issuecomment-2395337173 2024-10-07 15:26:41 +08:00
fufesou
839e8180e0 refact: web, no minimize btn on fullscreen (#9578)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-07 12:00:56 +08:00
fufesou
83aba804d0 fix: web fullscreen (#9577)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-07 00:01:14 +08:00
21pages
560c1effe8 remove mobile web setting, remove web/ios relay server setting (#9575)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-10-06 16:20:37 +08:00
rustdesk
e7353be0cd fix https://github.com/flathub/flathub/pull/5670#issuecomment-2395067890 2024-10-06 09:25:40 +08:00
fufesou
ba832362a7 fix: installed, copy&paste, special format (#9570)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-06 08:32:04 +08:00
Ibnul Mutaki
9ea09c1515 Update id (Indonesia) translation on some part (#9566)
* update id trans

* update id trans
2024-10-05 10:54:17 +08:00
fufesou
3a97b63e95 fix: windows, multi-window, move between monitors (#9562)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-04 22:05:38 +08:00
fufesou
dec3cde9b3 fix: deb, build, prerm (#9552)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-03 17:56:21 +08:00
rustdesk
c4d0b02478 fix ci 2024-10-03 15:38:55 +08:00
rustdesk
306dd77b81 fix https://github.com/rustdesk/rustdesk/issues/9537 2024-10-03 15:34:40 +08:00
BennyBeat
fd62751cb8 Improved Catalan translation (#9546)
* Improved Catalan translation

Improved Catalan translation

* Update ca.rs

Improved Catalan translation
2024-10-03 15:02:24 +08:00
hms5232
b0edfb8f70 fix wrong terms in tw lang (#9541)
"port" is "通訊埠", "連接埠" or just "埠" in Taiwan, "端口" is used in China.
2024-10-03 15:01:53 +08:00
fufesou
334526026c fix: web/mobile, skip querying onlines, if not in main page (#9535)
* fix: web, skip querying onlines, if not in main page

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: web/mobile, skip querying onlines

Signed-off-by: fufesou <linlong1266@gmail.com>

* Set isInMainPage to false after router is changed.

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-01 15:25:59 +08:00
rustdesk
b5414ec002 fix https://github.com/rustdesk/rustdesk/issues/9527 2024-10-01 07:09:57 +08:00
fufesou
4eca8b9447 fix: web, forget password (#9524)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-10-01 07:04:43 +08:00
rustdesk
1ebc726acd fix ci 2024-09-30 10:54:05 +08:00
hashiguchi
d563372a91 Change the value of kMinQuality to 5 (#9508)
* Change the minimum value of the bitrate slider to 5

Signed-off-by: hashiguchi <hashiguchi@mtrx.jp>

* Change the value of kMinQuality to 5

Signed-off-by: hashiguchi <hashiguchi@mtrx.jp>

---------

Signed-off-by: hashiguchi <hashiguchi@mtrx.jp>
2024-09-28 21:52:05 +08:00
Alex Rijckaert
4a745d82f6 Update nl.rs (#9507) 2024-09-28 20:07:55 +08:00
fufesou
2f5f701dc7 fix: windows, subwindow, scale (#9506)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-28 19:43:28 +08:00
Iraccib
60a0099ba0 Update it.rs (#9503)
Changed "Scehrmo" to "Schermo"
2024-09-28 18:04:31 +08:00
rustdesk
30a7847100 fix ci 2024-09-28 15:53:39 +08:00
RustDesk
1e822fa135 Update nl.rs (#9501) 2024-09-28 15:49:11 +08:00
Alex Rijckaert
f6261883e8 Update nl.rs (#9500) 2024-09-28 15:33:08 +08:00
bovirus
3365844def Update Italian language (#9493) 2024-09-28 09:26:05 +08:00
solokot
769bbf1e1c Update ru.rs (#9495) 2024-09-28 09:25:52 +08:00
Mr-Update
81b999cfbe Update de.rs (#9496) 2024-09-28 09:25:35 +08:00
fufesou
9959217cc3 chore (#9491)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-27 23:10:51 +08:00
fufesou
3e6938bec6 refact: web desktop, web_id_input_tip (#9490)
* refact: web desktop, web_id_input_tip

Signed-off-by: fufesou <linlong1266@gmail.com>

* Update en.rs

* Update cn.rs

* Update en.rs

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-09-27 21:56:10 +08:00
fufesou
4459406578 fix: windows, window, restore from minimized state (#9482)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-27 14:19:25 +08:00
hashiguchi
beb1084e87 Change the minimum value of the bitrate slider to 5 (#9480)
Signed-off-by: hashiguchi <hashiguchi@mtrx.jp>
2024-09-27 10:14:46 +08:00
rustdesk
d4184fd865 bump to 1.3.2 2024-09-26 23:07:53 +08:00
21pages
ffc73f86a0 fix ab peers view, all peer tab use global peers model (#9475)
Use ChangeNotifierProvider<Peers>.value, and each peer tab has a global unique `Peers` model, then `load peers` and `build
peers` will always be the same one.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-26 22:08:32 +08:00
RustDesk
c74bdcdfdb Revert "fix peers view ChangeNotifierProvider update (#9459)" (#9471)
This reverts commit 7c55e3266b.
2024-09-26 14:20:37 +08:00
Kássio Oliveira
6d8b5b289f Refactor ScanPage for better performance and memory management (#9464)
- Added null checks in `reassemble` method to avoid potential null pointer exceptions when pausing/resuming the camera.
- Refactored image picking and QR code decoding process to use async/await, avoiding UI blocking with synchronous file reads.
- Improved exception handling by making it more specific to QR code reading errors.
- Introduced `StreamSubscription` for the QR scan listener and ensured proper cancellation in `dispose` method to prevent memory leaks.
- Separated button building logic (`_buildImagePickerButton`, `_buildFlashToggleButton`, `_buildCameraSwitchButton`) to enhance code readability and maintainability.
2024-09-26 10:34:12 +08:00
flusheDData
1d6873f622 New translation terms (#9463)
* Update es.rs

New terms added

* Update es.rs

New terms added
2024-09-26 09:29:49 +08:00
21pages
7c55e3266b fix peers view ChangeNotifierProvider update (#9459)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-25 15:11:11 +08:00
Lumiphare
ce5151032e Update README-ZH.md (#9457)
* Update CONTRIBUTING.md links to point to the Chinese version

* translated with AI assistance and manual refinement

* Adapted from the official Chinese translation of the Contributor Covenant

* Improve README-ZH.md

---------

Co-authored-by: sea <api@sea.com>
Co-authored-by: Lumiphare <lumiphare@foxmail.com>
2024-09-25 08:48:45 +08:00
bovirus
ba88bc9e8b Update Italian language (#9452) 2024-09-24 20:33:28 +08:00
fufesou
e0095aebda refact: web elevation (#9445)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-24 13:53:17 +08:00
rustdesk
664a3e186e clean SOFTWARE_UPDATE_URL 2024-09-24 12:00:37 +08:00
21pages
e4f7e126e5 fix check update (#9444)
check_software_update runs in a new thread, won't return directly

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-24 11:37:30 +08:00
Kleofass
49989e34e4 Update lv.rs (#9437) 2024-09-24 09:51:58 +08:00
fufesou
75a14fea23 fix: keyboard, change mode, await, on input source changed (#9434)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-23 17:31:37 +08:00
fufesou
f535406962 refact: web, keyboard, translate mode (#9432)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-23 16:58:21 +08:00
Vasyl Gello
f3f3bb538f Fix F-Droid build and bump Android NDK (#9428)
* Fix F-Droid build

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* Bump Android NDK to r27b

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

---------

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-09-23 16:43:59 +08:00
21pages
8fefd34c15 update web (#9427)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-23 09:18:22 +08:00
XLion
d98f947824 Update translation (#9426)
add translation for tw.rs and fix typo on cn.rs
2024-09-23 09:17:13 +08:00
solokot
5f52ce2c1b Update ru.rs (#9421) 2024-09-22 19:06:45 +08:00
Alex Rijckaert
1d799483d7 Update nl.rs (#9422) 2024-09-22 19:06:33 +08:00
rustdesk
3db55a718c build 48 2024-09-21 11:22:33 +08:00
Dmytro
a516f01feb Update uk.rs (#9416) 2024-09-20 21:38:16 +08:00
rustdesk
2e314bf032 disable init clipboard sync by default 2024-09-20 17:38:29 +08:00
jkh0kr
b93d4ce3fc Update ko.rs (#9411)
Add Korean language
2024-09-20 15:16:20 +08:00
fufesou
21bcfd173d fix: wayland, rdp input, mouse, scale (#9402)
* fix: wayland, rdp input, mouse, scale

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: rdp input, mouse, scale, check 0

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-20 11:15:19 +08:00
21pages
3d5262c36f opt gtk sudo ui, fix edit button show (#9399)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-20 11:06:56 +08:00
Mr-Update
cfd801c5d6 Update de.rs (#9401) 2024-09-20 10:54:50 +08:00
bovirus
216a72592d Update Italian language (#9403) 2024-09-20 10:54:37 +08:00
fufesou
ddd3401bd7 fix: keyboard, translate mode (#9406)
hotkey, linux -> win

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-20 10:52:19 +08:00
solokot
47139edd81 Update Russian translation (#9391)
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-09-19 18:48:54 +08:00
fufesou
c6e3f60a6b refact: flutter, ChangeNotifier, reduce rebuild (#9392)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-19 18:48:01 +08:00
21pages
88a99211f3 replace pkexec with gtk sudo (#9383)
* Fix https://github.com/rustdesk/rustdesk/issues/9286, replace pkexec
  with gtk sudo. Tested on gnome (ubuntu 22.04, debian 13), xfce (manjaro, suse), kde (kubuntu 23), lxqt (lubuntu 22), Cinnamon (mint 21.3), Mate (mint 21.2)
* Fix incorrect config of the main window opened by the tray, replace
  xdg-open with run_me, replace with dbus + run_me
* Fix `check_if_stop_service`, it causes the problem fixed in
  https://github.com/rustdesk/rustdesk/pull/8414, now revert that fix and fix itself.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-19 18:47:37 +08:00
fufesou
d08c335fdf fix: file transfer, show error, msgbox (#9389)
* fix: file transfer, show error, msgbox

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: translation

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-18 19:29:35 +08:00
fufesou
e5ec6957fe fix: option OPTION_ONE_WAY_FILE_TRANSFER (#9387)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-18 18:22:12 +08:00
rustdesk
e20f5dd001 fix ci 2024-09-18 13:00:15 +08:00
rustdesk
e1a6ccc100 fix ci 2024-09-18 12:37:26 +08:00
rustdesk
cc288272d3 OPTION_ONE_WAY_CLIPBOARD_REDIRECTION,
OPTION_ENABLE_CLIPBOARD_INIT_SYNC,
        OPTION_ALLOW_LOGON_SCREEN_PASSWORD,
        OPTION_ONE_WAY_FILE_TRANSFER,
2024-09-18 12:18:26 +08:00
Lumiphare
49ce4edb8a Chinese versions of CONTRIBUTING.md and CODE_OF_CONDUCT-ZH.md (#9386)
* Update CONTRIBUTING.md links to point to the Chinese version

* translated with AI assistance and manual refinement

* Adapted from the official Chinese translation of the Contributor Covenant

---------

Co-authored-by: sea <api@sea.com>
2024-09-18 10:39:26 +08:00
お餅のCreeeper
29c3b29bda Fix ja.rs typo (#9378) 2024-09-17 13:26:49 +08:00
お餅のCreeeper
8a8f708c3e update ja.rs (#9376) 2024-09-17 12:32:32 +08:00
fufesou
c5038b1a78 Fix/virtual display do not plug out if not plugged in (#9372)
* fix: win VD, do not plug out if not plugged in

Signed-off-by: fufesou <linlong1266@gmail.com>

* Forcibly virtual display on clicking button "-"

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-16 15:57:40 +08:00
21pages
f4c038ea93 update appindicator and recommends install it (#9364)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-15 14:33:59 +08:00
21pages
d9ea717056 fix last commit (#9355)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-14 10:03:50 +08:00
21pages
40af9dc78b not run window focus service on wayland (#9354)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-14 09:59:14 +08:00
Alex Rijckaert
81fc22a156 Update nl.rs (#9344)
* Update nl.rs

* Update nl.rs

file updated after adjusting (as test) @FastAct to RijckAlex (same person, new account)
2024-09-13 21:04:04 +08:00
rustdesk
2e7bd26e4c fix leak fix 2024-09-13 15:42:51 +08:00
rustdesk
179b562472 another leak 2024-09-13 15:41:42 +08:00
21pages
ab246fdcbf password lowercase check like uppercase (#9343)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-13 09:29:00 +08:00
rustdesk
d65d3b7326 fix ci 2024-09-13 09:21:50 +08:00
rustdesk
9f9a22ec63 uppercase for all 2024-09-13 08:46:21 +08:00
m-hume
a8f1a66043 Trim whitespace from Import server config (#9341) 2024-09-13 08:06:40 +08:00
21pages
0b3e7bf33e update hwcodec, fix linux ci (#9335)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-12 17:34:54 +08:00
fufesou
c358399eca refact: reduce try_get_displays() on login (#9333)
* refact: reduce try_get_displays() on login

Signed-off-by: fufesou <linlong1266@gmail.com>

* Function rename

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-12 14:44:40 +08:00
rustdesk
cacca7295c fix memory leak on mac because of wrong use of objc, by wrapping autoreleasepool 2024-09-12 14:26:29 +08:00
fufesou
d2e98cc620 fix: reduce rebuild for online state (#9331)
* fix: reduce rebuild for online state

Signed-off-by: fufesou <linlong1266@gmail.com>

* Query online, update  on focus changed

Signed-off-by: fufesou <linlong1266@gmail.com>

* Use  to ensure  is right

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact, window events on peer view

Signed-off-by: fufesou <linlong1266@gmail.com>

* chore

Signed-off-by: fufesou <linlong1266@gmail.com>

* Remove unused code

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-12 11:26:01 +08:00
fufesou
2e81bcb447 fix: Query online, remove loop retry (#9326)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-11 17:17:32 +08:00
fufesou
cbca0eb340 fix: keyboard, move tab to new window (#9322)
Do not disable keyboard when moving tab to new window on dispose.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-11 10:01:03 +08:00
fufesou
9380f33d7c Refact/options (#9318)
* refact options

Signed-off-by: fufesou <linlong1266@gmail.com>

* Remove unused msg

Signed-off-by: fufesou <linlong1266@gmail.com>

* web, toggle virtual display

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-10 23:54:59 +08:00
Gheorghi
519539ed0a Update bg.rs with more translations (#9317) 2024-09-10 23:22:14 +08:00
rustdesk
1f2a75fbd8 revert back pub lock because it does not fix leak 2024-09-10 21:28:07 +08:00
fufesou
51055a7e5b fix: tokio, call future in context of runtime (#9310)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-10 17:39:22 +08:00
fufesou
13effe7f14 fix: web, switch display (#9307)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-10 11:29:20 +08:00
21pages
943f96ef8c downgrade url_launcher/uni_links for linux ci (#9306)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-10 10:57:01 +08:00
rustdesk
260a82ee5c upgrade pub for flutter memory leak 2024-09-09 17:25:35 +08:00
fufesou
a2792d1527 comments (#9297)
* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-08 23:07:42 +08:00
fufesou
2922ebe22a Fix/clipboard retry if is occupied (#9293)
* fix: clipboard, retry if is occupied

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: clipboard service, hold runtime to cm ipc

Signed-off-by: fufesou <linlong1266@gmail.com>

* update arboard

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: log

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: get formats, return only not

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-08 21:13:05 +08:00
rustdesk
1e6944b380 apply --cm-no-ui to non-windows 2024-09-08 12:54:27 +08:00
21pages
993862c103 quit cm process if ipc connection to ipc server closed (#9292)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-08 12:37:41 +08:00
Andrzej Rudnik
c8cd564e69 Update pl.rs (#9285) 2024-09-07 17:58:07 +08:00
21pages
a4cd64f0d5 fix qsv memory leak by updating ffmpeg (#9266)
* fix qsv memory leak by updating ffmpeg

* Memory leaks occur when destroying FFmpeg QSV VRAM encoders. This issue is resolved with FFmpeg version 7.
* FFmpeg requires ffnvcodec version 12.1.14.0 or higher, and an NVIDIA driver version greater than 530. For more details, https://github.com/FFmpeg/nv-codec-headers/tree/n12.1.14.0.
* The code of NVIDIA VRAM encoder is not changed, still use Video Codec SDK version 11, which is unaffected by FFmpeg. Drivers newer than 470 can support this, but we may consider an update later, as the support check by sdk code may not be accurate for FFmpeg RAM encoders.
* The issue is related to FFmpeg, not libmfx. FFmpeg version 7 recommends using libvpl, but vcpkg currently lacks ports for libvpl. We can add these in the future.
* D3D11 Texture Rendering: The "Shared GPU Memory" in the task manager continue increasing when using D3D11 texture render, which can exceed the GPU memory limit (e.g., reaching up to 100GB). I don't know what it is and will try to find it out.
* Roughly tests on Windows, Linux, macOS, and Android for quick fix. Further testing will be performed, and I will share the results in this pr.

Signed-off-by: 21pages <sunboeasy@gmail.com>

* update flutter_gpu_texture_render, fix shared gpu memory leak while
rendering

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-07 10:20:52 +08:00
21pages
f0ca4b9fee --no-server parameter to avoid server ipc occupied by ui (#9272)
Signed-off-by: 21pages <pages21@163.com>
2024-09-06 14:43:38 +08:00
Xp96
aa3402b44a Update ptbr.rs (#9271) 2024-09-06 01:15:07 +08:00
fufesou
26ebd0deb9 fix: clipboard, cmd ipc (#9270)
1. Send raw contents if `content_len` > 1024*3.
2. Send raw contents if it is not empty.
3. Try read clipboard again if no data from cm.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-05 23:39:07 +08:00
21pages
4150036589 remove first frame fallback if repeat (#9267)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-05 22:48:20 +08:00
fufesou
7a1157f1b0 refact: quality status event (#9268)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-05 22:37:14 +08:00
21pages
3bd34bf0b9 increase interval for restart linux ui, try fix loop start (#9264)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-05 18:34:48 +08:00
fufesou
5f29016861 fix: build web (#9259)
1. Web, build.
2. Web and mobile, `onSubmitted` for ID text field.
3. Web, remove unused key 'toggle_option'.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-04 22:27:52 +08:00
fufesou
e40243b55d Fix/wf cliprdr c bugs (#9253)
* fix: ResetEvent() after WaitForSingleObject()

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: check and free mem

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-04 17:04:48 +08:00
fufesou
dbbbd08934 fix: clipboard, support excel xml spreadsheet (#9252)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-04 16:44:36 +08:00
21pages
29e12b84a9 password max length prompt (#9248)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-04 11:31:13 +08:00
fufesou
04c0f66ca9 fix: set to OK if recv flag is TRUE (#9244)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-03 21:15:35 +08:00
fufesou
ec28567362 fix: win, file clipboard (#9243)
1. Return the result of `wait_response_event()` in
   `cliprdr_send_format_list()`
2. Add recv flags to avoid waiting a long time.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-03 20:55:45 +08:00
fufesou
d4377a13c5 refact: peer card, orientation (#9235)
* refact: peer card, orientation

Signed-off-by: fufesou <linlong1266@gmail.com>

* Do not change landscape/portrait on Desktop

Signed-off-by: fufesou <linlong1266@gmail.com>

* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-03 19:06:11 +08:00
21pages
39e713838f Use fallback codec if first frame fails (#9242)
* Both encoding and decoding use fallback if first frame fails
* More aggresive max fail counter
* Update hwcodec, add judgement when length of the encoded data is zero, https://github.com/rustdesk/rustdesk-server-pro/discussions/382#discussioncomment-10525997
* Fix serde hwcodec config toml fails when the non-first vec![] is empty, https://github.com/toml-rs/toml-rs/issues/384, the config file is used for cache, when check process is not finished, the cache is used.
* Allow cm not start for pro user

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-09-03 18:48:17 +08:00
SimonHanel
75a4671bda Update da.rs (#9238)
* Update da.rs

Filled out every empty string and adjusted some for better translation.

Some translations might be janky due to my lack of context for what the string is used for, but it's good enough for now.

* Update da.rs

Minor tweaks
2024-09-03 10:09:25 +08:00
fufesou
827efabbc0 refact: remove fingerprint for web (#9226)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-02 02:00:59 +08:00
fufesou
532fe6aefb refact: web ui, login (#9225)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-01 23:14:57 +08:00
fufesou
ae339f039d refact: web ui (#9217)
* refact: web ui

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: remove AppBar shadow

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-09-01 00:30:07 +08:00
fufesou
bf390611ab fix: keyboard, sciter (#9216)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-31 19:02:50 +08:00
fufesou
e3f6829d02 refact: android ios, lan discovery (#9207)
* refact: android ios, lan discovery

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: build and runtime error

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-30 00:37:38 +08:00
fufesou
832002a10f refact: web, remote toolbar, pin (#9206)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-29 23:38:08 +08:00
RustDesk
d335cdbb0c Update README.md (#9196) 2024-08-28 12:25:00 +08:00
RustDesk
6a5d5875c8 Logo broken (#9195) 2024-08-28 12:23:40 +08:00
fufesou
cf06d1028f fix: web, reset cursor on disconn, back to main page (#9192)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-27 23:58:04 +08:00
9amm
fd178a7b6c Fix minor typo (#9191)
Co-authored-by: 9amm <>
2024-08-27 23:38:40 +08:00
rustdesk
f3a2733d75 start mac service more later 2024-08-27 20:25:01 +08:00
fufesou
55de573a01 fix: keyboard input, mulit windows (#9189)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-27 19:30:51 +08:00
fufesou
40239a1c41 feat: macos, mouse button, back&forward (#9185)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-27 15:20:29 +08:00
fufesou
c68ce7dd84 fix: web v2, keyboard mode (#9180)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-27 00:00:33 +08:00
rustdesk
690a2c8399 still find delegate failure when my mac restarted automatically sometimes 2024-08-26 17:07:02 +08:00
fufesou
4b4fd94f3e feat: web v2 keyboard (#9175)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-26 12:13:11 +08:00
21pages
5abe42f66c not run get window focus if no multiple displays (#9174)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-26 10:37:35 +08:00
21pages
48aec6484c refresh file transfer table on resume (#9167)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-25 21:29:41 +08:00
21pages
a946d4d0c9 file transfer status text overflow at start (#9166)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-25 20:46:21 +08:00
ELForcer
24f4b94082 Update ru.rs (#9163) 2024-08-25 15:12:08 +08:00
fufesou
aa1e122532 fix: revert key events to raw key events on Linux (#9161)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-25 00:03:31 +08:00
rustdesk
d400999b9c bump to 1.3.1 2024-08-24 19:02:04 +08:00
fufesou
1d416f6626 refact: flutter keyboard, map mode (#9160)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-24 12:10:36 +08:00
Kleofass
9d9741f18e Update lv.rs (#9155) 2024-08-23 21:27:52 +08:00
21pages
50aa8e12ad desktop file transfer, all columns respond to tap, add right click item border (#9153)
When right click selected item, the border is not obvious but can feel
some change.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-23 10:00:36 +08:00
jxdv
5931af460e Update trs (#9144)
* update sk tr

* update cz tr
2024-08-22 09:36:03 +08:00
fufesou
fc607d6789 fix: privacy mode 2, restore (#9141)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-22 09:35:50 +08:00
rustdesk
529e70910d build 47 2024-08-21 18:29:43 +08:00
fufesou
f300d797e2 Fix/ios query onlines (#9134)
* fix: ios query onlines

Signed-off-by: fufesou <linlong1266@gmail.com>

* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-21 18:21:25 +08:00
Daniel Ehrhardt
e3cce2824d Added Public Server to Readme (#9132) 2024-08-21 09:28:02 +08:00
21pages
f34b8411a7 Fix new cm tab not replace the old persisted tab (#9127)
* This happens when after changing DesktopTab to StatefulWidget, 1.2.7
  and 1.3.0 have this problem.
* When `addConnection` in server_model.dart is called, the old closed
  client is removed, the client parameter of buildConnectionCard is new,
but client id inside Consumer is old.
* The only state in cm page is timer, its value is kept in test.
* There may be a better way to solve the ui update.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-20 15:34:10 +08:00
21pages
8745fcbb6a opt desktop file manager status list (#9117)
* Show delete file/dir log
* Show full path rather than base file name
* Show files count
* Opt status card layout
* Change selected color to accent

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-20 10:53:55 +08:00
flusheDData
2a0fd55af7 Update es.rs (#9114)
New terms added
2024-08-19 14:41:28 +08:00
RustDesk
da70cbcdda Update es.rs 2024-08-19 14:19:24 +08:00
flusheDData
921b64e1e0 Last tips (#9113)
* Update es.rs

New translations

* Update es.rs

Translation correction of 'Version'

* Update es.rs

Last tips

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-08-19 14:14:47 +08:00
XLion
c0de0aa108 Update tw.rs (#9112) 2024-08-19 14:13:31 +08:00
fufesou
715d475f49 fix: privacy mode 2, more error info (#9111)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-19 11:35:35 +08:00
Mr-Update
e3f09b3ec6 Update de.rs (#9107) 2024-08-19 03:12:56 +08:00
rustdesk
0a5fafb84f comment 2024-08-18 10:04:20 +08:00
rustdesk
4e084c5ee0 revert 2024-08-18 09:56:24 +08:00
rustdesk
d1fe617670 fixing https://github.com/rustdesk/rustdesk/issues/9103, maybe 2024-08-18 09:30:53 +08:00
bovirus
7744bdbbe0 Update Italian language (#9093) 2024-08-16 18:39:36 +08:00
FastAct
e1329c8157 Update nl.rs (#9092) 2024-08-16 15:19:18 +08:00
fufesou
f31e60af5b fix: crash, drop tokio RunTime in async context (#9091)
* fix: crash, drop tokio RunTime in async context

Signed-off-by: fufesou <linlong1266@gmail.com>

* chore

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-16 14:55:42 +08:00
21pages
ed18e3c786 file rename (#9089)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-16 12:55:58 +08:00
rustdesk
579e0fac36 fix https://github.com/rustdesk/rustdesk/issues/9088 2024-08-16 12:20:40 +08:00
fufesou
92752765ba fix: resize top edge (#9081)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-15 23:58:19 +08:00
kibeb
071f51cf6f Update cs.rs: more corrections, new phrases translated (#9075) 2024-08-15 17:34:39 +08:00
kibeb
dde3cce120 Update cs.rs: typo corrected (#9074) 2024-08-15 14:55:44 +08:00
21pages
bb1b9858d5 only main window show tabbar border, change cm tabbar color (#9073)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-15 13:25:59 +08:00
fufesou
a31c27be73 fix: windows, remote window, resizing, #9061 (#9062)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-15 13:24:42 +08:00
21pages
85ae3916cb fix get_custom_server_from_string, relay= is not used (#9069)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-15 09:57:12 +08:00
jkh0kr
cc9b7e64eb Update ko.rs (#9067)
Additional Korean translations
2024-08-15 09:25:03 +08:00
flusheDData
5e22a49e49 Translation correction (#9064)
* Update es.rs

New translations

* Update es.rs

Translation correction of 'Version'
2024-08-15 09:24:42 +08:00
21pages
07cf1b4db5 fix wallpaper get sid (#9058)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-14 18:09:47 +08:00
RustDesk
f6ab5cdcb2 Update config.toml (#9057) 2024-08-14 17:32:05 +08:00
Mr-Update
b477aded0b Update de.rs (#9054) 2024-08-14 10:39:05 +08:00
rustdesk
65318efd67 update README 2024-08-13 21:42:04 +08:00
bovirus
dbd195a46e Update Italian language (#9047) 2024-08-13 14:22:08 +08:00
flusheDData
0651ad492f Update es.rs (#9045)
New translations
2024-08-13 14:11:36 +08:00
fufesou
a3c5adb1f4 refact: remove dup translation (#9043)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-13 11:27:39 +08:00
fufesou
a771abcdc2 fix: win, multi monitors, maximize, may fix 9033 (#9038)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-13 00:18:35 +08:00
21pages
b8b3a089f3 android telebot setting (#9035)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-12 22:20:35 +08:00
fufesou
8f00067266 fix: build (#9036)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-12 22:15:59 +08:00
fufesou
83bf067d18 fix: not plug virtual dislay, non win, installed (#9034)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-12 21:53:41 +08:00
21pages
1729ee337f trust this device to skip 2fa (#9012)
* trust this device to skip 2fa

Signed-off-by: 21pages <sunboeasy@gmail.com>

* Update connection.rs

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-08-12 18:08:33 +08:00
Xp96
57834840b8 Update ptbr.rs (#9031) 2024-08-12 17:22:00 +08:00
fufesou
99d7b62d79 fix: privacy mode 2, resolution changed (#9027)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-11 23:28:02 +08:00
fufesou
6625aca994 fix: win, virtual display (#9023)
1. Default resolution 1920x1080.
2. Restore on conn & disconn.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-11 19:26:41 +08:00
FastAct
ce56be6507 Update nl.rs (#9022) 2024-08-11 06:49:52 +08:00
mehdi-song
fd69b14623 Update fa.rs (#9021) 2024-08-11 06:49:34 +08:00
bovirus
7521bbe15f Update Italian language (#9016) 2024-08-10 20:52:27 +08:00
fufesou
3c6ddd7403 fix: multi-displays, displays changed, switch idx (#9006)
Use init display index as the primary index.

But when displays changed, the primary display may also changes.

No need to change the old primary index.
But we need to make sure that the old primary index does not exceed the display number.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-09 21:17:06 +08:00
Mr-Update
6820e2f4c7 Update de.rs (#9004) 2024-08-09 08:43:18 +08:00
Ivan Beà
77f3ebaf1a Update ca.rs (#8997)
* Update ca.rs

update catalan translation

* Update ca.rs

minor changes
2024-08-08 23:18:01 +08:00
fufesou
e7e244d4f2 fix: update pub desktop_multi_window (#9002)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-08 23:06:33 +08:00
fufesou
f4c40d733e Fix/exe upgrade options (#9001)
* fix: exe upgrade, use previous options

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: msi, shortcuts options, swap pos

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-08 22:07:06 +08:00
fufesou
049c334db3 fix: privacy mode, windows vd, init resolution (#8992)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-08 15:31:11 +08:00
rustdesk
6197832317 update hwcodec 2024-08-08 11:58:12 +08:00
Vasyl Gello
2fd53f9825 Pass JVM to ffmpeg (#8985)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-08-08 11:53:49 +08:00
Yevhen Popok
ae16b8975b Update Ukrainian translation (#8980)
Sync with #8977
2024-08-08 10:24:40 +08:00
solokot
171177c76f Update ru.rs (#8987) 2024-08-08 10:24:28 +08:00
bovirus
ade1d8c0c7 Update Italian language (#8988) 2024-08-08 10:24:15 +08:00
rustdesk
9a194f0850 res/users.py 2024-08-07 23:26:17 +08:00
21pages
76d5a8b205 unlock with PIN (#8977)
* add custom password to unlock settings

* If not set, use admin password; if set, use custom settings password.
* At least 4 characters.
* Set with gui or command line.

Signed-off-by: 21pages <sunboeasy@gmail.com>

* Update cn.rs

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-08-07 16:21:38 +08:00
jkh0kr
bc6ce6c7ee Update ko.rs (#8974)
Additional Korean translation
2024-08-07 10:12:43 +08:00
rustdesk
025cdfa25b fix ci 2024-08-07 01:19:29 +08:00
rustdesk
2f432e941d hide-tray option 2024-08-07 01:08:36 +08:00
21pages
96edca8f74 update sysinfo rlim_max, which causing debian 13 pkexec not work (#8968)
* update sysinfo rlim_max, which causing debian 13 pkexec not work

Signed-off-by: 21pages <sunboeasy@gmail.com>

* Update Cargo.toml

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-08-06 18:19:35 +08:00
fufesou
51b250435d refact: audio input, combobox instead of radio (#8965)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-06 17:07:05 +08:00
21pages
5a2121501d fix build (#8964)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-06 12:36:39 +08:00
rustdesk
877b3e2ce5 fix ci 2024-08-06 12:19:06 +08:00
rustdesk
421ddc0016 fix https://github.com/rustdesk/rustdesk/issues/4863 2024-08-06 12:11:03 +08:00
fufesou
2662abc5a3 fix: reset voice call state, on conn (#8961)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-06 00:28:31 +08:00
fufesou
b3e1c8a907 Refact/msi more install options (#8949)
* refact: msi, more install options

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: msi, reg values on upgrade/modify

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: msi, silent repair/upgrade, RemoveInstallFolder()

Signed-off-by: fufesou <linlong1266@gmail.com>

* Options support both 1/0 and Y/N

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: msi, preprocess, open file with explicit encoding

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: msi, read previous options

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: mis, install folder, read previous option

Signed-off-by: fufesou <linlong1266@gmail.com>

* Comment on Control -> Checkbox

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: UI, checkbox options, read previous values

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: shortcuts options, init state

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: shortcuts, init state

Signed-off-by: fufesou <linlong1266@gmail.com>

* Better shortcuts property conditions

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-05 17:49:48 +08:00
rustdesk
2266fde26f fix address_book_name cli 2024-08-04 19:31:13 +08:00
rustdesk
e58e75eea9 add address_book_name, address_book_tag to cli, https://github.com/rustdesk/rustdesk/discussions/7866, need to use with server Pro 1.4.2 (not ready) 2024-08-04 18:45:49 +08:00
rustdesk
eafebdba21 run universal for upload only 2024-08-04 16:32:05 +08:00
rustdesk
7bf5e69444 revert 2024-08-04 16:23:58 +08:00
rustdesk
cb0dc46d08 turn it off since it does not work, please test it before submit PR 2024-08-04 16:22:42 +08:00
rustdesk
9b8209b61b log::trace audio buffer cleared 2024-08-04 16:17:59 +08:00
21pages
b6ba9978e3 set max audio buffer to 150ms, clear audio buffer if full (#8947)
The device should have the capability to play a sufficient audio buffer during each period to meet the audio config, so the playback speed is not slow.

The audio delay is caused by network jitter. The controlled  side sends audio data every 10ms, but it often happens that multiple packets are sent together. During underrun periods, the controlling side plays extra silence data instead, resulting in the device playing more audio than the configured amount.
2024-08-04 16:11:00 +08:00
Vasyl Gello
0d1d7a9b87 Guard parameters for universal apk (#8943)
* Guard parameters for universal apk

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* Free space before android builds

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

---------

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-08-04 12:34:08 +08:00
fufesou
508dd5b383 fix: custom client, msi, conn type (#8944)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-03 22:29:30 +08:00
Vasyl Gello
31a1b7a80b Fix copy step for universal apk (#8942)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-08-03 19:00:27 +08:00
Vasyl Gello
ba43424781 Build universal apk (#8941)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-08-03 18:39:12 +08:00
rustdesk
f899b2a962 fix https://github.com/rustdesk/rustdesk/issues/8856 2024-08-03 18:05:32 +08:00
Yevhen Popok
2dd3d8c11e Use correct locale code for Ukrainian translation file name (#8932)
Rename Ukrainian translation file ua.rs to uk.rs to avoid confusion.
This complements commits [2333ee2](2333ee2c07) and [b6035fb](b6035fbbdf)
2024-08-02 22:58:45 +08:00
fufesou
6eea425280 fix: clipboard cm ipc data, raw bytes (#8930)
* fix: clipboard cm ipc data, raw bytes

Signed-off-by: fufesou <linlong1266@gmail.com>

* Remove useless check

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-02 21:36:49 +08:00
Vasyl Gello
5e7d4fd2d6 vcpkg deps (#8926)
* vcpkg: bump opus to 1.5.2

Should fix flakes caused by https://github.com/android/ndk/issues/2032

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* vcpkg: actually use cached artifacts

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* Print all vcpkg log files on errors

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

---------

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-08-02 18:43:30 +08:00
rustdesk
d9fba50606 fix https://github.com/rustdesk/rustdesk-server-pro/issues/334 again 2024-08-02 15:43:55 +08:00
21pages
b6035fbbdf update supportedLocales (#8925)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-02 15:12:48 +08:00
Yevhen Popok
e67b694f06 Update Ukrainian translation (#8921) 2024-08-02 09:31:37 +08:00
rustdesk
2333ee2c07 fix https://github.com/rustdesk/rustdesk/issues/8923 2024-08-02 09:29:51 +08:00
Vasyl Gello
61ccc2152e Bump Android NDK to r27 (#8918)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-08-01 21:33:59 +08:00
21pages
f6aca4ca8e fix click cm audio permission button before auth (#8917)
1. When not authenticated, clicking the audio permission button on the cm will send audio data
2. Keep the cursor position code unchanged, because `show_remote_cursor` is false before auth, so subscription will not happen.
3. Keep the clipboard code unchanged, because the keyboard permission will also be determined in `try_sub_services`. If the clipboard permission is clicked before auth and the keyboard permission is clicked after auth, the clipboard service will not be subscribed.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-08-01 18:17:02 +08:00
Vasyl Gello
1707987a7b Fix typo in android-x86 lib copy step (#8914)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-08-01 15:09:33 +08:00
fufesou
85604dee79 refact: msi, custom client props (#8913)
* refact: msi, custom client props

Signed-off-by: fufesou <linlong1266@gmail.com>

* format

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-08-01 15:08:52 +08:00
Hamir Mahal
a12969be30 fix: usage of actions/checkout@v3 (#8912)
* chore: changes from formatting on save

* fix: usage of `actions/checkout@v3`
2024-08-01 09:12:11 +08:00
rustdesk
9f91eada89 fix https://github.com/rustdesk/rustdesk-server-pro/issues/338 2024-08-01 09:09:45 +08:00
Vasyl Gello
cb6a6aa42a flutter-build: Parameterize Android build matrix (#8907)
As @rustdesk noted debug builds are no-go in official RD repo
but this change makes it possible to filter jobs only relevant to
Android from flutter-build.yml to build only Android in a separate
mirror of Rustdesk.

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-31 20:38:00 +08:00
21pages
4fec8abad4 update repo to rustdesk-org (#8905)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-31 17:25:10 +08:00
solokot
35571dc8d7 Update ru.rs (#8901) 2024-07-31 14:16:55 +08:00
FastAct
a103b83647 Update nl.rs (#8892) 2024-07-30 20:23:49 +08:00
21pages
e1e4bf599b add libatomic1 to linux armv7 sciter depends (#8890)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-30 14:52:06 +08:00
rustdesk
cba8aaa410 tooltip for https://github.com/rustdesk/rustdesk/issues/8600, and change
dialog error to richtext with link support
2024-07-30 14:42:21 +08:00
fufesou
8ced4ddaa2 simple refact (#8888)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-30 13:06:37 +08:00
fufesou
15404ecab4 fix: clipboard, windows, controlled side, formats (#8885)
* fix: clipboard, windows, controlled side, formats

Signed-off-by: fufesou <linlong1266@gmail.com>

* Clipboard, reuse ipc conn and send_raw()

Signed-off-by: fufesou <linlong1266@gmail.com>

* Clipboard, merge content buffer

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: clipboard service, ipc stream

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-30 11:35:39 +08:00
Generalworks Inc.
97772f9ac5 Fix typo on ja.rs (#8886) 2024-07-30 00:27:28 +08:00
rustdesk
764fbe2c9d addressing https://github.com/rustdesk/rustdesk/issues/8883 2024-07-30 00:27:01 +08:00
fufesou
e03344d85b fix: clipboard, read as much as possible (#8881)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-29 21:19:29 +08:00
fufesou
0e98a51775 fix: clipboard, set formats and enable option (#8873)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-29 15:40:02 +08:00
XLion
0a1d3c4afb Update tw.rs and cn.rs (#8877)
* Update tw.rs

* Update cn.rs
2024-07-29 15:34:26 +08:00
rustdesk
fd9b5f3c57 fix https://github.com/rustdesk/rustdesk-server-pro/issues/334 2024-07-28 22:55:14 +08:00
Mr-Update
73f6afd4c0 Update de.rs (#8870) 2024-07-28 21:09:36 +08:00
fufesou
50dd2b3aad chore (#8868)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-28 19:33:00 +08:00
fufesou
c0e9445602 refact: embed crate mouce, uinput (#8836)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-28 17:27:09 +08:00
fufesou
541d9c6b86 feat: clipboard, multi formats (#8733)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-28 17:26:54 +08:00
fufesou
8c91e5c5ca refact: update crate tfc (#8867)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-28 17:26:18 +08:00
jxdv
19d1605d8c Update trs (#8866)
* update sk-tr

* update cs-tr
2024-07-28 17:13:15 +08:00
bovirus
0faf82f109 Update Italian language (#8863) 2024-07-28 17:13:01 +08:00
21pages
ee5314de20 use selectableText for some errors (#8862)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-28 11:13:19 +08:00
21pages
7e8d3bd2ac remove calling refreshCurrentUser when connect status become ready (#8849)
When refreshCurrentUser throw error, show check network in ab and group
tab.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-28 10:15:09 +08:00
Vasyl Gello
9750e1409c Use VCPKG_FORCE_SYSTEM_BINARIES in actual RD sciter build step (#8859)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-28 08:44:16 +08:00
Vasyl Gello
67d4e061fb Try to detach /opt/artifacts from sciter (#8857)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-27 23:57:53 +08:00
Vasyl Gello
f67f2be0cb Add built CMake to PATH in actual RD build step (#8855)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-27 21:28:34 +08:00
Vasyl Gello
aa42bf548e Limit cmake buildstep to 1 threads to check OOM (#8852)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-27 16:29:53 +08:00
rustdesk
d679e8fa7d WIN_RUST_VERSION -> SCITER_RUST_VERSION 2024-07-27 16:16:31 +08:00
Vasyl Gello
1357ef5d6f Try to fix sciter-armhf build (#8850)
* Bootstrap CMake 3.29.7 for ubuntu/bionic/armhf
  * vcpkg exevutable now needs GCC 8 but all product binaries
    are still OK with GCC 7
  * Remove res/vcpkg/linux.cmake

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-27 15:32:26 +08:00
21pages
30a5d1e0e1 avoid call refreshCurrentUser twice at startup (#8848)
refreshCurrentUser will be called at these 2 position:

1. runMainApp or runMobileApp in main.dart
2. when connect status is ready

Both of these two happens at startup, when connect status is ready and startup time < 5 seconds, not call refreshCurrentUser

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-27 09:50:06 +08:00
FastAct
9f0985c842 Update nl.rs (#8843) 2024-07-26 17:17:05 +08:00
21pages
be06c0d738 tab border for desktop subwindow (#8842)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-26 11:20:16 +08:00
zuiyu
f0f50f0f03 fix: remove getRadio todo and delete contentPadding param (#8839) 2024-07-26 10:31:01 +08:00
bovirus
1850d32f49 Update Italian language (#8838) 2024-07-26 10:00:18 +08:00
fufesou
3999d498be fix: keep window pos after new conn (#8834)
1. Keep window pos
2. Do some init in StatefulWidget constructor.
If try init in its state class, it may be too late. Because I see the
init function is called after building the widget tree.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-25 21:52:57 +08:00
rustdesk
bbdce8d57b Send clipboard keystroke, https://github.com/rustdesk/rustdesk/discussions/5451 2024-07-25 15:21:28 +08:00
dignow
baf70da2fe fix: trackpad, reverse horizontal scroll (#8827)
Signed-off-by: dignow <linlong1265@gmail.com>
2024-07-25 14:44:58 +08:00
dignow
b967d496cc refact: init values from initState to Constractor (#8817)
* refact: init values from initState to Constractor

Signed-off-by: dignow <linlong1265@gmail.com>

* fix: move RxBool init into Constructor

Signed-off-by: dignow <linlong1265@gmail.com>

* peer sort option

Signed-off-by: dignow <linlong1265@gmail.com>

* Remove empty initState()

Signed-off-by: dignow <linlong1265@gmail.com>

---------

Signed-off-by: dignow <linlong1265@gmail.com>
2024-07-25 10:45:51 +08:00
dignow
2aef79688b fix: mobile, conn page, jump on exiting remote (#8820)
Signed-off-by: dignow <linlong1265@gmail.com>
2024-07-25 00:43:14 +08:00
dignow
0451a1c45f fix: mobile, server page, jumps on loading (#8819)
Signed-off-by: dignow <linlong1265@gmail.com>
2024-07-25 00:13:22 +08:00
dignow
f7e9057a39 fix: video service, do not skip refresh message (#8815)
Signed-off-by: dignow <linlong1265@gmail.com>
2024-07-24 21:59:25 +08:00
dignow
d73e0e1e5a fix: video service (#8812)
1. Unset refresh flag if just refreshed.
2. Reduce the scope of the lock.

Signed-off-by: dignow <linlong1265@gmail.com>
2024-07-24 18:41:52 +08:00
dignow
39dbd89287 fix: siwtching display, clear last old image (#8810)
* fix: siwtching display, clear last old image

1. Clear last old image.
2. Try refresh after switching display.
3. Add an interval check before refresh video service.

Signed-off-by: dignow <linlong1265@gmail.com>

* simple changes

Signed-off-by: dignow <linlong1265@gmail.com>

---------

Signed-off-by: dignow <linlong1265@gmail.com>
2024-07-24 17:35:06 +08:00
21pages
c04f460bbd fix more bool options (#8809)
* fix more bool options
* hide sort ab tags because it's already sorted

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-24 17:20:58 +08:00
dignow
79a1f888d6 fix: flutter remove setState in initState (#8807)
Signed-off-by: dignow <linlong1265@gmail.com>
2024-07-24 14:00:49 +08:00
21pages
57d1b1ecc4 fix nextRgba not called when switching to texture render (#8792)
Because rgba buffer render doesn't support multi display, when switch to
multi display, it is possible that rgba.valid has been set to valid but
nextRgab is not called, when switching back to single display,
rgba.valid is still true.

Fix by rgba buffer, rgba texture and  gpu texture using different messages.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-24 12:06:16 +08:00
Vasyl Gello
8a4a2b5732 Remove existing /opt/artifacts/vcpkg in sciter builds (#8804)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-24 11:23:49 +08:00
Vasyl Gello
51a60a7eed Fix arm32 sciter build (#8803)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-24 10:16:25 +08:00
bovirus
b26acde450 Update Italian language (#8800) 2024-07-24 09:41:43 +08:00
Mr-Update
2de81045ea Update de.rs (#8801) 2024-07-24 09:41:25 +08:00
Vasyl Gello
a72a8906b0 vcpkg deps (#8764)
* Revert "Revert vcpkg ffmpeg (#8751)"

This reverts commit 5c16a8302e.

* vcpkg: Reland ffmpeg and try to fix sciter build

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* vcpkg: Detect AVX2 by requiring __m256i

(ubuntu18.04 sciter)

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* Install nasm from debian buster and python3.7

... from ubuntu universe

[Skip CI]

* vcpkg: Add libyuv port with fix for windows

From
abc59feabf

Found by @deep-soft

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* Bump vcpkg baseline to 2024.07.12

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* Fix F-Droid version action

I thought the latest release will be updated by the time hook starts
but it is not the case. Get tag from GITHUB_REF instead if GITHUB_REF_TYPE
is "tag".

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

---------

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-23 23:31:36 +08:00
dignow
614086a216 fix: mobile, query onlines, on active (#8796)
* fix: mobile, query onlines, on active

Signed-off-by: dignow <linlong1265@gmail.com>

* Update peer_tab_page.dart

---------

Signed-off-by: dignow <linlong1265@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-07-23 23:28:03 +08:00
rustdesk
2ffc2ad85b enhance https://github.com/rustdesk/rustdesk-server-pro/discussions/325 2024-07-23 22:26:23 +08:00
21pages
eef091d4e8 fix hide ab tag when custom client startup (#8795)
not custom: 'Y', ''
custom: 'Y', 'N'
should not use isNotEmpty

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-23 21:35:05 +08:00
rustdesk
97f26f880b default-connect-password option 2024-07-23 10:46:50 +08:00
rustdesk
22c6f5e589 aggresive online query for self-hosting 2024-07-23 10:26:56 +08:00
お餅のCreeeper
b828768fa9 Update ja.rs and Add "About Rustdesk" (#8784)
* Update ja.rs

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>

* Update ja.rs

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>

* Add 'About RustDesk'

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>

---------

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>
2024-07-23 08:58:48 +08:00
dignow
31e7b6acf1 refact: msi, revision version (#8782)
* refact: msi, revision version

Signed-off-by: dignow <linlong1265@gmail.com>

* check revision version

Signed-off-by: dignow <linlong1265@gmail.com>

* refact: msi, default revision number

Signed-off-by: dignow <linlong1265@gmail.com>

* Simple refact

Signed-off-by: dignow <linlong1265@gmail.com>

---------

Signed-off-by: dignow <linlong1265@gmail.com>
2024-07-22 23:37:25 +08:00
21pages
14b505130b remove end slash when setting server config (#8779)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-22 17:11:32 +08:00
21pages
22f3425ace fix custom client show ip whiltelist warning (#8778)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-22 17:00:29 +08:00
rustdesk
4723d6a830 mouse wrong commit ref 2024-07-22 10:29:00 +08:00
DiegoGZ
c4f3c0f133 Update ca.rs - Added new translation into Catalan and a few corrections (#8777)
Added new translation into Catalan and a few corrections
2024-07-22 09:58:04 +08:00
Bot_wxt1221
de375c91bb fix: nixos's headless mode. (#8774) 2024-07-21 17:05:32 +08:00
dignow
d3454f07d3 fix: move some crates to rustdesk-org (#8772)
Signed-off-by: fufesou <linlong1266@gmail.com>
Co-authored-by: fufesou <linlong1266@gmail.com>
2024-07-20 23:49:40 +08:00
fufesou
cf8ef2533a fix: keyboard, linux, repeated keys, #6793 (#8757)
* fix: keyboard, linux, repeat keys, #6793

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: keyboard, linux->linux, may also repeat keys with bad network

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-20 00:42:49 +08:00
お餅のCreeeper
6ad662260e Update ja.rs (#8758)
* Update ja.rs

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>

* Update README-JP.md

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>

---------

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>
2024-07-19 23:56:39 +08:00
21pages
2b54a553c7 buildin options and add to mobile (#8759)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-19 23:55:52 +08:00
rustdesk
85ded0a3e5 no idea why publish sciter windows tar.gz, remove it 2024-07-19 00:32:19 +08:00
21pages
5c16a8302e Revert vcpkg ffmpeg (#8751)
* Revert "fix linux ffmpeg link, still link ffmpeg in hwcodec (#8747)"

This reverts commit 48464835f5.

* Revert "fix linux armv7 ffmpeg arch, linux x64 sciter add hwcodec feature (#8744)"

This reverts commit b68d7a3054.

* Revert "arm linux remove cuda-llvm option (#8735)"

This reverts commit bc672b3367.

* Reapply "try fix arm64 linux ci and publish error log (#8730)" (#8732)

This reverts commit e283d33f28.

* Revert "try fix arm64 linux ci and publish error log (#8730)"

This reverts commit a4565bf0da.

* Revert "F-Droid: enable hwcodec for future builds (#8726)"

This reverts commit 188f85b042.

* Revert "remove unused vcpkg ffmpeg code (#8725)"

This reverts commit 72c96f22b6.

* Revert "install ffmpeg lib with vcpkg (#8724)"

This reverts commit 0143eaf601.

* update hwcodec to reverted

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-18 22:28:35 +08:00
21pages
04c175c62e fix custom client settings tab visibility (#8752)
* fix custom client settings tab visibility

only control with tabKeys

Signed-off-by: 21pages <sunboeasy@gmail.com>

* fix preset-user-name typo

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-18 22:27:31 +08:00
fufesou
2be05608d8 fix: windows, headless, not work when exiting RDP (#8753)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-18 22:23:45 +08:00
21pages
c3c99ba107 fix missing retry (#8750)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-18 17:16:25 +08:00
fufesou
a81d6468cc fix: desktop settings, disconnect, timeout (#8749)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-18 15:57:36 +08:00
21pages
48464835f5 fix linux ffmpeg link, still link ffmpeg in hwcodec (#8747)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-18 13:18:21 +08:00
rustdesk
edc5d86ee7 fix hide-help-cards and fix https://github.com/rustdesk/rustdesk/issues/8687 2024-07-18 11:26:11 +08:00
fufesou
e9c8ba5393 fix: macos, remove unused workaround (#8746)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-18 10:38:15 +08:00
rustdesk
a72bc0fb28 hide-help-cards 2024-07-18 09:47:04 +08:00
rustdesk
5a8c8cbf7c hide-help-cards 2024-07-18 09:47:04 +08:00
21pages
b68d7a3054 fix linux armv7 ffmpeg arch, linux x64 sciter add hwcodec feature (#8744)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-17 22:37:05 +08:00
rustdesk
9e931a6f04 change remove-preset-password-warning default value to Y 2024-07-17 21:17:54 +08:00
rustdesk
f0587796e2 OPTION_PRESET_STRATEGY_NAME, OPTION_PRESET_USERNAME 2024-07-17 20:11:30 +08:00
fufesou
875ac28ab5 fix: macos, remove useless workaround (#8738)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-17 19:13:03 +08:00
お餅のCreeeper
6821bef5e5 Update README-JP.md and ja.rs (#8737)
* Update README-JP.md

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>

* Update ja.rs

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>

* Fix README-JP.md

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>

---------

Signed-off-by: creeper-0910 <56744841+creeper-0910@users.noreply.github.com>
2024-07-17 19:11:04 +08:00
rustdesk
930561f431 remove unused protobuf 2024-07-17 18:17:30 +08:00
21pages
bc672b3367 arm linux remove cuda-llvm option (#8735)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-17 17:19:21 +08:00
21pages
e283d33f28 Revert "try fix arm64 linux ci and publish error log (#8730)" (#8732)
setup a selfhost and will fix it later

This reverts commit a4565bf0da.
2024-07-17 13:35:32 +08:00
fufesou
901505e8be fix: macos, load multi dylib instances (#8731)
Multiple dylib instances will cause some global instances to be invalid.

eg. lazy_static objects in rust side, will be created more than once.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-17 11:49:11 +08:00
21pages
a4565bf0da try fix arm64 linux ci and publish error log (#8730)
FFmepg can be built on arm64 ubuntu vm, possible reason is that the
condition of nvcodec can't be satisfied. If this still can't work, nvcodec can
be removed for arm linux.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-17 11:40:50 +08:00
fufesou
092e4089c7 fix: try workaround, macos, subwindow, frozen (#8729)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-17 09:55:46 +08:00
Vasyl Gello
188f85b042 F-Droid: enable hwcodec for future builds (#8726)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-16 16:35:10 +08:00
21pages
72c96f22b6 remove unused vcpkg ffmpeg code (#8725)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-16 15:46:20 +08:00
21pages
0143eaf601 install ffmpeg lib with vcpkg (#8724)
* use vcpkg to install ffmpeg and build sdk from source, so no prebuild lib in hwcodec.
* link ffmpeg in rustdesk directly, ffmpeg can be used as basic library.
* for windows developers, `VCPKG_DEFAULT_HOST_TRIPLET` env need to be set to `x64-windows-static` during installation.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-16 15:10:24 +08:00
21pages
09466680d3 mobile virtual display, resolution menu, proxy setting (#8717)
1. Merge code of mobile and desktop virtual display menu.
2. Mobile add seperate resolution menu, only support changing
   resolutions.
3. Android add proxy setting

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-15 18:53:14 +08:00
fufesou
eec879a801 refact: macos, hide&show on leaving view (#8712)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-15 10:50:54 +08:00
21pages
3f11d9cdb6 remove Instant sub (#8714)
which cause crash when connect to windows just startup

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-15 10:49:09 +08:00
21pages
8512c2b2b0 fix lan peers batch deletion (#8715)
`peers.map((p) async {})` is not sync and peers are loaded before deletion.

```
let mut peers = config::LanPeers::load().peers;
peers.retain(|x| x.id != id);
```

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-15 10:47:19 +08:00
fufesou
e2a7e38a39 fix: build ios (#8709)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-14 15:05:56 +08:00
21pages
3a0ece1447 mobile view mode menu (#8707)
* mobile add view mode menu, disable same menus as desktop
* show forbidden cursor when not view mode && no keyboard permission &&
  not show remote cursor
* hide keyboard/mouse bottom action when keyboard disabled
* fix not listen keyboard permission change
* mobile missing changing resolution and http proxy setting, will add if
  needed.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-14 15:04:35 +08:00
rustdesk
d0a54a6cc6 hc 2024-07-14 05:47:42 +08:00
RustDesk
bed214bd37 Update playground.yml 2024-07-14 04:56:03 +08:00
RustDesk
5f31211db3 Update playground.yml 2024-07-14 04:35:23 +08:00
RustDesk
29b8875c1c Update playground.yml 2024-07-14 04:28:22 +08:00
RustDesk
3367c541b2 Update playground.yml 2024-07-14 04:08:11 +08:00
fufesou
30afe4f779 refact: seperate audio device for voice call (#8703)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-14 04:07:02 +08:00
fufesou
d18e95703e fix: mouse forward back (#8705)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-14 03:49:16 +08:00
RustDesk
9adc083def Update playground.yml 2024-07-14 03:47:15 +08:00
RustDesk
0dc664474a Update playground.yml 2024-07-14 03:46:48 +08:00
Vasyl Gello
5e8fe239fa build_fdroid.sh: Fix review points by Licaon_Kter (#8701)
* NDK should be downloaded via verified Android SDK's sdkmanager
  * vcpkg should be built from sources not prebuilt

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-13 20:46:05 +08:00
RustDesk
7a3100a87c Update playground.yml 2024-07-13 16:08:07 +08:00
RustDesk
8a1acedae5 Update playground.yml 2024-07-13 15:51:51 +08:00
RustDesk
f5bcc17636 Update playground.yml 2024-07-13 15:45:59 +08:00
RustDesk
883c630206 Update playground.yml 2024-07-13 15:35:24 +08:00
RustDesk
a95a6ab733 Update playground.yml 2024-07-13 15:24:01 +08:00
RustDesk
46605fab1b Update playground.yml 2024-07-13 14:33:17 +08:00
RustDesk
9d26fec631 Update playground.yml 2024-07-13 11:33:15 +08:00
RustDesk
294a6ce9bc Update playground.yml 2024-07-13 11:15:00 +08:00
RustDesk
183ea47ba4 Update playground.yml 2024-07-13 01:29:17 +08:00
RustDesk
06e04143a8 Update playground.yml 2024-07-13 01:26:09 +08:00
RustDesk
a532b36e28 Update playground.yml 2024-07-13 01:03:43 +08:00
fufesou
c873b69662 refact: unwrap offstage for cursor paint (#8693)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-13 00:44:08 +08:00
RustDesk
b30f84623b Update playground.yml 2024-07-12 23:44:25 +08:00
fufesou
888e993534 fix: unable to close on fullscreen (#8690)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-12 22:04:11 +08:00
rustdesk
1d59a7fe5f adjust uni_link_desktop version to make work with old flutter 2024-07-12 18:07:27 +08:00
RustDesk
2c027cdcf5 Update playground.yml 2024-07-12 17:55:25 +08:00
RustDesk
fe513dd967 Update playground.yml 2024-07-12 17:26:00 +08:00
RustDesk
d652b99d5b Update playground.yml 2024-07-12 16:33:55 +08:00
RustDesk
c2716c2509 Update playground.yml 2024-07-12 15:44:51 +08:00
21pages
821f7245b0 videotoolbox ram codec (#8683)
* h265 encoding: the second frame always fails, use repeat encoding to achieve real-time encoding
* h264 encoding: Not supported because encoding fails too frequently, about 50%, with one failure followed by another success.
* h264/h265 decoding: No issues found.
* Does not support dynamically changing the bitrate and changing the quality by resetting the encoder.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-12 11:08:51 +08:00
RustDesk
0ea88ce6ff Update playground.yml 2024-07-12 11:01:12 +08:00
RustDesk
21f41e98a0 Update playground.yml 2024-07-12 10:44:04 +08:00
RustDesk
282ea02ebf Update playground.yml 2024-07-12 10:41:13 +08:00
RustDesk
170200fa49 Update playground.yml 2024-07-12 10:14:25 +08:00
rustdesk
d8cee6507d test old flutter for mac intel freeze issue 2024-07-12 10:07:55 +08:00
fufesou
2391b18046 fix: ubuntu 18.04, service, Exec format error (#8680)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-11 23:13:41 +08:00
fufesou
b5a7165015 feat: android, controlled side, clipboard text (#8677)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-11 12:02:19 +08:00
RustDesk
ef4d84657b Revert "feat: clipboard, multi format (#8672)" (#8673)
This reverts commit 011647511c.
2024-07-11 00:36:29 +08:00
fufesou
011647511c feat: clipboard, multi format (#8672)
* feat: clipboard, multi format

Signed-off-by: fufesou <linlong1266@gmail.com>

* inline

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-11 00:05:25 +08:00
21pages
e2d217a138 fix wayland Display::all() comment (#8664)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-09 22:10:39 +08:00
21pages
f07936a911 wayland not call check_get_displays_changed_msg (#8637)
* wayland not call check_get_displays_changed_msg

For wayland, call Display::all() in video service will cause block, I
don't know the reason.

Signed-off-by: 21pages <sunboeasy@gmail.com>

* Update display_service.rs

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-07-09 18:01:30 +08:00
21pages
0bb4d43e9e add custom client option to allow remote cm modification (#8660)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-09 15:19:16 +08:00
Vasyl Gello
6f74080a2d build_fdroid: Move sudo-deps back to f-droid spec (#8659)
... as requested by linsui here:
https://gitlab.com/fdroid/fdroiddata/-/merge_requests/15343#note_1988918695

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-09 14:36:05 +08:00
rustdesk
8a370e640a add hide-username-on-card, https://github.com/rustdesk/rustdesk-server-pro/issues/284#issuecomment-2216521407 2024-07-09 13:45:54 +08:00
Vasyl Gello
d007408061 Factor out F-Droid buildscript (#8625)
Now RustDesk maintainers can make proactive changes in F-Droid
packaging script so F-Droid side is (fully) automated.

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-09 11:45:08 +08:00
fufesou
02572e9032 fix: obx, no rx value (#8652)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-08 21:51:16 +08:00
21pages
af66d2a73b main window add block mask, cm add keyboard block (#8640)
* block window body only so user can still click minisize button.
* cm doesn't show mask
* Remove focusable Offstage in tabbar_widget.dart

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-08 20:08:05 +08:00
bovirus
eb5ab4d7d9 Update Italian language (#8645) 2024-07-08 19:59:29 +08:00
rustdesk
c02b4f994a fix two tray icon on macos 2024-07-08 14:46:28 +08:00
XLion
d093fdc256 Translation (#8634)
* Update tw.rs

* Update en.rs: Using `.` instead of `,`

* Update tw.rs: Fix formatting
2024-07-08 12:10:02 +08:00
FastAct
2af799f46e Update nl.rs (#8632) 2024-07-08 12:09:50 +08:00
rustdesk
3c7e24c605 add MOUSE_MOVE_TIME to key event, may work for
https://github.com/rustdesk/rustdesk/issues/8633 when window resume via
keyboard rather than mouse
2024-07-08 11:38:42 +08:00
rustdesk
7d961d895b add assign function in device.py for user/strategy/ab 2024-07-07 16:35:57 +08:00
rustdesk
53dbc2fa6f add OPTION_DISABLE_UDP 2024-07-07 09:25:27 +08:00
rustdesk
024220e58a add more fine-grained hide options for https://github.com/rustdesk/rustdesk-server-pro/issues/276 2024-07-06 23:41:53 +08:00
rustdesk
8621b93436 add display-name option for https://github.com/rustdesk/rustdesk-server-pro/issues/277 2024-07-06 23:10:50 +08:00
rustdesk
ac88121c4a fix ci 2024-07-06 11:46:33 +08:00
Vasilis553
90df80ed78 Update el.rs (#8628)
* Update el.rs

* Update el.rs
2024-07-06 11:35:29 +08:00
rustdesk
d4f3a87276 change to remove-preset-password-warning 2024-07-05 20:09:26 +08:00
rustdesk
48efdcf1f0 add remove-preset-password-warning-of 2024-07-05 19:26:20 +08:00
fufesou
0511cdbb21 feat: clipboard svg (#8615)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-05 09:30:59 +08:00
Thadah D. Denyse
8747b9847f Add basque language (#8597)
* Add basque language

* Update lang.rs
2024-07-05 09:30:07 +08:00
RustDesk
92d0fe1c3f Revert "feat: clipboard svg (#8608)" (#8612)
This reverts commit a9015bcf70.
2024-07-04 21:31:19 +08:00
fufesou
a9015bcf70 feat: clipboard svg (#8608)
* feat: clipboard svg

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: is_last_plain, reset on clipboard event

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-04 21:23:08 +08:00
flusheDData
f8f2686267 Update es.rs (#8609)
* Update es.rs

New terms added

* Update es.rs

Mistype correction
2024-07-04 20:21:28 +08:00
solokot
c2bd1b8965 Update ru.rs (#8610) 2024-07-04 20:21:18 +08:00
Nevaran
4eeee5b7ee Update bg.rs (#8611)
Added more translated parts, some might need more context to be more accurate
2024-07-04 20:21:06 +08:00
fufesou
dfc224ec01 fix: #8599 (#8603)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-04 20:20:25 +08:00
fufesou
86ff768241 clear unwrap (#8605)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-04 20:18:53 +08:00
jxdv
94addb162b update sk && cz tr (#8595)
* update sk translations

* update cz translations
2024-07-04 11:43:09 +08:00
rustdesk
bea65f8739 fix ci 2024-07-03 21:47:13 +08:00
rustdesk
92f570831d return x11 for tty session 2024-07-03 21:37:25 +08:00
Kleofass
9349210a87 Update lv.rs (#8591) 2024-07-03 20:40:57 +08:00
Vasyl Gello
95f4274eca vcpkg: sort triplets and restore local opus port for 1.5.1 (#8585)
* ci/flutter-build: Sort out triplets in job matrices

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* Restore local port for opus 1.5.1

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

---------

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-03 17:57:58 +08:00
Vasyl Gello
a6febb2816 [WIP] Fix F-Droid version file workflow (#8583) 2024-07-03 17:12:21 +08:00
Vasyl Gello
e294dafe7c Bump vcpkg baseline to 2024.06.15 (#8582)
* res/vcpkg: drop old opus port overlay

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* res/vcpkg: bump aom to 3.9.1

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* res/vcpkg: bump libvpx to 1.14.1

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* Bump vcpkg baseline to 2024.06.15

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

---------

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-07-03 15:53:17 +08:00
21pages
d00582e929 linux x11 rgb565 capture (#8580)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-03 14:20:41 +08:00
Vasyl Gello
6d2e985593 res/vcpkg: Bump aom to 3.9.1, opus to 1.5.1 and libvpx to 1.14.1 (#8555)
* res/vcpkg: drop old opus port overlay

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* res/vcpkg: bump aom to 3.9.1

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

* res/vcpkg: bump libvpx to 1.14.1

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>

---------

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2024-07-03 14:12:19 +08:00
Mr-Update
182e8c4ac0 Update de.rs (#8577) 2024-07-03 11:55:59 +08:00
bovirus
40019b80f6 Update Italian language (#8576) 2024-07-03 11:55:47 +08:00
fufesou
2f40b9dc04 fix: build ios (#8570)
ld: Undefined symbols:
     _kSecMatchSubjectWholeString, referenced from:
         security_framework::item::ItemSearchOptions::search::he568de2b0004b0c0 in liblibrustdesk.a[872](security_framework-88ef6afe340eb2ab.security_framework.e4562ffe63567184-cgu.0.rcgu.o)

TODO:

There's also a warning after commit "2116fec20b5a2165df97e329c156baf308668efc".
No idea how to fix it. But it does not stop building.

ld: warning: Could not find or use auto-linked framework 'CoreAudioTypes': framework 'CoreAudioTypes' not found

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-02 15:37:45 +08:00
21pages
8602b036bd remove special treatment when only use permanent passwrod but no password set (#8566)
1. Remove special treatment when only use permanent passwrod  but no password set, it has  no need and `Connection not allowd` prompt make user confusing.
2. When only use permanent password is chosen and the permanent password
   is empty, pop up the set-password dialog, if still not set in the
   dialog, back to the old choice
3. Add cancel confirm for 2fa and telegram bot

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-02 14:32:22 +08:00
fufesou
51db8e706d fix: win, clipboard image (#8561)
The window must belong to the current thread for clipboard-master.

https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-getmessage#:~:text=The%20window%20must%20belong%20to%20the%20current%20thread.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-02 00:46:55 +08:00
21pages
a0dc38f749 try fix linux arm64 build (#8560)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-02 00:19:18 +08:00
Mr-Update
625b610cfd Update de.rs (#8559) 2024-07-02 00:18:54 +08:00
fufesou
62a8349739 fix: clipboard data, decompress, buf too small (#8556)
* fix: clipboard data, decompress, buf too small

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: compress image

Signed-off-by: fufesou <linlong1266@gmail.com>

* decompress image, use default level

Signed-off-by: fufesou <linlong1266@gmail.com>

* chore

Signed-off-by: fufesou <linlong1266@gmail.com>

* decompress, zstd::decode_all

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-07-02 00:18:38 +08:00
rustdesk
0ab500c27c bring fdroid.yml back 2024-07-01 16:50:27 +08:00
21pages
285e974d1a ci for linux x86_64 sciter deb and flatpak (#8545)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-07-01 11:01:35 +08:00
rustdesk
e71d86c124 move clipboard in common.rs to clipboard.rs 2024-07-01 02:14:58 +08:00
rustdesk
14343e89d4 fix ci 2024-07-01 01:52:39 +08:00
rustdesk
3f2dfa521c fix ci 2024-07-01 01:43:16 +08:00
rustdesk
cd73368cb9 make clipboard dropped after no sub 2024-07-01 00:24:23 +08:00
rustdesk
84b5cd70ed initialize change_count to 1 so that first data always got 2024-06-30 23:27:33 +08:00
rustdesk
01672bc697 clipboard image, not tested, todo: set_html 2024-06-30 21:57:32 +08:00
21pages
763174657b add type to all Getx put/get/delete/isRegistered (#8550)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-30 21:24:18 +08:00
rustdesk
15fa80fb26 fix ci 2024-06-30 19:17:24 +08:00
FastAct
d537e2563d Update nl.rs (#8546) 2024-06-30 19:04:22 +08:00
rustdesk
1719e478e3 remove debug code 2024-06-30 17:07:23 +08:00
rustdesk
1f129e6ef3 change update_clipboard to threaded, since creating a context may take long 2024-06-30 17:05:09 +08:00
21pages
25d0ced8ba fix ci (#8543)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-30 13:54:40 +08:00
rustdesk
2116fec20b wl-clipboard-rs 0.9 and refresh cargo.lock 2024-06-30 12:07:32 +08:00
rustdesk
1252f45506 fix 100% cpu usage of clipboard disabled on remote menu 2024-06-30 10:57:15 +08:00
fufesou
1f4c62e480 fix: linux, arboard::new(), retry (#8538)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-30 01:13:45 +08:00
fufesou
bd334769fa fix: win, virtual display, privacy mode (#8537)
Restore display settings.

Only restore by the display registry settings.

Do not change display settings twice when turning off privacy mode.

Only restore the registry values.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-30 00:44:10 +08:00
jxdv
750368af7b Update cs tr (#8536)
* update common tr

* update tips
2024-06-29 22:26:06 +08:00
jxdv
2fb35c3596 Update sk tr (#8535)
* translate normal

* translate bot tips
2024-06-29 22:16:40 +08:00
21pages
5114a9d369 shared memory size use the max resolution of all displays (#8534)
The case of setting a monitor inserted later as the primary monitor is not taken into account

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-29 21:50:21 +08:00
solokot
4b6ba7938f Update ru.rs (#8533)
* Update ru.rs

* Update ru.rs
2024-06-29 21:41:09 +08:00
Vedant
1e400d2a64 Update winget-releaser to latest (#8532) 2024-06-29 21:17:10 +08:00
fufesou
967e63266f fix: win, multi-display settings changed (#8531)
1. Windows, multi-display, as the controlled side.
2. Connect
3. Turn on privacy mode, with mode 2.
4. Turn off privacy mode.

Then the display settings are continues changed when connect &
disconnect.

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-29 20:16:22 +08:00
21pages
f9b0a88213 fix switch to primary display but can't see UAC (#8527)
How to reproduce: elevate at primary display->switch to another
display->
trigger UAC->switch to primary display->can't see UAC

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-29 17:14:09 +08:00
21pages
d67afa49b4 portable service only run on main display (#8525)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-29 14:17:24 +08:00
fufesou
1fd170b089 fix: mobile more actions, check version 1.2.7 (#8526)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-29 11:50:40 +08:00
rustdesk
a632718e80 typo 2024-06-29 10:46:21 +08:00
rustdesk
9f72d05749 do not run self-host in ci commit flow 2024-06-28 23:32:23 +08:00
fufesou
c062813c6d Upgrade arboard (#8522)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-06-28 23:15:33 +08:00
21pages
3ae1638125 fix extracted forground window not foreground (#8521)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-28 22:36:29 +08:00
bovirus
96aff38862 Update Italian language (#8520) 2024-06-28 16:28:43 +08:00
rustdesk
ed3fb1efa4 bump to 1.2.7 2024-06-28 09:59:10 +08:00
fufesou
d689bbf38e refact: mobile more actions, divider (#8512)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-28 00:57:16 +08:00
fufesou
c1bbdaf9ae refact: mobile min cursor size, 12 (#8510)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-27 23:19:37 +08:00
21pages
ab9e1013b2 remove dpiAware from manifest in ci for self-extracted executable (#8508)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-27 22:23:25 +08:00
Samuel FORESTIER
e1140b1bea Tidy up configuration files UNIX permissions (#7983)
* Add missing libpam package causing build to fail using Docker image

```
wrapper.h:1:10: fatal error: 'security/pam_appl.h' file not found
```

Signed-off-by: Samuel FORESTIER <samuel+dev@forestier.app>

* Tidy up configuration files UNIX permissions

Signed-off-by: Samuel FORESTIER <samuel+dev@forestier.app>

---------

Signed-off-by: Samuel FORESTIER <samuel+dev@forestier.app>
2024-06-27 20:14:32 +08:00
21pages
cfd27c8d87 wakelock not block system sleep (#8504)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-27 20:09:51 +08:00
rustdesk
a18947eed2 fix typo 2024-06-27 18:24:04 +08:00
bovirus
f8592e0d5b Update Italian language (#8502)
* Update Italian language

* Fix typo
2024-06-27 18:10:41 +08:00
rustdesk
5bfdf05ff2 /hello rather than hello to activate bot 2024-06-27 18:01:14 +08:00
rustdesk
9e851542ec telegram bot works now 2024-06-27 17:36:50 +08:00
rustdesk
e79946b4e4 telegram bot ui settings and code sending 2024-06-27 16:18:41 +08:00
solokot
aed212d8f8 Update ru.rs (#8497) 2024-06-27 15:04:53 +08:00
fufesou
c5d3c7f390 Feat/android more actions (#8496)
* feat: android volume and power actions

Signed-off-by: fufesou <linlong1266@gmail.com>

* Add translations and refact action menus

Signed-off-by: fufesou <linlong1266@gmail.com>

* Remove divider

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: recover deleted translations

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-27 13:28:05 +08:00
fufesou
b047730830 Refact/android input changed notify clients (#8494)
* refact: android, input control changed, notify clients

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: android init input perm

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-27 13:05:45 +08:00
21pages
9c7d4ef1f7 not use nwg default features (#8492)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-27 12:11:08 +08:00
21pages
12d3c59172 windows portable loading ui (#8490)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-27 11:04:55 +08:00
Stas Solovey
ef06b7d5d0 add Belarusian locale (#8480)
* Update ru.rs

* Update ru.rs

* Update ru.rs

* Update ru.rs

* Update ru.rs

* Update ru.rs

* Update ru.rs

* Create be.rs (Belarussian locale)

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update be.rs

* Update lang.rs

* Update lang.rs

* Update be.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-06-26 20:32:05 +08:00
fufesou
f17e17a6b9 fix: mobile cursor, check null (#8481)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-26 19:49:52 +08:00
rustdesk
faf363cfd2 add TelegramBot 2024-06-26 18:49:41 +08:00
fufesou
dbbd9179b7 fix: android cursor scale (#8478)
* fix: android cursor scale

Signed-off-by: fufesou <linlong1266@gmail.com>

* Min scale restriction for mobile cursor

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-26 18:42:08 +08:00
rustdesk
49f848a453 refactor 2024-06-26 16:35:29 +08:00
rustdesk
ef56aea74f fix https://github.com/rustdesk/rustdesk/issues/8479 2024-06-26 16:28:31 +08:00
rustdesk
cb5fa85ac2 build 45 2024-06-26 09:59:35 +08:00
fufesou
11bdd3cfcd fix: ios keyboard, composing input (#8471)
* fix: ios keyboard, composing input

Signed-off-by: fufesou <linlong1266@gmail.com>

* Incorrect changes

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-26 00:24:57 +08:00
fufesou
f0dcc91907 fix: wrong use of Instant sub, just after booting (#8470)
* fix: wrong use of Instant sub, just after booting

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: ThrottledInterval, first next tick

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-25 20:33:38 +08:00
21pages
c1c2d26ec7 fix, check video_queue len rather than len when refresh (#8469)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-25 18:30:32 +08:00
21pages
93133b9a6c if fps is adjusted below 30, not set fps to 30 when changing image quality (#8468)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-25 17:25:50 +08:00
fufesou
245f08055f fix: mobile, chat menu, hide after tapping (#8465)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-25 00:31:41 +08:00
fufesou
00ddd63372 fix: ios, chat window position, wrong member value (#8464)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-24 22:56:13 +08:00
21pages
1765c7bbf4 fix multi display fps control (#8455)
* Calculate fps without distinguish displays, use one fps control
  because the controlled side control fps of all displays with one FPS
  variable.
* Because all displays decode frame in one thread, when there are N
  displays, the video frames received in one second is `fps * N`, so the
  calculated decode fps should be divided by N. Because the actual
  display count is not obvious in rust, when no data frame is received for 5 seconds, the display is considered inactive, and only the active display is used as the dividend.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-24 19:41:15 +08:00
Yevhen Popok
65edd55516 Update Ukrainian translation (#8453) 2024-06-24 17:32:00 +08:00
rustdesk
4947cf8718 fix https://github.com/rustdesk/rustdesk/issues/8452 2024-06-23 22:50:54 +08:00
jxdv
65dd2b8993 update sk.rs (#8449) 2024-06-23 18:05:28 +08:00
jxdv
ef82cfa034 update cs.rs (#8450) 2024-06-23 18:05:06 +08:00
rustdesk
1a69d525af fix tile type droplist and change to build 44 2024-06-23 11:39:44 +08:00
fufesou
307827be3c fix: mobile actions hide and mobile theme (#8447)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-23 11:26:15 +08:00
fufesou
40cb59336f fix: mobile actions, position (#8446)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-23 11:06:47 +08:00
XLion
a9e0ea8520 Update tw.rs (#8444) 2024-06-23 09:09:08 +08:00
rustdesk
baeee642dd build 43 2024-06-22 20:51:41 +08:00
Mr-Update
416efe9fd3 Update de.rs (#8443) 2024-06-22 20:51:33 +08:00
solokot
8b5ac390d1 Update ru.rs (#8442) 2024-06-22 20:05:56 +08:00
rustdesk
212e8e7559 fix one missing file 2024-06-22 12:45:32 +08:00
rustdesk
41a20b50ea split web js to v1 and v2 2024-06-22 12:29:20 +08:00
21pages
3742b51d58 quality monitor, delay displays as 0 when fps is 0 (#8441)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-22 09:39:02 +08:00
bovirus
1a21dff5d4 Update Italian language (#8439) 2024-06-22 08:11:09 +08:00
fufesou
bbf7d9e08a fix: android, no voice call under android 11 (#8440)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-22 08:10:54 +08:00
21pages
ffed29e632 fix typo (#8436)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-21 23:58:00 +08:00
21pages
0f6538c1a7 add enable directx option, android software encoding half resolution option (#8435)
* add option enable directx capture screen, default true

Signed-off-by: 21pages <sunboeasy@gmail.com>

* option android software encoding half scale, check isStart flag

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-21 18:54:32 +08:00
rustdesk
ff2e055a5a use flutter 3.13 for android because its video super slow on my phone 2024-06-21 18:14:58 +08:00
rustdesk
cdf97f8717 try out 3.13.9 with master 2024-06-21 17:42:58 +08:00
rustdesk
b2af79a3c5 try out 3.16.0 2024-06-21 17:05:51 +08:00
fufesou
74cc5abd09 fix: android prompt "Failed to stop voice call" on conn ended (#8434)
* fix: android prompt "Failed to stop voice call" on conn ended

Signed-off-by: fufesou <linlong1266@gmail.com>

* Remove invalid comment

Signed-off-by: fufesou <linlong1266@gmail.com>

* Better control of voice call status

Signed-off-by: fufesou <linlong1266@gmail.com>

* Better voice call status control

Signed-off-by: fufesou <linlong1266@gmail.com>

* better end conn for voice call

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-21 16:43:54 +08:00
rustdesk
32c4712d5e fix ci 2024-06-21 12:42:27 +08:00
rustdesk
3244395bfb try 3.22.2 playground 2024-06-21 12:34:00 +08:00
rustdesk
1cb0e1ce7b try out 3.22.2 2024-06-21 12:33:24 +08:00
fufesou
42394fcbdd fix: android, two finger pan, scale (#8429)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-21 09:07:32 +08:00
rustdesk
0b32e741f7 test 3.13.9 on master for android 2024-06-21 01:29:00 +08:00
rustdesk
80c5d59916 fix ci 2024-06-21 01:13:05 +08:00
rustdesk
e95823f543 for try out flutter 3.22.2 2024-06-21 01:00:46 +08:00
rustdesk
06fe972683 try out 3.22.2 for android 2024-06-21 00:45:45 +08:00
rustdesk
3057396c02 try latest 2024-06-21 00:19:05 +08:00
rustdesk
7db9543fee change back to old settings, only use flutter 3.13.9 2024-06-21 00:15:21 +08:00
rustdesk
58d86acf0d change back to 3.16.9 2024-06-20 23:51:58 +08:00
rustdesk
859020583d fix ci 2024-06-20 23:21:08 +08:00
rustdesk
0cab620ba5 try old flutter and vcpkg 2024-06-20 23:09:38 +08:00
rustdesk
4338fcc51a check if vpckg overrided 2024-06-20 23:06:42 +08:00
rustdesk
5f6f1e8d36 use prebuilt vcpkg to overwrite 2024-06-20 22:45:07 +08:00
fufesou
a91f244f35 fix: android, touch mode, one finger pan, start pos (#8427)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-20 22:21:14 +08:00
fufesou
82bf04da81 fix: android, touch mode, correct cursor input, on soft keyboard shows (#8426)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-20 22:18:57 +08:00
rustdesk
a679e4a5e3 vcpkg_root 2024-06-20 22:16:04 +08:00
rustdesk
3c79404534 use my vcpkg 2024-06-20 21:53:43 +08:00
rustdesk
ba707d1149 try out different ndk 2024-06-20 21:28:27 +08:00
rustdesk
93d88f30b4 test more commits 2024-06-20 21:10:43 +08:00
rustdesk
f5bc136b07 fix ci 2024-06-20 20:32:00 +08:00
rustdesk
ae69cbb207 fix ci 2024-06-20 20:30:55 +08:00
fufesou
39e3da1eb0 android, secure keyboard on remote input (#8425)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-20 20:20:32 +08:00
rustdesk
c1322b47c3 more commits 2024-06-20 20:13:57 +08:00
rustdesk
67f83bd5dd more commits 2024-06-20 19:48:40 +08:00
rustdesk
e424d01f3d publish missed 2024-06-20 19:41:43 +08:00
rustdesk
a424830893 fix ci 2024-06-20 19:23:17 +08:00
rustdesk
3c5810cc01 prepare android old version test 2024-06-20 19:16:51 +08:00
21pages
30bd4e1cef update hwcodec, use ms as pts like vpx (#8422)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-20 13:57:56 +08:00
RustDesk
7956953669 Revert "fix: android, touch mode, move cursor (#8419)" (#8421)
This reverts commit dcba4615a2.
2024-06-20 12:22:36 +08:00
fufesou
dcba4615a2 fix: android, touch mode, move cursor (#8419)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-20 08:29:07 +08:00
rustdesk
0bf9de8256 also check --server in loop 2024-06-19 21:29:54 +08:00
rustdesk
77f1c7e74c add crate::platform::quit_gui(); for double sure 2024-06-19 21:21:51 +08:00
rustdesk
27478946ea open new window not always work, so give it a little time before exit 2024-06-19 21:17:26 +08:00
rustdesk
1f25a8af86 fix macos stop service on gui not restart 2024-06-19 20:23:05 +08:00
rustdesk
d75caad71f move --server check into daemon.plist 2024-06-19 19:54:30 +08:00
rustdesk
adf0226641 fix ci and make macos service time check more aggressive 2024-06-19 19:10:44 +08:00
rustdesk
137f58a84a refactor macos service for delegate again, remove runme in install service of linux 2024-06-19 18:49:49 +08:00
21pages
7c45a68870 linux install service, stop service before start (#8414)
If the stop-service option before installation is "", after
installation --sever is also started up. When clicking to
start service, restart --server to make it read the config file,
otherwise the service can't be started util --server is restarted.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-19 16:29:40 +08:00
rustdesk
99edab4b61 hide docker from tao, this may fix https://github.com/rustdesk/rustdesk/issues/8399 2024-06-19 16:25:48 +08:00
fufesou
e50b72622c fix: android, touch mode, soft keyboard, no pointer events (#8409)
* fix: android, touch mode, soft keyboard, no pointer events

Signed-off-by: fufesou <linlong1266@gmail.com>

* Reset lastIsBlocked on touch mode toggled

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: reset lastIsBlocked when updating keyHelpToolsRect

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-19 15:58:23 +08:00
rustdesk
60dc40f47f try hide docker in tao delegate because hide in rustdesk side a bit late so that still seeing it sometimes
refactor service to make it restart after login to avoid delegate caught for seconds after login
also make main windows Close event restart itself for above case
2024-06-19 15:42:53 +08:00
21pages
841c331981 fix sleep duration when receive ipc close (#8410)
unit is second

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-19 14:02:13 +08:00
21pages
4eafa5a585 fix ci (#8407)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-19 10:12:10 +08:00
rustdesk
5a740e891e make main window can be reopen if killed by --server for creating ipc 2024-06-19 09:27:29 +08:00
rustdesk
1fcc7001bd use exit(-1) in Data::Close to make sure --server can restart 2024-06-18 22:42:42 +08:00
rustdesk
e57854422a fix kill main window in --server 2024-06-18 22:04:34 +08:00
21pages
8c39979848 fix get mac display scale, find screen from display id (#8401) 2024-06-18 19:37:15 +08:00
Stas Solovey
2c38648e39 update ru.rs (#8400)
* Update ru.rs

* Update ru.rs

* Update ru.rs

* Update ru.rs

* Update ru.rs

* Update ru.rs

* Update ru.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-06-18 19:36:32 +08:00
rustdesk
97aa739d69 revert https://github.com/rustdesk/rustdesk/pull/8368 2024-06-18 18:21:29 +08:00
Stas Solovey
b0042f29fb Update ru.rs (#8398)
* Update ru.rs

* Update ru.rs

* Update ru.rs
2024-06-18 17:08:44 +08:00
rustdesk
e3ca82945f fix https://github.com/rustdesk/rustdesk/issues/2680 2024-06-18 16:30:56 +08:00
rustdesk
bf6a3a7067 fix stupid flutter 2024-06-18 15:06:43 +08:00
rustdesk
d25670c79a fix https://github.com/rustdesk/rustdesk/issues/2680 2024-06-18 14:39:56 +08:00
XLion
32b26e4ad3 Update translation (#8394)
* Update tw.rs

* Update cn.rs

Add spacing
2024-06-18 09:54:03 +08:00
rustdesk
818439db48 fix ci 2024-06-18 08:43:19 +08:00
21pages
e23a9da1a8 sync get option in android setting (#8393)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-18 08:29:10 +08:00
21pages
37ebac2a9e update hwcodec, remove AVCodecParserContext (#8389)
It was used to decode different resolution with same decoder, but may
cause crash.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-17 23:53:43 +08:00
Kleofass
46bf552afc Update lv.rs (#8383) 2024-06-17 17:31:38 +08:00
rustdesk
70151e3dd8 add Push Notifications capability though we do not use it explictly, but our dep used it, have to enable it, otherwise review will refuse us 2024-06-17 12:50:29 +08:00
rustdesk
e933f0baf2 build 41 2024-06-17 11:16:33 +08:00
rustdesk
f2a612c3d9 add voice_call start_pa 2024-06-17 10:57:25 +08:00
flusheDData
4a648f0068 New terms added (#8377)
* Update es.rs

New term and tip added

* Update es.rs

change representación por renderizado (render)

* Update es.rs

New terms added
2024-06-17 10:36:10 +08:00
21pages
5b52742cf7 fix mobile ab/group not update when login with 2fa/email (#8378)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-17 10:35:57 +08:00
rustdesk
237d234277 add rustc 1.78 ABI change comment 2024-06-17 09:44:36 +08:00
rustdesk
ed0cba281f start dbus only for main 2024-06-16 23:59:09 +08:00
rustdesk
2e0eaed322 call _ffiBind.mainStartPa only for --cm 2024-06-16 23:51:00 +08:00
21pages
e2a6d66805 make mobile ab dropdown button text vertical center (#8376)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-16 23:41:40 +08:00
21pages
8d6de9ca59 opt android ab ui (#8374)
* multiline error banner
* mobile remove ab permission icons due to hard to press
* center ab dropdown button text

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-16 23:13:46 +08:00
fufesou
db108d964b fix: build 09f452b055 (#8373)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-06-16 22:37:14 +08:00
solokot
f016d453fa Update ru.rs (#8370) 2024-06-16 15:14:45 +08:00
21pages
60ea8d2c2b mac scale factor of each screen (#8368)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-16 12:01:41 +08:00
jxdv
12ff1319f1 update sk.rs (#8364) 2024-06-15 16:03:56 +08:00
jxdv
f224d8872e update cs.rs (#8365) 2024-06-15 16:03:42 +08:00
rustdesk
5cf2d5f062 change back to 1.75 since sciter failed on m1 with 1.78 because of https://blog.rust-lang.org/2024/03/30/i128-layout-update.html 2024-06-15 14:03:33 +08:00
fufesou
92dd0ee1dd fix: non texture, multi window, switch display (#8353)
* fix: non texture, multi window, switch display

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix build

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-14 17:55:03 +08:00
bovirus
70c20fc76f Update Italian language (#8352) 2024-06-14 17:39:24 +08:00
fufesou
07e0b5ac10 fix: desktop, remote toolbar, remember collapse (#8349)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-14 00:28:59 +08:00
fufesou
12f7fc3d33 fix: push rgba only on desktop (#8348)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-13 23:22:03 +08:00
fufesou
60f47cb549 fix: desktop, remote toolbar autohide (#8347)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-13 21:04:00 +08:00
Mr-Update
d33fa3f073 Update de.rs (#8346) 2024-06-13 21:01:24 +08:00
21pages
2e4fafcf46 add missing call of androidUpdatekeepScreenOn (#8345)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-13 19:24:38 +08:00
21pages
ab451b9056 android keep screen on option (#8344)
* android keep screen on option

Keep screen on option relays on floating window.

Three options: Never, During controlled(default), During service is on

Signed-off-by: 21pages <sunboeasy@gmail.com>

* When rustdesk is in forground, be consistent with the settings

Signed-off-by: 21pages <sunboeasy@gmail.com>

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-13 18:30:29 +08:00
fufesou
bc875a35b0 Refact/multi window soft rendering (#8343)
* refact: multi_window_soft_rendering

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: window pos, potential wait for image

Signed-off-by: fufesou <linlong1266@gmail.com>

* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

* remove debug print

Signed-off-by: fufesou <linlong1266@gmail.com>

* explicitly set rgba_data.size_got to false after init

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: multi window, merge images, render with texture

Signed-off-by: fufesou <linlong1266@gmail.com>

* revert, flutter.rs, rgba valid

Signed-off-by: fufesou <linlong1266@gmail.com>

* Add displays index before sending capture msg

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: multi window, soft rendering

Signed-off-by: fufesou <linlong1266@gmail.com>

* fix: build

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-13 18:03:41 +08:00
rustdesk
8e12a34634 upgrade our ipc-parity and tokio-socks crate to tokio 1.38 2024-06-13 13:17:34 +08:00
rustdesk
77204127f2 use latest rust for non-windows, and upgrade tokio to 3.18 which fix a mpsc channel bug 2024-06-13 13:05:35 +08:00
fufesou
65c2ccdc93 fix: try fix, macos, flutter, focus changed, no reponse (#8338)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-13 10:42:50 +08:00
fufesou
964d4f1f87 try fix cursor id, int.parse, exceeds limit (#8333)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-13 00:34:23 +08:00
21pages
f559e9c74a disable hardware encoding if encoding fails too many times (#8327)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-12 23:37:51 +08:00
21pages
610009528b hwcodec, only process that start ipc server start check process (#8325)
check process send config to ipc server, other process get config from ipc server. Process will save config to toml, and the toml will be used if the config is none.

when start check process: ipc server process start or option changed
from disable to enable

when get config: main window start or option changed from disable to
enable, start_video_audio_threads.

Only windows implements signature, which is used to mark whether the gpu software and hardware information changes. After reboot, the signature doesn't change. https://asawicki.info/news_1773_how_to_programmatically_check_graphics_driver_version, use dxgi way to get software version, it's not consistent with the visible driver version, after updating intel driver with small version change, the signature doesn't change. Linux doesn't use toml file.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-12 20:40:35 +08:00
rustdesk
0f10a88b23 remove elevation/installation requirement for --get-id 2024-06-12 20:35:04 +08:00
Kleofass
60049c8cc5 Update lv.rs (#8323) 2024-06-12 17:20:29 +08:00
rustdesk
50aa5880de always call platformFFI.nextRgba no matter what to avoid dead lock because of unknown reason 2024-06-12 02:34:15 +08:00
rustdesk
47143318ba ensure nextRgba called no matter if image created 2024-06-12 01:40:54 +08:00
fufesou
c27791a9ac comments (#8316)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-12 00:53:54 +08:00
fufesou
b19d732a3a fix: audio rechannel len (#8315)
* fix: audio rechannel len

Signed-off-by: fufesou <linlong1266@gmail.com>

* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-12 00:32:10 +08:00
rustdesk
cd3db3a686 try to fix https://github.com/rustdesk/rustdesk-server-pro/issues/266 2024-06-11 19:51:33 +08:00
fufesou
35fb9f8897 fix: peer option, individual_windows, use 'N' instead of '' (#8307)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-10 23:01:55 +08:00
21pages
ec042434be use sihost.exe as fallback for run_as_user if no explorer.exe (#8305)
* There is no relevant information, but I found that each session has a unique sihost.exe, and the user name of the process is consistent with the user name of the session, and after using the task manager to kill this process, it will automatically restart. Checking sessionUserName=siHost UserName may be unnecessary, but since there is no evidence, check it anyway.
* GetFallbackUserPid is called only when explorer.exe does not exist.
* ProcessHacker shows that the tokens of explorer.exe and sihost.exe are the same, I know little about it.

Signed-off-by: 21pages <pages21@163.com>
2024-06-10 20:29:53 +08:00
rustdesk
f8041a3de5 fix merge problem of last commit 2024-06-10 19:53:02 +08:00
rustdesk
dd90096e13 remove useless stop-rendezvous-service 2024-06-10 16:12:08 +08:00
fufesou
9ab5512bfa fix: custom client, option to bool (#8303)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-10 11:01:39 +08:00
fufesou
32ab56f864 fix: custom client, options, option2bool() (#8302)
* fix: custom client, options, option2bool()

Signed-off-by: fufesou <linlong1266@gmail.com>

* format

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-10 00:11:59 +08:00
rustdesk
78d7bfac01 fix https://github.com/rustdesk/rustdesk/discussions/8031 2024-06-09 19:48:42 +08:00
21pages
57570c3ba6 is_ipc_file_exist quote Config::ipc_path (#8295)
Signed-off-by: 21pages <pages21@163.com>
2024-06-08 21:56:47 +08:00
21pages
ffac670f95 fix nt_terminate_process missing CloseHandle (#8294)
Signed-off-by: 21pages <pages21@163.com>
2024-06-08 21:15:01 +08:00
Yevhen Popok
be16f1be44 Update Ukrainian translation (#8293) 2024-06-08 20:51:06 +08:00
21pages
fd0f85d565 no explorer.exe, judge by pid retrived from cpp (#8291)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-08 16:50:35 +08:00
21pages
8de5f3f0d3 not close connection if failed to start cm due to no explorer.exe (#8290)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-08 16:11:51 +08:00
21pages
0bb537b872 fix kill occupied ipc process, find with enumerate, kill with NtTerminateProcess (#8289)
* I reproduced the issue, that process did't have title, couldn't be connected
  to and taskkill not work
* Test whether ipc is opccupied with enumerating named pipe
* With NtTerminateProcess, it was killed successfully.
* There is a way to find the exact process which occupy the ipc, I have
  not check it, it's from https://github.com/winsiderss/systeminformer

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-08 14:09:16 +08:00
Mr-Update
987da00be0 Update de.rs (#8286) 2024-06-08 09:43:50 +08:00
jxdv
e9e2214d29 update cs.rs (#8285) 2024-06-08 09:43:32 +08:00
jxdv
ac9f3317f1 update sk.rs (#8284) 2024-06-08 09:43:17 +08:00
bovirus
7da85d277e Update Italian language (#8282) 2024-06-07 20:48:19 +08:00
solokot
274244b055 Update ru.rs (#8281) 2024-06-07 15:49:52 +08:00
fufesou
8fa611daed refact: Wayland, not support multiple displays (#8280)
* refact: Wayland, not support multiple displays

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: Wayland disable multiple for RemoteDesktop

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-07 12:59:42 +08:00
21pages
64d0fb17f7 add floating window setting (#8279)
* Set `disable-floating-window` in client ui, it shows enabled when
  option is enabled and has floating window permission.
* Remove ignore battery setting because not work on every device.
* When the phone orientation changes, make the Y coordinate change
  proportionally, when changing back, the floating window position is still the original one.
* Add custom client option `floating-window-untouchable` to make the
  click event pass through the floating window automically. Set it untouchable automically when transparency is 0.
* On my phone, floating window size 16 no works and 32 works, so keep
  the size range [32, 320]

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-07 11:04:18 +08:00
fufesou
6d1d844b14 refact: Wayland, do not show multi displays (#8277)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-07 09:54:50 +08:00
fufesou
686dd11d8e fix: peer menu, hidden by wrong check (#8275)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-07 00:20:55 +08:00
21pages
9d42ee9df8 vram avoid always fallback to gdi (#8272)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-06 22:52:31 +08:00
21pages
9562768a04 android floating window (#8268)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-05 23:11:44 +08:00
Kleofass
54b8daede4 Update lv.rs (#8262) 2024-06-05 18:44:47 +08:00
21pages
bd51afe86c fix rustPointerInput jni parameter declaration, call new_string in with_local_frame (#8266)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-05 18:09:01 +08:00
fufesou
a84b9bd2c8 fix: setMovable only on macos (#8261)
* fix: setMovable only on macos

Signed-off-by: fufesou <linlong1266@gmail.com>

* Refact and comments

Signed-off-by: fufesou <linlong1266@gmail.com>

* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

* Refact comments

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-05 14:52:56 +08:00
rustdesk
ce1dac3b86 attempt to fix local reference table overflow, https://github.com/rustdesk/rustdesk/issues/4118 2024-06-05 00:38:54 +08:00
rustdesk
2dcd9f02cd bump to 1.2.6 2024-06-03 21:01:41 +08:00
rustdesk
416d57bec6 https://github.com/rustdesk/rustdesk/pull/7971 2024-06-03 13:40:14 +08:00
21pages
7d56717cf5 msgbox responds to numpadEnter as submit (#8248)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-03 11:19:35 +08:00
fufesou
32ef5f47f8 fix: macos tab drag (#8242)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-02 10:56:29 +08:00
fufesou
32346c23e0 fix: macos, terminate, close main then remote windows (#8240)
* fix: macos, terminate, close main then remote windows

Signed-off-by: fufesou <linlong1266@gmail.com>

* comments

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-02 10:35:54 +08:00
fufesou
b6ebf61d6c fix: macos, fullscreen, remove mimimize button (#8238)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-01 21:28:35 +08:00
fufesou
d79efcedef fix: close all windows, obfuscated window id (#8237)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-01 21:28:03 +08:00
21pages
18464ec570 windows replace uni with cmd to start up main window after installation (#8235)
This is to avoid uni link not working

Other change: The install window now has the title "appname - Install" to distinguish it from the main application window.

Signed-off-by: 21pages <pages21@163.com>
2024-06-01 20:28:21 +08:00
fufesou
ed5487a1fc refact: mobile actions (#8236)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-01 20:23:58 +08:00
fufesou
df36580451 fix: tab, disable dragging (#8228)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-06-01 00:10:18 +08:00
rustdesk
bd7790c1eb https://github.com/rustdesk/rustdesk-server-pro/issues/261 2024-05-31 20:58:55 +08:00
FastAct
67d66c6750 Update nl.rs (#8224) 2024-05-31 19:57:26 +08:00
21pages
1c00d7aa1a android broadcast display changed immediately when change scale (#8219)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-31 16:44:42 +08:00
21pages
68cabe596d update hwcodec, fix wrong gop, which causes FFmpeg nvenc vram encode delay (#8220)
Signed-off-by: 21pages <pages21@163.com>
2024-05-31 16:44:18 +08:00
21pages
8919ea65e3 fix, mac hwcodec decoding align use dst_align (#8215)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-30 23:40:25 +08:00
bovirus
d4dda94e2a Update Italian language (#8214) 2024-05-30 16:57:14 +08:00
XLion
ee58b37d1e Update translations (#8210)
* Update translations

Add additional hint for `texture_render_tip` to let user know that it may be an option to fix issue.

* fix formatting for tw.rs
2024-05-30 15:09:12 +08:00
rustdesk
06cb49ec71 preset-address-book-name preset-address-book-tag https://github.com/rustdesk/rustdesk-server-pro/issues/257 2024-05-30 14:27:47 +08:00
jxdv
caca7e5860 update cs.rs (#8208) 2024-05-30 08:33:32 +08:00
jxdv
3ddb4c9799 update sk.rs (#8207) 2024-05-30 08:30:54 +08:00
21pages
74c24caae9 not show paste menu when mobile control mobile (#8204)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-29 20:38:56 +08:00
æLtorio
48e8a25f6e Add missing french language tips (#8201)
* french language tips

* makes spaces conformed to original file

---------

Co-authored-by: Ronan <ronan.le_meillat@highcanfly.club>
2024-05-29 19:10:47 +08:00
fufesou
fd045043a1 fix: flutter image pub, version 3 to 4, get bytes (#8202)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-05-29 19:10:15 +08:00
Mr-Update
0e97696b47 Translation missing (#8199) 2024-05-29 17:11:13 +08:00
æLtorio
804764d529 french translations (#8198)
* french translations

* typo

---------

Co-authored-by: Ronan <ronan.le_meillat@highcanfly.club>
2024-05-29 16:52:40 +08:00
Yevhen Popok
98a38754d4 Update Ukrainian translation (#8195) 2024-05-29 15:07:37 +08:00
21pages
837382349e fix the bottom of FFmpeg vram qsv encoding being cropped (#8191)
Signed-off-by: 21pages <pages21@163.com>
2024-05-29 13:34:22 +08:00
fufesou
d2f119b85e fix: no forcely adaptive view style, if peer is android (#8189)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-05-29 12:24:33 +08:00
fufesou
89d855d085 fix: deactive widget ancester (#8187)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-05-29 08:16:36 +08:00
bovirus
1bfafaf07c Update Italian language (#8185) 2024-05-29 08:15:17 +08:00
solokot
cf4f073153 Update ru.rs (#8183) 2024-05-29 08:14:57 +08:00
flusheDData
aca9ba1a49 term change (#8181)
* Update es.rs

New term and tip added

* Update es.rs

change representación por renderizado (render)
2024-05-29 08:14:31 +08:00
flusheDData
399e20a14a Update es.rs (#8179)
New term and tip added
2024-05-28 22:33:52 +08:00
fufesou
7ca5a0b977 fix: switch texture, do not input os password (#8178)
* refact: switch texture, do not input os password

Signed-off-by: fufesou <linlong1266@gmail.com>

* Switch texture, refresh video

Signed-off-by: fufesou <linlong1266@gmail.com>

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
2024-05-28 22:33:28 +08:00
Mr-Update
74d4505b3d Update de.rs (#8177) 2024-05-28 21:56:36 +08:00
rustdesk
df74a38b90 disable-group-panel for https://github.com/rustdesk/rustdesk-server-pro/issues/250 2024-05-28 20:10:12 +08:00
rustdesk
e8d02905fe pre-elevate-service for https://github.com/rustdesk/rustdesk-server-pro/issues/252 2024-05-28 19:58:47 +08:00
rustdesk
123a45149d bump to 1.2.5 2024-05-28 17:14:55 +08:00
fufesou
72ec86b58d refact: texture render as an option (#8168)
* refact: texture render as an option

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: texture render, translation

Signed-off-by: fufesou <linlong1266@gmail.com>

* refact: texture render as option

Signed-off-by: fufesou <linlong1266@gmail.com>

* Update ui_interface.rs

---------

Signed-off-by: fufesou <linlong1266@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-05-28 16:42:30 +08:00
21pages
010b17509a fix android get raw data (#8171)
If `std::ptr::copy_nonoverlapping` is not in `take`, it's not protected by the lock.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-28 16:35:59 +08:00
rustdesk
278d593580 adjust log file days from 7 days to 31 days 2024-05-28 15:52:50 +08:00
FastAct
f997a1ff52 Update nl.rs (#8170) 2024-05-28 15:40:04 +08:00
21pages
036d10cfbe android: for software encoding and screen size > 1200, display size reduced to half (#8167)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-28 12:43:13 +08:00
fufesou
b0c21e927b https://github.com/rustdesk-org/rustdesk_desktop_multi_window/pull/11 (#8166)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-05-28 10:30:56 +08:00
21pages
fcece3732c android request external stroage when start service for log (#8161)
This will not influence file transfer permission. Requesting external storage permissions does not turn on file transfer permissions, and turning off file transfer permissions does not turn off external storage permissions.

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-27 21:01:09 +08:00
21pages
c7308dbbc9 fix mediacodec bad encoding quality (#8159)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-27 19:34:40 +08:00
fufesou
9ce62dc584 fix: window backgroud color (#8155)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-05-27 09:29:31 +08:00
21pages
0442f7012b fix mac render memory, dispose old decoded image (#8140)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-27 09:27:30 +08:00
mehdi-song
e7f0f0ff8d Update fa.rs (#8141) 2024-05-25 09:58:53 +08:00
21pages
4fd4b24fa2 call capture_displays when no enable flutter_texture_render (#8146)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-25 09:45:12 +08:00
21pages
17d18f1dd8 impore fps control, quicker send refresh and clear video queue (#8137)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-24 17:21:16 +08:00
21pages
902e166f0c fix mediacodec check_bitrate_range not work (#8133)
should check with mc_name, and that cause the highest custom bitrate
being invalid

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-24 14:07:48 +08:00
fufesou
1efce51222 fix: restore window, on connection (#8129)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-05-23 22:11:40 +08:00
21pages
7da09f6296 sort address book name dropdown (#8127)
Signed-off-by: 21pages <pages21@163.com>
2024-05-23 17:44:48 +08:00
fufesou
b8d9c4c378 fix: mutlwindow, fullscreen (#8123)
Signed-off-by: fufesou <linlong1266@gmail.com>
2024-05-23 09:51:19 +08:00
21pages
49b0630752 fix android mediacodec encoding align (#8121)
* update ffmpeg, mediacodec encode align 64
* more d3d11 decode availablity check
* remove unused mediacodec info

Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-05-22 20:18:09 +08:00
Yevhen Popok
91f07b4b03 Update Ukrainian translation (#8118) 2024-05-22 17:17:59 +08:00
21pages
b2f4ba0882 fix cursor menu divider and Auto (null) (#8116)
Signed-off-by: 21pages <pages21@163.com>
2024-05-22 15:07:47 +08:00
fufesou
1acd7bd19c fix: macos fullscreen state (#8110)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-21 23:38:27 +08:00
fufesou
534fc9c40c fix: linux, login wayland, server (#8111)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-21 23:35:47 +08:00
fufesou
e192f10c56 fix: proxy, username, enable (#8109)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-21 21:27:32 +08:00
fufesou
676ee99709 fix: revert window border width on Win and Mac (#8100)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-20 16:24:28 +08:00
fufesou
6e5622a97a fix: user option, enable file copy paste (#8096)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-19 20:41:19 +08:00
fufesou
d8c9250aab refact: custom client proxy (#8093)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-19 16:40:49 +08:00
fufesou
986b9fb0e0 refact: custom client, remove enable-check-update (#8092)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-19 16:32:15 +08:00
fufesou
3c502c6fc2 refact: replace some option keys (#8090)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-19 14:07:42 +08:00
fufesou
72d59af7b0 fix: popup menu, nav, pop (#8089)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-18 23:55:05 +08:00
21pages
d3eaa6600d fix, windows try kill flutter main window process only when --server's ipc is (#8086)
occupied

Signed-off-by: 21pages <pages21@163.com>
2024-05-18 23:14:42 +08:00
fufesou
96f41fcc02 refact: custom client, more advanced settings (#8085)
* refact: custom client, more advanced settings

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* feat: custom client, more advanced settings

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-18 23:13:54 +08:00
21pages
c2b7810c33 windows kill flutter main window when --server close (#8077)
Signed-off-by: 21pages <pages21@163.com>
2024-05-18 08:24:28 +08:00
fufesou
44d4e13fa7 fix: windows, restore windows pos (#8075)
* fix: windows, restore windows pos

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: restore window pos, a better way to get cur scale factor

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* chore

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-18 08:23:09 +08:00
ddsardella
1dd7cd9384 Update Dockerfile for missing pam dev lib (#8078)
After failing to build with this due to the missing pam development library package I have added it to the DockerFile for the build image
2024-05-18 08:21:40 +08:00
fufesou
8357d4675a Fix/custom client advanced settings (#8066)
* fix: custom client, advanced settings

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: custom client, default options

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: cargo test

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: remove prefix $ and unify option keys

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: custom client, advanced options

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* debug custom client, advanced settings

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* custom client, advanced settings. Add filter-transfer to display settings

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* custom client, advanced settings

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: custom client, advanced settings, codec

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: custom client, advanced settings, whitelist

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-17 14:19:11 +08:00
21pages
3a4390e0c7 fix wrong feature to call update_supported_encoding (#8067)
Signed-off-by: 21pages <pages21@163.com>
2024-05-16 16:05:18 +08:00
XLion
68fa688c96 Update tw.rs (#8065) 2024-05-16 15:48:39 +08:00
Mr-Update
42428261d7 Update de.rs (#8063) 2024-05-15 17:20:03 +08:00
flusheDData
e01b1ed04d Android new call tip (#8057)
* Update es.rs

New terms added

* Update es.rs

New tip added

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-05-15 09:42:07 +08:00
Mikhail Samodurov
4e5dcd827b CI: Remove unused apt package (#8048)
* Update bridge.yml

Removed apt instructions for metapackages clang and llvm in favor of specific version package

* Replaced apt instructions to use specific llvm and libclang version
2024-05-15 07:38:31 +08:00
flusheDData
e8003510ef Update es.rs (#8047)
New terms added

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-05-15 07:15:26 +08:00
bovirus
da23e26a70 Update Italian language (#8052) 2024-05-15 07:12:33 +08:00
jxdv
c5b781fb02 update sk.rs (#8053) 2024-05-15 07:12:14 +08:00
jxdv
3bb1c22f49 update cs.rs (#8054) 2024-05-15 07:11:46 +08:00
fufesou
53647fd58e fix: mobile chat icon (#8041)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-14 15:35:34 +08:00
fufesou
0500bf070e refact: android audio input, voice call (#8037)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-14 09:20:27 +08:00
21pages
d70b0cdd4f Not require both max-width and max-height of mediacodec larger than (#8036)
screen width and screen height

* Only use hardware codec, when api < 29, judge with codec name prefix.

Signed-off-by: 21pages <pages21@163.com>
2024-05-13 20:24:50 +08:00
21pages
7e09809ad8 auto codec, h265 > h264 > vp9/vp8 (#8032)
Signed-off-by: 21pages <pages21@163.com>
2024-05-13 16:27:48 +08:00
21pages
a7499c2de8 add ffmpeg mediacodec h264/h265 encode (#8028)
* Check available when app start from kotlin via get codec info
* For latency free, repeat encode 10 frame at most when capture return WouldBlock
* For changing quality, kotlin support but jni doesn't support, rerun video service when quality is manualy
  changed
* 3 or 6 times bitrate for mediacodec because its quality is poor

Signed-off-by: 21pages <pages21@163.com>
2024-05-13 12:39:04 +08:00
rustdesk
4c99b8c70e upgrade tokio to 3.17 for a windows named pipe race condition,
https://github.com/tokio-rs/mio/pull/1760, https://github.com/tokio-rs/tokio/issues/6369
2024-05-12 14:08:21 +08:00
XLion
8b6913d31f Update tw.rs (#8022) 2024-05-12 10:49:49 +08:00
rustdesk
97f0642a8b remove fdroid, no idea why do we need this. 2024-05-11 16:27:44 +08:00
rustdesk
a04dd6ad31 split fdroid ci out 2024-05-11 16:24:04 +08:00
rustdesk
9827c76514 fix ci 2024-05-11 16:17:55 +08:00
21pages
712bfbae92 fix, not unregister gpu texture when closeSession is false (#8018)
Signed-off-by: 21pages <pages21@163.com>
2024-05-11 11:11:12 +08:00
jxdv
0152e937ec update cs.rs (#8013) 2024-05-11 08:55:30 +08:00
jxdv
c066dc8c24 update sk.rs (#8012) 2024-05-11 08:55:16 +08:00
Kleofass
0b96b3f345 Update lv.rs (#8010) 2024-05-11 08:54:59 +08:00
Mr-Update
b5781933b6 Update de.rs (#8007) 2024-05-11 08:54:44 +08:00
fufesou
d851bf8b69 fix: move tab to new window, black screen (#8016)
* fix: move tab to new window, black screen

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: can remove

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-11 08:54:17 +08:00
fufesou
b6d6a4360f fix: linux resizable (#8015)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-11 08:53:19 +08:00
fufesou
69b11e8dc6 fix: linux, custom client, incoming only, resizable (#8005)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-10 16:40:29 +08:00
rustdesk
6e78037770 fix linux custom client tray 2024-05-10 15:12:07 +08:00
fufesou
bed0375f45 fix: android, stop capture, release surface (#8004)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-10 14:37:00 +08:00
rustdesk
42d723f82f less cpu usage of sciter version build 2024-05-10 14:19:06 +08:00
rustdesk
fb0ce8c974 for saving disk space 2024-05-10 14:03:40 +08:00
21pages
d55770f12b remove android resolution scale (#8002)
Signed-off-by: 21pages <pages21@163.com>
2024-05-10 10:18:20 +08:00
fufesou
125c275623 fix: android media project dialog every conn on Android 14 (#7997)
* fix: android media project dialog every conn on Android 14

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* comments

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* comments

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-09 23:33:34 +08:00
21pages
c640f7ed12 fix android crash caused by outdated video frame ptr (#7996)
Signed-off-by: 21pages <pages21@163.com>
2024-05-09 22:53:01 +08:00
fufesou
73662ed7d9 fix: linux, custom client, incoming, window size (#7995)
* fix: linux, custom client, incoming, window size

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* comments

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-09 22:51:53 +08:00
21pages
a595d83232 fix android possible waiting for image issue (#7994)
Signed-off-by: 21pages <pages21@163.com>
2024-05-09 18:59:51 +08:00
solokot
6743b4f290 Update ru.rs (#7993) 2024-05-09 18:09:44 +08:00
rustdesk
e8ecb738d0 remove msi beta 2024-05-09 18:09:17 +08:00
bovirus
9c20968e05 Update Italian language (#7992) 2024-05-09 16:31:04 +08:00
rustdesk
9f80690d8a fix flatpak 2024-05-09 16:09:19 +08:00
rustdesk
e58a95e7d9 fix flatpak 2024-05-09 16:03:12 +08:00
fufesou
d9b96d2f31 fix: build (#7989)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-09 11:13:35 +08:00
fufesou
bbe9017318 fix: wayland delete restore token (#7988)
* fix: wayland delete restore token

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Wayland close session when clearing restore token

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix build

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Refact Wayland option

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Wayland clear screen selection, fake token

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix build web

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: build

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* chore

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-09 11:03:59 +08:00
21pages
a31a68ba17 If there is hardware ram encoder as fallback, not require all adapters (#7987)
support the codec format

Signed-off-by: 21pages <pages21@163.com>
2024-05-09 09:02:25 +08:00
bovirus
9d56e29a09 Update Italian language (#7984) 2024-05-09 07:33:12 +08:00
Mr-Update
32fca6f9b3 Update de.rs (#7982) 2024-05-09 07:32:54 +08:00
Kleofass
72c2de575a Update lv.rs (#7979) 2024-05-09 07:32:38 +08:00
rustdesk
93d4987dcc remove package to image 2024-05-08 21:29:33 +08:00
rustdesk
2a25034039 fix flatpak 2024-05-08 20:45:09 +08:00
21pages
5ba1c2587d opt supported encoding update, consider multi connections (#7978)
Signed-off-by: 21pages <pages21@163.com>
2024-05-08 20:31:39 +08:00
rustdesk
1b0a3e610e refactor flatpak/appimage deb path 2024-05-08 20:07:57 +08:00
RustDesk
2820f3f798 Update flutter-build.yml 2024-05-08 18:09:29 +08:00
21pages
09f3850250 installed windows client save incoming recording to a specific directory (#7974)
Signed-off-by: 21pages <pages21@163.com>
2024-05-08 17:04:53 +08:00
RustDesk
35832f8f7f Revert "fix: bump winget releaser version & add dependabot (#4848)" (#7971)
This reverts commit 7466d8cb3a.
2024-05-08 14:19:09 +08:00
sitiom
7466d8cb3a fix: bump winget releaser version & add dependabot (#4848)
* fix: bump winget releaser version

* ci: add dependabot
2024-05-08 14:13:55 +08:00
21pages
ea3786457b cm window always on top (#7953)
Signed-off-by: 21pages <pages21@163.com>
2024-05-08 12:08:37 +08:00
fufesou
01322146c0 refact: window frame border (#7946)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-08 09:59:05 +08:00
bovirus
26adc557bf Update Italian language (#7943) 2024-05-08 09:52:04 +08:00
jxdv
36e52d8165 update sk.rs (#7949) 2024-05-08 09:51:50 +08:00
jxdv
4c0211fa23 update cs.rs (#7950) 2024-05-08 09:51:33 +08:00
fufesou
a3b4dcf762 fix: wayland, accept conn (#7951)
Show prompt window after the controlled side accepting the connection.

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-08 09:50:55 +08:00
fufesou
5537c525ca refact: comments, wayland, restore token (#7947)
We cannot store restore_token if the server is not running.

Because `org.freedesktop.portal.RemoteDesktop` does not support persist
mode for now.

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-08 09:49:16 +08:00
21pages
3746fd88b5 Show current codec in menu when auto codec is chosen (#7942)
* change negotiated codec name to negotiated codec format

Signed-off-by: 21pages <pages21@163.com>

* fallback to vp9 directly if failed to create encoder

Current fallback method is clear hwcodec config

Signed-off-by: 21pages <pages21@163.com>

* show current codec in menu when auto codec is chosen

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-05-07 20:34:23 +08:00
21pages
e373144350 android 13+ request notification permission when start service (#7941)
Signed-off-by: 21pages <pages21@163.com>
2024-05-07 18:45:05 +08:00
fufesou
3be4bfc821 fix: ci, ios (#7940)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-07 16:53:57 +08:00
fufesou
2c1595d0d5 fix: voice call, select audio input device (#7922)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-07 16:18:48 +08:00
fufesou
f08933f93c fix: translate, proxy (#7923)
* fix: translate, proxy

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: proxy server, change placeholder to tooltip

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-07 15:21:38 +08:00
21pages
51813b7d7e set vp9 as auto codec (#7928)
Signed-off-by: 21pages <pages21@163.com>
2024-05-07 15:20:55 +08:00
21pages
4e30418f79 disable av1 for all 32 bit platforms (#7921)
Signed-off-by: 21pages <pages21@163.com>
2024-05-06 23:09:09 +08:00
21pages
0af370d736 x86 sciter set not support av1 due to slow (#7920)
Signed-off-by: 21pages <pages21@163.com>
2024-05-06 22:03:49 +08:00
rustdesk
ac04a032ad more for custom client of linux 2024-05-06 22:02:13 +08:00
21pages
f6223a6f71 dropdown menu for tabs that cannot be displayed (#7918)
* The visibility threshold is 75%
* Used in remote, file transfer, port forward and cm

Signed-off-by: 21pages <pages21@163.com>
2024-05-06 17:10:02 +08:00
fufesou
937cea5a01 refact: remove virtual_display_driver (#7915)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-06 15:26:21 +08:00
fufesou
846522037f fix: mstsc switch, plug in virtual displays (#7913)
* fix: mstsc switch, plug in virtual displays

Signed-off-by: fufesou <shuanglongchen@yeah.ne>

* Update display_service.rs

---------

Signed-off-by: fufesou <shuanglongchen@yeah.ne>
Co-authored-by: fufesou <shuanglongchen@yeah.ne>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-05-06 14:01:59 +08:00
fufesou
b5a88d00af fix: headless, plug in multiple virtual displays (#7912)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-06 13:34:31 +08:00
bovirus
7391271107 Update Italian language (#7910) 2024-05-06 10:59:55 +08:00
21pages
991694aca5 update hwcodec, qsv support changing bitrate (#7911)
Signed-off-by: 21pages <pages21@163.com>
2024-05-06 10:59:25 +08:00
rustdesk
29b13d19d6 modify GIO_MODULE_DIR 2024-05-05 23:33:58 +08:00
rustdesk
b0ff74c799 fix appimage 2024-05-05 16:44:59 +08:00
rustdesk
75c60660e7 remove unused code 2024-05-05 15:47:17 +08:00
rustdesk
eacc840c54 to make server work on wayland, have to use host's gstreamer 2024-05-05 15:46:30 +08:00
rustdesk
6d09c0adcf fix ci 2024-05-04 19:34:10 +08:00
rustdesk
fe1cf1105a fix ci 2024-05-04 19:10:32 +08:00
rustdesk
9454334ddd try out APPRUN_LD_LIBRARY_PATH 2024-05-04 18:29:22 +08:00
rustdesk
cc482c589c XDG_SESSION_TYPE as final backup 2024-05-04 17:22:43 +08:00
fufesou
b387bc1038 fix: linux, check load dylib in main.cc (#7901)
* fix: linux, check load dylib in main.cc

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Better error message

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact error message

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Better error message

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* check if "libnsl.so.1" is required, mainly for AppImage and yum

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-04 14:07:29 +08:00
fufesou
890b735985 fix: test case, test_if_valid_server (#7903)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-04 14:06:41 +08:00
XLion
eb81e00d20 Add /r tip at id_input_tip (#7900) 2024-05-03 23:45:00 +08:00
fufesou
c619bfc05c fix: flutter, process hangup on loading dylib failed (#7898)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-05-03 22:58:49 +08:00
rustdesk
b5935eb4c5 fix ci 2024-05-03 16:12:36 +08:00
rustdesk
73b3023c2d do not run ci if update res/ 2024-05-03 14:37:01 +08:00
21pages
4cf709fc26 update hwcodec, build linux ffmpeg lib on ubuntu 18 (#7897)
* Build linux ffmpeg lib on ubuntu 18 container
* Fix ffmpeg ram nvnec not work if the display connected to nvidia gpu
  is not the primary display
* Fix windows mfx lib link error if vram feature is not enabled.

Signed-off-by: 21pages <pages21@163.com>
2024-05-03 13:05:21 +08:00
rustdesk
b471b934f2 fix service unit again 2024-05-03 04:51:01 +08:00
rustdesk
abbd4c8934 fix ci 2024-05-03 03:24:22 +08:00
rustdesk
ed8c852d35 fix ci 2024-05-03 03:12:47 +08:00
rustdesk
c3598b3513 fix ci 2024-05-03 02:57:24 +08:00
rustdesk
b5f6a9c91a fix one flatpak feature missing 2024-05-03 02:52:41 +08:00
rustdesk
d18810b612 fix appimage --cm 2024-05-03 02:13:44 +08:00
rustdesk
3c17d713b3 try out APPIMAGE and ARGV0 2024-05-03 01:50:58 +08:00
flusheDData
d46b2d52ce New terms (#7894)
* Update es.rs

New terms added

* Update es.rs

A slight correction
2024-05-03 01:40:02 +08:00
rustdesk
e07d0b3b25 refactor 2024-05-03 00:42:20 +08:00
rustdesk
2ff3b24b33 fix --server not killed after service stop or uninstallation 2024-05-03 00:36:29 +08:00
rustdesk
115fb05c85 SPA_PLUGIN_DIR works for finding support/libspa-support.so, I tested
manually, though crash because used spa0.2
2024-05-02 22:41:13 +08:00
rustdesk
1e7e72883d fix libspa-support.so 2024-05-02 20:50:06 +08:00
rustdesk
1edb7639f6 try libspa-support again 2024-05-02 20:35:09 +08:00
rustdesk
33c5ceecec pibpipewire-0.2-1 2024-05-02 19:47:56 +08:00
rustdesk
a8a7f306fe fix ci 2024-05-02 19:32:53 +08:00
rustdesk
9888e51b93 fix ci 2024-05-02 19:32:00 +08:00
rustdesk
c3124314ef try to fix libspa-support.so not found in arm64 appimage when connection
started
2024-05-02 18:47:39 +08:00
rustdesk
975cd183bc fix ci 2024-05-02 18:19:36 +08:00
rustdesk
aa9da0b0c8 fix ci 2024-05-02 18:14:42 +08:00
rustdesk
d83b106607 fix ci 2024-05-02 17:12:05 +08:00
rustdesk
1a0a6cedc7 fix ci 2024-05-02 17:06:50 +08:00
rustdesk
d4e1a83a5a fix ci 2024-05-02 17:06:01 +08:00
rustdesk
03e93d546a fix ci 2024-05-02 17:03:20 +08:00
rustdesk
a1b957b0f7 fix ci 2024-05-02 16:51:37 +08:00
rustdesk
eeffb11841 fix ci 2024-05-02 16:50:11 +08:00
rustdesk
860dc7dbc2 fix ci, we have no arm64 makepkg image 2024-05-02 16:02:22 +08:00
rustdesk
220f267976 no need to publish deb in unsigned any more since we removed
appimage/flatpak/headless feature
2024-05-02 15:28:04 +08:00
rustdesk
b5bd6e008b fix ci 2024-05-02 14:57:17 +08:00
rustdesk
9d20bc6441 fix ci 2024-05-02 14:23:59 +08:00
rustdesk
1c36734092 fix ci 2024-05-02 14:23:27 +08:00
rustdesk
9102b6e6b8 fix ci 2024-05-02 13:54:09 +08:00
rustdesk
cd78fa9762 fix ci 2024-05-02 13:46:01 +08:00
rustdesk
407e2d4b7b fix ci 2024-05-02 13:45:14 +08:00
rustdesk
62d6ee46c4 fix ci 2024-05-02 13:36:48 +08:00
21pages
f15bf8166f fix visibilty of address book menu divider (#7890)
* fix visibilty of address book menu divider

Signed-off-by: 21pages <pages21@163.com>

* update hwcodec, fix nvenc use d3d11 without judging windows or linux

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-05-02 13:24:33 +08:00
rustdesk
7ce0b225ef remove linux_headless/appimage/flatpak feature 2024-05-02 13:23:32 +08:00
21pages
f853b29fd9 fix list type peer view (#7887)
* Layout list type peer view with layout rather than calculated width
* Hide menu sync from recent and web console if no write permission
* Pull ab twice because it's force updated when refreshCurrentUser is called on startup and
  connection status changing
2024-05-01 23:38:39 +08:00
rustdesk
f9cc8de93e fix ci 2024-05-01 21:42:21 +08:00
rustdesk
a924a876ae fix app name refactor 2024-05-01 21:29:11 +08:00
rustdesk
1f15d2c66e also --disable-flutter-texture-render for mac arm 2024-05-01 20:49:10 +08:00
rustdesk
ffd8354208 optimize ci 2024-05-01 19:40:30 +08:00
21pages
b3b1f4664c update hwcodec, fix wrong linux-x86_64 ffmpeg lib (#7883)
Signed-off-by: 21pages <pages21@163.com>
2024-05-01 19:15:21 +08:00
rustdesk
03410ded9a fix ci 2024-05-01 18:53:50 +08:00
rustdesk
09c9671376 fix ci 2024-05-01 16:38:04 +08:00
rustdesk
736b3b93e9 r26b -> r26d 2024-05-01 14:52:02 +08:00
rustdesk
4a71ca6b81 fix ci 2024-05-01 14:23:08 +08:00
RustDesk
a828f9b1f9 Update build-macos-arm64.yml 2024-05-01 14:06:44 +08:00
rustdesk
7ce5f8e8b6 fix ci 2024-05-01 13:05:50 +08:00
rustdesk
08b7e036b4 test vcpkg new in android 2024-05-01 12:58:27 +08:00
rustdesk
b1722a085e fix ci 2024-05-01 12:35:58 +08:00
rustdesk
9d985585b9 test android ci 2024-05-01 12:25:53 +08:00
rustdesk
de057b7234 enable makepkg for aarch64 2024-05-01 10:35:19 +08:00
rustdesk
04ec49e18e change to jobs 3 for selfhost linux arm 2024-05-01 10:20:44 +08:00
21pages
34c7c25908 update hwcodec, add windows ffmpeg vram encoding (#7876)
* windows add ffmpeg vram encoding
* windows add missing nvenc and qsv ram encoding, linux add vaapi, current codec table:  https://github.com/21pages/hwcodec?tab=readme-ov-file#codec

Signed-off-by: 21pages <pages21@163.com>
2024-05-01 00:07:09 +08:00
rustdesk
f74374e759 refactor ci 2024-04-30 23:19:59 +08:00
rustdesk
cce74f5631 fix ci 2024-04-30 23:14:37 +08:00
fufesou
003b9e48e1 fix: macos, crash, key input. --server also has UI. (#7878)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-30 22:53:42 +08:00
rustdesk
28bf73cd5a disable flutter texture render of osx intel 2024-04-30 22:50:59 +08:00
rustdesk
511b982dce --jobs=1 for arm64 linux selfhost 2024-04-30 22:42:09 +08:00
fufesou
dcd176f95c fix: keyboard input method, for flutter input (#7875)
* fix: keyboard input method, for flutter input

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* comment

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-30 21:06:24 +08:00
fufesou
d394aa8a15 feat: msi reg QuietUninstallString (#7873)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-30 17:42:28 +08:00
rustdesk
c8b35d5ce1 fix ci 2024-04-30 16:27:44 +08:00
fufesou
6cd107c3e3 Fix/msi service (#7872)
* refact: msi service, shell execute control

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: msi, skip adding rules when uninstalling

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* line indentation

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-30 15:57:12 +08:00
rustdesk
a884e32816 fix ci 2024-04-30 15:50:02 +08:00
rustdesk
45d2d3cbb5 refactor unsigned to prepare for flathub 2024-04-30 15:47:36 +08:00
rustdesk
382f75d249 shorten github ci time 2024-04-30 12:55:08 +08:00
rustdesk
e90010f0c0 no flatpak build for no upload 2024-04-30 12:44:10 +08:00
rustdesk
d6aaed1d82 fix ci 2024-04-30 12:03:53 +08:00
rustdesk
5082ed3b9e test flatpak arm64 2024-04-30 12:02:20 +08:00
rustdesk
a858e07db0 try out newer flatpak since error of "error: Nothing matches org.freedesktop.Platform in remote flathub" 2024-04-30 11:58:48 +08:00
rustdesk
df8f785731 rename some ci 2024-04-30 09:16:22 +08:00
rustdesk
332674a4a1 refactor linux build ci 2024-04-30 09:08:32 +08:00
fufesou
a686849bb6 fix: msi, delete service (#7867)
* fix: msi, delete service

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: msi, replace 1060 to ERROR_SERVICE_DOES_NOT_EXIST

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-30 08:21:34 +08:00
rustdesk
54d041701c print dlopen error 2024-04-29 18:00:34 +08:00
rustdesk
496eec17a1 add libc6:arm64 to same to x64 2024-04-29 15:43:57 +08:00
rustdesk
25eb67c582 try out ubuntu 20.04 for appimage arm64 2024-04-29 15:40:55 +08:00
XLion
a26fab3cce Update translation (#7861) 2024-04-29 14:42:26 +08:00
Mateusz Prais
7cb67cf8fb Add missing translations, improve wording and fix typos (#7860) 2024-04-29 11:26:46 +08:00
rustdesk
96ec1e937f libnsl.so.1 is included in libc6(already added), but it did not work, we
still need to install libnsl in fedora, however, installing libnsl on
x64 works, but on arm64 crashed (though no librustdesk.so any more)
2024-04-28 23:06:37 +08:00
rustdesk
b6616ed2cc change to libnsl 2024-04-28 21:12:04 +08:00
rustdesk
7e263af75f VideoConnCount for future use 2024-04-28 21:08:49 +08:00
rustdesk
b4c51f3d41 add libnsl2 for fedora 40 2024-04-28 20:24:39 +08:00
fufesou
1dfbaa1e02 fix: test if valid server, control if try test with proxy (#7858)
* fix: test if valid server, control if try test with proxy

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: build

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-28 14:22:21 +08:00
21pages
bd717349a7 update hwcodec, fix screen jitter (#7857)
Signed-off-by: 21pages <pages21@163.com>
2024-04-28 13:26:55 +08:00
rustdesk
99d7752e25 try libcanberra-gtk3-module 2024-04-28 12:58:15 +08:00
fufesou
22e58d7623 fix: test if valid server (#7856)
* fix: #7853, test if valid server

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact comments

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-28 12:17:39 +08:00
rustdesk
30ad142868 change to github m1 instead of selfhost m1 2024-04-28 12:14:00 +08:00
rustdesk
e084ff4f7b x64 mac 2024-04-28 11:43:53 +08:00
rustdesk
3bbec4081a add gtk modules 2024-04-28 10:44:14 +08:00
21pages
45137d5506 fix switch to setting page (#7849)
Signed-off-by: 21pages <pages21@163.com>
2024-04-27 23:24:07 +08:00
21pages
e9d9a656ab fix mouse wheel scroll up not work when controlling mac hidpi (#7848)
Signed-off-by: 21pages <pages21@163.com>
2024-04-27 17:31:35 +08:00
jxdv
ade458b820 update cs.rs (#7847) 2024-04-27 16:42:17 +08:00
jxdv
b022dcbb70 update sk.rs (#7846) 2024-04-27 16:40:24 +08:00
fufesou
b403a7a25d fix: scroll percent is auto reset after detecting displays change (#7845)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-27 15:01:21 +08:00
fufesou
a6632632fa fix: multi-window, click-move (#7844)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-27 13:45:44 +08:00
bovirus
b863ea51ad Update Italian language (#7838) 2024-04-27 13:13:21 +08:00
fufesou
796b66b057 fix: multi-window, init perms (#7839)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-26 22:34:11 +08:00
21pages
2626dcbc5f fix black screen issue when controlling the second screen on versions that lack multiple display support while using vram decoding (#7836)
* avoid create unnecessary video decoder

Signed-off-by: 21pages <pages21@163.com>

* controlled side uses the most frequent selected codec

Signed-off-by: 21pages <pages21@163.com>

* fix black screen when control old version's second screen

For versions that do not support multiple displays, the display parameter is always 0, need set type of current display

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-04-26 19:42:47 +08:00
rustdesk
105a758914 disable flutter build of ios, since ios sdk not installed yet 2024-04-26 19:16:52 +08:00
rustdesk
98cce186c7 fix ci 2024-04-26 19:07:16 +08:00
rustdesk
474e13f8b9 move ios ci to arm64 mac 2024-04-26 19:00:38 +08:00
rustdesk
09f87238dc vcpkg -> FLUTTER_ELINUX_COMMIT_ID, and remove FLUTTER_ELINUX_COMMIT 2024-04-26 18:15:16 +08:00
fufesou
2b3f87d6f2 fix: msi, custom client, license (#7834)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-26 13:49:53 +08:00
LelieL91
9d3c823603 Update it.rs (#7833)
Fix typo
2024-04-26 11:57:26 +08:00
Kleofass
7e00d70f4d Update lv.rs (#7832) 2024-04-26 11:57:15 +08:00
Mr-Update
0828f747e3 Update de.rs (#7831) 2024-04-26 11:57:05 +08:00
rustdesk
d7de0c2578 improe job 2024-04-26 11:54:31 +08:00
fufesou
4dfc82f684 fix: msi, app icon (#7830)
* fix: msi, app icon

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: check if icon.ico exists

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-25 22:35:51 +08:00
solokot
92748de7d4 Update ru.rs (#7827) 2024-04-25 20:17:25 +08:00
21pages
0e7e27f99d update hwcodec, fix gpu/cpu stuck caused by nv codec (#7826)
* Disable all nv codec encoding on windows except nv sdk encoding,
  because it doesn't use CUContext
* Keep nv codec on linux, because I didn't reproduce the stuck on it
* Add ffmpeg d3d11 vram decoding

Signed-off-by: 21pages <pages21@163.com>
2024-04-25 20:16:48 +08:00
FastAct
23147f2328 Update nl.rs (#7824) 2024-04-25 19:04:48 +08:00
Sahil Yeole
3811f41076 Feat: Follow remote cursor and window focus | Auto display switch (#7717)
* feat: auto switch display on follow remote cursor

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* feat: auto switch display on follow remote window focus

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix build and remove unused imports

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix linux get_focused_window_id

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* lock show remote cursor when follow remote cursor is enabled

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix config

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* prevent auto display switch on show all display and displays as individual windows

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix options

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix options

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove unused function

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove unwraps and improve iterations

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* set updateCursorPos to false to avoid interrupting remote cursor

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* update lang

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix web build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* update checks for options and enable in view mode

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use focused display index for window focus service

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use window center for windows display focused

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove unused imports

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use libxdo instead of xdotool

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix multi monitor check

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* enable show cursor when follow cursor is default

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove show_all_displays,use runtime state instead

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix show cursor lock state on default

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove view mode with follow options

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use separate message for follow current display

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix options

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* sciter support for follow remote cursor and window

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* add check for ui session handlers count

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use cached displays and remove peer info write

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* No follow options when show all displays

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* No follow options when multi ui session

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* turn off follow options when not used|prevent msgs

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use window center for switch in linux

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use subbed display count to prevent switch msgs

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix web build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* move subbed displays count

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* add noperms for window focus

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* add subscribe for window focus

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove window_focus message and unsub on multi ui

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* add multi ui session field

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

---------

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-04-25 13:26:02 +08:00
yuluo
43a0a4f8e0 fix: http/https proxy (#7821)
* add http(s) proxy

* Add front-end translation

* fix ui description

* For linux platform, add rustls support

* fix: Fix the proxy address test function.

* add: Added default prompts for agency agreement and some multi-language translations

* add: Http proxy request client

* fix: add async http proxy func and format the code

* add: Preliminary support for flutter front-end calling rust back-end http request

* Optimize HTTP calls

* Optimize HTTP calls

* fix: Optimize HTTP requests, refine translations, and fix dependencies

* fix: Win and macOS compilation errors

* fix: web platforms

* fix: Optimize import

* fix: Fix web platform issues

* fix: Fix web platform issues

* fix: update ci

* fix: test ci

* test: test CI

* Revert "fix: update ci"

This reverts commit 2e5f247b2e.

* test: test CI

* test: test CI

* fix: fix lock file

* fix: Optimize imports
2024-04-25 11:46:21 +08:00
whosehang
66d1af63b0 chore: fix some typos in comments (#7814)
Signed-off-by: whosehang <whosehang@outlook.com>
2024-04-24 14:16:19 +08:00
Cong Zhang
bc68f400f6 fix: add support for headless in docker (#7811) 2024-04-24 09:47:45 +08:00
rustdesk
67ee3a5a67 refresh_process_specifics 2024-04-23 20:26:21 +08:00
fufesou
b407893db5 refact: win idd, x86 on x64 (#7796)
* refact: win idd, x86 on x64

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* comments

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* typo

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: win idd, check if x64 and deviceinstaller64 exits

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: win idd

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: win idd, add logs

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-23 17:00:41 +08:00
fufesou
1b4a41b522 fix: portable, clear old files (#7802)
* fix: portable, clear old files

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix build

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-23 16:54:43 +08:00
RustDesk
ac7f8a6447 Revert "http/https proxy (#7600)" (#7801)
This reverts commit da57fcb641.
2024-04-23 15:26:16 +08:00
yuluo
da57fcb641 http/https proxy (#7600)
* add http(s) proxy

* Add front-end translation

* fix ui description

* For linux platform, add rustls support

* fix: Fix the proxy address test function.

* add: Added default prompts for agency agreement and some multi-language translations

* add: Http proxy request client

* fix: add async http proxy func and format the code

* add: Preliminary support for flutter front-end calling rust back-end http request

* Optimize HTTP calls

* Optimize HTTP calls

* fix: Optimize HTTP requests, refine translations, and fix dependencies
2024-04-23 15:00:23 +08:00
rustdesk
f11c332cb4 continue to remove --service runtime 2024-04-23 13:52:36 +08:00
flusheDData
3b4006b821 New terms added (#7797)
* Update es.rs

tip translation added

* Update es.rs
2024-04-22 23:01:00 +08:00
rustdesk
4c62d8c1b2 optimize runtime performance of macOS --service 2024-04-22 21:31:53 +08:00
fufesou
4f47d4482b refact: win, idd control (#7789)
* refact: win, idd control

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: win device control, better addr of

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: simple refact

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-22 10:37:08 +08:00
fufesou
ad062486ff Fix/win query arch (#7786)
* fix: win, query arch with GetNativeSystemInfo

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: idd, ci

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-21 14:55:42 +08:00
Kleofass
33c8bdfabf Update lv.rs (#7784) 2024-04-21 14:53:22 +08:00
rustdesk
0365c94407 remove IsWow64Process2 2024-04-20 19:24:44 +08:00
rustdesk
c81c4f9114 visual studio 2019 -> 2022 2024-04-20 18:20:09 +08:00
fufesou
d920953df1 typo (#7783)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-20 15:28:33 +08:00
rustdesk
f02a2e44d8 remove temp support_windows_specific_session 2024-04-20 15:13:04 +08:00
fufesou
fb1aa9c028 Fix. Multi-display connection, resolutions (#7782)
* fix: multi-display, change resolution

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: multi-displays, resolutions of displays

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: build

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact: Function rename

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact. Function rename

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-20 14:54:23 +08:00
jxdv
d4a1d4cd7e update cs.rs (#7780) 2024-04-20 11:31:07 +08:00
jxdv
8a6d9a1496 update sk.rs (#7779) 2024-04-20 11:30:57 +08:00
Mr-Update
a8eefbc9f0 Update de.rs (#7778) 2024-04-20 11:30:48 +08:00
bovirus
75521fe363 Update Italian language (#7776) 2024-04-20 11:30:38 +08:00
fufesou
c75778943f refact: msi, version and build date, check (#7775)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-19 18:16:07 +08:00
solokot
0e6fa37ae4 Update ru.rs (#7771) 2024-04-19 17:58:06 +08:00
fufesou
819eea9456 refact: msi (#7774)
* refact: msi

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Remove unused coment

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-19 17:57:04 +08:00
rustdesk
25eb8dc9b0 typo 2024-04-19 14:35:50 +08:00
rustdesk
40067f5aa2 no countdown in scam warning of android for custom build 2024-04-19 13:49:45 +08:00
rustdesk
1ffc10e44f flutter 19.6 2024-04-19 13:25:02 +08:00
21pages
5d5547ffef put andriod custom client logo to settings section list (#7768)
Signed-off-by: 21pages <pages21@163.com>
2024-04-19 12:44:52 +08:00
fufesou
e83c28bf54 refact: win, virtual display (#7767)
* refact: win, virtual display

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Update flutter-build.yml

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-04-19 11:31:52 +08:00
fufesou
a3c0911529 fix: msi, explicit wide char api (#7764)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-19 00:47:13 +08:00
rustdesk
ae23f0de03 Improve android threading, https://github.com/rustdesk/rustdesk/issues/4118#issuecomment-1515666629
todo: should we add some condition to assure imageReader not be closed
while callback is running?
2024-04-18 22:38:32 +08:00
rustdesk
edb5529df3 flutter_icons does not generate mipmap-ldpi, so I drop it also 2024-04-18 17:32:15 +08:00
21pages
4d3fb77786 remove hwcodec for sciter armv7 (#7753)
Signed-off-by: 21pages <pages21@163.com>
2024-04-18 16:19:29 +08:00
rustdesk
24ac7c1626 remove google-services.json 2024-04-18 15:23:12 +08:00
writegr
9b2ec62be9 chore: fix some typos in comments (#7752)
Signed-off-by: writegr <wellweek@outlook.com>
2024-04-18 14:39:38 +08:00
21pages
4252b5e273 enable ffmpeg native h26x software decoders for all platforms (#7750)
* enable ffmpeg native h26x software decoders for all platforms

* h26x software decoders depend on hwcodec feature, so all platforms
  enable it, software h26x decoders are always available like vpx, no available check and no option
* ffmpeg:
	- build: mac arm64 build ffmpeg with my m1, others build with ci
	- version: win/linux use ffmpeg release/5.1, becaues higher version require higher nvidia driver,  other platforms use release/7.0
* test:
	- ios not test.
	- android: sometimes the screen will appear blurry, but it will recover after a while.
	- arm64 linux: test a example of hwcodec repo

Signed-off-by: 21pages <pages21@163.com>

* check hwcodec only when enabled and immediately when clicked enabled

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-04-18 13:12:45 +08:00
rustdesk
4e8cbe3db1 buildPresetPasswordWarning for android 2024-04-17 22:01:09 +08:00
rustdesk
bdf8bbe26f custom android 2024-04-17 12:49:25 +08:00
Kleofass
990c05fc3d Update lv.rs (#7745) 2024-04-17 10:20:31 +08:00
rustdesk
7bb4e22a77 fix ci 2024-04-16 22:53:01 +08:00
rustdesk
736503df1b fix ci 2024-04-16 22:38:47 +08:00
rustdesk
414455a8fb fix ci 2024-04-16 22:25:10 +08:00
rustdesk
bc0ab88e74 do not load empty custom_client_config 2024-04-16 22:17:05 +08:00
rustdesk
01ec539065 load android custom client for jvm startServer 2024-04-16 21:46:54 +08:00
rustdesk
b9792fc17d bridge rust version 2024-04-16 20:18:17 +08:00
rustdesk
c656c3c087 typo 2024-04-16 18:46:46 +08:00
rustdesk
a6c1d2d486 customClientConfig in dart 2024-04-16 18:42:35 +08:00
rustdesk
44bce59777 more java_ffi_FFI 2024-04-16 18:22:36 +08:00
fufesou
9b5e5aa474 fix: Msi custom app, different component guids (#7738)
* fix: Msi custom app, different component guids

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix: msi, update readme

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-16 14:12:39 +08:00
fufesou
a5d02998ad Fix. Msi, remove RustDesk words (#7732)
* Fix. Msi, remove RustDesk words

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Fix. Replace RustDesk in langs

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-16 13:09:20 +08:00
flusheDData
1d4c129e9c Update es.rs (#7733)
tip translation added
2024-04-16 11:10:31 +08:00
rustdesk
e9a6ca8ebc typo 2024-04-15 21:19:46 +08:00
rustdesk
28340c80dd fix me 2024-04-15 15:58:07 +08:00
rustdesk
05f6fde467 ffi.RustDesk -> ffi.FFI 2024-04-15 15:49:37 +08:00
rustdesk
56d353cb64 fix me 2024-04-15 15:39:25 +08:00
rustdesk
260d0cdc67 fix me 2024-04-15 15:37:33 +08:00
rustdesk
cdd92303b8 refactor android ffi 2024-04-15 15:20:27 +08:00
alewicki95
0dba37f4f7 Update pl.rs (#7723) 2024-04-15 11:13:32 +08:00
jxdv
7f3775a061 update system2 (#7722) 2024-04-15 00:52:27 +08:00
fufesou
a7a10f4eaa Refact. Win, file copy paste, default true (#7719)
* Refact. Win, file copy paste, default true

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Fix. File copy and paste menu, compatible with 1.2.3

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-14 21:25:26 +08:00
fufesou
5166083406 Fix. Msi, reg add SoftwareSASGeneration (#7708)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-14 21:03:51 +08:00
21pages
5c4d95ac0f not use av1 as auto codec on x86 sciter (#7714)
Signed-off-by: 21pages <pages21@163.com>
2024-04-13 21:10:36 +08:00
rustdesk
71c4d74759 fix typo 2024-04-13 14:43:27 +08:00
Mr-Update
725e8221a5 Update de.rs (#7712) 2024-04-13 13:12:40 +08:00
jxdv
92ae41cc13 update cs.rs (#7711) 2024-04-13 13:12:31 +08:00
jxdv
333b9130fe update sk.rs (#7710) 2024-04-13 13:12:20 +08:00
fufesou
60ae903cf3 Fix. Msi, reg values in HKCR (#7709)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-13 13:11:50 +08:00
fufesou
24ea55b010 Fix. Msi, firewall outbound profile (#7704)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-12 18:44:18 +08:00
fufesou
8231d07706 Fix. Msi. Terminate brokers. (#7693)
* Fix. Msi. Terminate brokers.

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Fix. Msi, remove tray shortcut in startmenu

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Msi. format

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Feat. Msi, set property

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Fix. Mis, only do InstallValidate if is Install

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-12 17:42:26 +08:00
21pages
98df2b111e hwcodec uses one repository (#7701)
* update hwcodec, gpucodec repo is merged to hwcodec

Signed-off-by: 21pages <pages21@163.com>

* rename gpucodec.rs to vram.rs

Signed-off-by: 21pages <pages21@163.com>

* rename all gpucodec to vram, because vram is a feature of hwcodec

Signed-off-by: 21pages <pages21@163.com>

* use one check process and one config file

* set check encode image size to 720p

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-04-12 17:26:24 +08:00
rustdesk
d8875f381b protobuf 3.4 2024-04-12 11:38:19 +08:00
fufesou
6e3d16173a Fix. Mis, do not InstallValidate when uninstall (#7692)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-11 23:27:09 +08:00
FastAct
a88b189664 Update nl.rs (#7691) 2024-04-11 20:42:21 +08:00
fufesou
48da00eb66 Fix. Msi, error 5 on uninstall (#7690)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-11 20:41:23 +08:00
RustDesk
5322332c5d Update flutter-build.yml 2024-04-11 20:23:08 +08:00
fufesou
c92cfbb20a Fix. Github ci (#7689)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-11 19:26:29 +08:00
fufesou
f673647072 Feat/msi (#7688)
* Feat. Msi, check is self-installed

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Feat. Msi.

1. Check if is self-installation.
2. Add firewall rule by custom action.

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Feat. Msi, github ci

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Feat. Msi, github ci

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Feat. Msi, github ci

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Feat. Msi, refact preprocess.py

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Feat. Msi

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Trivial, renames

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-11 18:54:32 +08:00
rustdesk
7ea5a9bba3 devices.py 2024-04-11 18:39:46 +08:00
fufesou
aa002c5d60 Refact. Msi, remove unused code (#7685)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-11 12:06:10 +08:00
fufesou
64020758d9 Feat. Msi (#7684)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-11 11:51:35 +08:00
bovirus
a4f357fd80 Update Italian language (#7678) 2024-04-11 10:50:40 +08:00
XLion
4c6fdfd76a Update tw.rs (#7677) 2024-04-11 10:50:26 +08:00
Tom-Brian Garcia
c972452310 fix: do not call WakeLock on Web (mobile) (#7668)
* fix: do not call WakeLock on Web (mobile)

* fix: do not call WakeLock on Web (mobile) - replaced isMobile by !isWeb
2024-04-10 21:32:05 +08:00
Alen Bajo
6ba6a16836 Update hr.rs (#7675)
Some small things changed
2024-04-10 17:27:59 +08:00
solokot
c63f1dfc53 Update ru.rs (#7674) 2024-04-10 15:19:19 +08:00
21pages
ac79c45529 remove tooltip of main window tab, opt some tooltip by raising its hierarchy (#7672)
Signed-off-by: 21pages <pages21@163.com>
2024-04-10 14:04:12 +08:00
Integral
7f58737f1f Update cn.rs (#7669) 2024-04-10 11:00:14 +08:00
RustDesk
ead8a48436 Update lang.rs 2024-04-10 00:23:45 +08:00
rustdesk
178d33155f fix check_process for empty arg since on mac, p.cmd() get "/Applications/RustDesk.app/Contents/MacOS/RustDesk", "XPC_SERVICE_NAME=com.carriez.RustDesk_server" 2024-04-09 20:38:07 +08:00
rustdesk
07ab8e508c fix me 2024-04-09 19:48:58 +08:00
rustdesk
ea1d4adfa6 fix check_process on mac since normal user can not get system's
process's command line arguments
2024-04-09 19:33:39 +08:00
rustdesk
f34a8ef0e5 fix me 2024-04-09 19:02:17 +08:00
mehdi-song
0df4b39bcc Update fa.rs (#7662) 2024-04-09 18:37:56 +08:00
rustdesk
07eca00bd5 feat: allow-only-conn-window-open https://github.com/rustdesk/rustdesk/discussions/7033 2024-04-09 18:34:44 +08:00
rustdesk
cf8386aa50 remove useless code in is_installed windows 2024-04-09 16:33:03 +08:00
SOZEL
44de6a5549 docs: update README-VN.md (#7655) 2024-04-08 21:38:47 +08:00
RustDesk
a41a9bcbf7 Update build-macos-arm64.yml 2024-04-08 21:13:56 +08:00
RustDesk
a679fae9c0 Update build-macos-arm64.yml 2024-04-08 21:11:34 +08:00
RustDesk
0f906f3937 Update build-macos-arm64.yml 2024-04-08 21:08:40 +08:00
RustDesk
c907daa741 Update build-macos-arm64.yml 2024-04-08 21:05:19 +08:00
RustDesk
df579de147 Update build-macos-arm64.yml 2024-04-08 21:03:54 +08:00
rustdesk
e884bdbbc4 fix https://github.com/rustdesk/rustdesk/pull/7654 2024-04-08 16:41:46 +08:00
Alen Bajo
84fc70e9a9 Create hr.rs (#7654)
Croatian translation (Hrvatski)
2024-04-08 16:30:50 +08:00
BrazilianArmy
4fc5d3f03b Update ptbr.rs (#7649)
Atualização de algumas KEYS para português BR
2024-04-08 11:56:12 +08:00
fufesou
9402516acd Refact. Flutter pub upgrade web (#7648)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-07 22:03:50 +08:00
fufesou
65f7541ec7 Fix. Compare cert blob before deleting it. (#7643)
* Fix. Compare cert blob before deleting it.

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Rename function name

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-07 14:31:09 +08:00
rustdesk
22da14e3f7 fix https://github.com/rustdesk/rustdesk/discussions/7628, https://github.com/rustdesk/rustdesk/discussions/7490 2024-04-07 11:31:51 +08:00
fufesou
fddad09167 Refact. Remove unused memset (#7633)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-06 23:19:50 +08:00
fufesou
f36f065508 Refact. Delete check reg fingerprint (#7631)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-06 22:58:42 +08:00
21pages
0c294eefae reordered peer tab (#7604)
* reordered peer tab

Signed-off-by: 21pages <pages21@163.com>

* opt peer tab visible menu, avoid checkbox value splash

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-04-06 17:53:03 +08:00
fufesou
5a0333ddaf Feat. msi (#7610)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-06 16:30:33 +08:00
Integral
e0b9a9a82f Update cn.rs (#7614) 2024-04-06 16:29:55 +08:00
fufesou
ab07eb6f4a Fix. Remove strange cert dir created by 1.2.3 (#7620)
* Fix. Remove strange cert dir created by 1.2.3

1. Remove `install_cert()`.
2. https://github.com/rustdesk/rustdesk/discussions/6444#discussioncomment-9017532

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* comments

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-06 16:22:59 +08:00
Yevhen Popok
bddd800769 Update Ukrainian translation (#7611)
* Update Ukrainian translation

* Update Ukrainian translation

* Update Ukrainian translation
2024-04-06 16:21:11 +08:00
fufesou
5533ebf86a Fix. Remote toolbar, keyboard mode (#7626)
Move modeOnly to the scope it is needed.
Get modeOnly everytime of dropdown menu.

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-06 11:37:31 +08:00
fufesou
2397fdc495 Fix. Remote toolbar, menu refresh (#7605)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-05 09:28:35 +08:00
fufesou
129548764e fix build (#7597)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-03 22:20:56 +08:00
fufesou
ed257e39d0 Feat. msi (#7590)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-03 14:27:35 +08:00
rustdesk
33eaf2e05c bump to flutter 3.19.5 for wrong cpu instruction used in flutter 3.16 -> 3.19.4, which cause not running on some CPU 2024-04-03 14:25:09 +08:00
21pages
41d99d5108 fix forget password toast error when personal ab doesn't contain this id (#7589)
Signed-off-by: 21pages <pages21@163.com>
2024-04-02 23:18:52 +08:00
RustDesk
edefa5f786 Revert "Refact. CI, print sha256sum (#7580)" (#7587)
This reverts commit 2b20714f50.
2024-04-02 22:20:07 +08:00
21pages
d7b47b49d2 opt password sync, opt ab widgets (#7582)
* Opt sync conctrl with password source, add some comments
* For sync from recent, legacy ab remove forceRelay, rdpPort, rdpUsername,
  because it's not used, personal ab add sync hash
* Opt style of add Id dialog

Signed-off-by: 21pages <pages21@163.com>
2024-04-02 22:08:47 +08:00
fufesou
74af7ef8b2 Fix. Custom client, connection status (#7586)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-02 21:59:17 +08:00
redistay
1cfc9b6139 chore: fix some typos (#7585)
Signed-off-by: redistay <wujunjing@outlook.com>
2024-04-02 21:41:54 +08:00
fufesou
db6bf547a9 Feat. msi (#7584)
* Feat. msi

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* remove ununsed file

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-02 18:10:09 +08:00
fufesou
2b20714f50 Refact. CI, print sha256sum (#7580)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-02 15:06:37 +08:00
FastAct
cfa72ad7d1 Update nl.rs (#7581) 2024-04-02 14:47:40 +08:00
fufesou
2e11a8b458 Fix. Linux, run_cmds, trim new line (#7579)
* Fix. Linux, run_cmds, trim new line

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* add tests

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-02 14:47:13 +08:00
XLion
58fe95d6fd Uppercase API (#7577) 2024-04-02 11:44:27 +08:00
21pages
de65c8b2cf fix resolution restoration (#7572)
* Fix resolution restore. Screen resolution changes may be slow and cause errors in judgment. Remove the consideration of resolution changes caused by other processes.
* Keep the design unchange: when all connections end, revert to the resolution when there were no connections.
* Resolution menu use `scaledRect` for retina
* I can't reproduce the restoration failure of retina with 3rd software, but it maybe the same reason of slow resolution change.

Signed-off-by: 21pages <pages21@163.com>
2024-04-01 17:20:19 +08:00
rustdesk
57510980ed move pkill tray to execstop of the service for linux 2024-04-01 17:07:10 +08:00
hzhou
26a7f9dd46 kill tray in postrm of linux 2024-04-01 16:36:34 +08:00
hzhou
7fb2464d84 fix sysinfo update when id change, and add debug info for pk change 2024-04-01 16:21:05 +08:00
fufesou
9e7137ce09 Fix. Custom resolution removed after 2rd conn (#7571)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-04-01 13:27:52 +08:00
mehdi-song
80747fc306 Update fa.rs (#7566) 2024-03-31 21:37:22 +08:00
RustDesk
0d75f71d16 Update build-macos-arm64.yml 2024-03-30 18:27:23 +08:00
RustDesk
46c2288f50 Update build-macos-arm64.yml 2024-03-30 18:09:55 +08:00
RustDesk
d76c9ad1db Update build-macos-arm64.yml 2024-03-30 17:39:44 +08:00
RustDesk
3faa18c020 Update build-macos-arm64.yml 2024-03-30 17:19:03 +08:00
RustDesk
d699496a52 Update build-macos-arm64.yml 2024-03-30 17:13:23 +08:00
RustDesk
19bf5f1a23 Update build-macos-arm64.yml 2024-03-30 17:07:34 +08:00
RustDesk
080b56a0cb Update build-macos-arm64.yml 2024-03-30 16:55:28 +08:00
fufesou
82d9b033f2 Fix. Custom client, get app name (#7562)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-30 13:39:34 +08:00
FastAct
bf6e465970 Update nl.rs (#7554) 2024-03-29 19:43:06 +08:00
fufesou
3ef9824d8e Flutter web, custom cursor (#7545)
* Flutter web, custom cursor

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* trivial changes

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Flutter web, custom cursor, use date after 'updateGetKey()'

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* trivial changes

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-29 10:52:32 +08:00
21pages
4b0e88ce46 fix not saving cache after changing current address book (#7544)
and get address book mode from cache

Signed-off-by: 21pages <pages21@163.com>
2024-03-28 20:50:53 +08:00
21pages
0c32a889a9 fix ab cache not work, set current ab name after load cache (#7542)
Signed-off-by: 21pages <pages21@163.com>
2024-03-28 19:37:25 +08:00
rustdesk
6186b41e3f modify comment 2024-03-28 11:52:43 +08:00
fufesou
6e44a91d0b Refact. Flutter web desktop (#7539)
* Refact. Flutter web desktop

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Flutter web, prevent default context menu

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-28 11:38:11 +08:00
fufesou
810b980e6b Try fix, click tray icon, run main window (#7540)
* Try fix, click tray icon, run main window

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Remove start uni link on Windows, use 'run_me' instead

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-28 11:14:03 +08:00
21pages
22356940d9 ab show loading LinearProgressIndicator (#7538)
* Display the LinearProgressIndicator at the top of ab if the current ab is both empty and in a loading state.
* Add pull error like the legacy ab.
* When forcefully reading the 'ab' list, retrieve the personal ab guid to judge the current mode  to prevent server upgrades while the main window remains open

Signed-off-by: 21pages <pages21@163.com>
2024-03-27 21:28:21 +08:00
21pages
cc30f7aa02 handle boot args if initialLink is empty (#7537)
Signed-off-by: 21pages <pages21@163.com>
2024-03-27 15:51:30 +08:00
RustDesk
6e689400b6 Revert "macos support uni command "rustdesk rustdesk://xxxx" without mainwind…" (#7536)
This reverts commit 50fbf8833b.
2024-03-27 14:24:14 +08:00
21pages
50fbf8833b macos support uni command "rustdesk rustdesk://xxxx" without mainwindow (#7534)
Signed-off-by: 21pages <pages21@163.com>
2024-03-27 13:42:50 +08:00
fufesou
d7137990b9 Refact. Flutter web, peer cards (#7525)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-27 11:26:29 +08:00
flusheDData
8ecc107c06 New terms added (#7526)
* Update es.rs

New terms added

* Update es.rs

mistype correction

* Update es.rs

New term added

* Update es.rs

New terms added

* Update es.rs

New terms added

* Update es.rs

New terms added
2024-03-27 11:26:11 +08:00
rustdesk
1fa3837bb0 revert back to async_trait since having to use 1.75 because of win7
support
2024-03-27 03:36:33 +08:00
rustdesk
5aec5b084a refactor --service/--server start time check (my stupid to restart
--server)
2024-03-27 03:02:36 +08:00
rustdesk
b77add97db change to nightly-2023-10-13, the day of 1.2.3 2024-03-27 02:22:38 +08:00
rustdesk
b306d808fb change to nightly-2023-12-28, the day of 1.75.0 2024-03-27 02:13:25 +08:00
rustdesk
1729c3f76d have to use nightly for win32 2024-03-27 02:05:54 +08:00
rustdesk
2eb591391e fix ci 2024-03-27 01:48:34 +08:00
rustdesk
075194fea8 x86 rust toolchain 2024-03-27 01:45:17 +08:00
rustdesk
28b376d2d2 stick to rust 1.75 for win7/8, https://github.com/rustdesk/rustdesk/discussions/7503 2024-03-27 01:33:01 +08:00
crazeteam
4f3de4cf54 chore: fix some typos (#7518)
Signed-off-by: crazeteam <lilujing@outlook.com>
2024-03-27 01:08:56 +08:00
rustdesk
85f387bfb9 improve https://github.com/rustdesk/rustdesk/discussions/5631#discussioncomment-8916273 2024-03-27 00:38:13 +08:00
rustdesk
81aec8402b Temp solution for https://github.com/rustdesk/rustdesk/discussions/5631 2024-03-26 22:31:58 +08:00
rustdesk
d407dfed0a remove main.cc since not found the way to code sign it since g++ no ENABLE_HARDENED_RUNTIME 2024-03-26 21:27:02 +08:00
rustdesk
dcd4d0886e Close -> "Toggle tags" 2024-03-26 16:57:29 +08:00
rustdesk
9ad240951e fix uni link when mac service started, by use
applicationShouldOpenUntitledFile delegate
2024-03-26 14:11:02 +08:00
fufesou
e86d4657da Refact. Flutter web, key input (#7511)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-26 10:45:06 +08:00
rustdesk
d36e33a7cf rustdesk -> RustDesk in agent/daemon process since in App, the exe is
RustDesk rather than lowercase
2024-03-25 21:18:45 +08:00
21pages
376bcefc14 fix peer tab Tooltip persist via move it up (#7510)
Signed-off-by: 21pages <pages21@163.com>
2024-03-25 20:58:55 +08:00
21pages
c0c110fe7e opt pull ab (#7509)
* get ab settings only on new mode
* avoid pull dummpy current ab if list not initialized

Signed-off-by: 21pages <pages21@163.com>
2024-03-25 20:38:26 +08:00
rustdesk
3dc6e576df check isDisableAccount and isDisableAb before pull ab / group 2024-03-25 20:14:34 +08:00
21pages
49f717fcf8 opt pull ab (#7508)
1. Test legacy/new mode only upon logging out.
2. Avoid pulling all data unnecessarily:
* On startup: Retrieve list, current, and personal data.
* On refresh: Retrieve list and current data.
* On changing AB/switching tabs: Attempt to pull current data if not initialized.
3. Cache only personal and current AB.
4. Synchronize current AB from recent.
5. Remove AB loading CircularProgressIndicator.

Signed-off-by: 21pages <pages21@163.com>
2024-03-25 19:59:21 +08:00
rustdesk
00152e0db4 upload unsigned dmg since tar.gz does not work app failure 2024-03-25 15:43:18 +08:00
rustdesk
1964203848 fix unsigned mac 2024-03-25 15:04:34 +08:00
rustdesk
495444abd0 fix ci 2024-03-25 12:28:27 +08:00
rustdesk
09ec0b6325 fix https://github.com/rustdesk/rustdesk/discussions/7501 2024-03-25 12:15:51 +08:00
rustdesk
cad0f15a83 fix ci 2024-03-25 12:06:49 +08:00
rustdesk
b087dcd328 upload unsigned macos app 2024-03-25 11:21:01 +08:00
fufesou
8dff263a0c Refact. Flutter web, mid commit (#7502)
* Refact. Flutter web, mid commit

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Refact. Flutter web, mid commit

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-25 10:47:53 +08:00
XLion
d546b23bd8 Update translation (#7500) 2024-03-25 10:45:06 +08:00
solokot
bb9400745e Update ru.rs (#7496) 2024-03-25 10:43:01 +08:00
rustdesk
30f84e78e1 fix custom tray of mac 2024-03-24 22:17:40 +08:00
rustdesk
30af020ba8 fix config::is_incoming_only 2024-03-24 20:28:27 +08:00
rustdesk
ef27cd6c5c custom.txt and tray for mac 2024-03-24 20:09:37 +08:00
rustdesk
770289cd67 replace Assets.xcassets/AppIcon.appiconset with AppIcon.icns for custom
client
2024-03-24 15:23:24 +08:00
rustdesk
25b5c96648 remove default create-dmg in build.py 2024-03-24 14:04:05 +08:00
fufesou
85cafda168 Refact. Flutter web, mid commit (#7494)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-24 11:23:06 +08:00
21pages
96e1b5b0f6 remove deserializing config option using default config (#7491)
Signed-off-by: 21pages <pages21@163.com>
Co-authored-by: squarer3 <squalerblack@gmail.com>
2024-03-24 11:20:12 +08:00
fufesou
dd90e84f6a Fix. Peer tab, match name and icon (#7489)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-23 22:23:30 +08:00
rustdesk
05969c2f99 Hostname -> Server 2024-03-23 17:10:52 +08:00
fufesou
05ef1c3924 Feat. ci web (#7486)
* Feat. ci web

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Update README.md

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-03-23 14:28:25 +08:00
fufesou
8018920a64 Fix. Platform is MacOS and is Linux (#7485)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-23 10:27:17 +08:00
21pages
dcb7e389eb opt sytle of ab name (#7484)
Signed-off-by: 21pages <pages21@163.com>
2024-03-23 10:10:22 +08:00
fufesou
a15cd62fd4 Refact. Flutter web, mid commit (#7482)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-23 10:08:55 +08:00
rustdesk
1c3a2e475d safer handle_intranet 2024-03-23 00:56:18 +08:00
FastAct
83c45d772f Update nl.rs (#7475) 2024-03-22 23:36:59 +08:00
21pages
96c8d4de6a fix restore ab afer pullAb (#7480)
* Opt ab name drop downdrop, more width

Signed-off-by: 21pages <pages21@163.com>
2024-03-22 23:32:59 +08:00
fufesou
9558974080 Refact. Build flutter web (#7472)
* Refact. Build flutter web

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Refact. Flutter web, wrap Platform.xx

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-22 13:16:37 +08:00
21pages
285e298a8b fix ab tag flashing when refreshing (#7471)
* opt isFull, fix web console menu

Signed-off-by: 21pages <pages21@163.com>

* fix ab tag flashing when refreshing

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-03-22 11:02:22 +08:00
jxdv
57b17b1798 update cs.rs (#7467) 2024-03-22 09:53:37 +08:00
jxdv
7e13642098 update sk.rs (#7466)
* update sk.rs

* update pw warn
2024-03-22 09:53:21 +08:00
Mr-Update
26b5f53b12 Update de.rs (#7461) 2024-03-22 09:52:33 +08:00
bovirus
896b321cdc Italian language update (#7462) 2024-03-22 09:52:02 +08:00
Kleofass
4115a5936c Update lv.rs (#7460) 2024-03-22 09:51:46 +08:00
FastAct
0e0cf7df09 Update nl.rs (#7459) 2024-03-21 16:59:02 +08:00
21pages
0c232be0c4 opt web console menu text (#7452)
Signed-off-by: 21pages <pages21@163.com>
2024-03-21 14:44:13 +08:00
21pages
67bc26ed57 remove address book operation code, as it duplicates the the functionality of web console (#7451)
Signed-off-by: 21pages <pages21@163.com>
2024-03-21 14:01:18 +08:00
rustdesk
f421a14659 fix lang 2024-03-21 11:18:48 +08:00
RustDesk
81b74cf46c Update README.md 2024-03-21 11:17:09 +08:00
solokot
b1a3ce323b Update ru.rs (#7442) 2024-03-21 10:12:47 +08:00
Kleofass
1f58826444 Update lv.rs (#7440) 2024-03-21 10:12:33 +08:00
Nadahar
2ea853b1e6 Fixed CPU performance montor on non-English Windows (#7446)
Signed-off-by: Nadahar <Nadahar@users.noreply.github.com>
2024-03-21 10:12:17 +08:00
Daniel Marschall
a2e1647faa Update de.rs (#7447)
* Update de.rs

* Update de.rs
2024-03-21 10:08:43 +08:00
21pages
4e060203ad ab share rules, use user/group name rather than level (#7443)
Signed-off-by: 21pages <pages21@163.com>
2024-03-21 07:23:08 +08:00
RustDesk
0540e2cf6c Revert "missing quotes around MACOS_CODESIGN_IDENTIRY (#7416)" (#7438)
This reverts commit 794d3ffcac.
2024-03-20 21:20:39 +08:00
rustdesk
21e4679b6c improve tfa 2024-03-20 20:00:29 +08:00
RustDesk
8b9728b40b Revert "Fix how 2FA codes are verified (#7429)" (#7436)
This reverts commit e0739709e7.
2024-03-20 19:54:47 +08:00
p0358
e0739709e7 Fix how 2FA codes are verified (#7429)
Signed-off-by: p0358 <p0358@users.noreply.github.com>
2024-03-20 19:50:55 +08:00
21pages
41da6d552f shared address book (#7229)
Signed-off-by: 21pages <pages21@163.com>
2024-03-20 15:05:54 +08:00
solokot
ecb70b43df Update ru.rs (#7433) 2024-03-20 11:28:10 +08:00
FastAct
b2290f5b4c Update nl.rs (#7426) 2024-03-19 18:53:35 +08:00
Lee Jong Mun
c6f415e9df kor translation update (#7424) 2024-03-19 18:53:08 +08:00
XLion
3f7d622512 Small fix for langs (#7418) 2024-03-19 18:52:36 +08:00
Ronan LE MEILLAT
794d3ffcac missing quotes around MACOS_CODESIGN_IDENTIRY (#7416) 2024-03-19 18:51:33 +08:00
RustDesk
ee2f87ef32 Update build-macos-arm64.yml 2024-03-17 11:28:12 +08:00
rustdesk
87da2a165d fix ci 2024-03-17 11:20:25 +08:00
rustdesk
130deb8e22 add build arm64 macos 2024-03-17 11:17:23 +08:00
rustdesk
b65d65cb12 fix ci 2024-03-17 00:56:59 +08:00
Kleofass
3caa5776c8 Update lv.rs (#7408) 2024-03-16 22:38:08 +08:00
rustdesk
6cbbb6498f init_log once 2024-03-16 22:20:50 +08:00
rustdesk
fb12ee7f2a fix loadLogo 2024-03-16 21:55:21 +08:00
bovirus
48842b6f2a Update Italian language (#7407) 2024-03-16 17:41:26 +08:00
fufesou
fc90526258 Fix. Custom client, maxmize of incoming only (#7406)
* Fix. Custom client, maxmize of incoming only

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* format

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-16 17:33:58 +08:00
fufesou
efd1f24ab2 Fix. Custom client, ui bugs (#7405)
* Fix. Custom client, ui bugs

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* trivial

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-16 15:37:23 +08:00
rustdesk
0808672b6e modify warn 2024-03-16 11:59:12 +08:00
rustdesk
fe0de47805 preset password warning 2024-03-16 11:52:48 +08:00
jxdv
ccf5b0ef53 update cs.rs (#7404) 2024-03-16 10:13:12 +08:00
jxdv
218f4872b8 update sk.rs (#7403) 2024-03-16 10:12:12 +08:00
rustdesk
077569dd5d better option save 2024-03-16 01:51:16 +08:00
rustdesk
a3f79065c5 better error handle in job.py 2024-03-16 00:30:30 +08:00
rustdesk
fbfcf862cb add divider of statusbar back and add quit button for qs 2024-03-16 00:24:18 +08:00
RustDesk
7307b84dad Update flutter-build.yml 2024-03-15 23:36:03 +08:00
Daniel Marschall
6b15a9b6d2 Made censoring in screenshot nicer (Fixes #7398) (#7399) 2024-03-15 22:20:43 +08:00
fufesou
e3420fd563 Refact. Linux, x11, user --server (#7400)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-15 22:18:14 +08:00
RustDesk
31120f51c9 Update flutter-build.yml 2024-03-15 18:07:17 +08:00
fufesou
3d279ec127 fix build (#7397)
* fix build

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fmt

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-15 17:46:36 +08:00
fufesou
48cd76b938 Fix. Linux run commands, getent passwd (#7396)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-15 17:26:33 +08:00
fufesou
8e5fbc8480 Fix. Use rounded (seconds) timestamp for test (#7394)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-15 14:24:22 +08:00
bovirus
cdea968c24 Add files via upload (#7393)
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-03-15 10:19:46 +08:00
DeDuplicate
a6aabed6a1 add hebrew translation (#7391)
* add hebrew translation

* Update lang.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-03-15 10:18:08 +08:00
Mr-Update
cde235896f Update de.rs (#7390)
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-03-15 10:16:24 +08:00
jxdv
ca48aaf5ee update cs.rs (#7388)
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-03-15 10:14:44 +08:00
jxdv
8a705a6a9a update sk.rs (#7387)
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-03-15 10:14:03 +08:00
rustdesk
b3adbc1110 move outgoing_only_desk_tip to end 2024-03-15 10:12:58 +08:00
rustdesk
2bbc13ccf6 adjust logo and statusbar 2024-03-15 09:04:49 +08:00
fufesou
411384f0e7 Fix. MacOS, incoming only, restore pos (#7392)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-15 08:42:41 +08:00
rustdesk
a9b0bc0409 fix some minors of custom client 2024-03-15 00:26:53 +08:00
shuangcui
228582296c chore: remove repetitive word (#7386)
Signed-off-by: shuangcui <fliter@qq.com>
2024-03-14 21:36:55 +08:00
XLion
d67108cd20 Update translation (#7385)
Add translation for tw and add `to` to the sentence to make it more clear.
2024-03-14 21:33:08 +08:00
rustdesk
175f185cb1 fix https://github.com/rustdesk/rustdesk/discussions/7381 2024-03-14 20:38:57 +08:00
rustdesk
56f27ec356 fix ci 2024-03-14 11:45:16 +08:00
fufesou
5253d67e04 Fix/custom client styles (#7373)
* Fix. qs styles

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* custom client, options

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Move logo.svg to icon.svg

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Refact. Custom client, connection status ui.

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client ui. Disable settings, hide "Change password"

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client, logo align center

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client, refact, outgoing ui

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client, outgoing, settings icon

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client, powered by RustDesk

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Custom client, remove unused SizeBox

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Update config.rs

* Update flutter_ffi.rs

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-03-14 11:36:14 +08:00
rustdesk
a314f59db9 fix https://github.com/rustdesk/rustdesk/issues/7377 2024-03-14 11:03:47 +08:00
rustdesk
da4e268e63 fix job 2024-03-14 06:59:56 +08:00
XLion
c186378d43 Correct copyright year (#7375)
* Correct copyright year

* Correct name
2024-03-13 21:12:04 +08:00
rustdesk
482bb5f64f fix CI 2024-03-13 09:41:28 +08:00
n-connect
3c1492e9bc Update hu.rs - fixing ID Server and others (#7366)
After a failed client setup in Network settings - due to wrong translation
2024-03-12 23:19:23 +08:00
rustdesk
be301b825f load tray icon from asset 2024-03-12 22:13:28 +08:00
rustdesk
fc875f7ad6 more on custom client 2024-03-12 21:47:29 +08:00
rustdesk
f644053811 fix hostname for mac 2024-03-11 01:36:43 +08:00
rustdesk
c0e5e78d2b no sign for build ci 2024-03-10 15:49:07 +08:00
rustdesk
d103872c61 avoid upload debug file 2024-03-10 15:39:49 +08:00
rustdesk
d47104f3f3 new sign 2024-03-10 15:06:49 +08:00
rustdesk
d4288f89d3 fix ci 2024-03-10 14:03:28 +08:00
rustdesk
7060257051 Remove some arc, and add some custom client 2024-03-10 12:48:00 +08:00
Dimitris Apostolou
866ec097c0 fix: fix crate vulnerabilities (#7344) 2024-03-09 17:52:18 +08:00
21pages
dcbe2805e6 improve waiting for image when only one image received (#7340)
* fix padding of mobile server page PopupMenuItem

Signed-off-by: 21pages <pages21@163.com>

* improve waiting for image when only one image received

* For flutter texture late creation: create texture between session add and session start, it works not in principle but in test.
* For late PeerInfo handling
	a. rgba texture render: allow zero size in on_rgba
	b. gpu texture render and rgba buffer render doesn't check size currently
* Fix wrong valid flag of first frame in rgba texture render

Other issues:
* decodeImageFromPixels may fail on first image
* Correct width/height when resolution changes

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-03-08 17:24:02 +08:00
rustdesk
262814391a fix ci 2024-03-08 00:47:21 +08:00
rustdesk
b32cf403e6 overwrite config 2024-03-08 00:22:52 +08:00
rustdesk
921ee34779 unify winres 2024-03-07 17:00:32 +08:00
rustdesk
75a871c437 format 2024-03-07 16:37:51 +08:00
rustdesk
b5a47efe8e remove share rdp from strategy, useless and leading to confusion 2024-03-07 16:33:46 +08:00
Andrzej Rudnik
8ff24d876c Update pl.rs (#7329) 2024-03-07 14:09:09 +08:00
21pages
dd44bb2a0c flutter windows main.cpp get app name from rust (#7316)
Signed-off-by: 21pages <pages21@163.com>
2024-03-06 17:57:05 +08:00
rustdesk
f3686b23c7 fix tw 2024-03-06 17:38:33 +08:00
XLion
fccdc8ca1f Fix lang detection for zh-TW (#7326)
It is ``TW``, not ``tw``
2024-03-06 17:35:40 +08:00
rustdesk
fc149666d9 remove icon.rc and add compression level 2024-03-05 23:22:15 +08:00
jxdv
4292838e80 update sk.rs (#7317)
* fix typo

* update translations
2024-03-05 11:59:38 +08:00
fufesou
befac94473 Fix. macos, workaround fn (#7319)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-05 11:31:41 +08:00
rustdesk
c0128d86f4 fix ci 2024-03-04 22:55:25 +08:00
rustdesk
794636e208 use winres in portable 2024-03-04 22:19:18 +08:00
rustdesk
eff6ac254f improve generate.py 2024-03-04 21:16:14 +08:00
rustdesk
fa575be289 fix ci 2024-03-04 19:53:17 +08:00
rustdesk
060ad68570 add rustdesk.tar.gz to ci 2024-03-04 18:12:34 +08:00
21pages
1620394736 fix windows ci, downgrade flutter-action (#7312)
Signed-off-by: 21pages <pages21@163.com>
2024-03-04 09:17:56 +08:00
RustDesk
1e6e91e4bd Update clear-cache.yml 2024-03-03 22:29:31 +08:00
rustdesk
b0cbe2ae70 upgrade clear-acache 2024-03-03 22:18:49 +08:00
rustdesk
1391202985 clear-cache action 2024-03-03 22:17:00 +08:00
mehdi-song
d9ad24f563 Update fa.rs (#7309)
;-)
For all those who live in the world
2024-03-03 19:38:03 +08:00
21pages
61279752e2 upgrade uni link desktop (#7307)
* fix macos uni not work since flutter 3.16, upgrade uni_links_desktop

Signed-off-by: 21pages <pages21@163.com>

* Connect when clicking enter (drop-down is not considered)

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-03-03 17:31:21 +08:00
rustdesk
1794b65182 remove devcontainer from readme, since it is not maintained and not good
for use
2024-03-01 15:50:25 +08:00
rustdesk
6bb5629bb4 update readme 2024-03-01 15:44:19 +08:00
rustdesk
0f3db29e75 fix https://github.com/rustdesk/rustdesk/discussions/7045 2024-02-29 11:27:21 +08:00
Yevhen Popok
c6cdf77a68 Update Ukrainian UI translation (#7288) 2024-02-29 09:57:48 +08:00
XLion
48682faf71 Update tw.rs (#7287) 2024-02-28 22:52:13 +08:00
21pages
49d396538c port forward, wait until TestDelay is replied (#7282)
* Revert "fix rdp not work, caused by test_delay_timer (#7274)"

This reverts commit 7fca0ba588.

* port forward, wait until TestDelay is replied

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-02-28 12:18:13 +08:00
flusheDData
30802820b0 new terms (#7275)
* Update es.rs

New terms added

* Update es.rs

mistype correction

* Update es.rs

New term added

* Update es.rs

New terms added

* Update es.rs

New terms added
2024-02-28 09:12:16 +08:00
21pages
7fca0ba588 fix rdp not work, caused by test_delay_timer (#7274)
* fix rdp not work, caused by test_delay_timer

Signed-off-by: 21pages <pages21@163.com>

* Update connection.rs

---------

Signed-off-by: 21pages <pages21@163.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-02-28 00:11:02 +08:00
21pages
50d080d098 enable retina scale factor (#7269)
* enable retina scale factor

* enabled only when there are only one video service running
* scale mouse event
* scale cursor position
* scale remote menu display button
* adjust resolution

Signed-off-by: 21pages <pages21@163.com>

* Update server.rs

---------

Signed-off-by: 21pages <pages21@163.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-02-27 22:28:23 +08:00
fufesou
96792bec78 Refact. Qs, do not check qs on startup. (#7272)
Process will not exit if early return on the flutter side.

core_main.rs has checked qs already.

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-27 17:29:12 +08:00
fufesou
e6953c8883 Feat. Quick support, ui (#7267)
* Feat. QS ui

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Remove 'Quick support'

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* add help card

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* use addPostFrameCallback to get child size

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Fix. qs, set home window size

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Qs, set setResizable for settings page

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Qs, help cards margin bottom

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Qs, online status, padding

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Qs, online status, padding

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Qs, online status, use margin instead of padding

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Qs, fix, start cm window

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-27 17:02:10 +08:00
21pages
1d9b1781d4 update runas to 1.2.0 (#7271)
Signed-off-by: 21pages <pages21@163.com>
2024-02-27 15:42:35 +08:00
rustdesk
6720bb9f6b fix ci 2024-02-26 19:01:42 +08:00
rustdesk
2217e5303d fix ci 2024-02-26 18:12:28 +08:00
rustdesk
c8392a714c license.rs -> custom_server.rs to remove misunderstanding 2024-02-26 18:05:54 +08:00
rustdesk
749a1d2da2 support logo.png 2024-02-26 17:49:12 +08:00
21pages
2920e33d71 fix is_physical_console_session (#7266)
Signed-off-by: 21pages <pages21@163.com>
2024-02-26 13:34:26 +08:00
21pages
1bc11a207a fix rdp session ctrl+alt+delete (#7258)
Signed-off-by: 21pages <pages21@163.com>
2024-02-26 13:22:21 +08:00
fufesou
ddbd4e79a2 Refact. ci, third party, upload artifact (#7265)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-26 10:25:45 +08:00
fufesou
49c107bb5f Refact/ci remove third party topmost window (#7263)
* Refact. Remove third-party prebuilt dep, topmost window

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix ci

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Update third-party-RustDeskTempTopMostWindow.yml

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-02-26 02:24:00 +08:00
fufesou
1b99d28c9b Refact. build.py, skip portable packing (#7264)
ci and build.py do the packing.

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-26 02:20:37 +08:00
21pages
7b8e983412 fix calling getWindowName before bind init (#7259)
Signed-off-by: 21pages <pages21@163.com>
2024-02-26 00:02:42 +08:00
rustdesk
f1373234dd remove useless is_rdp_service_open 2024-02-25 20:10:36 +08:00
21pages
b511a52e09 remove is_rdp_service_open judgement for option share rdp (#7257)
Signed-off-by: 21pages <pages21@163.com>
2024-02-25 20:09:30 +08:00
rustdesk
4c8c2aa323 translate rustdesk 2024-02-25 15:06:55 +08:00
rustdesk
a28c9f8f36 remove more "rustdesk" built-in 2024-02-25 13:29:06 +08:00
fufesou
9ff1dfe019 Test. More comment (#7251)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-24 23:03:56 +08:00
fufesou
3ae52dacfc test RustDeskInterval with interval_at (#7249)
* test RustDeskInterval with interval_at

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Test. RustDeskInterval, to tokio interval

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Add comment

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-24 22:44:46 +08:00
rustdesk
aa6f879504 fix config string in exe file name 2024-02-24 20:36:18 +08:00
fufesou
1dde5c5689 Refact. get_version_number support '- patch version' (#7197)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-24 20:11:27 +08:00
FastAct
913b422d74 Update nl.rs (#7248) 2024-02-24 17:08:54 +08:00
fufesou
2459bcd206 Fix. Multi sub windows, sync peer options (#7247)
* Fix. Multi window, sync peer options

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Remove unused `use`

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-23 22:49:53 +08:00
wangweijie
cce1ce0ee0 Add loongarch64 support (#7244)
Signed-off-by: wangweijie <wangweijie@loongson.cn>
2024-02-23 20:08:35 +08:00
21pages
8518513aff fix haredware codec memory leak (#7240)
Signed-off-by: 21pages <pages21@163.com>
2024-02-23 13:33:01 +08:00
jxdv
ce5e28c543 update cs.rs (#7234) 2024-02-23 10:15:53 +08:00
jxdv
9b7a8203f6 update sk.rs (#7233) 2024-02-23 10:14:49 +08:00
solokot
fd8f2422ea Update ru.rs (#7232) 2024-02-23 00:51:10 +08:00
fufesou
09325fadaf Fix. Text clipboard is not working correctly (#7226)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-22 13:44:44 +08:00
Mr-Update
d7d7be9366 Update de.rs (#7225) 2024-02-22 11:44:16 +08:00
fufesou
25afdda2b2 Fix/arboard clipboard context timeout (#7217)
* Fix. Set custom timeout for arboard clipboard

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* fix build

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Do not block tokio runtime

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-21 22:05:27 +08:00
bovirus
c690d5e940 Italian language update (#7211) 2024-02-21 11:30:06 +08:00
Kleofass
243a8b60b1 Update lv.rs (#7210) 2024-02-21 11:29:54 +08:00
21pages
7b317619ac fix windows ci wrong sign directory since update to flutter 3.16.9 (#7209)
Signed-off-by: 21pages <pages21@163.com>
2024-02-20 21:05:19 +08:00
grummbeer
c987bed965 Automate year of copyright (#7206) 2024-02-20 18:00:07 +08:00
NicKoehler
ada4bafb94 Update italian readme (#7205)
* updated it readme

* fix link

* fix other links
2024-02-20 17:28:49 +08:00
fufesou
27f5d0fd54 Fix. Remove unused idd feature in ci. (#7198)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-20 03:19:38 +08:00
rustdesk
914da2b86f add tutorial-guide-for-safenet-authentication-client-for-code-signing
doc
2024-02-19 23:23:00 +08:00
fufesou
582db9d542 Refact. Remove idd driver (#7068)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-02-19 19:55:04 +08:00
21pages
9a1fd1aa4f windows specific session, fix sciter empty file directory or wrong home (#7189)
Signed-off-by: 21pages <pages21@163.com>
2024-02-19 17:08:15 +08:00
21pages
58ddac63d2 judge failure of get_current_process_session_id with None rather than 0 (#7188)
Signed-off-by: 21pages <pages21@163.com>
2024-02-19 13:06:06 +08:00
rustdesk
a8eff641b2 fix ios ci for flutter 3.16 2024-02-19 12:35:12 +08:00
21pages
d723c10a3b add space after ":" (#7187)
Signed-off-by: 21pages <pages21@163.com>
2024-02-19 11:06:01 +08:00
21pages
bf5abdb520 refactor windows specific session, file transfer and waiting for image (#7184)
* refactor windows specific session, file transfer and waiting for image

1. File transfer doesn't show directory until correct session id is ensured
2. Fix file transfer, caused by `pi.username = self.lc.read().unwrap().get_username(&pi);` in `handle_peer_info` override empty username and `get_active_username` doesn't return currect session username
* Fix home directory not change when session changed, or wrong home directory
* Fix show empty remote directory rather than error messagbox when current session is in login screen
3. Show `Connected, waiting for image` after user choose the same
   session id

Signed-off-by: 21pages <pages21@163.com>

* update translations

Signed-off-by: 21pages <pages21@163.com>

* Update connection.rs

---------

Signed-off-by: 21pages <pages21@163.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-02-19 10:32:13 +08:00
21pages
0f44de7dc3 refactor windows specific session (#7170)
1. Modify the process to have the control side lead the session switching: After the control side sends a `LoginRequest`, the controlled side will add all session information and the current session ID in the `LoginResponse`. Upon receiving the `LoginResponse`, the control side will check if the current session ID matches the ID in the `LoginConfigHandler`. If they match, the control side will send the current session ID. If they don't match, a session selection dialog will pop up, the selected session id will be sent. Upon receiving this message, the controlled side will restart if different or sub service if same .
2. Always show physical console session on the top
3. Show running session and distinguish sessions with the same name
4. Not sub service until correct session id is ensured
5. Fix switch sides not work for multisession session
6. Remove all session string join/split except get_available_sessions in
   windows.rs
7. Fix prelogin, when share rdp is enabled and there is a rdp session,
   the console is in login screen, get_active_username will be the rdp's
   username and prelogin will be false, cm can't be created an that
   causes disconnection in a loop
8. Rename all user session to windows session

Known issue:
1. Use current process session id for `run_as_user`, sahil says it can
   be wrong but I didn't reproduce.
2. Have not change tray process to current session
3. File transfer doesn't update home directory when session changed
4. When it's in login screen, remote file directory is empty, because cm
   have not start up

Signed-off-by: 21pages <pages21@163.com>
2024-02-18 22:08:25 +08:00
fufesou
4f1a4dc6a5 Refact. Better ThrottledInterval (#7174)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-18 21:54:07 +08:00
fufesou
8c108065eb Refact. Replace all tokio::time::interval() (#7173)
* Refact. Replace all `tokio::time::interval()`

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Refact Better min_interval for `ThrottledInterval`.

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-18 21:18:00 +08:00
FastAct
5fdcc748e1 Update nl.rs (#7163) 2024-02-18 14:25:50 +08:00
rustdesk
bf03156dd9 fix ci 2024-02-17 16:59:43 +08:00
rustdesk
964c2ed2b5 smaller timeout for android and self-hosting 2024-02-17 16:50:03 +08:00
fufesou
e942c80afb Fix. Potential dead lock, interval.tick() & named pipe (#7162)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-17 16:35:38 +08:00
Kristian Kraljic
d7dcb5feab Fix build on Windows (#7161)
`winapi::um::shellapi` is used in https://github.com/rustdesk/rustdesk/blob/master/src/platform/windows.rs but not declared in `Cargo.toml` resulting in a compilation error, when I tried building on Windows, this change adds shellapi as a dependency.
2024-02-17 11:14:44 +08:00
rustdesk
39d41486d6 fix ci 2024-02-17 00:24:58 +08:00
rustdesk
b85526ce54 add relay in --config https://github.com/rustdesk/rustdesk/discussions/7118 2024-02-17 00:09:03 +08:00
21pages
2a0c081380 fix windows ci (#7156)
Signed-off-by: 21pages <pages21@163.com>
2024-02-16 15:24:43 +08:00
Kleofass
1db4236f23 Update lv.rs (#7153) 2024-02-16 12:40:55 +08:00
Mr-Update
6749595afe Update de.rs (#7152) 2024-02-16 12:40:46 +08:00
jxdv
e65c43a292 update cs.rs (#7151) 2024-02-16 12:40:37 +08:00
jxdv
00b13bf918 update sk.rs (#7150)
* update sk.rs

* remove comma
2024-02-16 12:40:29 +08:00
rustdesk
f7f3bc8bee fix mac tray icon to use template icon, no need to know theme any more 2024-02-16 12:29:32 +08:00
rustdesk
51c603a3a6 improve for https://github.com/rustdesk/rustdesk/issues/4162 2024-02-16 00:43:08 +08:00
rustdesk
5fb026b8d5 fix https://github.com/rustdesk/rustdesk/discussions/7143 2024-02-15 21:12:24 +08:00
Andrzej Rudnik
f7530b16b8 Update pl.rs (#7138) 2024-02-15 16:55:31 +08:00
bovirus
db47209362 Update Italian language (#7136) 2024-02-15 16:55:20 +08:00
rustdesk
f375cbd871 fix bg 2024-02-15 16:54:52 +08:00
Nevaran
0474c8fb03 Update lang.rs (#7140)
added bg into the list
2024-02-15 16:52:32 +08:00
Nevaran
c00d23846a Added bg file (#7137)
Bulgarian translation
2024-02-15 16:52:24 +08:00
fufesou
a3d5ea8fb8 Fix. Set peers offline when the server is unreachable. (#7139)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-15 16:51:39 +08:00
solokot
7525a6ed6a Update ru.rs (#7134) 2024-02-15 12:51:34 +08:00
XLion
dd93416cf7 Update tw.rs (#7131)
455,541,550: Fix typo
540: delete space
Add translation
2024-02-15 12:45:31 +08:00
21pages
73d429d064 windows specific session, fix conn count (#7133)
Signed-off-by: 21pages <pages21@163.com>
2024-02-15 10:44:32 +08:00
Sahil Yeole
4bf3764b5d Feat: Windows connect to a specific user session (#6825)
* feat windows connect to specific user session

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix import

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix multiple user session fields

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix file transfer

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix text color on light theme

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* feat windows connect to specific user session code changes and sciter support

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* update texts

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix sciter selected user session

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* add translations

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* Use Y,N options

* feat windows specific user code changes

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* Update dialog.dart

* Update connection.rs

* Update connection.rs

* feat windows specific user code changes

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix sciter

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use lr.union

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove unused peer options

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* select user only when authorised and no existing connection

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* check for multiple users only once

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* optimise and add check for client version

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use misc option message

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* update rdp user session proto

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix show cm on user session

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* Update pl.rs

* update on_message

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix cm

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove user_session_id

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix cm

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix multiple connections

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

---------

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2024-02-14 23:59:17 +08:00
rustdesk
236687ae53 fix some broken link 2024-02-14 19:49:06 +08:00
grummbeer
0d708f64b9 Fix dead link to docs for own server setup (#7128) 2024-02-14 17:33:50 +08:00
mehdi-song
222c9de19f Update fa.rs (#7124) 2024-02-14 12:23:13 +08:00
rustdesk
72fc34cd40 upgrade to tokio 1.36 2024-02-14 12:19:18 +08:00
grummbeer
3f7244f23f Peers. Multiselect. Provide actions only if peers selected (#7122) 2024-02-13 22:10:32 +08:00
21pages
dc24868800 fix multiselect does not reset on address book and groups (#7121)
Signed-off-by: 21pages <pages21@163.com>
2024-02-13 21:06:42 +08:00
21pages
1f557888f5 update pubspec.lock, remove some deprecated (#7110)
* fix some warnings and some deprecated reported by `flutter analyze`

Signed-off-by: 21pages <pages21@163.com>

* pubspec.lock changes from flutter 3.16.9

Signed-off-by: 21pages <pages21@163.com>

* pubspec.lock changes from `flutter pub upgrade`

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-02-12 21:39:19 +08:00
rustdesk
16db977fd8 fix iOS ci 2024-02-11 10:21:42 +08:00
21pages
a19d4d6686 upgrade flutter to 3.16.9 (#7099)
Signed-off-by: 21pages <pages21@163.com>
2024-02-11 00:15:11 +08:00
Samuel FORESTIER
633076ddd4 Fixes typo for dark theme in French i18n (#7095) 2024-02-10 11:55:18 +08:00
21pages
5581248a1e fix startup crash on windows without adapter (#7093)
Signed-off-by: 21pages <pages21@163.com>
2024-02-09 16:53:15 +08:00
flusheDData
a4393b8f90 New terms (#7053)
* Update es.rs

New terms added

* Update es.rs

mistype correction

* Update es.rs

New term added

* Update es.rs

New terms added
2024-02-05 13:30:02 +08:00
XLion
406d8469d8 Update tw.rs (#7047)
* Update tw.rs

Add new translation.

* Optimize tw.rs
2024-02-05 13:29:43 +08:00
fufesou
0cf4711515 Refact, remove avoidable clone (#7040)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-03 00:09:39 +08:00
Andrzej Rudnik
a2ba50c4ff Updated Polish translation (#7021)
* Update pl.rs

* Update pl.rs

* Update pl.rs

* Update pl.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-02-02 22:01:11 +08:00
wesley800
c97cc15c0e Warn on MIT-SHM not working on Linux X11 (#6856)
* Clarify video capture method

* fix improper level of pointer usage of xcb_generic_error_t

* add ffi of xcb_shm_query_version

* throw a warn about MIT-SHM not working

* add missing #[cfg]

* checks SHM validity on the fly, rather than cache on creation

---------

Co-authored-by: root <root@localhost>
Co-authored-by: rustdesk-fork <rustdesk@fork.com>
2024-01-31 17:49:09 +08:00
rustdesk
750f1a1884 smaller MAX_FAILS 2024-01-30 18:03:46 +08:00
rustdesk
2cf83b41cc refactor reg_timeout to reduce fail try 2024-01-30 15:38:30 +08:00
mehdi-song
1f16b5236b Update fa.rs (#6999) 2024-01-29 14:15:50 +08:00
rustdesk
dd4b5349cb revert https://github.com/rustdesk/rustdesk/pull/6980 2024-01-26 19:22:26 +08:00
rustdesk
46b4e21e8c less udp message if failure 2024-01-26 18:58:05 +08:00
rustdesk
3899e4e12e add round to avoid precision problem 2024-01-26 12:59:47 +08:00
rustdesk
f016281e30 fix ci 2024-01-26 12:54:36 +08:00
Sahil Yeole
1d755c705b Fix: Mac retina display video blur (#6980)
* fix mac retina display blur

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* Update display.rs

---------

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-01-26 12:50:13 +08:00
FastAct
a0d79dd26d Update nl.rs (#6979) 2024-01-26 11:07:24 +08:00
rustdesk
e6734af64e upgrade reqwest 2024-01-25 16:21:39 +08:00
rustdesk
0d8e3dc24f save debug disk 2024-01-25 15:46:45 +08:00
rustdesk
0e44aa1ada rustls-tls-native-roots 2024-01-25 15:40:02 +08:00
bovirus
9f40a0b490 Update Italian language (#6973) 2024-01-24 11:40:54 +08:00
jxdv
23430bee97 update cs.rs (#6969) 2024-01-24 11:40:34 +08:00
jxdv
04691a3b6c update sk.rs (#6967) 2024-01-24 11:40:24 +08:00
Ikko Eltociear Ashimine
db0f65eedd Add Japanese Documents (#6963)
* Add DEVCONTAINER-JP.md

Signed-off-by: Ikko Eltociear Ashimine <eltociear@gmail.com>

* Add CONTRIBUTING-JP.md

Signed-off-by: Ikko Eltociear Ashimine <eltociear@gmail.com>

* Add SECURITY-JP.md

Signed-off-by: Ikko Eltociear Ashimine <eltociear@gmail.com>

* Add CODE_OF_CONDUCT-JP.md

Signed-off-by: Ikko Eltociear Ashimine <eltociear@gmail.com>

---------

Signed-off-by: Ikko Eltociear Ashimine <eltociear@gmail.com>
2024-01-23 15:35:32 +08:00
fufesou
2118b6dd7d Fix. sciter, switch display. Close unused display services after switching. (#6962)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-01-23 15:30:57 +08:00
21pages
71d7398ae7 video handler holds only one decoder of the current codec format (#6939)
1. For example: when receiving h264 video frames, only 1 decoder is created, vram > ram
2. For creation and decoding failed:
  * Remove real_supported_decodings, this will update real existing decoders, replace it with the "mark_unsupported" vector. After creating the decoder failure, marks the codec as unsupported and updates supported decoding to the controlled side
  *  Add `fail_counter` in the decoder. When decoding 10 consecutive frames failed, adding codec type to 'mark_unsupported' vector
  *  The controlled end always ignores the unavailability of VP9

Signed-off-by: 21pages <pages21@163.com>
2024-01-22 20:01:17 +08:00
21pages
2e16a2be56 fix port forward 2fa (#6956)
Signed-off-by: 21pages <pages21@163.com>
2024-01-22 19:57:23 +08:00
Mr-Update
ed24f432c3 Update de.rs (#6955) 2024-01-22 18:45:36 +08:00
21pages
669e8d5f8e fix last commit (#6952)
Signed-off-by: 21pages <pages21@163.com>
2024-01-22 16:40:23 +08:00
21pages
016f4abb32 sciter 2fa setting (#6951)
not add qr code text line as it's not selectable, and selectable input will steal the focus.

Signed-off-by: 21pages <pages21@163.com>
2024-01-22 16:29:08 +08:00
fufesou
b1a946ec20 Fix. Connection, 2FA dialog, esc & enter (#6946)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-01-22 13:44:10 +08:00
emmanuel
2576b46f34 Update README.md (#6944) 2024-01-22 11:15:00 +08:00
fufesou
a42df9a27b Refact, verification login with secret (#6943)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-01-22 11:14:28 +08:00
21pages
48102e9c53 opt 2fa (#6942)
1. switch sides not check 2fa
2. let self.authorized=true ahead of return, call try_start_cm when 2fa confirmed for updating authorized state
3. flutter 2fa dialog button color

port forward check and sciter will be later on

Signed-off-by: 21pages <pages21@163.com>
2024-01-21 21:53:29 +08:00
Integral
5770aeee26 Update cn.rs (#6935) 2024-01-21 15:22:32 +08:00
fufesou
cb102a5a61 Refact. Verification code, keyboardType (#6934)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-01-21 15:22:05 +08:00
FastAct
28f01784c1 Update nl.rs (#6932) 2024-01-21 15:21:33 +08:00
Kleofass
29eefbcc25 Update lv.rs (#6931) 2024-01-21 15:21:23 +08:00
Andrzej Rudnik
8679e55f6a Updated Polish translation (#6929)
* Update pl.rs

* Update pl.rs

* Update pl.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-01-21 15:21:01 +08:00
solokot
846db4e689 Update ru.rs (#6926) 2024-01-21 15:19:57 +08:00
rustdesk
68afb89b99 a quick fix for 2fa 2024-01-21 15:19:18 +08:00
RustDesk
804f035a87 Revert "disable ffmpeg ram codec temporarily" (#6928) 2024-01-20 17:20:08 +08:00
21pages
267342e7e6 disable ffmpeg ram codec temporarily (#6927)
Signed-off-by: 21pages <pages21@163.com>
2024-01-20 17:19:30 +08:00
fufesou
9e3633f1e4 Fix. Avoid invalid verification code attempts. (#6925)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-01-20 16:03:07 +08:00
fufesou
06b3894249 Refact/verification code input check (#6924)
* Refact, login verification code, input check

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Refact, settings, enable 2fa, dialog input

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Refact. Connect, 2fa code, input check

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact, 2Fa text field, input formatter, only digits

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* refact, error message

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-01-20 15:36:32 +08:00
Mr-Update
d39129887b Update de.rs (#6923) 2024-01-20 12:42:49 +08:00
rustdesk
e5379bb073 send2fa in sciter 2024-01-19 19:29:04 +08:00
rustdesk
c8dded1108 use native-tls for macos/windows only for the time being 2024-01-19 16:04:31 +08:00
rustdesk
44e6b7dbb0 2fa for unattended access 2024-01-19 15:35:58 +08:00
rustdesk
80857c22c9 https://github.com/rustdesk/rustdesk-server-pro/issues/189, using native-tls for better tls support 2024-01-18 13:37:42 +08:00
21pages
6548f9f0ed Fix ab merge and sync from recent (#6910)
* fix missing platform when merge ab

Signed-off-by: 21pages <pages21@163.com>

* sync from recent after ab initialized

Signed-off-by: 21pages <pages21@163.com>

---------

Signed-off-by: 21pages <pages21@163.com>
2024-01-17 14:38:12 +08:00
zEqueue
58fd8780e5 Fix incorrect CONTABUTING.md in README-ZH.md file (#6887)
Signed-off-by: zEqueue <zequeue@163.com>
2024-01-15 15:59:33 +08:00
Theofanis Sarmidis
0cccbc438b Update el.rs (#6869) 2024-01-15 15:59:16 +08:00
Andrzej Rudnik
558e7cb5ac Updated Polish translation (#6858)
* Update pl.rs

* Update pl.rs

* Update pl.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-01-15 15:58:57 +08:00
rustdesk
286181ca04 tcp rendezvous works now 2024-01-11 14:47:53 +08:00
Sahil Yeole
ce0fc14a8a scrollable scam warning dialog (#6850)
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2024-01-11 12:05:30 +08:00
rustdesk
ebfbc8ce61 Merge branch 'master' of github.com-rustdesk:rustdesk/rustdesk 2024-01-10 11:48:54 +08:00
rustdesk
fdb038c7c9 one byte for future use 2024-01-10 11:48:23 +08:00
Integral
467e6dfd16 Update cn.rs (#6844)
* Update cn.rs

* Update cn.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2024-01-10 09:44:06 +08:00
Mr-Update
8c40c28fe0 Update de.rs (#6843) 2024-01-10 09:43:18 +08:00
jxdv
9e25049fe8 update cs.rs (#6842) 2024-01-10 09:43:08 +08:00
jxdv
e170153090 update sk.rs (#6841) 2024-01-10 09:42:58 +08:00
FastAct
99e8753629 Update nl.rs (#6839) 2024-01-10 09:42:45 +08:00
solokot
d5b0829065 Update ru.rs (#6836) 2024-01-10 09:42:29 +08:00
Moaz bin Mokhtar
2c8a60e0ea fix: update version of zbus to build system (#6845) 2024-01-10 09:27:36 +08:00
Sahil Yeole
352de75fdd fix height (#6846) 2024-01-10 09:26:01 +08:00
rustdesk
f7b35defc9 finish tcp rendezvous keep alive logic following mqtt, but defined by
server so that it can be easily to be controlled at server side.
2024-01-09 22:41:11 +08:00
Yevhen Popok
e471c01269 Update Ukrainian translation (#6831)
Co-authored-by: Yevhen Popok <xalt7x.service@gmail..com>
2024-01-09 10:30:42 +08:00
Kleofass
5dfaa10709 Update lv.rs (#6830) 2024-01-09 10:30:31 +08:00
bovirus
7506f94a53 Update Italian language (#6827)
* Update Italian language

* Update italian language
2024-01-09 10:30:19 +08:00
21pages
a2d08fa40d opt mac sciter dark theme (#6824)
Signed-off-by: 21pages <pages21@163.com>
2024-01-08 11:35:55 +08:00
fufesou
159c883bf3 verification code, auto submit (#6822)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-01-07 21:07:25 +08:00
rustdesk
396d7680d3 fix possible id mismatch bug because of register_pk udp packet lost 2024-01-07 20:23:00 +08:00
rustdesk
7e93a5d3cf refactor to prepare for tcp rendezvous 2024-01-07 19:01:35 +08:00
rustdesk
955c55b6cc fix code merge 2024-01-07 13:25:19 +08:00
rustdesk
b2b30b0cf5 https://github.com/rustdesk/rustdesk/pull/6805 2024-01-07 13:21:38 +08:00
solokot
6352b3a594 Update ru.rs (#6814) 2024-01-07 09:45:42 +08:00
mehdi-song
5be684d2e5 Update fa.rs (#6810) 2024-01-07 09:45:29 +08:00
FastAct
8dda17d546 Update nl.rs (#6807) 2024-01-07 09:45:14 +08:00
Kleofass
0f5aaac1f5 Update lv.rs (#6806) 2024-01-07 09:45:02 +08:00
Integral
35fa75f9c9 Add cn translation for 2FA code (#6805) 2024-01-07 09:44:44 +08:00
fufesou
19d43b3f62 login on 'Enter' (#6819)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-01-06 21:51:05 +08:00
21pages
2b4a72897e Specify cmd.exe explicitly to avoid the replacement of cmd commands (#6818)
Signed-off-by: 21pages <pages21@163.com>
2024-01-06 20:56:40 +08:00
21pages
cdc31b7fc7 Execute the .bat file directly on install to avoid the replacement of cmd (#6817)
Signed-off-by: 21pages <pages21@163.com>
2024-01-06 20:28:46 +08:00
FastAct
f4ef1455c4 Update nl.rs (#6803) 2024-01-06 11:12:22 +08:00
bovirus
fe94512dd1 Update Italian language (#6798) 2024-01-06 11:12:10 +08:00
Juraj Virgovič
ae25542ce9 update sk.rs (#6796) 2024-01-06 11:11:59 +08:00
Juraj Virgovič
6c030a5230 update cs.rs (#6795) 2024-01-06 11:11:47 +08:00
tschettervictor
a145d6ebcc Punctuation correction (#6808) 2024-01-06 11:11:35 +08:00
Juraj Virgovič
14676e9618 fix 2fa_tip (#6797) 2024-01-04 20:34:35 +08:00
rustdesk
72e8476ded typo 2024-01-04 11:54:21 +08:00
Mr-Update
5888b051d9 Update de.rs (#6788) 2024-01-04 11:53:18 +08:00
ckesc
215cf73072 Fix russian translation of Ready to make it more understandable (#6787) 2024-01-04 11:52:54 +08:00
rustdesk
7f7d4a77b6 println install failure 2024-01-03 22:46:53 +08:00
fufesou
7e3a0c4ded Better 2fa verification support (#6782)
* Better 2fa verification support

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* 2FA login verification, add request filed 'tfa_code'

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* 2fa dialog

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* msgbox, title

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Feat, oidc login, 2fa

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-01-03 16:43:39 +08:00
21pages
89150317e1 add zero copy mode hareware codec for windows (#6778)
Signed-off-by: 21pages <pages21@163.com>
2024-01-02 16:58:10 +08:00
rustdesk
f47faa548b revert test delay timeout to 1 sec since many deps on it, including
quality monitor, also change test delay with instant rather than
systemtime, because instant is stable
2024-01-02 16:23:47 +08:00
rustdesk
36ed8f3f73 change REG_INTERVAL to 15 seconds to follow quic 2024-01-02 13:42:32 +08:00
rustdesk
ca1ca21cf8 change TEST_DELAY_TIMEOUT from 1 to 3 2024-01-01 17:53:20 +08:00
rustdesk
c7df539b31 require rust 1.75 2023-12-29 16:42:23 +08:00
21pages
e873188775 use official async trait (#6765)
Signed-off-by: 21pages <pages21@163.com>
2023-12-29 16:41:49 +08:00
21pages
6953efc2d8 fix last commit, snapshot for sending to new subscribers (#6762)
Signed-off-by: 21pages <pages21@163.com>
2023-12-29 13:41:33 +08:00
21pages
3e78aacc7e add snapshot before sending SwitchDisplay (#6760)
Signed-off-by: 21pages <pages21@163.com>
2023-12-28 21:34:54 +08:00
Sahil Yeole
20b4ce3213 Wayland: Skip remote desktop portal calls when uinput is available (#6758)
* skip rdp when uinput is available

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix is_server_running

* remove clones

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

---------

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-12-28 10:40:58 +08:00
RustDesk
4b581c385c Revert "fix xdg portal verison check for persist_mode (#6742)" (#6755)
This reverts commit 57acadd52a.
2023-12-27 11:28:17 +08:00
Sahil Yeole
bdf6f5c3b9 Fix: android scam warning not showing on toggling screen capture (#6750)
* fix scam warning not showing on toggling screen capture

* fix scam warning not showing on toggling screen capture

* fix scam warning not showing on toggling screen capture

* fix scam warning not showing on toggling screen capture
2023-12-26 10:19:05 +08:00
fufesou
6d0953dca4 Disable file copy & paste in view mode (#6749)
* Disable file copy & paste in view mode

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* hide 'Enable file copy & paste' when no keyboard perm

Signed-off-by: fufesou <shuanglongchen@yeah.net>

* Disable some functions in view mode

Signed-off-by: fufesou <shuanglongchen@yeah.net>

---------

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-12-25 21:49:34 +08:00
fufesou
fc0fc5ea10 Fix. Do not send resolutions on file transfer conn (#6748)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-12-25 16:47:40 +08:00
Yevhen Popok
f7f2d84e1f Update Ukrainian UI translation (#6745) 2023-12-25 09:03:08 +08:00
linuxrider
57acadd52a fix xdg portal verison check for persist_mode (#6742) 2023-12-24 16:33:36 +08:00
21pages
26cebd2aeb request focus again when android account password obtain focus (#6744)
Signed-off-by: 21pages <pages21@163.com>
2023-12-24 16:16:47 +08:00
Péter B
9a652e789d Update hu.rs (#6729) 2023-12-21 17:13:54 +08:00
Madis Otenurm
f6509e3fd6 Estonian translation (#6702)
* Create et.rs

* Update lang.rs
2023-12-19 10:47:34 +08:00
Sahil Yeole
445fe6e714 Feat: Wayland flatpak input support | Remote desktop portal (#6675)
* autogen portal code

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use remote desktop portal

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove clipboard portal in favour of #6586

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove clipboard portal

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use select_devices for input capture

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove embedded cursor code as not being used | return session path for input capture

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* setup rdp input

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove simulate example

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* setup rdp input raw key events + mouse movements

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix rdp raw key input

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* refact rdp raw key inpuy & fix right meta key

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* refact and support rdp layout mode key input

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* support rdp mouse clicks

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* support rdp mouse scroll

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* support rdp key sequence input

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use rdp input only when uinput is not available

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* combine rdp input and get_capturables into a single rdp request

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* rdp fix build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* rdp fix build

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix rdp caps lock

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* format pipewire.rs

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* format rdp_input.rs

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* revert #6628 as rdp request state is now managed (better solution)

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix rdp crash on arch kde

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* rdp_input.rs improvements

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* refact request_remote_desktop

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* improve unwraps

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* remove unwraps

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* use session references instead of clones

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

---------

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-12-19 10:44:58 +08:00
FastAct
dc8a70bb26 Update nl.rs (#6708) 2023-12-19 10:39:36 +08:00
jimmyGALLAND
adf9b82d6b update lang fr (#6701) 2023-12-18 11:23:15 +08:00
Andrzej Rudnik
be212b5186 Updated Polish translation (#6699)
* Update pl.rs

* Update pl.rs

---------

Co-authored-by: RustDesk <71636191+rustdesk@users.noreply.github.com>
2023-12-18 11:23:00 +08:00
solokot
59ba461d83 Update ru.rs (#6695) 2023-12-18 11:22:46 +08:00
fufesou
004c2e069c https://github.com/rustdesk/rustdesk/issues/6686 (#6694)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-12-17 12:43:47 +08:00
Sahil Yeole
c168b7e979 Autocomplete container UI changes (#6690)
* add left & right padding to autocomplete peer and format

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* handle max height for autocomplete equal padding, add box shadow and format

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

---------

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-12-17 09:22:18 +08:00
fufesou
79411430a5 Fix. Windows snap-function (#6680)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-12-16 21:41:55 +08:00
flusheDData
853d655a92 New term added (#6673)
* Update es.rs

New terms added

* Update es.rs

mistype correction

* Update es.rs

New term added
2023-12-14 09:04:32 +08:00
Kleofass
2d5fa9ebbf Update lv.rs (#6672) 2023-12-14 09:04:18 +08:00
jxdv
b2deab08ab update checkout version (#6671) 2023-12-13 21:22:38 +08:00
Mr-Update
8452a17d79 Update de.rs (#6669) 2023-12-13 10:58:16 +08:00
jxdv
19851c8a47 update cs.rs (#6665) 2023-12-12 19:36:25 +08:00
jxdv
6b8ec6ae16 update sk.rs (#6664) 2023-12-12 19:31:55 +08:00
flusheDData
d648e67eaf Update es.rs (#6658)
* Update es.rs

New terms added

* Update es.rs

mistype correction
2023-12-12 15:12:45 +08:00
RustDesk
ebb14af488 Revert "use fullrange by default for yuv420p if supported (#6655)" (#6656)
This reverts commit 80afa98d66.
2023-12-11 22:46:32 +08:00
21pages
80afa98d66 use fullrange by default for yuv420p if supported (#6655)
1. Explicitly specify the color space as bt601
2. Use fullrange by default for yuv420p if supported
3. Use the pix_fmt space range format to identify codec capabilities, make i444 proto field deprecated, and cause the non-release version of 444 true color to fail.

Signed-off-by: 21pages <pages21@163.com>
2023-12-11 22:31:01 +08:00
bovirus
2797a28c0d Update Italian language (#6654) 2023-12-11 20:09:55 +08:00
21pages
03c8d94024 mobile/desktop use same 'other default settings' (#6652)
1. mobile add 'reverse mouse wheel' default setting
2. change related menu position

Signed-off-by: 21pages <pages21@163.com>
2023-12-11 15:32:13 +08:00
21pages
c061eddf2a move 'swap key' and 'swap left right mouse' to keyboard menu (#6650)
Signed-off-by: 21pages <pages21@163.com>
2023-12-11 12:56:26 +08:00
rustdesk
2e146190e1 swap left right mouse button 2023-12-11 11:22:27 +08:00
rustdesk
fc110c4988 Fix icon color on Sonoma 2023-12-09 10:18:13 +08:00
rustdesk
6003003228 Fix https://github.com/rustdesk/rustdesk-server-pro/issues/174 2023-12-08 20:52:33 +08:00
Andrzej Rudnik
70e5bee519 Update pl.rs (#6633) 2023-12-07 18:33:47 +08:00
Sahil Yeole
4062d1920c Fix: wayland repeated share screen prompts (#6628)
* fix wayland repeated screen share prompts

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix is_x11 import

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix supported resolutions import

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

* fix supported resolutions import

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>

---------

Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-12-06 23:25:37 +08:00
21pages
50b81c2356 fix windows wakelock, add set_display (#6623)
Signed-off-by: 21pages <pages21@163.com>
2023-12-05 21:32:44 +08:00
21pages
00fe3a76c8 add popupMenuTheme (#6617)
Signed-off-by: 21pages <pages21@163.com>
2023-12-05 11:34:54 +08:00
fufesou
d11a3b9683 Refact, check current view style and scale mode, then update scroll percent (#6613)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-12-04 23:03:22 +08:00
rustdesk
7934fa24a2 Merge branch 'master' of github.com-rustdesk:rustdesk/rustdesk 2023-12-04 22:51:28 +08:00
rustdesk
f0d9dee6ce makepkg on archlinux ci failed from 20231201, fall back to mine 2023-12-04 22:50:54 +08:00
fufesou
3a82bddcd3 Fix, cursor position, scall origin, scrollbar (#6612)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-12-04 22:35:14 +08:00
rustdesk
ebe044aee8 Merge branch 'master' of github.com-rustdesk:rustdesk/rustdesk 2023-12-04 20:58:42 +08:00
rustdesk
674305ce29 https://github.com/rustdesk/rustdesk/discussions/6453#discussioncomment-7752797 2023-12-04 20:58:29 +08:00
21pages
b9a5c6ff31 showToast theme (#6603)
Signed-off-by: 21pages <pages21@163.com>
2023-12-03 22:56:47 +08:00
FastAct
bcb0a7822a Update nl.rs (#6602) 2023-12-03 22:54:12 +08:00
rustdesk
93aac0bc99 fix #616: support QR for uri link 2023-12-03 22:33:52 +08:00
rustdesk
7fe58afa9c fix #616: make ?key and /r work in uri 2023-12-03 22:18:11 +08:00
rustdesk
9d0f8d9886 Fix #616: add rustdesk://password/<password> for android only 2023-12-03 20:51:53 +08:00
rustdesk
aa7d0471db Fix #616, add rustdesk://config/<config_string> 2023-12-03 20:31:48 +08:00
RustDesk
6cd9227e8d Merge pull request #6598 from crwusiz/master_kr
kor translation update
2023-12-03 14:12:30 +08:00
RustDesk
213ef58959 Merge pull request #6595 from jxdv/cs-tr
update cs.rs
2023-12-03 14:12:09 +08:00
RustDesk
2fa1124752 Merge pull request #6594 from jxdv/sk-tr
update sk.rs
2023-12-03 14:11:58 +08:00
crwusiz
d00a0d6c75 kor translation update
fix typo
2023-12-03 11:27:05 +09:00
jxdv
2e225eb84f update cs.rs 2023-12-02 19:11:33 +01:00
jxdv
3c57ee89c4 update sk.rs 2023-12-02 19:04:08 +01:00
RustDesk
b6f870ac5f Merge pull request #6591 from fufesou/fix/6453
Fix. Do not update cursor pos when switching display on toolbar when "Show monitors on toolbar"
2023-12-02 22:23:19 +08:00
fufesou
570ce7d28d Refactor, optional parameter 'updateCursorPos'
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-12-02 22:01:05 +08:00
fufesou
3958090e0f Fix, wrong argument of mobile updating cursor position
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-12-02 21:53:00 +08:00
fufesou
99ed1b729e Fix. Do not update cursor pos when switching display on toolbar when 'Show monitors on toolbar'
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-12-02 21:23:19 +08:00
RustDesk
d16db77b52 Merge pull request #6585 from crwusiz/master_kr
kor translation update
2023-12-02 11:26:26 +08:00
RustDesk
56c176add4 Merge pull request #6586 from sahilyeole/feat/wayland_clipboard
Feat: wayland clipboard support
2023-12-01 23:06:02 +08:00
crwusiz
42a856c24a kor translation update 2023-12-01 22:33:18 +09:00
Sahil Yeole
b662090d64 update Cargo.lock for wayland clipboard 2023-12-01 18:23:23 +05:30
RustDesk
29e50a5f91 Merge pull request #6582 from xalt7x/ukrainian-translation
Update Ukrainian UI translation
2023-12-01 13:04:38 +08:00
Yevhen Popok
7885e07eed Update Ukrainian UI translation 2023-12-01 07:01:10 +02:00
rustdesk
65fd682f2a reorder lang to avoid translate miss some lines 2023-12-01 11:38:25 +08:00
RustDesk
cdecbb0857 Merge pull request #6579 from Mr-Update/patch-5
Update de.rs
2023-12-01 11:36:52 +08:00
RustDesk
68ee781f26 Merge pull request #6578 from bovirus/master
Update Italian language
2023-12-01 11:36:24 +08:00
Sahil Yeole
0f307e7ca2 preserve sudo env; required for WAYLAND_DISPLAY
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-12-01 05:14:09 +05:30
Sahil Yeole
7ac49287df set WAYLAND_DISPLAY env
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-12-01 05:13:03 +05:30
Sahil Yeole
83faf6025b use wayland-data-control arboard feature
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-12-01 05:11:41 +05:30
Mr-Update
4faf5e6d3e Update de.rs 2023-11-30 18:10:01 +01:00
bovirus
d300596ac1 Update Italian language 2023-11-30 15:33:44 +01:00
RustDesk
a30dc5988e Merge pull request #6577 from Kleofass/patch-7
Update lv.rs
2023-11-30 21:21:15 +08:00
Kleofass
e43a0da9a6 Update lv.rs 2023-11-30 15:19:34 +02:00
RustDesk
83b74c0930 Merge pull request #6575 from fufesou/fix/android_switch_display
fix, android switch display. Remove old display video subscription.
2023-11-30 16:32:06 +08:00
RustDesk
0d2a39267f Merge pull request #6574 from FastAct/patch-24
Update nl.rs
2023-11-30 16:29:18 +08:00
RustDesk
f87f380bb0 Update nl.rs 2023-11-30 16:29:02 +08:00
fufesou
ab28acd709 fix, android switch display. Remove old display video subscription.
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-30 16:27:20 +08:00
FastAct
04b53f8e1e Update nl.rs 2023-11-30 09:26:09 +01:00
rustdesk
eb0e5c2de3 change location to make tranlator easier 2023-11-30 16:12:17 +08:00
RustDesk
8cb9b910a6 Merge pull request #6573 from FastAct/patch-23
Update nl.rs
2023-11-30 16:08:29 +08:00
FastAct
bdac79c91b Update nl.rs 2023-11-30 08:57:59 +01:00
RustDesk
88081fc3c4 Merge pull request #6571 from solokot/master
Update ru.rs
2023-11-30 13:48:37 +08:00
solokot
6be451e9f3 Update ru.rs 2023-11-30 08:45:22 +03:00
RustDesk
64ed25879c Merge pull request #6565 from fufesou/fix/elevated_switch_display
fix, elevated mode, switch display
2023-11-30 00:18:14 +08:00
RustDesk
d66e087d94 Update cn.rs 2023-11-30 00:17:58 +08:00
RustDesk
b7b0a44c52 Update en.rs 2023-11-30 00:16:13 +08:00
fufesou
44cba7adf7 fix, prompt msg
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 23:50:17 +08:00
fufesou
5a8a64d284 fix, elevated mode, switch display
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 23:44:28 +08:00
RustDesk
eac6835982 Merge pull request #6564 from crwusiz/master_kr
kor translation update / fix typo
2023-11-29 23:34:02 +08:00
crwusiz
7992ca4c85 kor translation update / fix typo 2023-11-30 00:31:56 +09:00
RustDesk
ead200ea5d Merge pull request #6563 from fufesou/fix/is_subed
fix, is_subed()
2023-11-29 23:25:34 +08:00
fufesou
e146c2606f fix, is_subed()
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 23:19:29 +08:00
RustDesk
db158e1ffe Merge pull request #6561 from fufesou/feat/input_source
Feat/input source
2023-11-29 23:00:12 +08:00
RustDesk
72ef3c3394 Merge pull request #6562 from 21pages/force_reboot
fix macos and linux vm reboot
2023-11-29 22:57:38 +08:00
21pages
e17378c6b3 fix macos and linux vm reboot
Signed-off-by: 21pages <pages21@163.com>
2023-11-29 22:41:31 +08:00
fufesou
0e05f5305c fix build, android
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 22:13:38 +08:00
fufesou
58f43da23e update rdev
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 21:50:17 +08:00
fufesou
4a9e7f29da fix, flutter, keyboard mode
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 21:31:27 +08:00
fufesou
1589209567 release keys for flutter input source
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 21:05:21 +08:00
fufesou
5c6017b0a9 fix build, mobile
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 20:58:40 +08:00
fufesou
4246fe5b92 update rdev
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 20:58:40 +08:00
fufesou
c441d2f03f fix build
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 20:58:40 +08:00
fufesou
6c21529594 update rdev
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 20:58:40 +08:00
fufesou
6fc4253d46 debug, linux
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 20:58:40 +08:00
fufesou
7a2590d1f9 fix, compilation
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 20:58:40 +08:00
fufesou
4cbbb5b64f feat, input source, win->win
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 20:58:40 +08:00
fufesou
f11104fcb5 tmp commit
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 20:58:39 +08:00
RustDesk
19e8ca6c06 Merge pull request #6557 from 21pages/force_reboot
replace reboot with force_reboot
2023-11-29 17:34:09 +08:00
21pages
13005e8242 replace reboot with force_reboot
Signed-off-by: 21pages <pages21@163.com>
2023-11-29 17:26:13 +08:00
RustDesk
d0dde6e572 Merge pull request #6554 from fufesou/fix/mobile_switch_display
fix, mobile, switch display
2023-11-29 12:34:36 +08:00
fufesou
5e103a5ccb fix, mobile, switch display
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-29 12:30:41 +08:00
RustDesk
0c4e6f0a8c Merge pull request #6525 from bovirus/master
Update Italian language
2023-11-26 17:46:51 +08:00
RustDesk
03a89a5cdd Update it.rs 2023-11-26 17:33:12 +08:00
bovirus
e22d13be1f Update Italian language 2023-11-26 10:24:24 +01:00
RustDesk
ef9c4d96b7 Merge pull request #6524 from fufesou/fix/install_cert_silent
Fix. Install cert silently
2023-11-26 14:59:56 +08:00
fufesou
bb7300a055 Remove cert file arg on installing cert
Signed-off-by: fufesou <shuanglongchen@yeah.ne>
2023-11-26 14:26:45 +08:00
fufesou
2d456fd1fc --install-idd with cert
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-26 12:30:14 +08:00
fufesou
97108e788f Fix. Install cert silent
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-26 12:17:05 +08:00
RustDesk
b8f7259fbd Merge pull request #6520 from 21pages/wakelock
wake lock for all connection type
2023-11-25 20:34:14 +08:00
21pages
2de1c62daf wake lock for all connection type
Signed-off-by: 21pages <pages21@163.com>
2023-11-25 17:43:07 +08:00
RustDesk
f5d2eff8d3 Merge pull request #6514 from deep-soft/rustdesk-rustdesk
fix bridge.yml (dtolnay/rust-toolchain)
2023-11-24 13:15:17 +08:00
RustDesk
dbcf1fdb6f Merge pull request #6515 from 21pages/android_service_wakelock
android video service wakelock
2023-11-24 13:14:06 +08:00
21pages
bd81e4d0fb android video service wakelock
Signed-off-by: 21pages <pages21@163.com>
2023-11-24 12:02:45 +08:00
deep-soft
80786f692c fix bridge.yml (dtolnay/rust-toolchain)
toolchain
uses: dtolnay/rust-toolchain
2023-11-23 21:11:45 +02:00
RustDesk
177edfea3e Merge pull request #6511 from deep-soft/rustdesk-rustdesk
fix CI.yml (CARGO_TEST_OPTIONS and dtolnay/rust-toolchain)
2023-11-23 23:05:51 +08:00
deep-soft
b4b08db778 dtolnay/rust-toolchain 2023-11-23 16:47:54 +02:00
deep-soft
8abf2f768c Merge branch 'rustdesk:master' into rustdesk-rustdesk 2023-11-23 16:40:08 +02:00
deep-soft
8b14cd5aea Update ci.yml 2023-11-23 16:39:53 +02:00
rustdesk
84a21d72b9 link /usr/bin/rustdesk even for init system 2023-11-23 21:56:36 +08:00
rustdesk
fa8e0ed27b brotli 3.4 2023-11-23 19:52:53 +08:00
rustdesk
b6e403a3fb zstd 0.13 2023-11-23 19:35:42 +08:00
RustDesk
3d368f9aca Merge pull request #6506 from 21pages/fix_os_password_show
don't show os password when don't have keyboard permission
2023-11-23 19:21:22 +08:00
21pages
414ac950e0 don't show os password when don't have keyboard permission
Signed-off-by: 21pages <pages21@163.com>
2023-11-23 19:17:19 +08:00
RustDesk
34fa82f72c Merge pull request #6501 from deep-soft/rustdesk-rustdesk
github actions (ci.yml and flutter-build.yml)
2023-11-23 11:45:50 +08:00
RustDesk
4d5fdc4725 Merge pull request #6503 from cacing69/master
add idd trans on indonesia
2023-11-23 09:55:40 +08:00
RustDesk
1c4f28e708 Merge pull request #6502 from sahilyeole/fix/wayland_distorted_stream_scaling
Fix: wayland cursor mismatch on fractional scaling
2023-11-23 09:54:04 +08:00
Ibnul Mutaki
7bf555ce4c add idd trans 2023-11-23 07:54:42 +07:00
deep-soft
bb388628a7 Update flutter-build.yml 2023-11-22 23:09:56 +02:00
deep-soft
a2920578a1 Update ci.yml 2023-11-22 22:38:41 +02:00
Sahil Yeole
b41a73f08d fix cursor mismatch on fractional scaling single screen
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-22 23:53:43 +05:30
RustDesk
c6ace470e3 Merge pull request #6498 from Mr-Update/patch-4
Update de.rs
2023-11-22 17:48:17 +08:00
Mr-Update
cdbe79d3c1 Update de.rs 2023-11-22 10:46:07 +01:00
RustDesk
493ec07ff2 Merge pull request #6497 from 21pages/fix_os_password_click
fix mobile os password edit action
2023-11-22 16:59:51 +08:00
21pages
ec15412755 fix mobile os password edit action
Signed-off-by: 21pages <pages21@163.com>
2023-11-22 16:46:17 +08:00
RustDesk
191b6d5b4e Merge pull request #6496 from necarnot/master
Update fr.rs typo
2023-11-22 16:44:06 +08:00
rustdesk
8718152dba no sign 2023-11-22 16:43:47 +08:00
necarnot
c585db7516 Update fr.rs typo
Lots of minor typos
2023-11-22 09:39:53 +01:00
RustDesk
515c91a407 Delete .github/ISSUE_TEMPLATE/task.yaml 2023-11-22 13:22:22 +08:00
RustDesk
b615029304 Merge pull request #6488 from Kleofass/patch-6
Update lv.rs
2023-11-21 22:28:02 +08:00
Kleofass
3b0f4b1f82 Update lv.rs 2023-11-21 16:21:08 +02:00
RustDesk
4a2bf7a0c3 Merge pull request #6487 from sahilyeole/fix/wayland_distorted_stream_scaling
Fix: wayland fractional scaling distortion
2023-11-21 21:46:32 +08:00
RustDesk
79212f8ef7 Merge pull request #6486 from crwusiz/master_kr
kor_translation update
2023-11-21 21:05:59 +08:00
crwusiz
c57a596156 kor_translation update 2023-11-21 22:04:08 +09:00
Sahil Yeole
948db1451f fix stream resolution mismatch/distortion on scaling
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-21 16:59:45 +05:30
RustDesk
06aa18bfab Merge pull request #6483 from solokot/master
update ru.rs
2023-11-21 18:47:40 +08:00
solokot
f076afb6e1 update ru.rs 2023-11-21 12:48:16 +03:00
RustDesk
582402f4d9 Merge pull request #6482 from jxdv/cs-tr
update cs.rs
2023-11-21 16:58:04 +08:00
jxdv
0e04ff506b update cs.rs 2023-11-21 09:55:22 +01:00
RustDesk
e9f757dccb Merge pull request #6481 from jxdv/sk-tr
update sk.rs
2023-11-21 16:53:58 +08:00
jxdv
f02d858646 fix typo 2023-11-21 09:51:28 +01:00
jxdv
3727cd401c update sk.rs 2023-11-21 09:50:42 +01:00
RustDesk
f0c9deca4b Merge pull request #6475 from fufesou/feat/win10_virtual_display_not_support_msg
Feat/win10 virtual display not support msg
2023-11-21 11:59:02 +08:00
fufesou
f41a8bc355 idd_not_support_tip to idd_not_support_under_win10_2004_tip
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-21 11:05:50 +08:00
fufesou
3100930136 translation & Rustdesk to RustDesk
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-21 10:55:46 +08:00
fufesou
9abafafcdd translation
Signed-off-by: fufesou <shuanglongchen@yeah.ne>
2023-11-20 21:57:53 +08:00
fufesou
0d127dff3b translation
Signed-off-by: fufesou <shuanglongchen@yeah.ne>
2023-11-20 21:55:09 +08:00
fufesou
83dbf88ffb feat, win10, virtual display, not support message
Signed-off-by: fufesou <shuanglongchen@yeah.ne>
2023-11-20 21:44:25 +08:00
RustDesk
3a6f56ebbc Merge pull request #6473 from fufesou/feat/format_idd_error_message
Feat/format idd error message
2023-11-20 18:56:39 +08:00
fufesou
3e8c5d3b79 trivial changes
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 17:42:34 +08:00
fufesou
2aaca0c54a Remove get_error() in windows.rs
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 17:38:53 +08:00
fufesou
c6d587f0c7 Refact, use std::io::Error::from_raw_os_error() to format message
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 17:22:14 +08:00
fufesou
c85682de8d Refact, replace GetLastError() by std::io::Error::last_os_error()
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 17:15:15 +08:00
fufesou
9c12c3ee4e remove useless \n
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 16:48:05 +08:00
fufesou
2c432dbf4d format idd error message
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 16:41:02 +08:00
fufesou
0c8643837f Modify the error message
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 16:11:59 +08:00
fufesou
3fd97f7e60 modify error message
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 15:54:29 +08:00
fufesou
5064696480 send msgbox when plugging in/out virtual displays
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 15:46:22 +08:00
fufesou
6f0fbd1088 feat, format idd error message
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 15:30:56 +08:00
RustDesk
b535722421 Merge pull request #6470 from fufesou/feat/topmost_window_exclude_from_capture
Feat/topmost window exclude from capture
2023-11-20 12:46:23 +08:00
fufesou
60e96b637d privacy mode, remove 'recommended'
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 11:50:53 +08:00
fufesou
7f29c7a601 add comment
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 11:07:18 +08:00
fufesou
060dfedb74 topmost_window_exclude_from_capture, change label text
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 10:57:01 +08:00
RustDesk
2907ed6029 Merge pull request #6468 from 0ofta/norwegian-bokmal-translation
Added Norwegian Bokmål Translation
2023-11-20 10:33:30 +08:00
fufesou
5649fcc9ca win, is version equal or greater, build number
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 10:28:57 +08:00
fufesou
85ddfc0739 remove redundent global variables
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 07:41:06 +08:00
fufesou
7c98bfd363 check if WDA_EXCLUDEFROMCAPTURE is supported
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 07:41:06 +08:00
fufesou
c23f377039 feat, topmost window, exclude from capture
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-20 07:41:04 +08:00
0ofta
af89fb52f1 Added Norwegian Bokmål Translation
Signed-off-by: 0ofta <kaare@jenssen.it>
2023-11-19 20:32:11 +01:00
RustDesk
98f56fd506 Merge pull request #6466 from xalt7x/fix/README.md
README.md: Fix typo and use correct name for macOS
2023-11-20 00:02:14 +08:00
Yevhen Popok
88ea1ea85b README.md: Fix typo and use correct name for macOS 2023-11-19 17:57:25 +02:00
RustDesk
2a1e33f95c Merge pull request #6465 from xalt7x/ukrainian-translation
Update Ukrainian translations
2023-11-19 23:54:00 +08:00
Yevhen Popok
2fe55e2b55 Update Ukrainian README 2023-11-19 17:52:19 +02:00
Yevhen Popok
d6f5887b1d Update Ukrainian UI translation 2023-11-19 14:46:33 +02:00
RustDesk
dce045461a Merge pull request #6462 from fufesou/feat/top_most_window_cloak
feat, top most window cloak.
2023-11-19 13:38:57 +08:00
fufesou
4ab0324bc9 feat, top most window cloak. Window preview will not break privacy mode.
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-19 12:34:30 +08:00
RustDesk
b2bb69fe42 Merge pull request #6460 from fufesou/feat/install_idd_when_installing_app
feat, install indirect display driver when installing the app
2023-11-19 11:44:26 +08:00
RustDesk
ad96f9aacd Merge pull request #6461 from 21pages/fix_max_codec_thread_num
fix exceeding the maximum number of threads allowed
2023-11-19 11:43:12 +08:00
21pages
9847fc5c77 fix exceeding max allowed thread count, thread count <= available memory / 2
Signed-off-by: 21pages <pages21@163.com>
2023-11-19 11:36:23 +08:00
fufesou
3f3bca753c feat, install indirect display driver when installing the app
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-18 12:14:21 +08:00
RustDesk
c223d6a87d Merge pull request #6457 from flusheDData/master
Update es.rs
2023-11-18 10:23:39 +08:00
RustDesk
14a428467c Merge pull request #6458 from cacing69/master
update id trans
2023-11-18 10:23:28 +08:00
RustDesk
efc84e53ec Merge pull request #6459 from 21pages/format_log
format log
2023-11-18 10:22:55 +08:00
21pages
f9ee0189f0 format log, add space after colon
Signed-off-by: 21pages <pages21@163.com>
2023-11-18 09:52:46 +08:00
Ibnul Mutaki
d90580943f update id trans 2023-11-18 08:26:44 +07:00
flusheDData
f6484b4e2b Update es.rs
New terms added
2023-11-18 00:11:25 +01:00
RustDesk
0b5f48b926 Merge pull request #6446 from fufesou/fix/do_not_get_displays_on_start
Fix. Do not get displays on server start.
2023-11-18 00:31:38 +08:00
fufesou
f2f649319d Remove redundant mutex
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-17 23:38:27 +08:00
RustDesk
35eaa94228 Merge pull request #6445 from fufesou/fix/mobile_soft_keyboard_focus
fix, mobile soft keyboard focus
2023-11-17 23:09:55 +08:00
fufesou
e09a050d41 Fix. Do not get displays on server start.
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-17 17:11:25 +08:00
fufesou
38182ba020 tmp fix, mobile soft keyboard focus
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-17 14:43:23 +08:00
RustDesk
7960b2ca10 Merge pull request #6436 from fufesou/fix/android_soft_keyboard_input
fix, android_soft_keyboard_input, maybe flutter 3.13.*
2023-11-16 23:40:51 +08:00
fufesou
722c789448 add comment
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-16 23:39:07 +08:00
fufesou
faa4c36956 fix, android_soft_keyboard_input, maybe flutter 3.13.*
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-16 23:08:09 +08:00
RustDesk
d3a33d786d Merge pull request #6429 from bovirus/master
Update Italian language
2023-11-16 17:36:41 +08:00
bovirus
1a2d60dbfc Update Italian language 2023-11-16 08:00:23 +01:00
RustDesk
2aa5e685b8 Merge pull request #6425 from dignow/fix/query_onlines_block_thread
Fix/query onlines block thread
2023-11-16 13:29:13 +08:00
RustDesk
512c7df37d Merge pull request #6416 from basilgello/vcpkg-deps
vcpkg deps
2023-11-16 13:28:56 +08:00
RustDesk
57fddf1c85 Merge pull request #6418 from Kleofass/patch-5
Update lv.rs
2023-11-16 13:28:12 +08:00
RustDesk
afe4206782 Merge pull request #6415 from BestiaPL/master
Update pl.rs
2023-11-16 13:27:43 +08:00
dignow
02bc5e3111 debug, query_onlines_block_thread
Signed-off-by: dignow <linlong1265@gmail.com>
2023-11-16 10:32:22 +08:00
dignow
5a51284550 fix, query onlines, block current ffi thread
Signed-off-by: dignow <linlong1265@gmail.com>
2023-11-16 10:32:22 +08:00
Vasyl Gello
2d995826ad Globally drop yasm - libvpx should not need it
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-15 16:03:40 +02:00
Kleofass
92f3bf2999 Update lv.rs 2023-11-15 16:00:46 +02:00
Vasyl Gello
bfe282c2db VCPKG port fixes
* Do not patch vcpkg - replace the cmake script fully
  * Actualize libvpx port

[skip ci]

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-15 13:22:31 +02:00
Andrzej Rudnik
2d0b013af3 Update pl.rs 2023-11-15 11:16:34 +01:00
RustDesk
3df938ed61 Merge pull request #6414 from solokot/master
Update Russian translation
2023-11-15 16:32:54 +08:00
solokot
d4b6cab742 Update Russian translation 2023-11-15 11:29:33 +03:00
RustDesk
8d327af0ac Merge pull request #6411 from fufesou/fix/displays_order
fix, windows displays' order mismatch the system settings display
2023-11-15 15:39:59 +08:00
RustDesk
f135fbee26 Merge pull request #6413 from crwusiz/master_kr
kor_translation update
2023-11-15 14:05:04 +08:00
RustDesk
d65977bd59 Merge pull request #6410 from fufesou/fix/build_ios
fix, build ios
2023-11-15 14:03:41 +08:00
crwusiz
1e0242ede9 kor_translation update 2023-11-15 10:30:29 +09:00
fufesou
839d3365f8 fix, build ios
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-14 22:29:12 +08:00
fufesou
182ee8f233 fix, order displays from dxgi
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-14 22:04:17 +08:00
RustDesk
24eb6f8c38 Merge pull request #6406 from fufesou/feat/virtual_display_privacy_mode
Feat/Windows - virtual display privacy mode
2023-11-14 21:54:14 +08:00
fufesou
13bade262f remove warns
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-14 21:01:31 +08:00
fufesou
d2ff675fbc virtual_display_privacy_mode, switch privacy, debug
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-14 20:46:06 +08:00
fufesou
1905a81f9a virtual_display_privacy_mode, switch privacy mode directly
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-14 19:36:51 +08:00
fufesou
e2382a1465 refact, mobile, privacy mode menu
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-14 17:35:16 +08:00
RustDesk
ec00cd2ae0 Merge pull request #6408 from basilgello/vcpkg-deps
vcpkg deps
2023-11-14 14:47:57 +08:00
RustDesk
e0fad4eaa5 Merge pull request #6407 from 21pages/sysinfo
opt sysinfo
2023-11-14 14:43:52 +08:00
Vasyl Gello
882b39b067 Ignore CRLF/LF conversion on sciter patch apply
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-14 08:09:07 +02:00
21pages
d15a641d88 fix mobile doesn't init ConnectionTypeState
Signed-off-by: 21pages <pages21@163.com>
2023-11-14 12:46:21 +08:00
fufesou
90ac8b7b0b feat/virtual_display_privacy_mode
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-14 12:11:38 +08:00
RustDesk
d64afdcff1 Merge pull request #6403 from 21pages/flexi_logger
update flexi_logger to 0.27.3
2023-11-14 11:12:52 +08:00
21pages
eb58a39f57 replace System::new_all with System::new
Signed-off-by: 21pages <pages21@163.com>
2023-11-14 09:40:15 +08:00
RustDesk
d12352d568 Merge pull request #6358 from basilgello/vcpkg-deps
vcpkg deps
2023-11-13 23:33:53 +08:00
RustDesk
217a9808b2 Merge pull request #6392 from 21pages/fps
not use max fps by default
2023-11-13 23:32:55 +08:00
21pages
1b08adb178 not use max fps by default
Signed-off-by: 21pages <pages21@163.com>
2023-11-13 21:33:51 +08:00
Vasyl Gello
f113fda6d4 [TEMP] Try disabling LLVM IR bitcode and upload rust target folder to cache
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-13 14:01:10 +02:00
RustDesk
5a6a773583 Merge pull request #6394 from rustdesk/revert-6379-fix/the_displays_order
Revert "Fix, windows display orders"
2023-11-13 17:32:10 +08:00
RustDesk
627d21a00a Revert "Fix, windows display orders" 2023-11-13 17:31:55 +08:00
RustDesk
44e13c84bc Merge pull request #6389 from xalt7x/ukrainian-translation
Update Ukrainian translation
2023-11-13 12:46:33 +08:00
Yevhen Popok
b96067cf2e Update Ukrainian translation 2023-11-13 00:11:20 +02:00
Yevhen Popok
b2fe5cce5e Update Ukrainian translation 2023-11-13 00:06:50 +02:00
Yevhen Popok
55775adba6 Update Ukrainian translation 2023-11-13 00:01:14 +02:00
RustDesk
0500f56163 Merge pull request #6385 from 21pages/only_windows_check_cm_exit
only windows no prelogin check cm exit
2023-11-12 22:18:55 +08:00
21pages
52e5d519ab only windows no prelogin check cm exit
Signed-off-by: 21pages <pages21@163.com>
2023-11-12 22:09:41 +08:00
RustDesk
bdfbb97bf8 Merge pull request #6384 from basilgello/fix-rpmbuild-flutter-3.13.9
rpm: Add missing libfile_selector_linux_plugin.so()(64bit) to provides
2023-11-12 21:22:55 +08:00
RustDesk
cff117cb40 Merge pull request #6383 from crwusiz/master_kr
kor_translation update
2023-11-12 21:21:46 +08:00
RustDesk
cf71adc7e1 Merge pull request #6379 from fufesou/fix/the_displays_order
Fix, windows display orders
2023-11-12 21:21:23 +08:00
Vasyl Gello
0582f2a168 rpm: Add missing libfile_selector_linux_plugin.so()(64bit) to provides
Fixes installation of rpms on fedora/suse.

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-12 06:59:20 +02:00
crwusiz
2721af3052 kor_translation update 2023-11-12 13:36:25 +09:00
fufesou
f9950639e8 remove warn
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-12 11:49:38 +08:00
fufesou
8f8c9ddc25 Fix, windows display orders
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-12 00:08:16 +08:00
RustDesk
58596ad1ab Merge pull request #6374 from jxdv/cs-tr
update cs.rs
2023-11-11 19:36:13 +08:00
RustDesk
b17ea991a3 Merge pull request #6373 from jxdv/sk-tr
update sk.rs
2023-11-11 19:35:58 +08:00
RustDesk
45d70f73bd Merge pull request #6354 from 21pages/relay_hint
Show relay hint regardless of whether data is received or not
2023-11-11 19:35:44 +08:00
RustDesk
7a6e483171 Merge pull request #6361 from fufesou/fix/check_update_broker_on_privacy_start
fix, run check_update_broker_process on privacy mode start
2023-11-11 19:29:58 +08:00
RustDesk
1792dd8d2c Merge pull request #6362 from KetaDotCC/master
fix: add missing winapi features on a fresh build
2023-11-11 19:28:56 +08:00
RustDesk
a4ea4b138f Merge pull request #6359 from cacing69/master
update ID Trans
2023-11-11 19:27:21 +08:00
jxdv
e2c6aedddd update cs.rs 2023-11-11 11:53:05 +01:00
jxdv
b91a03b602 update sk.rs 2023-11-11 11:45:53 +01:00
21pages
27716f077e update flexi_logger to 0.27.3, android check path exist
Signed-off-by: 21pages <pages21@163.com>
2023-11-11 18:19:01 +08:00
21pages
eaa054e599 Show relay hint regardless of whether data is received or not
Signed-off-by: 21pages <pages21@163.com>
2023-11-10 19:13:50 +08:00
Kingtous
e57d07f7d6 fix: add missing winapi features on a fresh build 2023-11-10 12:00:08 +08:00
fufesou
895831f46f fix, run check_update_broker_process on privacy mode start
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-10 09:56:25 +08:00
Ibnul Mutaki
6b16d7ee8a update ID Trans 2023-11-10 08:04:11 +07:00
rustdesk
45dbea57f1 allow /r in command line 2023-11-09 21:58:03 +08:00
RustDesk
6ea0dbc70f Merge pull request #6351 from basilgello/vcpkg-deps
vcpkg-deps fixes
2023-11-09 19:21:45 +08:00
Vasyl Gello
30a5041799 Dont mess CROSS with CC/CXX/etc
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-09 12:41:06 +02:00
Vasyl Gello
35083724f6 macos: Try to patch underlying file and not symlink
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-09 11:48:13 +02:00
RustDesk
959d5dd9c2 Merge pull request #6349 from 21pages/fix
fix windows build, add winapi features
2023-11-09 17:11:10 +08:00
rustdesk
a24a261c36 API_SERVER 2023-11-09 16:52:04 +08:00
21pages
75feb90b19 fix windows build, add winapi features
Signed-off-by: 21pages <pages21@163.com>
2023-11-09 16:30:22 +08:00
RustDesk
fd3cb1b0eb Merge pull request #6333 from 21pages/cm
close all connections if cm exit unexpected, and allow retry
2023-11-09 16:06:57 +08:00
21pages
1902134f03 cm get config
Signed-off-by: 21pages <pages21@163.com>
2023-11-09 15:57:47 +08:00
RustDesk
cce48c5030 Merge pull request #6330 from dploeger/issue-6157
fix: Fix sysinfo >=0.29.1 crashing the main view on macOS
2023-11-09 15:47:59 +08:00
RustDesk
0654b8e427 Update Cargo.toml 2023-11-09 15:46:42 +08:00
RustDesk
7df10b20a4 Merge pull request #6328 from sahilyeole/fix/mobile_wayland_keyboard_mismatch
Fix: mobile -> wayland virtual keyboard mapping mismatch
2023-11-09 15:44:55 +08:00
RustDesk
dbde5af545 Merge pull request #6340 from grummbeer/allow-to-enable
Fix. translation keys "Allow file copy and paste" > "Enable file copy and paste"
2023-11-09 15:37:59 +08:00
RustDesk
85b4f0638f Merge pull request #6347 from rustdesk/revert-6343-remove_manual_fps
Revert "Remove manual adjustment of fps, automatically adjusted to the maximum already"
2023-11-09 15:25:10 +08:00
RustDesk
94f2751902 Revert "Remove manual adjustment of fps, automatically adjusted to the maximum already" 2023-11-09 15:24:57 +08:00
RustDesk
ffdfef0adc Merge pull request #6343 from 21pages/remove_manual_fps
Remove manual adjustment of fps, automatically adjusted to the maximum already
2023-11-09 15:13:45 +08:00
RustDesk
de7652836b Merge pull request #6334 from solokot/master
Update ru.rs
2023-11-09 15:12:24 +08:00
RustDesk
59913bc6f3 Merge pull request #6327 from Mr-Update/patch-3
Update de.rs
2023-11-09 15:11:44 +08:00
RustDesk
d77a684b64 Merge pull request #6326 from flusheDData/master
Update es.rs
2023-11-09 15:11:04 +08:00
RustDesk
529c075fe1 Merge pull request #6325 from basilgello/vcpkg-deps
Fixes for vcpkg-deps
2023-11-09 15:10:44 +08:00
Vasyl Gello
5190589653 Publish rustdesk version file on tag
[skip ci]

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-09 07:20:20 +02:00
Vasyl Gello
cb9a1b4bef Fix wrong CMake compiler detection of arm-linux on aarch64
[skip ci]

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-09 07:20:14 +02:00
21pages
a0beba4e20 remove fps manual adjust, which can only limit fps
Signed-off-by: 21pages <pages21@163.com>
2023-11-09 10:20:31 +08:00
Mr-Update
d794425f2c Update de.rs 2023-11-08 21:50:09 +01:00
Vasyl Gello
1ba11fc3ef Try to give more time to apple XProt service to verify app image
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-08 21:26:07 +02:00
Vasyl Gello
0dfb1ae776 Add oboe-wrapper local vcpkg port
... because we switched to unmodified oboe.

The wrapper is built as separate local vcpkg port
that depends on oboe.

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-08 21:26:04 +02:00
grummbeer
c8a054f997 fix translation keys. allow > enable 2023-11-08 18:32:55 +01:00
grummbeer
30c4e9cf00 fix translation keys. allow > enable 2023-11-08 18:31:37 +01:00
solokot
c9fd2fc1c2 Update ru.rs 2023-11-08 13:44:30 +03:00
Dennis Ploeger
e9e3a436eb fix: Corrected Cargo.lock 2023-11-08 10:50:15 +01:00
Dennis Ploeger
b9bd79895f fix: Fix sysinfo >=0.29.1 crashing the main view on macOS 2023-11-08 08:59:27 +01:00
21pages
36b574a5f8 close all connections if cm exit unexpected, and allow retry
Signed-off-by: 21pages <pages21@163.com>
2023-11-08 13:01:09 +08:00
Mr-Update
fe90372b2f Update de.rs 2023-11-07 23:52:56 +01:00
Sahil Yeole
d47ddac94c add layout mappings for shift+key events
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-07 23:44:26 +05:30
flusheDData
854c374e2f Update es.rs
New terms added
2023-11-07 16:27:41 +01:00
RustDesk
7bafe142ca Merge pull request #6322 from BestiaPL/master
Update pl.rs
2023-11-07 20:23:47 +08:00
RustDesk
14ec8c4bea Merge pull request #6323 from basilgello/vcpkg-deps
vcpkg deps
2023-11-07 20:21:01 +08:00
Vasyl Gello
e9f2a77bf6 Remove useless step for ios and document elinux need better
[skip ci]

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-07 14:17:09 +02:00
Vasyl Gello
dcb4ce8d9a Revert "CI: Remove flutter-elinux"
This reverts commit c4b68280fd.

Official flutter does not run on arm64 and it is very vaguely
documented.
2023-11-07 13:59:22 +02:00
Vasyl Gello
2702466cdf Revert "Avoid double build of bridge fies"
This reverts commit f0f52d7244.

Looks like macos and ios can use the same cached bridge but not
linux one because of missing headers: Runner/bridge_generated.h
2023-11-07 13:57:13 +02:00
Andrzej Rudnik
2016000d37 Update pl.rs 2023-11-07 12:36:05 +01:00
RustDesk
be0516c06c Merge pull request #6320 from basilgello/vcpkg-deps
vcpkg deps
2023-11-07 18:19:00 +08:00
Vasyl Gello
332a3635de Add ninja to vcpkg deps
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-07 12:08:44 +02:00
RustDesk
9df4fa6a0e Merge pull request #6319 from basilgello/vcpkg-deps
Add cmake to vcpkg deps
2023-11-07 18:03:01 +08:00
Vasyl Gello
ddcb9ff819 Add cmake to vcpkg deps
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-07 12:02:26 +02:00
RustDesk
7e9f5509ca Merge pull request #6318 from basilgello/vcpkg-deps
Add vcpkg deps (zip etc)
2023-11-07 17:57:39 +08:00
Vasyl Gello
c596d75e8c Add vcpkg deps (zip etc)
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-07 11:55:31 +02:00
RustDesk
a0337d399c Merge pull request #6282 from basilgello/vcpkg-deps
Refactor vcpkg dependencies and get rid of thirdparty repos
2023-11-07 17:39:37 +08:00
Vasyl Gello
f0f52d7244 Avoid double build of bridge fies
Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-07 10:55:44 +02:00
RustDesk
d55d796c00 Merge pull request #6314 from FastAct/patch-22
Update nl.rs
2023-11-07 16:14:07 +08:00
RustDesk
6da36b27aa Update nl.rs 2023-11-07 15:29:08 +08:00
FastAct
b4d3fc393e Update nl.rs 2023-11-07 07:42:25 +01:00
Vasyl Gello
c4b68280fd CI: Remove flutter-elinux
[skip ci]

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-07 08:31:14 +02:00
Vasyl Gello
97aeee7172 Fix CI
* Drop third party lib repos
  * Now all vcpkg dependencies are declared in vcpkg.json
  * Implement vcpkg binary caching in Github Actions

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-07 08:31:14 +02:00
Vasyl Gello
8bf57f1293 Refactor build_android_deps.sh
* Allow building one architecture or all 4 architectures
* Fix paths for ndk r25c+
* Bump libvpx to 1.13.1 to fix CVE-2023-5238
* Add ndk-compat from cpu-features to address missing
  android_getCpuFeatures symbol on android arm64 emulators

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-07 08:31:14 +02:00
Vasyl Gello
4584cebad5 Add custom ports not (yet) in upstream vcpkg
aom 3.7.0
libvpx 1.13.1: https://github.com/microsoft/vcpkg/pull/34814

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-07 08:31:11 +02:00
RustDesk
557773144b Merge pull request #6097 from mcfans/master
Physical keyboard to android support
2023-11-07 12:56:16 +08:00
mcfans
32a29a5556 chore: use a match instead of unwrap error 2023-11-07 12:51:16 +08:00
Vasyl Gello
9f4a844c9b Fix buildscripts
* Fix FDroid build on x86
  * Fix CI build on arm
  * Rename `install_oboe` to `install_android_deps`

... because we add ndk_compat and the function installs
android-specific dependencies.

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-07 06:27:43 +02:00
RustDesk
82b7650458 Merge pull request #6313 from fufesou/fix/crash_3.13_win_multidesktop
fix, crash 3.13, windows, multidesktop
2023-11-07 12:23:06 +08:00
fufesou
b7121c4447 fix, crash 3.13, windows, multidesktop
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-07 12:18:03 +08:00
mcfans
b522de3b56 Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	Cargo.lock
#	src/server/connection.rs
2023-11-07 12:13:15 +08:00
RustDesk
eb94caf4b6 Merge pull request #6312 from fufesou/fix/remote_tab_menu
fix, remote tab menu
2023-11-07 12:00:30 +08:00
fufesou
0f59e0c950 fix, remote tab menu
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-07 11:56:07 +08:00
RustDesk
05a254c682 Merge pull request #6310 from 21pages/install_after_connect
fix install after connection
2023-11-07 11:37:52 +08:00
RustDesk
576ba2c745 Merge pull request #6308 from Kleofass/patch-4
Update lv.rs
2023-11-07 11:37:00 +08:00
RustDesk
3dafda6ace Merge pull request #6306 from bovirus/master
Update Italian language
2023-11-07 11:36:19 +08:00
RustDesk
2d048a3295 Merge pull request #6305 from FastAct/patch-21
Update nl.rs
2023-11-07 11:35:55 +08:00
21pages
f2d345e7b1 fix missing log when removed directory names have same prefix
Signed-off-by: 21pages <pages21@163.com>
2023-11-07 10:43:03 +08:00
21pages
6a0db02230 closeAllSubWindow before install
Signed-off-by: 21pages <pages21@163.com>
2023-11-07 10:42:57 +08:00
RustDesk
93f271912e Update nl.rs 2023-11-07 10:34:39 +08:00
Kleofass
55b78727ab Update lv.rs 2023-11-06 17:58:51 +02:00
bovirus
69b555c059 Update Italian language 2023-11-06 15:26:00 +01:00
FastAct
07f327d641 Update nl.rs 2023-11-06 15:11:47 +01:00
rustdesk
c69f4ba4a2 fix ci 2023-11-06 20:36:03 +08:00
rustdesk
d7e8d4d5c3 fix #6198 2023-11-06 20:12:01 +08:00
RustDesk
679a026e72 Merge pull request #6304 from yaseresmaeelpour/patch-1
Update fa.rs
2023-11-06 19:53:24 +08:00
yaseresmaeelpour
0db180a54f Update fa.rs
fix setup server tip message in farsi language
2023-11-06 14:52:46 +03:30
RustDesk
6c2de53e07 Merge pull request #6303 from 21pages/cm_file_log
Cm file createDir/delete log and block user input permission
2023-11-06 19:13:31 +08:00
21pages
af132aa62e permission allow->enable, block->blocking
Signed-off-by: 21pages <pages21@163.com>
2023-11-06 18:08:53 +08:00
21pages
d528fd3762 permisson block input
Signed-off-by: 21pages <pages21@163.com>
2023-11-06 15:07:03 +08:00
21pages
663d355a48 cm file delete/create log
Signed-off-by: 21pages <pages21@163.com>
2023-11-06 14:24:50 +08:00
RustDesk
27112e3480 Merge pull request #6286 from jxdv/cz-rs-update
update cs.rs
2023-11-06 11:00:24 +08:00
RustDesk
482d3ff352 Merge pull request #6297 from BestiaPL/master
Update pl.rs
2023-11-06 11:00:04 +08:00
RustDesk
a444d4af94 Merge pull request #6289 from crwusiz/master_kr
kor_translation update
2023-11-06 10:59:49 +08:00
RustDesk
6f77fda6fa Merge pull request #6294 from ClSlaid/docs/clipboard-files
docs: file copy paste explainations
2023-11-06 10:59:22 +08:00
Andrzej Rudnik
8f7d653e80 Update pl.rs 2023-11-06 00:30:59 +01:00
mcfans
e474b595ad fix: add proguard rules, avoid protobuf generated classes got obfuscated 2023-11-06 01:04:53 +08:00
ClSlaid
b4c6292397 docs: file copy paste explainations
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-11-05 18:11:05 +08:00
crwusiz
4aa994827c kor_translation update 2023-11-05 10:12:45 +09:00
jxdv
a521ccde47 update cs.rs 2023-11-04 14:29:03 +01:00
RustDesk
03d280054b Merge pull request #6285 from jxdv/sk-rs-update
update sk.rs
2023-11-04 21:22:23 +08:00
jxdv
c0a3279856 update sk.rs 2023-11-04 14:12:10 +01:00
jxdv
e8643632bf translations 2023-11-04 13:24:23 +01:00
mcfans
6d8272472a fix: set correct flag 2023-11-04 20:24:15 +08:00
mcfans
409d5b124a fix: add page up/down keymap 2023-11-04 17:57:19 +08:00
RustDesk
0c1f3d056a Merge pull request #6279 from sahilyeole/feat/list_view
Fix: change view dropdown not working on macos clicking
2023-11-04 17:26:05 +08:00
Sahil Yeole
0e702d8693 remove setState
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-04 14:50:04 +05:30
mcfans
b155cd9a5a fix: set same rect for correct layout and navigation and set correct selection 2023-11-04 17:08:49 +08:00
RustDesk
6a281fb7ba Merge pull request #6266 from sahilyeole/feat/mobile_uni_link
Feat: mobile uni link support (android + ios)
2023-11-04 10:59:29 +08:00
Sahil Yeole
203891c957 fix change view dropdown not working on macos clicking
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-03 20:12:52 +05:30
Sahil Yeole
1365df898f support connect, play & file-transfer on mobile uri
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-03 18:31:30 +05:30
RustDesk
a2bc02b4c5 Merge pull request #6275 from 21pages/opt_codec
opt codec
2023-11-03 15:06:46 +08:00
21pages
0d01aa4eea opt close on taskbar, not call onWindowClose multi times
Signed-off-by: 21pages <pages21@163.com>
2023-11-03 11:52:43 +08:00
21pages
017c73132c condition show more quality
Signed-off-by: 21pages <pages21@163.com>
2023-11-03 11:52:43 +08:00
21pages
534bfad50f opt codec
1. use src width/height to convert yuv
2. align dst yuv to avoid illegal memory access
3. init yuvfmt when new codec
4. move remote reset calls from empty conns judge to emtpy remote conns
   judge

Signed-off-by: 21pages <pages21@163.com>
2023-11-03 11:52:41 +08:00
RustDesk
429f44eb6a Merge pull request #6274 from KagamineP/patch-2
Update ru.rs
2023-11-03 11:36:06 +08:00
Dmitry Kiryanov
346c88b661 Update ru.rs 2023-11-03 08:30:28 +05:00
mcfans
c49853e7b4 fix: set text before update accessibility node 2023-11-03 10:47:46 +08:00
RustDesk
11232c6f23 Merge pull request #6270 from dignow/fix/android_rotation
fix, android rotate screen
2023-11-03 10:34:54 +08:00
RustDesk
9aa788f086 Merge pull request #6271 from Kleofass/patch-3
Update lv.rs
2023-11-03 10:34:26 +08:00
RustDesk
c35268c493 Merge pull request #6267 from flusheDData/master
Update es.rs
2023-11-03 10:34:09 +08:00
dignow
df0ad4486e fix build
Signed-off-by: dignow <linlong1265@gmail.com>
2023-11-03 09:23:28 +08:00
Kleofass
d369385657 Update lv.rs 2023-11-03 02:25:01 +02:00
dignow
059e067bdc fix, android rotate screen
Signed-off-by: dignow <linlong1265@gmail.com>
2023-11-03 07:17:40 +08:00
Sahil Yeole
050759c1c2 improve code format
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-03 01:55:56 +05:30
Sahil Yeole
6d264b4394 remove extra line
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-03 01:51:40 +05:30
Sahil Yeole
284330ed5f use desktop uri format for mobile
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-03 01:46:51 +05:30
Sahil Yeole
49205b604c add android intent url scheme
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-02 23:57:31 +05:30
Sahil Yeole
c14c27970f cold boot uni link mobile
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-02 23:57:31 +05:30
Sahil Yeole
b1682d5794 listen and connect to uni link mobile
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-02 23:57:31 +05:30
Sahil Yeole
d0b9dd9ae7 add ios uni link scheme
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-02 23:57:31 +05:30
mcfans
0a94b7473d fix: use onKeyDown to dispatch key event 2023-11-03 01:50:21 +08:00
flusheDData
587a928b84 Update es.rs
New terms added
2023-11-02 16:15:36 +01:00
RustDesk
48dbc06b29 Merge pull request #6264 from fufesou/fix/win_crash_tokio_1.28.1_upgrade_1.33.0
fix, win crash, tokio 1.28.1 to 1.33.0, revert
2023-11-02 14:56:40 +08:00
fufesou
967515a34f fix, win crash, tokio 1.28.1 to 1.33.0, revert
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-02 14:34:49 +08:00
RustDesk
8e0bce4da4 Merge pull request #6263 from xalt7x/ukrainian-translation
Update Ukrainian translation
2023-11-02 14:07:12 +08:00
Yevhen Popok
01078bd7b2 Update Ukrainian translation 2023-11-02 08:05:39 +02:00
RustDesk
a97fbb2d48 Merge pull request #6260 from fufesou/fix/build_mobile
fix build
2023-11-02 10:07:49 +08:00
RustDesk
6782f92703 Merge pull request #6262 from rustdesk/revert-6257-android-fixes
Revert "Fixes for Android (ndk r26b)"
2023-11-02 09:50:34 +08:00
RustDesk
9096c29fef Revert "Fixes for Android (ndk r26b)" 2023-11-02 09:50:02 +08:00
mcfans
100967c57b fix: set focusable before request focus 2023-11-02 00:37:21 +08:00
fufesou
c871af2711 fix build
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-01 21:03:57 +08:00
RustDesk
faf99ffe14 Merge pull request #6258 from fufesou/fix/remove_unused_capturer_on_peer
fix, remove unused capturer when switching display
2023-11-01 20:06:12 +08:00
fufesou
58d073b516 fix, remove unused capturer when switching display
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-01 19:53:37 +08:00
RustDesk
52a4d41c6f Merge pull request #6257 from basilgello/android-fixes
Fixes for Android (ndk r26b)
2023-11-01 18:36:50 +08:00
Vasyl Gello
0805b00c50 Fix build on android-x86 and rename function
... because we add ndk_compat and the function installs
android-specific dependencies.

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-01 11:41:17 +02:00
Vasyl Gello
c8f8bfd6f0 Refactor build_android_deps.sh
* Allow building one architecture or all 4 architectures
* Fix paths for ndk r25c+
* Bump libvpx to 1.13.1 to fix CVE-2023-5238
* Add ndk-compat from cpu-features to address missing
  android_getCpuFeatures symbol on android arm64 emulators

Signed-off-by: Vasyl Gello <vasek.gello@gmail.com>
2023-11-01 11:36:10 +02:00
RustDesk
1f51d37ae6 Merge pull request #6256 from 21pages/android_ci
Revert "fix android ci, replace use with try-finally"
2023-11-01 17:22:33 +08:00
rustdesk
f8a4b8de51 fix ci 2023-11-01 17:14:44 +08:00
rustdesk
eaa64d7b70 bump bridge to 1.80.1 2023-11-01 17:04:32 +08:00
21pages
4480fbf787 Revert "fix android ci, replace use with try-finally"
This reverts commit dfe96eb30c.
2023-11-01 16:38:20 +08:00
rustdesk
c2287033e3 XXPermissions:18.5 2023-11-01 16:31:37 +08:00
rustdesk
0a0fb5287a dump kotlin 2023-11-01 15:52:07 +08:00
rustdesk
52acbd7d2c fix ios ci 2023-11-01 15:45:48 +08:00
rustdesk
af4f84a84b fix ios ci 2023-11-01 15:16:33 +08:00
RustDesk
633241fcee Merge pull request #6253 from 21pages/upgrade_desktop_drop
upgrade desktop_drop to fix windows crash on close on flutter 3.13
2023-11-01 15:14:11 +08:00
21pages
f1f3d288cd upgrade desktop_drop to fix windows close on crash on flutter 3.13
https://github.com/MixinNetwork/flutter-plugins/pull/276

Signed-off-by: 21pages <pages21@163.com>
2023-11-01 15:09:02 +08:00
RustDesk
7c98da85a0 Merge pull request #6251 from 21pages/translate
opt "True color" translation
2023-11-01 12:00:51 +08:00
21pages
36f7d64352 opt "True color" translation
Signed-off-by: 21pages <pages21@163.com>
2023-11-01 11:46:51 +08:00
RustDesk
a4bbcbe5ff Merge pull request #6246 from Mr-Update/patch-2
Update de.rs
2023-11-01 10:56:29 +08:00
RustDesk
cbb4ec5aa1 Merge pull request #6244 from bovirus/master
Update Italian language
2023-11-01 10:55:29 +08:00
RustDesk
84fc5f7d67 Merge pull request #6247 from sahilyeole/feat/list_view
Fix small tiles view not restored
2023-11-01 10:54:52 +08:00
RustDesk
a4d84cdc21 Merge pull request #6249 from fufesou/refact/pubspec_flutter_rust_bridge
fix flutter_rust_bridge pub version
2023-11-01 10:54:25 +08:00
RustDesk
1a422f318c Merge pull request #6250 from 21pages/android_ci
fix android ci, replace use with try-finally
2023-11-01 10:54:01 +08:00
fufesou
8f202fd70d fix flutter_rust_bridge pub version
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-11-01 10:08:35 +08:00
21pages
dfe96eb30c fix android ci, replace use with try-finally
Signed-off-by: 21pages <pages21@163.com>
2023-11-01 09:22:49 +08:00
Sahil Yeole
3d7c6c14b3 fix remember list view
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-11-01 00:59:28 +05:30
Mr-Update
85a4e361d2 Update de.rs 2023-10-31 20:10:49 +01:00
bovirus
05b2fa97d3 Update Italian language 2023-10-31 19:09:39 +01:00
mcfans
47d57ddf70 fix: set focus and FLAG_RETRIEVE_INTERACTIVE_WINDOWS 2023-11-01 00:06:45 +08:00
mcfans
9521ac6adb chore: add some log 2023-10-31 21:14:32 +08:00
rustdesk
c2703d215b bump flutter to 3.13.9 and bridge to 1.79 2023-10-31 21:10:23 +08:00
RustDesk
f5c1133fc5 Merge pull request #6243 from fufesou/fix/remote_toolbar_border_radius
fix, remote toolbar, border radius
2023-10-31 19:27:39 +08:00
fufesou
f63d81826a fix, remote toolbar, border radius
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-31 19:15:13 +08:00
RustDesk
fa39982a8f Merge pull request #6242 from fufesou/refact/remote_toolbar_border
refact, remote toolbar, border
2023-10-31 17:09:21 +08:00
fufesou
4b52414e03 use get instead of static value
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-31 16:58:20 +08:00
fufesou
29b0a7659f refact, remote toolbar, border
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-31 16:52:18 +08:00
RustDesk
e69183ce12 Merge pull request #6239 from fufesou/refact/remote_toolbar_monitors_menu
refact, remote toolbar, monitors menu
2023-10-31 15:32:50 +08:00
fufesou
009c088a64 change active monitor style
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-31 15:14:43 +08:00
fufesou
2c1f948832 refact, remote toolbar, monitors menu
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-31 14:49:01 +08:00
RustDesk
b83e007405 Merge pull request #6238 from fufesou/fix/peer_info_changed_unexpected
fix, flutter, peer info event may be changed accidentally
2023-10-31 11:07:34 +08:00
fufesou
1d3ce2c029 fix, flutter, peer info event may be changed accidentally
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-31 11:03:35 +08:00
rustdesk
5ad0730a26 remove gen_flutter_rust_bridge in build.rs 2023-10-31 11:00:13 +08:00
RustDesk
52f1383903 Merge pull request #6237 from fufesou/fix/virtual_display_reset
fix, virtual dislay reset
2023-10-31 10:31:08 +08:00
RustDesk
12b8cbf3e0 Merge pull request #6229 from 21pages/444
yuv 444
2023-10-31 10:08:59 +08:00
fufesou
de44f8565d fix, virtual dislay reset
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-31 08:19:21 +08:00
RustDesk
7480ead76a Merge pull request #6227 from ClSlaid/feat/osx/pasteboard-file
[feat] osx pasteboard file copy and paste support
2023-10-30 22:52:35 +08:00
RustDesk
e96ae7a650 Merge pull request #6233 from fufesou/refact/displays_arrangement
Refact/displays arrangement
2023-10-30 22:39:50 +08:00
ClSlaid
ae524c4d0e patch: avoid compile x11 deps on mac
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-30 22:14:57 +08:00
fufesou
5adce88c37 fix, virtual display bugs
1. Clear the map on reset.
2. Replace `containsKey` to `contains` in flutter.

Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-30 21:40:13 +08:00
fufesou
06dda24431 refact, show global displays' arrangement
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-30 21:40:13 +08:00
rustdesk
fa046df923 add controlRight to file manager 2023-10-30 21:20:55 +08:00
rustdesk
2432eb39b1 fix ci 2023-10-30 21:04:33 +08:00
rustdesk
c211a2517f fix ci 2023-10-30 20:51:50 +08:00
rustdesk
73ea0a57a0 fix https://github.com/rustdesk/rustdesk/issues/6232 2023-10-30 20:50:32 +08:00
21pages
f05f86dc80 444
Signed-off-by: 21pages <pages21@163.com>
2023-10-30 18:46:56 +08:00
ClSlaid
e44b25c80f Merge branch 'rustdesk:master' into feat/osx/pasteboard-file 2023-10-30 17:55:29 +08:00
ClSlaid
bc3acc2826 patch: fix local file test
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-30 17:52:38 +08:00
Integral
007fb34ca5 Update cn.rs 2023-10-30 17:52:28 +08:00
RustDesk
46a363cce4 Merge pull request #5638 from ClSlaid/feat/x11/clipboard-file/init
[feat] x11 clipboard copy and paste file
2023-10-30 17:31:48 +08:00
RustDesk
3047ce57a3 Merge pull request #6222 from Integral-Tech/master
Update cn.rs
2023-10-30 15:41:52 +08:00
ClSlaid
7b9ce072d9 patch: fix local file test
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-30 15:41:39 +08:00
Integral
4d3e3f3aed Update cn.rs 2023-10-30 15:39:09 +08:00
ClSlaid
62563ad8a1 Merge branch 'feat/x11/clipboard-file/init' into feat/osx/clipboard-file
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-30 15:34:40 +08:00
mcfans
6fdce63359 fix: unified keyboard check logic in common.rs 2023-10-30 15:34:01 +08:00
ClSlaid
fdc4d6dda9 patch: remove redundant features
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-30 15:11:33 +08:00
RustDesk
a3b06ee83f Merge branch 'master' into feat/x11/clipboard-file/init 2023-10-30 14:57:36 +08:00
ClSlaid
43aa62e212 patch: fix active enable of file copy paste
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-30 12:00:44 +08:00
mcfans
70dd3f323e fix: update text selection for API level lower than 33 2023-10-30 07:46:29 +08:00
ClSlaid
803509d952 patch: add feature to build script
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-30 00:06:53 +08:00
ClSlaid
30e85c8654 patch: make linux build ok
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 23:42:04 +08:00
mcfans
7b24835c9e Merge remote-tracking branch 'upstream/master'
# Conflicts:
#	src/server/connection.rs
2023-10-29 23:32:43 +08:00
ClSlaid
7aee76f5de patch: don't show enable file clipboard when anyone unsupporting
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 23:11:30 +08:00
ClSlaid
80200a9983 patch: add has_file_clipboard field to PeerInfo
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 20:49:43 +08:00
ClSlaid
79f6b5c181 patch: forbid enable cliprdr without feature
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 20:10:39 +08:00
ClSlaid
dc02ce3f97 patch: only enable file copy and paste under features
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 19:50:31 +08:00
RustDesk
845d5a548f Merge pull request #6219 from bovirus/master
Update Italian language
2023-10-29 16:48:17 +08:00
RustDesk
14a8cf69ef Merge pull request #6215 from BestiaPL/master
Update pl.rs
2023-10-29 16:47:32 +08:00
RustDesk
c8a6e8005e Merge pull request #6213 from Mr-Update/patch-1
Update de.rs
2023-10-29 16:47:15 +08:00
RustDesk
e6bb2bfaae Merge pull request #6211 from jxd1337/py-improvements
feat: PEP8 improvements
2023-10-29 16:47:03 +08:00
RustDesk
8ba2d1cf72 Merge pull request #6210 from solokot/master
Update ru.rs
2023-10-29 16:45:53 +08:00
bovirus
a168fc3719 Update Italian language 2023-10-29 08:57:49 +01:00
ClSlaid
fd1dc15576 patch: re apply time limited api in common clipboard
when no content in text clipboard, it will wait forever

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 12:07:21 +08:00
ClSlaid
0b82874a52 patch: lossen x11 clipboard timeout
this should make the clipboard reading more stable

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 11:45:00 +08:00
ClSlaid
434242858f patch: implement statfs to improve OSX paste
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 07:43:10 +08:00
ClSlaid
3dfa0525bd feat: implement OSX file copy & paste
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 07:15:56 +08:00
ClSlaid
36d4baaa8e patch: fix macos clipboard
1. wrong namings of NsPasteboard
2. wrap Pasteboard in Lazy

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 03:53:06 +08:00
ClSlaid
7880cba0f9 feat: enable macos cliprdr
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 02:40:56 +08:00
Andrzej Rudnik
f8d64528b5 Update pl.rs 2023-10-28 20:19:50 +02:00
Mr-Update
f6ee61f29e Update de.rs 2023-10-28 20:19:17 +02:00
ClSlaid
2bb1310094 patch(0): implement cliprdr for macos
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-29 02:15:16 +08:00
ClSlaid
f6a137cd43 patch: make BufReader preload its buffer
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-28 23:25:30 +08:00
ClSlaid
a575fe4934 refactor: reload file hierarchies
rename libs/src/platform/{linux => unix}

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-28 22:44:10 +08:00
ClSlaid
4cd8d8a4a5 patch: faster preload with BufReader
1. seek avoided with self maintained offset
2. BufReader to read faster

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-28 22:33:51 +08:00
ClSlaid
7a802726fb fix: implement lazy reading to prevent avoid fd limit
drawback: through put reduced to 50%

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-28 20:52:08 +08:00
ClSlaid
251245d315 Merge remote-tracking branch 'rd/master' into feat/x11/clipboard-file/init
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-28 19:56:19 +08:00
ClSlaid
fbf5a84c4a patch: make log less verbose
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-28 17:00:29 +08:00
jxd1337
55412b94d2 assert without redundant () 2023-10-28 10:59:33 +02:00
jxd1337
f61fd02ac7 build.py, generate.py improvements 2023-10-28 10:57:50 +02:00
jxd1337
dc96b473cd lang.py PEP8 improvements 2023-10-28 10:50:39 +02:00
ClSlaid
abe40c84b0 patch(cliprdr): avoid too much open
1. force sync local files when processing file list format data request
2. avoid construct file list each time pulling file lists from clipboard

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-28 16:27:02 +08:00
ClSlaid
9976fc9723 fix: keep clipboard alive
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-28 15:31:12 +08:00
solokot
f8092f924a Update ru.rs 2023-10-28 06:29:50 +03:00
ClSlaid
075a877284 patch: increase FUSE block size and add retry
1. this should make file managers read small file in one request more
   likely
2. implemented retry, max times 3

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-28 11:14:16 +08:00
RustDesk
f748395bda Merge pull request #6208 from fufesou/fix/prompt_driver_cert_on_disconn
fix, prompt, driver cert , on disconnecting
2023-10-28 10:48:54 +08:00
RustDesk
12018360fd Merge pull request #6207 from cacing69/master
improve ID trans
2023-10-28 10:48:04 +08:00
RustDesk
821b2fda85 Merge pull request #6205 from Kleofass/patch-2
Update lv.rs
2023-10-28 10:47:48 +08:00
RustDesk
4cb2b29187 Merge pull request #6203 from leroyloren/master
Update cs.rs
2023-10-28 10:47:32 +08:00
fufesou
bb59778313 fix, prompt, driver cert , on disconnecting
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-28 10:42:31 +08:00
ClSlaid
ed0ded33b7 patch: fix arboard pollution
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-28 09:55:34 +08:00
Ibnul Mutaki
db19528c24 improve ID trans 2023-10-28 07:46:53 +07:00
Kleofass
7d1fb0a238 Update lv.rs 2023-10-28 02:09:39 +03:00
leroyloren
11956d9e16 Update cs.rs 2023-10-27 20:26:50 +02:00
RustDesk
cef782c388 Merge pull request #6199 from fufesou/feat/windows_virtual_displays
feat, win virtual display
2023-10-28 02:03:24 +08:00
RustDesk
e87e371c14 Merge branch 'master' into feat/windows_virtual_displays 2023-10-28 02:03:16 +08:00
RustDesk
877a455ae0 Merge pull request #6201 from Kleofass/patch-1
Update lv.rs
2023-10-28 01:56:00 +08:00
RustDesk
a47618e986 Merge pull request #6202 from jxd1337/cz-translation-improvements
Update CZ translation
2023-10-28 01:55:37 +08:00
jxd1337
2bbd759c25 Update CZ translation 2023-10-27 19:01:30 +02:00
Kleofass
4dd19884e0 Update lv.rs 2023-10-27 16:06:32 +03:00
fufesou
5ab0f499ce fix build
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-27 20:57:35 +08:00
ClSlaid
053723647b patch: try fix flutter file copy
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-27 20:40:23 +08:00
fufesou
725a44abd8 feat, win virtual display
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-27 20:12:33 +08:00
RustDesk
625f2d2410 Merge pull request #6195 from fufesou/fix/autocomplete
fix, autocomplete, fill id field
2023-10-27 17:06:16 +08:00
fufesou
e32748daf2 fix, autocomplete, fill id field
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-27 17:00:13 +08:00
RustDesk
8a2bd1cac3 Merge pull request #6194 from fufesou/fix/comments_infinite_loop
add comemnt
2023-10-27 16:45:57 +08:00
mcfans
9076f213e6 fix: hide map mode if peer is android 2023-10-27 16:43:50 +08:00
mcfans
e77edc56fd chore: update lock 2023-10-27 16:42:24 +08:00
fufesou
de356304c7 add comemnt
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-27 15:58:54 +08:00
RustDesk
8cc9e30f86 Merge pull request #6191 from Mr-Update/patch-4
Update de.rs
2023-10-27 15:11:12 +08:00
RustDesk
384323031b Merge pull request #6193 from fufesou/fix/ui_infinite_loop
fix, flutter, infinite loop
2023-10-27 15:09:52 +08:00
fufesou
b40a7b24d4 fix, flutter, infinite loop
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-27 15:01:20 +08:00
mcfans
67b2a433a8 fix: use enhanced accessibilty node find method 2023-10-27 13:18:35 +08:00
mcfans
07bdf02af4 chore: use updated old repo 2023-10-27 13:17:49 +08:00
Mr-Update
35b470dbac Update de.rs 2023-10-26 23:57:16 +02:00
RustDesk
42eb49b84c Merge pull request #6188 from leroyloren/master
Update cs.rs
2023-10-26 19:21:37 +08:00
leroyloren
9d3d11755f Update cs.rs 2023-10-26 13:19:34 +02:00
leroyloren
0fbc546696 Update cs.rs 2023-10-26 13:18:19 +02:00
RustDesk
220422ba0d Merge pull request #6187 from bovirus/master
Update Italian language
2023-10-26 18:59:27 +08:00
ClSlaid
2c9bae8111 Merge remote-tracking branch 'rd/master' into feat/x11/clipboard-file/init
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-26 18:16:08 +08:00
bovirus
320f6ddc6e Update Italian language 2023-10-26 12:05:59 +02:00
RustDesk
0da6d51150 Merge pull request #6186 from fufesou/fix/dialog_block_tab_on_remote_page
fix comments
2023-10-26 17:27:08 +08:00
RustDesk
65e3170cd9 Merge pull request #6185 from 21pages/taskbar_close
fix close on taskbar
2023-10-26 17:25:22 +08:00
fufesou
ee3750121c fix comments
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-26 17:04:09 +08:00
RustDesk
9736a4ddd0 Merge pull request #6184 from fufesou/fix/dialog_block_tab_on_remote_page
fix, dialog blocks tabs on the remote page
2023-10-26 16:57:17 +08:00
21pages
53e310ff77 fix close on taskbar
Signed-off-by: 21pages <pages21@163.com>
2023-10-26 16:56:30 +08:00
fufesou
17285720f1 fix, dialog blocks tabs on the remote page
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-26 16:52:54 +08:00
RustDesk
aa690cb9ab Merge pull request #6182 from solokot/master
Update ru.rs
2023-10-26 13:12:23 +08:00
RustDesk
6d3596087a Merge branch 'master' into master 2023-10-26 13:11:59 +08:00
rustdesk
0fe80e8e1f unify text style 2023-10-26 13:09:19 +08:00
solokot
f853f20b0c Update ru.rs 2023-10-26 07:54:13 +03:00
RustDesk
39e6fa35e1 Merge pull request #6165 from sahilyeole/feat/list_view
Feat single peer per row/list view
2023-10-26 11:59:59 +08:00
Sahil Yeole
23b911297e add langs for change peer view menu
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-26 05:39:15 +05:30
Sahil Yeole
6113d1e3eb Merge branch 'rustdesk:master' into feat/list_view 2023-10-26 05:32:00 +05:30
Sahil Yeole
55f3b93958 fix peer view menu position
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-26 05:25:54 +05:30
Sahil Yeole
c522987b6f fix list view on ab when id panel
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-26 05:16:27 +05:30
Sahil Yeole
8fe64755ec fix icon ui not updating
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-26 04:46:24 +05:30
Sahil Yeole
cc35328f28 add dropdown for peer view types
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-26 04:02:34 +05:30
RustDesk
a824a7fb73 Merge pull request #6168 from fufesou/fix/check_keyboard_mode_on_conn
fix, check session's keyboard mode on conn
2023-10-25 16:22:47 +08:00
RustDesk
075d7e52df Merge pull request #6173 from flusheDData/master
Update es.rs
2023-10-25 16:22:06 +08:00
flusheDData
cadbae31e4 Update es.rs
selinux_tip translation
2023-10-25 10:19:17 +02:00
RustDesk
39b5a67040 Update README.md 2023-10-25 13:19:37 +08:00
RustDesk
30580b2c57 Update README.md 2023-10-25 13:15:15 +08:00
RustDesk
00ab830ad1 Merge pull request #6166 from sahilyeole/feat/autocomplete
Fix ID text field ui not updating on peer card connection
2023-10-25 11:07:25 +08:00
fufesou
fcf3577f67 fix, check session's keyboard mode on conn
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-25 09:20:51 +08:00
Sahil Yeole
2cdfeb8dd0 fix id field ui not updating on peer card connection
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-25 02:36:23 +05:30
Sahil Yeole
ce300aa75f remove unused onSubmitted
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-25 02:05:17 +05:30
Sahil Yeole
a52caaec75 fix list view for group tab
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-25 01:26:41 +05:30
Sahil Yeole
3f3489b292 update peer view type tooltip
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-24 23:19:43 +05:30
Sahil Yeole
1e059c5649 update peer view type icons
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-24 23:15:42 +05:30
Sahil Yeole
d9e1b2df7f update peer view type options
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-24 22:33:51 +05:30
Sahil Yeole
94e51a8041 update enum for list view
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-24 22:14:59 +05:30
Sahil Yeole
81fe90f605 add ui for new list view
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-24 22:14:01 +05:30
RustDesk
69f643447d Merge pull request #6158 from solokot/master
Update ru.rs
2023-10-24 14:38:09 +08:00
solokot
d8355371e3 Update ru.rs 2023-10-24 08:42:17 +03:00
mcfans
cbe9b9c455 fix: hide map mode if peer is android 2023-10-24 13:36:33 +08:00
mcfans
dd33c0e582 fix: use seq for translate mode and use commitText 2023-10-24 13:34:52 +08:00
RustDesk
009b0aa361 Merge pull request #6156 from dignow/fix/win_install_cert
fix, win, install cert
2023-10-24 11:49:25 +08:00
dignow
f438176544 fix potential crash when uninstalling cert
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-24 11:41:01 +08:00
dignow
be8e8a0521 fix, win, install cert
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-24 10:51:01 +08:00
RustDesk
1a8b31bdb4 Merge pull request #6137 from sahilyeole/feat/autocomplete_mobile
Feat autocomplete mobile
2023-10-24 08:55:14 +08:00
RustDesk
8a47055273 Merge pull request #6155 from bovirus/master
Update Italian language
2023-10-24 08:53:59 +08:00
Sahil Yeole
feb6f7930e common code autocomplete
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-24 05:30:43 +05:30
bovirus
0271ea7dad Update Italian language 2023-10-23 17:19:05 +02:00
ClSlaid
505b73d20e patch: try fix flutter paste
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-23 20:17:36 +08:00
RustDesk
dcad8a9f79 Merge pull request #6150 from 21pages/hwcodec_check5
hwcodec check wait more time
2023-10-23 18:28:37 +08:00
21pages
9ce58115ab set timeout of hwcodec check to 30s
Signed-off-by: 21pages <pages21@163.com>
2023-10-23 16:12:49 +08:00
21pages
1c9d139ff5 opt android get_home, bad code get corrent result
Signed-off-by: 21pages <pages21@163.com>
2023-10-23 16:11:59 +08:00
Sahil Yeole
70794c8eb5 Merge branch 'master' into feat/autocomplete_mobile 2023-10-23 05:28:15 +05:30
Sahil Yeole
c90c4a2e78 fix empty peers desktop
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-23 05:03:44 +05:30
Sahil Yeole
6797e8af52 improve maxHeight desktop
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-23 05:01:39 +05:30
Sahil Yeole
5109802dfb update id on onchaged
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-23 04:17:28 +05:30
Sahil Yeole
935297b9e8 fix empty peers
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-23 04:03:05 +05:30
Sahil Yeole
dad209d1cd feat autocomplete mobile
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-23 03:21:54 +05:30
RustDesk
e1072cc8ca Merge pull request #6134 from Kleofass/patch-3
Update lv.rs
2023-10-22 23:06:37 +08:00
RustDesk
1a1ba80188 Merge pull request #6133 from fufesou/fix/android_physical_mouse_click_through_bottom_bar
fix, android physical mouse, click events, penetrated
2023-10-22 22:52:05 +08:00
Kleofass
c878c91e11 Update lv.rs 2023-10-22 16:51:38 +03:00
fufesou
c518521d74 fix, android physical mouse, click events, penetrated
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-22 20:35:43 +08:00
ClSlaid
ce9c9078e5 patch: fix copy to nautilus
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-22 19:51:17 +08:00
RustDesk
9fe525bca1 Merge pull request #6131 from Mr-Update/patch-3
Update de.rs
2023-10-22 15:55:50 +08:00
Mr-Update
352865ddaa Update de.rs 2023-10-22 09:50:27 +02:00
RustDesk
bc950ee40a Merge pull request #6128 from fufesou/feat/selinux_tip
add selinux tip
2023-10-22 14:42:05 +08:00
fufesou
5c23dfd633 selinux tip, remove rust dep 'selinux'
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-22 14:22:15 +08:00
RustDesk
4633a0450c Update cn.rs 2023-10-22 13:06:17 +08:00
RustDesk
842255766f Update en.rs 2023-10-22 13:05:37 +08:00
fufesou
827c32fafd add deps
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-22 10:56:41 +08:00
fufesou
f531cd23ee add selinux tip
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-21 23:24:54 +08:00
RustDesk
2408758360 Merge pull request #6125 from 21pages/reconnect
show reconnect timeout and dismiss all dialog when show reconnecting
2023-10-21 16:14:39 +08:00
ClSlaid
4c792f6f17 test: check x11 get clipboard
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-21 16:07:01 +08:00
ClSlaid
802ab90d87 patch: fix duplicated directory problem
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-21 15:54:40 +08:00
21pages
c268a0ab14 show reconnect timeout and dismiss all dialog when show reconnecting
Signed-off-by: 21pages <pages21@163.com>
2023-10-21 15:25:01 +08:00
RustDesk
b12c7f21b3 Merge pull request #6123 from dignow/fix/is_x11_on_conn
fix is x11, on conn
2023-10-21 14:59:28 +08:00
dignow
b3948910ff fix is x11, on conn
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-21 13:10:51 +08:00
RustDesk
9ee1261204 Merge pull request #6119 from leroyloren/master
Update cs.rs
2023-10-21 11:51:55 +08:00
ClSlaid
8e3aa0e9ce patch: less verbose debug logs
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-20 23:15:53 +08:00
ClSlaid
db62a01224 patch: fix dead lock in file transfer
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-20 22:27:39 +08:00
mcfans
d900f2c47c fix: add old code back for old version 2023-10-20 21:12:02 +08:00
leroyloren
82e1fe3f8b Update cs.rs 2023-10-20 14:34:12 +02:00
leroyloren
85eb82e69d Update cs.rs 2023-10-20 14:31:49 +02:00
ClSlaid
c529f8099d patch: fix FUSE permission
1. fuse flag check made wrong, fix it
2. but still mount will RO flag

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-20 19:21:40 +08:00
rustdesk
aa3c58917b remove wayland related from readme 2023-10-20 19:09:13 +08:00
RustDesk
bc591a2399 Merge pull request #6103 from flusheDData/master
Update es.rs
2023-10-20 18:40:49 +08:00
RustDesk
11d996bb56 Merge pull request #6115 from FastAct/patch-20
Update nl.rs
2023-10-20 18:40:36 +08:00
RustDesk
088a78455c Merge pull request #6104 from Mr-Update/patch-2
Update de.rs
2023-10-20 18:36:02 +08:00
Mr-Update
869d9d487b Update de.rs 2023-10-20 12:06:04 +02:00
FastAct
db3978fd4e Update nl.rs 2023-10-20 11:24:55 +02:00
RustDesk
ae7e46fe5e Merge pull request #6106 from nfsec/master
Dockerfile refactor
2023-10-20 14:05:29 +08:00
RustDesk
4bd85e1804 Merge pull request #6109 from dignow/fix/macos_close_sesions
Fix/macos close sesions
2023-10-20 14:02:45 +08:00
RustDesk
01f4434f6b Merge pull request #6107 from cacing69/master
improve ID trans
2023-10-20 14:01:12 +08:00
RustDesk
d8f808bf38 Update es.rs 2023-10-20 13:59:48 +08:00
RustDesk
807dc7d220 Merge pull request #6093 from sahilyeole/fix/remote_home_button
Fix remote home button in file transfer
2023-10-20 13:52:22 +08:00
RustDesk
b14d0c9f60 Merge pull request #6040 from sahilyeole/feat/autocomplete
Feat autocomplete/search while typing in remote ID field
2023-10-20 13:49:52 +08:00
dignow
738a1a330c change comment
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-20 09:17:10 +08:00
dignow
676b02c8de fix, macos, close sessions, confirm dialog and then hide
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-20 09:15:53 +08:00
Sahil Yeole
7136400a33 remove scheduler import
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-20 05:11:07 +05:30
Sahil Yeole
4651d9df68 fix textToFind
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-20 04:50:07 +05:30
Sahil Yeole
00555a8e9e fix text selection
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-20 04:44:53 +05:30
Sahil Yeole
e8c4615ff6 improve text selection
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-20 04:34:50 +05:30
Ibnul Mutaki
763467058b improve ID trans 2023-10-20 04:33:16 +07:00
Patryk Krawaczyński
c055ba2985 Update Dockerfile 2023-10-19 23:19:34 +02:00
Patryk Krawaczyński
7666541905 Rename entrypoint to entrypoint.sh
Rename entrypoint to entrypoint.sh which is correct with shebang of the file.
2023-10-19 23:13:00 +02:00
Sahil Yeole
f4b0b39beb show id if alias exists
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-20 02:40:54 +05:30
Sahil Yeole
cfc0925e75 reduce toLowerCase
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-20 01:35:54 +05:30
Mr-Update
4dcc368378 Update de.rs 2023-10-19 20:50:08 +02:00
Sahil Yeole
8207908d9e fix remote home button
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-20 00:14:14 +05:30
Sahil Yeole
e08da096dd remove home dir peer option
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-19 23:45:48 +05:30
mcfans
9a903a1ca3 feat: use current input method to send key 2023-10-20 00:32:59 +08:00
flusheDData
1b22bf0e08 Update es.rs
New terms added
2023-10-19 18:32:06 +02:00
ClSlaid
fc3187a781 feat: extend file list PDU to transfer UNIX PERM
1. used 4 bytes out of a reserved 16 bytes section to store perm u32

2. add FLAGS_FD_UNIX_MODE: u32 = 0x08, used with flags, indicating this
   message is from UNIX peer

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-20 00:23:16 +08:00
ClSlaid
7fbb4045e2 patch: fix FUSE load file
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-19 22:35:14 +08:00
ClSlaid
d0dc22794e patch: fix file list parsing
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-19 20:01:44 +08:00
RustDesk
0f235a80e0 Merge pull request #6099 from solokot/master
Update ru.rs
2023-10-19 19:52:08 +08:00
solokot
2a28046382 Update ru.rs 2023-10-19 14:44:42 +03:00
ClSlaid
169bbfd2db patch: fix clipboard local format map
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-19 17:53:05 +08:00
ClSlaid
1f52bb35ba patch: fix server file_transfer not enabled
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-19 17:20:44 +08:00
RustDesk
4a03b3d7d9 Merge pull request #6084 from 21pages/av1_record
AV1 record
2023-10-19 14:23:35 +08:00
RustDesk
2544a7e4ea Merge pull request #6094 from dignow/fix/open_individual_window_offset
open individual window, add offset
2023-10-19 14:22:35 +08:00
mcfans
26e77ba2c3 feat: modifier key 2023-10-19 14:19:19 +08:00
mcfans
28c11801f3 feat: keyboard map mode control side 2023-10-19 13:40:12 +08:00
mcfans
b3e2ab0f3b feat: map mode and translate mode receive side 2023-10-19 13:33:26 +08:00
dignow
fb12ba8a2b Change the offset depending on the platform
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-19 12:36:21 +08:00
21pages
7a5bc864fa fix client side record
Signed-off-by: 21pages <pages21@163.com>
2023-10-19 09:50:55 +08:00
dignow
2e85d4b55a add comment
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-19 07:55:55 +08:00
dignow
80951a8e6e open individual window, add offset
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-19 07:50:59 +08:00
Sahil Yeole
9acddede65 fix remote home button
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-19 04:29:51 +05:30
mcfans
22165ec1a5 feat: legacy mode android keyboard support 2023-10-19 00:16:22 +08:00
RustDesk
d7036aae48 Merge pull request #6086 from dignow/fix/try_video_capturing_on_close_window
try stop video capturing, on close window
2023-10-18 23:15:28 +08:00
dignow
fe3924b432 try stop video capturing, on close window
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-18 20:50:20 +08:00
21pages
510cffb305 av1 record, set zero codec private
Signed-off-by: 21pages <pages21@163.com>
2023-10-18 19:28:12 +08:00
Sahil Yeole
05c789ae50 remove fav peers from search
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-18 16:00:50 +05:30
Sahil Yeole
5d95d61aef remove fav peers from search
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-18 14:40:29 +05:30
21pages
c61fa71a70 Revert "hide recording button if using av1"
This reverts commit c2023e8ca3.
2023-10-18 13:48:12 +08:00
RustDesk
3145269f65 Merge pull request #6081 from xalt7x/ukrainian-translation
Update Ukrainian translation
2023-10-18 13:31:33 +08:00
RustDesk
2d00a1e265 Merge pull request #6080 from xalt7x/fix/eng-typos
Fix typos regarding displays
2023-10-18 13:30:08 +08:00
RustDesk
f7f178d6e3 Merge pull request #6079 from dignow/fix/change_display_resolution
Fix/change display resolution
2023-10-18 13:29:49 +08:00
RustDesk
18c591e0d0 Merge pull request #6078 from Kleofass/patch-2
Update lv.rs
2023-10-18 13:27:19 +08:00
xalt7x.service
749241f4e5 Fix typos regarding displays 2023-10-18 07:13:48 +03:00
xalt7x.service
997c368604 Update Ukrainian translation 2023-10-18 07:09:56 +03:00
dignow
ed28928c84 fix build linux
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-18 12:06:55 +08:00
dignow
b55c916e77 add comments
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-18 11:39:05 +08:00
dignow
4d537b2a9a fix/change_display_resolution, send change resolution message
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-18 11:35:28 +08:00
dignow
21f7d6c9b9 fix/change_display_resolution, send switch display msg
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-18 10:45:46 +08:00
dignow
c1b865d00e fix, change_display_resolution, add comments
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-18 09:59:02 +08:00
dignow
a32e740242 fix build linux
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-18 08:07:10 +08:00
dignow
c4f09b5598 fix, change display resolution
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-18 07:44:12 +08:00
Kleofass
5a89aa3b32 Update lv.rs 2023-10-17 23:58:54 +03:00
Sahil Yeole
149d57150c attempt fix text selection
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-17 21:29:05 +05:30
mcfans
bbc241748b feat: support android keyboard input 2023-10-17 22:12:52 +08:00
RustDesk
74ecea6307 Merge pull request #6076 from 21pages/android_log_ext
android write rust log to ExternalStorage/RustDesk/Logs
2023-10-17 21:41:41 +08:00
21pages
2e829956f4 android write rust log to ExternalStorage/RustDesk/Logs
Signed-off-by: 21pages <pages21@163.com>
2023-10-17 21:30:48 +08:00
Sahil Yeole
9e2c9cbba9 add border radius
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-17 18:57:53 +05:30
Sahil Yeole
1ad740800b remove spaces only if number
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-17 18:35:38 +05:30
Sahil Yeole
c00d4c1a7b update _fetchPeers
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-17 18:23:44 +05:30
Sahil Yeole
e0985ebb1c add peers loading indicator
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-17 18:22:27 +05:30
RustDesk
d5706442de Merge pull request #6075 from bovirus/master
Update Italian language
2023-10-17 20:43:25 +08:00
bovirus
ad5a173f3f Update Italian language 2023-10-17 14:39:55 +02:00
ClSlaid
fbb1d9247f patch: reduce logic in Fuse and SystemClipboard
1. also added more observability

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-17 16:57:55 +08:00
RustDesk
63591941b8 Merge pull request #6064 from dignow/feat/open_multi_windows
Feat/open multi windows
2023-10-17 15:39:22 +08:00
dignow
fdfeec54d7 Remove the unnecessary setState, as RxBool is used
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-17 14:42:35 +08:00
dignow
b2404809fc trivial, add final
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-17 14:31:04 +08:00
dignow
f9f463e799 fix, use RxBool to sync fullscreen state (remote toolbar)
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-17 14:29:14 +08:00
dignow
f1d3a553d1 open multi windows, add remote toolbar option
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-17 13:57:06 +08:00
dignow
e997b148e1 Change option text
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-17 13:16:53 +08:00
dignow
af906fac03 debug, open multi windows
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-17 11:11:45 +08:00
dignow
19945df0b3 open_multi_windows, check before move and set fullscreen
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-17 11:11:44 +08:00
dignow
bf83d552f8 feat, open multi windows
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-17 11:11:42 +08:00
RustDesk
f5d8e99fc7 Merge pull request #6063 from cacing69/master
improve ID lang trans
2023-10-17 11:06:25 +08:00
RustDesk
975037c5a0 Merge pull request #6061 from dignow/fix/remove_warns_misspelling
fix, remove warns, misspellings
2023-10-17 11:06:01 +08:00
Ibnul Mutaki
8b0b45e089 improve ID lang trans 2023-10-17 07:55:26 +07:00
Sahil Yeole
182f2ae26e add search for alias
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-17 01:34:00 +05:30
Sahil Yeole
26982787ee make getAllPeers async
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-16 23:36:43 +05:30
Sahil Yeole
4a42e3ef1b add padding autocomplete
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-16 23:06:14 +05:30
dignow
4f4498666e fix, remove warns, misspellings
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-16 23:19:07 +08:00
ClSlaid
8f9ba44c2c Merge remote-tracking branch 'rd/master' into feat/x11/clipboard-file/init
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-16 18:57:45 +08:00
ClSlaid
1f91d4fa7b patch: add more logs
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-16 18:42:02 +08:00
RustDesk
cf97d090f3 Merge pull request #6056 from solokot/master
Update ru.rs
2023-10-16 18:16:15 +08:00
RustDesk
9cd96a65d6 Merge pull request #6055 from BestiaPL/master
Update pl.rs
2023-10-16 18:15:57 +08:00
solokot
5fc75cb4cd Add files via upload 2023-10-16 13:06:04 +03:00
Andrzej Rudnik
27fe566412 Update pl.rs 2023-10-16 11:45:27 +02:00
RustDesk
a68c7bf019 Merge pull request #6051 from fufesou/fix/connect_the_same_peer
fix, connect the same peer
2023-10-16 10:54:46 +08:00
fufesou
11388849de fix, connect the same peer
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-16 10:47:16 +08:00
RustDesk
aa8fb55b30 Merge pull request #6050 from bovirus/master
Update Italian language
2023-10-16 10:18:13 +08:00
RustDesk
472bea2baa Merge pull request #6047 from dignow/fix/non_texture_render
fix, non-texture render, next_rgba
2023-10-16 10:15:45 +08:00
dignow
0a7a6c64ce remove 'Show displays as individual windows' if non-texture render
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-16 07:34:38 +08:00
dignow
fde8196874 fix several bugs
1. updateCurDisplay, canvas origin (x,y)
2. Do not show "Show displays as individual windows" on non-texture
   render version.

Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-16 07:26:55 +08:00
bovirus
ea8576d344 Update Italian language 2023-10-15 21:08:24 +02:00
ClSlaid
9adda25e00 patch: simplify FUSE
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-16 00:51:12 +08:00
dignow
2cc0bf22cb fix, non-texture render, next_rgba
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-16 00:20:41 +08:00
RustDesk
892ebc2e03 Merge pull request #6045 from 21pages/fix_ios_ci
fix ios ci
2023-10-15 16:28:49 +08:00
21pages
5c9ee03389 fix ios ci
don't know why call session_get_rgba

Signed-off-by: 21pages <pages21@163.com>
2023-10-15 16:05:29 +08:00
rustdesk
3702b0c694 fix ci 2023-10-15 11:56:56 +08:00
RustDesk
451d662af4 Merge pull request #6043 from SergeyMy/patch-2
Update ru.rs
2023-10-15 11:46:09 +08:00
RustDesk
7b8e0a2755 Merge pull request #6037 from Mr-Update/patch-1
Update de.rs
2023-10-15 11:45:58 +08:00
rustdesk
63ba4f4f91 fix ci 2023-10-15 11:44:44 +08:00
rustdesk
5f92465d0f move is_x11 out of loop, https://github.com/rustdesk/rustdesk/discussions/6042 2023-10-15 11:30:45 +08:00
SergeyMy
64c8c5a014 Update ru.rs 2023-10-15 08:21:38 +05:00
Sahil Yeole
2d6322f799 remove extra parameter from peer tile
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-15 04:59:03 +05:30
Sahil Yeole
8127ce18a3 optimise autocomplete
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-15 04:53:57 +05:30
Sahil Yeole
7b5801920b update focusnode and texteditingcontroller for autocomplete
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-15 03:34:53 +05:30
Mr-Update
c18c1e59df Update de.rs 2023-10-14 20:25:39 +02:00
RustDesk
4959e664a9 Merge pull request #6036 from Kleofass/patch-1
Update lv.rs
2023-10-14 23:54:36 +08:00
Kleofass
fb5ba257ef Update lv.rs 2023-10-14 18:43:17 +03:00
RustDesk
0ed1c0aa6b Merge pull request #6035 from cacing69/master
improve ID translation
2023-10-14 22:54:48 +08:00
Ibnul Mutaki
a12fac780b improve ID translation 2023-10-14 21:50:29 +07:00
RustDesk
0b16e13597 Merge pull request #6033 from cacing69/master
improve id translation
2023-10-14 22:35:25 +08:00
RustDesk
45a9e54631 Merge branch 'master' into master 2023-10-14 22:35:07 +08:00
Ibnul Mutaki
b969307c5e improve id translation 2023-10-14 21:33:05 +07:00
RustDesk
20325e87be Merge pull request #6032 from Mr-Update/patch-9
Update de.rs
2023-10-14 22:24:00 +08:00
RustDesk
fc48d9047a Merge branch 'master' into patch-9 2023-10-14 22:23:51 +08:00
RustDesk
16b4db5083 Merge pull request #6031 from 21pages/wallpaper_remove_unsupported
not show remove wallpaper option if unsupported
2023-10-14 22:22:37 +08:00
RustDesk
4c7487cd2e Merge pull request #6029 from SergeyMy/patch-1
Update ru.rs
2023-10-14 22:22:25 +08:00
RustDesk
271033e79d Merge branch 'master' into patch-1 2023-10-14 22:22:17 +08:00
RustDesk
d2ddcf2d38 Merge pull request #5945 from dignow/feat/multi_flutter_ui_sessions
feat, multi_flutter_ui_sessions
2023-10-14 22:21:24 +08:00
Mr-Update
8a2ab30302 Update de.rs
@grummbeer You are right.
2023-10-14 16:07:02 +02:00
Mr-Update
3070b0019e Update de.rs
@grummbeer You are right.
2023-10-14 16:01:09 +02:00
21pages
68ef1fc9e0 show wallpaper only when support, show test on checked
Signed-off-by: 21pages <pages21@163.com>
2023-10-14 19:22:42 +08:00
SergeyMy
c13d67dea5 Update ru.rs 2023-10-14 09:45:06 +05:00
dignow
b52cf070f5 multi flutter ui sessions, refact 'Show displays as individual windows'
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-14 12:31:57 +08:00
dignow
e363cd9813 'Choose Display Behavior' to 'Choose display behavior'
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-14 12:26:28 +08:00
dignow
c10fc26cce fix build, android
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-14 12:26:27 +08:00
dignow
3bb7123dd5 fix build, sciter
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-14 12:26:27 +08:00
dignow
2f2a7d1f89 feat, multi flutter ui sessions, change settings to 'Display'
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-14 12:26:27 +08:00
dignow
013d307bcd feat, multi_flutter_ui_sessions
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-14 12:26:24 +08:00
rustdesk
5e616dd502 bump to 1.2.4 2023-10-14 11:07:08 +08:00
RustDesk
f200bd2198 Merge pull request #5990 from 21pages/remove_wallpaper_win_linux
win,linux remove desktop wallpaper
2023-10-14 10:21:06 +08:00
RustDesk
bd36ee4f67 Merge branch 'master' into remove_wallpaper_win_linux 2023-10-14 10:20:55 +08:00
RustDesk
e0e5cc076d Merge pull request #6026 from bovirus/master
Update Italian language
2023-10-14 10:05:43 +08:00
Sahil Yeole
95e3fb24f3 add ontap for autocomplete
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-14 03:09:59 +05:30
Sahil Yeole
83d47aed2d update UI for autocomplete
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-14 01:55:04 +05:30
Sahil Yeole
bbd7cf306a handle id whitespaces for autocomplete
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-13 23:28:54 +05:30
Sahil Yeole
f6b5c752f4 add autocomplete feat
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-13 23:10:31 +05:30
Sahil Yeole
ff20acc367 add rust bindings to get peers data
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-13 23:01:19 +05:30
bovirus
46c2720fc7 Update Italian language 2023-10-13 17:16:13 +02:00
RustDesk
cf0e3ec303 Merge pull request #6024 from Mr-Update/patch-8
Update de.rs
2023-10-13 17:58:32 +08:00
Mr-Update
c6bb3d6ae2 Update de.rs 2023-10-13 11:56:14 +02:00
RustDesk
b39ba92cfe Merge pull request #6018 from 21pages/sync_share_rdp
sync option share rdp
2023-10-13 15:27:17 +08:00
RustDesk
deb1c190c9 Merge pull request #6007 from cacing69/master
improve id  translate
2023-10-13 15:26:28 +08:00
21pages
5d0384f580 sync option share rdp
Signed-off-by: 21pages <pages21@163.com>
2023-10-13 14:28:31 +08:00
21pages
d3ce8203be win,linux remove desktop wallpaper
Signed-off-by: 21pages <pages21@163.com>
2023-10-13 13:58:11 +08:00
Ibnul Mutaki
6e80f0d93b update readme ID 2023-10-12 22:50:53 +07:00
Ibnul Mutaki
c9a923decf improve id translate 2023-10-12 22:46:33 +07:00
RustDesk
1be5f2d647 Merge pull request #6005 from 21pages/remove_option_enable_rdp
remove option enable rdp
2023-10-12 23:43:19 +08:00
RustDesk
a38bba80ee Merge pull request #6006 from fufesou/fix/linux_window_ensure_setOpacity_after_show
Fix window hide sometimes
2023-10-12 23:42:01 +08:00
fufesou
b15d84359b https://github.com/rustdesk/rustdesk/issues/5986
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-12 23:11:11 +08:00
21pages
a3670b731e remove option enable rdp
Signed-off-by: 21pages <pages21@163.com>
2023-10-12 21:44:04 +08:00
RustDesk
b89546de37 Prefer "Key" not translated. 2023-10-12 20:54:10 +08:00
RustDesk
fad4314538 Merge pull request #6003 from Kleofass/patch-2
Update lv.rs
2023-10-12 20:53:03 +08:00
Kleofass
a331961ef3 Update lv.rs 2023-10-12 15:13:23 +03:00
RustDesk
e6f62dc95e Merge pull request #5997 from solokot/master
Update ru.rs
2023-10-12 15:24:29 +08:00
solokot
bd6d863921 Update ru.rs 2023-10-12 10:12:50 +03:00
RustDesk
c11117b070 Merge pull request #5994 from bovirus/master
Add files via upload
2023-10-12 10:55:59 +08:00
bovirus
f387ccb9e4 Add files via upload 2023-10-11 19:32:57 +02:00
RustDesk
fd49830c35 Merge pull request #5987 from AnonymousWP/translation/dutch
fix(translation/Dutch): use formal translation
2023-10-11 18:16:43 +08:00
AnonymousWP
578ca6975f fix(translation/Dutch): use formal translation
Related: https://github.com/rustdesk/rustdesk/discussions/5948
2023-10-11 12:15:14 +02:00
RustDesk
c0442edb8d Merge pull request #5985 from 21pages/tag_filter_method
add option filter ab by intersection
2023-10-11 17:45:53 +08:00
21pages
1416197b62 add option filter ab by intersection
Signed-off-by: 21pages <pages21@163.com>
2023-10-11 16:50:48 +08:00
RustDesk
e1dd53f146 Merge pull request #5970 from bovirus/master
Update Italian language
2023-10-11 11:47:55 +08:00
RustDesk
73abd0f8b8 Merge pull request #5973 from sahilyeole/fix/scam_warning
Fix scam warning overflow
2023-10-11 11:47:34 +08:00
Sahil Yeole
ab982e86c3 fix scam alert buttons overflow
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-10 22:48:23 +05:30
Sahil Yeole
20a4cd49de update scam text height
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-10 21:32:05 +05:30
Sahil Yeole
387d712b67 make scam alert text scrollable
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-10 20:58:58 +05:30
bovirus
3d9ec91b35 Update Italian language 2023-10-10 15:52:55 +02:00
rustdesk
8892c8c883 remove doc_mac_permission from tempate 2023-10-10 11:53:27 +08:00
RustDesk
c51c98d682 Merge pull request #5959 from Akkowicz/master
Improve wording, add missing tip and documentation link [PL]
2023-10-10 11:50:57 +08:00
Mateusz Prais
3f4ac84cfb Improve wording, add missing tip and documentation link 2023-10-09 18:34:32 +02:00
RustDesk
c5a864e86b Merge pull request #5947 from AnonymousWP/translation/dutch
feat(translation): add and fix Dutch strings
2023-10-09 14:13:27 +08:00
RustDesk
e945dceab9 Merge pull request #5954 from dignow/fix/capitalization_styles
fix, uniform capitalization style
2023-10-09 14:12:22 +08:00
dignow
f176832851 fix, uniform capitalization style, capitalize the first letter of a phrase
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-09 14:06:26 +08:00
AnonymousWP
ab195ea520 feat(translation): add and fix Dutch strings 2023-10-08 23:34:41 +02:00
RustDesk
e4b861e766 Merge pull request #5944 from leroyloren/master
Update cs.rs
2023-10-08 19:48:04 +08:00
leroyloren
ead6d8d3a1 Update cs.rs 2023-10-08 13:46:04 +02:00
ClSlaid
796e2ec825 Merge remote-tracking branch 'rd/master' into feat/x11/clipboard-file/init
Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-07 17:32:25 +08:00
ClSlaid
a597c3f835 patch: update UI, clear previous FUSE
- UI updated, now allow copy and paste file in Linux
- Too hard to implement graceful shutdown for rustdesk, just clear
  previously mounted FUSE should also works

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-10-07 17:26:20 +08:00
RustDesk
c14cb29334 Merge pull request #5936 from hms5232/fix-term-in-tw
fix wrong terms in tw lang
2023-10-07 14:14:28 +08:00
hms5232
a233d28efc fix wrong terms in tw lang
quality is "品質" in Taiwan, the "質量" is used in China.
2023-10-07 14:11:43 +08:00
RustDesk
c7bc2ca82d Merge pull request #5935 from fufesou/fix/xwayland_server_envs
Fix/xwayland server envs
2023-10-07 13:48:56 +08:00
fufesou
bd6323ccae fix, xwayland server env, check xwayland running
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-07 00:40:16 -05:00
fufesou
4326bfa504 fix, xwayland server envs, check Xwayland
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-07 00:40:16 -05:00
fufesou
b7a4c0664b fix, wayland --server, display env, better way to find the envs
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-07 00:40:16 -05:00
fufesou
da7bcf89d4 fix, wayland --server, envs
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-07 00:40:16 -05:00
RustDesk
3907cc679a Merge pull request #5932 from fufesou/fix/mobile_cursor_offset
fix, mobile curosr (hotx,hoty)
2023-10-06 23:49:05 +08:00
fufesou
8cc5aee528 fix, mobile curosr (hotx,hoty)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-06 23:36:58 +08:00
RustDesk
d0b5c4de28 Merge pull request #5925 from RayJW/bump-flatpak-runtime
Update Freedesktop runtime to 23.08 for Flatpak.
2023-10-06 19:59:11 +08:00
RayJW
431150c262 Bumped fd runtime in CI 2023-10-06 11:28:07 +02:00
RayJW
ee994ea393 Bumped fd runtime 2023-10-06 11:22:14 +02:00
RustDesk
53cd259ffa Merge pull request #5917 from bankzst/feature/update-thai-language-fields
lang: (Thai) add new words and update existing words to up-to-date
2023-10-05 21:43:09 +08:00
Phongsathorn Sae-Ung (X10)
c0ed44abf9 fix: add new words and update existing words to up-to-date 2023-10-05 18:19:35 +07:00
RustDesk
0807eec4cc Merge pull request #5907 from Kleofass/patch-1
Update lv.rs
2023-10-05 11:16:47 +08:00
Kleofass
aec7271f50 Update lv.rs 2023-10-04 15:07:57 +03:00
RustDesk
a723518346 Merge pull request #5901 from fufesou/fix/cursor_hotxy_mismatch
fix, cursor (hotx,hoty) mismatch sometimes
2023-10-03 23:37:45 +08:00
fufesou
5d6d8e68ed Update cursor id immediately after the cursor event
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-03 22:15:58 +08:00
fufesou
197a9330df fix, cursor hotxy, use _id
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-03 21:18:53 +08:00
fufesou
8b807d7b50 fix, cursor (hotx,hoty) mismatch sometimes
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-03 21:16:12 +08:00
RustDesk
03c0111017 Merge pull request #5891 from fufesou/refact/flutter_sessions_lock
refact, flutter sessions lock
2023-10-03 13:19:07 +08:00
RustDesk
e55752869b Merge pull request #5890 from 21pages/mobile_peer_actions
dynamically display mobile peer tab actions
2023-10-03 13:14:49 +08:00
RustDesk
94830cffca Merge pull request #5887 from sahilyeole/fix/wayland_screen_share_prompt
Fix wayland screen prompt on display menu
2023-10-03 13:13:52 +08:00
RustDesk
8d4319ba5f Merge pull request #5886 from enoch85/patch-1
Update sv.rs
2023-10-03 13:12:39 +08:00
fufesou
06987c4ca9 refact, flutter sessions lock
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-03 09:51:21 +08:00
21pages
70c0edcbe7 mobile peer tab right actions dropdown
Signed-off-by: 21pages <pages21@163.com>
2023-10-03 09:27:35 +08:00
Sahil Yeole
7a482fd22a fix wayland screen prompt on display menu
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-10-02 21:22:40 +05:30
Daniel Hansson
022b8ec13a Update sv.rs 2023-10-02 17:48:09 +02:00
RustDesk
b02f169764 Merge pull request #5884 from fufesou/fix/sciter_reconnect_state
fix, sciter, reconnect, check thread running before the state
2023-10-02 20:40:15 +08:00
RustDesk
6c0254b5f4 Merge pull request #5880 from fufesou/fix/touch_mode_touble_tap
Fix/touch mode touble tap
2023-10-02 20:35:44 +08:00
fufesou
0a60d7016d fix, sciter, reconnect, check thread running before the state
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-02 20:17:43 +08:00
fufesou
315a2a695f add comments
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-02 12:17:11 +08:00
fufesou
863c8de28e fix, one tap results double tap event
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-02 10:30:51 +08:00
RustDesk
92213f9228 Merge pull request #5877 from leroyloren/master
Update cs.rs
2023-10-02 08:05:47 +08:00
leroyloren
253c8118a2 Update cs.rs 2023-10-01 18:54:47 +02:00
RustDesk
290c980d5f Merge pull request #5875 from 21pages/remove_translation
remove useless translations
2023-10-01 13:10:06 +08:00
21pages
6ead1f4bd9 remove useless translations
Signed-off-by: 21pages <pages21@163.com>
2023-10-01 13:04:47 +08:00
RustDesk
6e4a5b64b7 Merge pull request #5874 from fufesou/refact/remove_cursor_mobile_2_mobile
refact, remove cursor if mobile -- mobile
2023-10-01 12:56:55 +08:00
RustDesk
6e3e60a44d Merge pull request #5873 from 21pages/cm_width
opt cm width and elevation requires keyboard permission
2023-10-01 12:49:20 +08:00
fufesou
b88fafe5ff refact, remove cursor if mobile -- mobile
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-10-01 12:16:06 +08:00
21pages
17a56bbf48 elevation: keyboard permission required and remove foreground filter
Signed-off-by: 21pages <pages21@163.com>
2023-10-01 08:50:29 +08:00
21pages
d8e51c6b14 render cm side page after window size change, calculate real window
width

Signed-off-by: 21pages <pages21@163.com>
2023-10-01 08:50:24 +08:00
RustDesk
44554cb54b Merge pull request #5868 from dignow/fix/reconnect_potential_deadlock
fix, reconnect deadlock, introduce connection round control
2023-09-30 22:26:57 +08:00
dignow
0bd86a8211 remove warn
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-30 22:09:32 +08:00
dignow
7fcb3d70bb fix, reconnect deadlock, introduce connection round control
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-30 22:07:14 +08:00
RustDesk
563cd828ad Merge pull request #5865 from dignow/fix/dialog_button_reconnect_cancel
Fix/dialog button reconnect cancel
2023-09-30 15:38:49 +08:00
dignow
3581e0beed Add comment
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-30 14:21:11 +08:00
RustDesk
da04de7b2d Merge pull request #5866 from 21pages/fix_reconnect_elevate_menu
fix request elevation menu not displayed when reconnect
2023-09-30 13:36:59 +08:00
21pages
661ce29519 fix request elevation menu not displayed when reconnect
Signed-off-by: 21pages <pages21@163.com>
2023-09-30 11:22:18 +08:00
dignow
56bed3f297 Update flutter pub lock
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-30 11:14:31 +08:00
dignow
79a8715c8b fix, dialog button reconnect cancel, change the interval and try count
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-29 22:53:58 +08:00
dignow
69062dca16 fix, dialog button, reconnect cancel in a short time
1. Two `reconnect` is called.
2. The window cannot be closed.

Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-29 21:42:49 +08:00
RustDesk
40d3085cc2 Merge pull request #5856 from 21pages/fix
show rdp menu only windows to windows
2023-09-29 13:09:13 +08:00
21pages
5e444de031 show rdp menu only windows to windows
Signed-off-by: 21pages <pages21@163.com>
2023-09-29 08:42:06 +08:00
RustDesk
3e61b89499 Merge pull request #5847 from 21pages/tab_label
try fix remote tab label update
2023-09-28 10:39:21 +08:00
RustDesk
76e9d749c9 Merge pull request #5846 from dignow/fix/cm_window_await_call_order
fix: cm await call
2023-09-28 10:39:07 +08:00
RustDesk
3e47c352a3 Merge pull request #5844 from fetzu/lang-fr
Update fr.rs
2023-09-28 10:38:10 +08:00
21pages
6028cfc1a3 fix remote tab lable update, Get.find always return the first instance
Signed-off-by: 21pages <pages21@163.com>
2023-09-28 09:05:10 +08:00
Julien
20f1a85e69 Update fr.rs
+ Added French translation for new (and some old) strings.
2023-09-27 23:02:49 +02:00
dignow
00d3d0f094 fix: cm await call
1. Cm may crash in wrong order.
2. The window may be at the left top.
3. The window may be wrong size.

Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-27 23:51:27 +08:00
RustDesk
8756ae0fe6 Merge pull request #5841 from 21pages/av1_auto_codec
Give higher priority to AV1 over VP9 in the auto codec
2023-09-27 18:50:18 +08:00
21pages
bdb1fc2ed7 Give higher priority to AV1 over VP9 in the auto codec
Signed-off-by: 21pages <pages21@163.com>
2023-09-27 18:42:57 +08:00
RustDesk
34d64fbcaf Merge pull request #5829 from 21pages/scrollbar
desktop touch pad scroll
2023-09-27 10:53:55 +08:00
21pages
3eeb0628f5 adjust scrollbar style, peers view support touch pad scroll, settings tab
remove horizontal touch pad scroll

Signed-off-by: 21pages <pages21@163.com>
2023-09-27 10:25:49 +08:00
RustDesk
3ed71fa21e Merge pull request #5832 from dignow/fix/await_calling_order
use await to guarantee the calling order
2023-09-27 10:03:41 +08:00
dignow
731ecfda64 use await to guarantee the calling order
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-27 09:16:51 +08:00
RustDesk
230eb76532 Merge pull request #5822 from 21pages/me
show username followed by a 'Me' tag
2023-09-26 18:18:01 +08:00
21pages
93f2b288b5 show username followed by a 'Me' tag, use first letter as avatar
Signed-off-by: 21pages <pages21@163.com>
2023-09-26 18:01:33 +08:00
RustDesk
d9ee9ba238 Merge pull request #5821 from 21pages/tab_label
desktop tab lable format: id/alias@hostname
2023-09-26 15:26:31 +08:00
21pages
e000fdfb50 desktop tab lable format: id/alias@hostname
Signed-off-by: 21pages <pages21@163.com>
2023-09-26 15:11:31 +08:00
rustdesk
4e97d2503b chore 2023-09-26 11:02:52 +08:00
rustdesk
f21f793343 remove check update from periodical call 2023-09-26 10:47:45 +08:00
rustdesk
c470f2734d revert pub lock to old, because the shit flutter bridge does not work 2023-09-26 10:41:29 +08:00
rustdesk
28ddf6cf07 fix a potential crash 2023-09-26 10:26:42 +08:00
RustDesk
e0302d1f09 Merge pull request #5816 from solokot/master
Update ru.rs
2023-09-25 22:56:53 +08:00
RustDesk
a536f79f6d Merge pull request #5815 from flusheDData/master
Update es.rs
2023-09-25 22:56:24 +08:00
RustDesk
5c48fb9e66 Merge pull request #5814 from BestiaPL/master
Update pl.rs
2023-09-25 22:56:06 +08:00
rustdesk
994ba1edd9 debug=true does not work, update pub 2023-09-25 22:54:00 +08:00
solokot
ed90979417 Update ru.rs 2023-09-25 17:47:41 +03:00
flusheDData
4dc2172426 Update es.rs
New term added
2023-09-25 16:31:05 +02:00
Andrzej Rudnik
daa41f8664 Update pl.rs 2023-09-25 16:29:19 +02:00
RustDesk
4e93ffb924 Merge pull request #5812 from 21pages/desktop_single_scroll
desktop only one scrollbar
2023-09-25 21:33:01 +08:00
rustdesk
f29363f56d debug=true for debug 2023-09-25 21:31:33 +08:00
21pages
23680ccb14 replace desktop outer scroll view with Column, so that there will be
only one scrollbar

Signed-off-by: 21pages <pages21@163.com>
2023-09-25 21:04:40 +08:00
RustDesk
986e58aeec Merge pull request #5809 from sahilyeole/fix/wayland_server_start_late
Fix wayland --server starting late
2023-09-25 19:53:21 +08:00
Sahil Yeole
13da75c2b6 fix wayland server starting late
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-25 16:53:34 +05:30
RustDesk
28b28cfef6 Merge pull request #5808 from 21pages/mobile
mobile scrollable peers view
2023-09-25 16:37:39 +08:00
21pages
167bf70cd6 mobile: limited height scroll tags/users, and scrollable peers
Signed-off-by: 21pages <pages21@163.com>
2023-09-25 16:18:01 +08:00
21pages
5236dcfe52 peers view show no more than 1000 after filter
Signed-off-by: 21pages <pages21@163.com>
2023-09-25 13:41:23 +08:00
21pages
a437524c8f await loadCache
Signed-off-by: 21pages <pages21@163.com>
2023-09-25 13:41:23 +08:00
RustDesk
fcbd48648c Merge pull request #5803 from Mr-Update/patch-7
Update de.rs
2023-09-25 11:03:47 +08:00
RustDesk
3f29273f6e Merge pull request #5805 from cacing69/master
update id
2023-09-25 10:57:25 +08:00
RustDesk
b78ffdad02 Merge pull request #5799 from fufesou/fix/wayland_alt_tab
fix, alt + tab, switch window, release alt state
2023-09-25 10:57:09 +08:00
Ibnul Mutaki
fd4cd3ed04 update id 2023-09-25 08:38:58 +07:00
Mr-Update
d8001fcaea Update de.rs 2023-09-24 21:06:40 +02:00
fufesou
9771c652c5 fix, alt + tab, switch window, release alt state
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-25 00:15:36 +08:00
RustDesk
a0c7bbe213 Merge pull request #5798 from 21pages/mobile
mobile still use no scrollable widgets
2023-09-24 20:51:09 +08:00
21pages
6b43042828 mobile still use no scrollable widgets
Signed-off-by: 21pages <pages21@163.com>
2023-09-24 19:54:11 +08:00
RustDesk
73f0b1e8a3 Merge pull request #5796 from bovirus/master
Update Italian language
2023-09-24 16:55:43 +08:00
bovirus
fa1b61b3e3 Update Italian language 2023-09-24 10:54:29 +02:00
RustDesk
c116e94cba Merge pull request #5795 from Kleofass/master
Update lv.rs
2023-09-24 16:20:22 +08:00
Kleofass
7229652e31 Update lv.rs 2023-09-24 10:52:03 +03:00
RustDesk
03acf7a05c Merge pull request #5793 from 21pages/fix
remove ab pull error toast, translate group pull error
2023-09-24 11:14:03 +08:00
21pages
d83d8c18fc remove ab pull error toast, translate group pull error
Signed-off-by: 21pages <pages21@163.com>
2023-09-24 09:00:24 +08:00
RustDesk
2080e56f87 Merge pull request #5788 from 21pages/fix
fix file transfer affect codec selection
2023-09-23 23:45:17 +08:00
21pages
90f0f27fca fix file transfer affect codec selection
Signed-off-by: 21pages <pages21@163.com>
2023-09-23 21:09:24 +08:00
RustDesk
5837026e83 Merge pull request #5773 from sahilyeole/fix/wayland_cursor_mismatch
Fix wayland cursor mismatch on multiple screens
2023-09-23 16:08:34 +08:00
RustDesk
edc67e5da2 Merge pull request #5785 from 21pages/user_search
search user TextField horizontal align and case insensitive
2023-09-23 12:23:24 +08:00
21pages
55b43f4612 user search TextField horizontal align and case insensitive
Signed-off-by: 21pages <pages21@163.com>
2023-09-23 10:03:09 +08:00
RustDesk
32a32e4a72 Update README.md 2023-09-21 19:06:04 +08:00
RustDesk
0eae0da781 Merge pull request #5771 from 21pages/ab
merge info from group when add id to addressbook
2023-09-21 16:37:10 +08:00
21pages
51b62ea467 merge info from group when add id to addressbook
Signed-off-by: 21pages <pages21@163.com>
2023-09-21 16:34:04 +08:00
rustdesk
462fa5999f update window_manager pub for cm now shown sometings on linux 2023-09-21 16:01:43 +08:00
RustDesk
82b730c5b8 Merge pull request #5769 from solokot/master
Update ru.rs
2023-09-21 14:13:56 +08:00
solokot
492ea7264a Update ru.rs 2023-09-21 09:11:53 +03:00
RustDesk
a1c910e3aa Merge pull request #5762 from 21pages/scroll
tags and users add scrollbar
2023-09-21 12:03:16 +08:00
Sahil Yeole
bf5f58e0ce fix wayland cursor mismatch
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-20 19:55:13 +05:30
21pages
428bc9b419 group users add scroll bar
Signed-off-by: 21pages <pages21@163.com>
2023-09-20 17:47:33 +08:00
21pages
a2742caa87 tags add scroll bar
Signed-off-by: 21pages <pages21@163.com>
2023-09-20 17:45:38 +08:00
ClSlaid
d2a5edda46 Merge remote-tracking branch 'origin/master' into feat/x11/clipboard-file/init 2023-09-20 16:31:58 +08:00
RustDesk
38f8956bd0 Merge pull request #5758 from BestiaPL/master
Update pl.rs
2023-09-20 10:57:45 +08:00
RustDesk
ec8deab454 Merge pull request #5757 from Mr-Update/patch-6
Update de.rs
2023-09-20 10:57:06 +08:00
RustDesk
cdc92fc552 Merge pull request #5754 from dignow/fix/scale_adaptive_blurry
fix, scale adaptive blurry
2023-09-20 10:53:44 +08:00
Andrzej Rudnik
53fb48fe7d Update pl.rs 2023-09-19 23:12:47 +02:00
Mr-Update
73e4006447 Update de.rs 2023-09-19 22:15:50 +02:00
dignow
c2ff269b5f fix, scale adaptive blurry
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-19 23:49:17 +08:00
RustDesk
c7310b64ad Merge pull request #5750 from flusheDData/master
Update es.rs
2023-09-19 23:16:47 +08:00
RustDesk
83daa702f9 Merge pull request #5752 from dignow/fix/restore_texture_offset_linux
fix, set texture widget offset to int on linux
2023-09-19 23:15:50 +08:00
dignow
cb1a06270e fix, set texture widget offset to int on linux
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-19 22:57:53 +08:00
Miguel F. G
fd34f97120 Update es.rs
new term added
2023-09-19 16:21:31 +02:00
Miguel F. G
2dc8f3b3e4 Update es.rs
New terms added
2023-09-19 16:18:21 +02:00
RustDesk
7e5b81ff4d Merge pull request #5749 from dignow/fix/texture_widget_blurry_image
fix, texture render widget, blurry image
2023-09-19 22:03:51 +08:00
RustDesk
f5b945c09b Merge pull request #5748 from 21pages/group
fix group read peers
2023-09-19 22:02:04 +08:00
dignow
6014dd05a0 fix, texture render widget, blurry image
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-19 21:32:50 +08:00
21pages
0c6aa381c5 replace Wrap with builder in PeerView for efficiency
Signed-off-by: 21pages <pages21@163.com>
2023-09-19 20:33:35 +08:00
21pages
0246f050e2 fix group peers read
Signed-off-by: 21pages <pages21@163.com>
2023-09-19 16:18:59 +08:00
RustDesk
5f222c4df2 Merge pull request #5746 from cacing69/master
update id.rs
2023-09-19 09:03:06 +08:00
Ibnul Mutaki
800f3f765f upadte ud.rs 2023-09-19 07:59:07 +07:00
Ibnul Mutaki
635f346b12 update id.rs 2023-09-19 07:52:25 +07:00
RustDesk
abe79dbf64 Merge pull request #5737 from fufesou/refact/details_on_privacy_mode
Fix, privacy on, missing failed details
2023-09-18 22:23:34 +08:00
fufesou
2b72622fe8 Fix, privacy on, missing failed details
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-18 22:12:11 +08:00
rustdesk
201c7a7e49 e51fddf7f3 2023-09-18 22:03:37 +08:00
RustDesk
ef21283a61 Merge pull request #5733 from Kleofass/patch-1
Update lv.rs
2023-09-18 21:00:14 +08:00
Kleofass
4eb76cdc30 Update lv.rs 2023-09-18 15:08:42 +03:00
RustDesk
3b68f598b1 Merge pull request #5730 from 21pages/mac_tray
remove mac tray session count tooltip
2023-09-18 17:01:41 +08:00
RustDesk
31db43dbb0 Merge pull request #5731 from bovirus/master
Update Italian language
2023-09-18 17:01:23 +08:00
RustDesk
1efc4a03cc Merge pull request #5729 from borondics/change-wording
Change-wording
2023-09-18 17:00:58 +08:00
bovirus
607c818879 Update Italian language 2023-09-18 10:52:11 +02:00
borondics
6d5f044948 Changed "unremember" to "forget" everywhere. It sounds better, shorter and it is also used for variable names as 'forget'. 2023-09-18 10:09:06 +02:00
borondics
f24a8b3918 I suggest to change "unremember" to "forget", just like it is in the code. 2023-09-18 10:00:52 +02:00
RustDesk
2e402098a2 Merge pull request #5728 from 21pages/group
fix upgrade prompt condition
2023-09-18 15:49:01 +08:00
21pages
3389c798f6 remove mac tray session count tooltip, which won't be shown
Signed-off-by: 21pages <pages21@163.com>
2023-09-18 14:49:51 +08:00
21pages
738ad474c1 fix upgrade prompt condition
Signed-off-by: 21pages <pages21@163.com>
2023-09-18 14:36:55 +08:00
RustDesk
86e2ac1497 Merge pull request #5720 from 21pages/group
enable group
2023-09-18 14:16:28 +08:00
21pages
b2a4f11e0b enable group, show accessible users and peers
Signed-off-by: 21pages <pages21@163.com>
2023-09-18 13:44:41 +08:00
21pages
09d380ba8f allow hide peer tab
Signed-off-by: 21pages <pages21@163.com>
2023-09-18 09:12:58 +08:00
RustDesk
12bfa72f31 Merge pull request #5724 from dignow/fix/try_fix_build_ios
try fix build, ios
2023-09-17 23:55:30 +08:00
dignow
b0990ac6ec try fix build, ios
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-17 23:39:54 +08:00
rustdesk
6f1f07a1c4 update lock for rustdesk_desktop_multi_window 2023-09-17 22:58:45 +08:00
RustDesk
f55fdae9eb Merge pull request #5721 from dignow/fix/adjust_window_state
Change the maximized state on 'Adjust Window'
2023-09-17 22:54:13 +08:00
dignow
b0225880de Change the maximized state on 'Adjust Window'
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-17 19:49:02 +08:00
RustDesk
74be6af3e6 Merge pull request #5719 from fufesou/fix/remove_nested_read_calls
Refactor/remove nested read calls
2023-09-17 16:30:49 +08:00
fufesou
72f5fbd6ad fix build sciter
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-17 13:41:00 +08:00
fufesou
ae3efa1151 fix, RwLock, remove nested read calls
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-17 13:01:27 +08:00
RustDesk
348ed268c3 Merge pull request #5716 from fufesou/refact/privacy_mode_msgbox_details
Refact/privacy mode msgbox details
2023-09-17 11:23:24 +08:00
fufesou
df19ccf998 Set details for block input back notification
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-17 11:07:06 +08:00
fufesou
db2e4f30a7 Privacy mode, msgbox, add details
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-17 10:53:04 +08:00
RustDesk
a1e1f5aab6 Merge pull request #5715 from fufesou/fix/crash_macos_on_disconnect
fix, macos as the controlled side, crash on disconnect
2023-09-17 10:35:05 +08:00
fufesou
7ffe11b000 fix, macos as the controlled side, crash on disconnect
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-17 09:17:51 +08:00
RustDesk
eb5ea17610 Merge pull request #5713 from bovirus/master
Update italian language
2023-09-16 21:53:52 +08:00
bovirus
8657381dce Update italian language 2023-09-16 15:48:00 +02:00
RustDesk
55114082e3 Merge pull request #5710 from NicKoehler/manager-columns
Changed File Manager column behaviour
2023-09-16 18:53:31 +08:00
RustDesk
64051e9cfa Merge pull request #5709 from Kleofass/master
Update latvian lv.rs
2023-09-16 18:52:24 +08:00
NicKoehler
780d64a349 refactor functions 2023-09-16 12:28:00 +02:00
NicKoehler
bcd1827d8a Changed columns and window behaviour when resized 2023-09-16 11:54:17 +02:00
Kleofass
0097f5fc8d Update lv.rs 2023-09-16 12:42:03 +03:00
RustDesk
3766d2b97b Update vcpkg-deps-linux.yml 2023-09-16 15:04:06 +08:00
RustDesk
f2b7bfc561 Merge pull request #5706 from Mr-Update/patch-5
Update de.rs
2023-09-16 11:11:50 +08:00
RustDesk
4d3484002d Merge pull request #5708 from cacing69/master
update indo translation
2023-09-16 11:04:25 +08:00
Ibnul Mutaki
34f20f914a update indo translation 2023-09-16 08:36:39 +07:00
Mr-Update
19444353b4 Update de.rs 2023-09-15 21:36:08 +02:00
RustDesk
b4f0a13779 Merge pull request #5705 from Kleofass/master
Update latvian lv.rs
2023-09-15 22:58:21 +08:00
Kleofass
fa815af798 Update latvian lv.rs 2023-09-15 14:58:37 +03:00
Kleofass
f1e2aa8c96 Update latvian lang.rs 2023-09-15 14:58:10 +03:00
RustDesk
9fd24db257 Merge pull request #5704 from fufesou/fix/update_rdev
Fix/update rdev
2023-09-15 17:25:02 +08:00
fufesou
73414f2ee1 simple remove parentheses
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-15 15:38:42 +08:00
fufesou
7b37e5183c update rdev, fix grab system utf8, fallback on linux
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-15 15:35:44 +08:00
RustDesk
bb8438c770 Merge pull request #5702 from solokot/master
Update ru.rs
2023-09-15 14:34:11 +08:00
solokot
3dd329a999 Update ru.rs 2023-09-15 08:37:08 +03:00
RustDesk
ab2672777e Merge pull request #5700 from Integral-Tech/master
Update cn.rs
2023-09-15 12:04:27 +08:00
Integral
45aea4176f Update cn.rs 2023-09-15 11:56:04 +08:00
RustDesk
f8dfbbb0b9 Merge pull request #5697 from solokot/master
Update ru.rs
2023-09-15 09:59:15 +08:00
RustDesk
48a348c4d1 Merge branch 'master' into master 2023-09-15 09:25:01 +08:00
RustDesk
870ff56629 Merge pull request #5699 from cacing69/master
improve indonesia translation
2023-09-15 09:23:57 +08:00
RustDesk
b2ed8d8560 Merge branch 'master' into master 2023-09-15 09:23:49 +08:00
RustDesk
e8510ddc58 Merge pull request #5696 from sahilyeole/feat/optional_update_check
Feat optional update check and closable update card
2023-09-15 09:20:00 +08:00
Ibnul Mutaki
97f7575409 improve indo translation 2023-09-15 07:44:25 +07:00
Ibnul Mutaki
5220157b01 add indonesia translation 2023-09-15 07:42:45 +07:00
solokot
900f9ec9a9 Update ru.rs 2023-09-14 23:53:05 +03:00
Sahil Yeole
52ec2c2538 add lang
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-14 23:57:17 +05:30
Sahil Yeole
31101221e0 feat closable update card
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-14 20:41:25 +05:30
Sahil Yeole
ae37c2ab2a update checkbox text
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-14 19:02:53 +05:30
Sahil Yeole
e8d014d80d feat optional update check
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-14 16:31:17 +05:30
Sahil Yeole
b88f1dc79a fix flutter check for update
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-14 14:26:09 +05:30
Sahil Yeole
dccc791c99 Merge branch 'rustdesk:master' into feat/optional_update_check 2023-09-14 14:00:25 +05:30
Sahil Yeole
474d2402b7 add checkbox for update check on startup
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-14 13:57:58 +05:30
RustDesk
7a9f1e9c6c Update vcpkg-deps-linux.yml 2023-09-14 12:03:14 +08:00
RustDesk
98364e83b6 Update vcpkg-deps-linux.yml 2023-09-14 11:32:58 +08:00
RustDesk
bf65f033dd Merge pull request #5684 from Mr-Update/patch-4
Update de.rs
2023-09-14 09:34:15 +08:00
RustDesk
2d9b430327 Merge pull request #5685 from BestiaPL/master
Update pl.rs
2023-09-14 09:33:54 +08:00
RustDesk
ec54443674 Update pl.rs 2023-09-14 09:33:25 +08:00
Andrzej Rudnik
0fb84ccc49 Update pl.rs 2023-09-13 21:10:19 +02:00
Mr-Update
0b4aad4931 Update de.rs 2023-09-13 20:44:32 +02:00
RustDesk
ab470d4a4c Merge pull request #5682 from dignow/fix/scrollbar_thickness
fix, set scrollbar thickness to 12
2023-09-13 21:37:39 +08:00
dignow
88e1245d10 fix, set scrollbar thickness to 12
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-13 21:02:21 +08:00
RustDesk
bc4dbd6194 Merge pull request #5681 from bovirus/master
Update Italian language
2023-09-13 20:05:32 +08:00
bovirus
b35df54c81 Update Italian language 2023-09-13 13:59:38 +02:00
RustDesk
c53c7b1aaa Merge pull request #5674 from 21pages/auto_disconnect
auto disconnect
2023-09-13 14:04:32 +08:00
21pages
0a0653358c auto disconnect
Signed-off-by: 21pages <pages21@163.com>
2023-09-13 13:57:57 +08:00
rustdesk
e2ccaf2c91 allow hide cm for self-host pro 2023-09-13 13:54:02 +08:00
RustDesk
75f5212661 Merge pull request #5664 from sahilyeole/add/scam_warning
Add mobile scam warning window
2023-09-13 13:41:22 +08:00
Sahil Yeole
1e548af987 update lang
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-13 11:00:07 +05:30
RustDesk
2c2c828b47 Merge pull request #5659 from 21pages/fix
install service period protection
2023-09-13 13:22:21 +08:00
Sahil Yeole
19e49a7de7 Merge branch 'rustdesk:master' into add/scam_warning 2023-09-13 10:42:08 +05:30
Sahil Yeole
18c9ad25be remove lang
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-13 10:41:48 +05:30
RustDesk
9e3f0304de Merge pull request #5654 from 21pages/tray
translate placeholder && tray tooltip and pull up
2023-09-13 13:10:37 +08:00
21pages
55dbcb646b windows remove "--cm-no-ui", "--cm --hide"
Signed-off-by: 21pages <pages21@163.com>
2023-09-13 12:14:27 +08:00
21pages
db0ab2e4a9 try start tray when a new controlled connection is established for windows flutter
Signed-off-by: 21pages <pages21@163.com>
2023-09-13 12:14:27 +08:00
21pages
c254eebea2 windows/mac tray tooltip show controlled session count
* ubuntu 22.04 can't see tooltip

Signed-off-by: 21pages <pages21@163.com>
2023-09-13 12:14:25 +08:00
21pages
45b0e7dc01 translate placeholders ui:{value}, translation: {}
Signed-off-by: 21pages <pages21@163.com>
2023-09-13 12:13:18 +08:00
RustDesk
4c4c62c7e5 Update server_page.dart
change countdown to 12
2023-09-13 10:19:43 +08:00
RustDesk
cb2038442c Merge pull request #5666 from BestiaPL/master
Update pl.rs
2023-09-13 09:56:54 +08:00
RustDesk
1d219eb8f2 Merge pull request #5669 from cacing69/master
update text indo
2023-09-13 09:56:26 +08:00
RustDesk
7d33563010 Merge pull request #5656 from Mr-Update/patch-3
Update de.rs
2023-09-13 09:52:00 +08:00
Ibnul Mutaki
e3d34c46c7 update text indo 2023-09-12 13:08:19 +07:00
Andrzej Rudnik
9129e82804 Update pl.rs 2023-09-11 20:54:33 +02:00
Sahil Yeole
d4f4a64937 remove empty line 2023-09-11 21:57:45 +05:30
Sahil Yeole
2b4a51ba24 Add scam image 2023-09-11 21:55:06 +05:30
Sahil Yeole
6a8d755b27 add scam warning lang
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-11 21:53:57 +05:30
Sahil Yeole
754fea538a add scam warning window
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-11 21:48:36 +05:30
21pages
4d0b660c73 fix lan option reaction
Signed-off-by: 21pages <pages21@163.com>
2023-09-11 16:42:01 +08:00
21pages
d0173fbdc5 install service period protection
how to reproduce:
install, click stop service, click start service and click no
on uac, it'll show "Service is not running" but can be connected.

Signed-off-by: 21pages <pages21@163.com>
2023-09-11 16:04:51 +08:00
Mr-Update
62ae4aeac9 Update de.rs 2023-09-11 08:45:49 +02:00
21pages
e98aa81794 remove sciter keep cm open for file log
Signed-off-by: 21pages <pages21@163.com>
2023-09-11 11:23:00 +08:00
21pages
a5dcac137f fix dark theme error banner background color
Signed-off-by: 21pages <pages21@163.com>
2023-09-11 11:18:26 +08:00
RustDesk
96215d32b7 Merge pull request #5651 from flusheDData/master
Update es.rs
2023-09-11 08:43:57 +08:00
RustDesk
4a20989028 Merge pull request #5652 from bovirus/master
Update italian language
2023-09-11 08:43:16 +08:00
bovirus
f5fe6a36eb Update italian language
@rustdesk

Please merge. Thanks.
2023-09-10 21:42:22 +02:00
Miguel F. G
852bab6e0b Update es.rs
Some corrections plus new  terms
2023-09-10 20:34:26 +02:00
RustDesk
52ec27f785 Merge pull request #5649 from solokot/master
Update ru.rs
2023-09-10 23:04:25 +08:00
RustDesk
c6d617f190 Merge pull request #5650 from fufesou/fix/capitalization_style
fix, some case-style mismatch issues in the same option group
2023-09-10 23:04:00 +08:00
fufesou
1a6ef23ee7 fix, some capitalization style mismatch in the same option group
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-10 22:59:45 +08:00
solokot
759bbeac06 Update ru.rs 2023-09-10 16:47:50 +03:00
RustDesk
15c72fe7d3 Merge pull request #5646 from dignow/fix/android_input_connect_passwd
fix, android soft keyboard, 'delete input' on conn password
2023-09-10 21:02:47 +08:00
RustDesk
f6973f9a70 Merge pull request #5645 from fufesou/feat/scroll_mode
feat, mouse wheel and touchpad scroll mode, default or reverse
2023-09-10 21:02:36 +08:00
fufesou
f1d5afe72a Change the option 'Scroll mode' to be 'Reverse mouse wheel'
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-10 18:31:16 +08:00
dignow
e1f2cd21e7 add comment
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-10 15:41:29 +08:00
dignow
ea5c60af7a fix, android softkeyboard, 'delete input' on conn password
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-10 15:32:50 +08:00
fufesou
558567d399 remove unused mut
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-10 14:28:58 +08:00
fufesou
0c1899a0af format
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-10 14:25:41 +08:00
fufesou
28d8ad1e61 add lang
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-10 14:23:22 +08:00
fufesou
eb0a0662a3 feat, mouse wheel and touchpad scroll mode, default or reverse
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-10 14:14:57 +08:00
ClSlaid
3a21efbaae patch: linux fuse unmount
todo: grosely exit

Signed-off-by: ClSlaid <cailue@bupt.edu.cn>
2023-09-09 19:24:38 +08:00
RustDesk
405363da59 Merge pull request #5639 from Mr-Update/patch-1
Update de.rs
2023-09-09 14:57:59 +08:00
蔡略
e5bcfeaad5 patch: linux set clipboard
Signed-off-by: 蔡略 <cailue@bupt.edu.cn>
2023-09-09 09:48:31 +08:00
Mr-Update
8b8cfa7a1b Update de.rs 2023-09-08 21:29:45 +02:00
cailue
af131cd1e5 fix: review windows
make windows version able to run

Signed-off-by: cailue <cailue@bupt.edu.cn>
2023-09-08 20:37:14 +08:00
蔡略
a7bb90e7e6 Merge remote-tracking branch 'origin/master' into feat/x11/clipboard-file/init
Signed-off-by: 蔡略 <cailue@bupt.edu.cn>
2023-09-08 20:09:57 +08:00
蔡略
25cf36a948 feat: add x11 clipboard support
Signed-off-by: 蔡略 <cailue@bupt.edu.cn>
2023-09-08 19:39:00 +08:00
RustDesk
cc3ff284f7 Merge pull request #5635 from solokot/master
Update ru.rs
2023-09-08 16:35:10 +08:00
solokot
0af6f271c6 Update ru.rs 2023-09-08 11:25:14 +03:00
RustDesk
441cddbde6 Merge pull request #5634 from bovirus/master
Update Italian language
2023-09-08 16:06:38 +08:00
bovirus
1ab09c65f0 Update Italian language
@rustdesk

Please merge. Thanks.
2023-09-08 09:10:28 +02:00
RustDesk
b9892fc2d0 Merge pull request #5633 from 21pages/mobile
mobile privacy statement
2023-09-08 13:43:50 +08:00
21pages
14bf3056de mobile privacy statement
Signed-off-by: 21pages <pages21@163.com>
2023-09-08 13:29:07 +08:00
RustDesk
b3b9555daa Merge pull request #5632 from 21pages/silent-install
windows silent install notification
2023-09-08 10:49:54 +08:00
21pages
db66ffc868 not pop up cm for file log
Signed-off-by: 21pages <pages21@163.com>
2023-09-08 10:38:22 +08:00
21pages
91decea302 windows silent install notification
Signed-off-by: 21pages <pages21@163.com>
2023-09-08 10:38:05 +08:00
RustDesk
065c19cbbc Merge pull request #5625 from dignow/feat/remember_remote_window_fullscreen
Feat/remember remote window fullscreen
2023-09-08 00:41:38 +08:00
dignow
296ebd0341 fix, macos, remote fullscreen state, debug
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-07 22:26:32 +08:00
dignow
5293e3b277 fix, macos, remote fullscreen mode
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-07 21:50:03 +08:00
RustDesk
78f5b1e607 Merge pull request #5623 from 21pages/cm_file
add file log page to cm
2023-09-07 20:33:00 +08:00
dignow
17af5622ec remember remote window fullscreen, set global state
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-07 20:04:23 +08:00
21pages
2afce3f1f4 add file log page to cm
* Only send and receive logs are shown
* For older version, client send to server doesn't have size information, because server side doesn't know the total_size
* Not switch tabs automatically when new files are transferred
* If cm side page is open, not pop up automatically when new files are transferred
* Show unread message count
* The cm tab remains open when closed if a file transfer has previously occurred

Signed-off-by: 21pages <pages21@163.com>
2023-09-07 19:51:25 +08:00
rustdesk
dc29b4afa1 qs.exe -> -qs- 2023-09-07 15:17:07 +08:00
dignow
55fc0cb63b feat, remember remote window fullscreen state
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-07 13:39:20 +08:00
RustDesk
5e1eda9e97 Merge pull request #5616 from sahilyeole/fix/frequent_loginctl_calls
Fix frequent loginctl calls
2023-09-07 08:38:12 +08:00
Sahil Yeole
d582af8cb2 Merge branch 'rustdesk:master' into fix/frequent_loginctl_calls 2023-09-07 01:53:42 +05:30
Sahil Yeole
0931341a7f prevent frequent loginctl calls
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-06 22:43:33 +05:30
RustDesk
92916d9820 Merge pull request #5607 from flusheDData/master
Update es.rs
2023-09-05 22:23:40 +08:00
Miguel F. G
12fbbbb5b3 Update es.rs
New terms added
2023-09-05 16:22:08 +02:00
RustDesk
0a603d022f Merge pull request #5606 from sahilyeole/master
Few mobile chat window improvements
2023-09-05 22:21:12 +08:00
Sahil Yeole
2ada9fbee3 remove WidgetsBindingObserver ios
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-05 18:21:51 +05:30
Sahil Yeole
6e2132c65e Merge branch 'rustdesk:master' into master 2023-09-05 18:10:32 +05:30
Sahil Yeole
71dbf0fab2 fix avoid chat window keyboard overlap ios
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-05 17:58:22 +05:30
Sahil Yeole
048e97e1ee use modified dashchat to fix ios chat window safe area
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-05 17:40:11 +05:30
rustdesk
f1c0f1d0a4 prepare for https://github.com/rustdesk/rustdesk-server-pro/discussions/65 2023-09-05 17:44:49 +08:00
rustdesk
7242d03f56 change target android sdk to 33 2023-09-05 15:09:41 +08:00
RustDesk
58bbc33aa6 Merge pull request #5600 from fufesou/fix/mobile_connecting_canvas_color
fix, mobile connecting canvas color
2023-09-04 23:23:42 +08:00
fufesou
85e82d0bd5 fix, mobile connecting canvas color
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-04 23:21:47 +08:00
Sahil Yeole
d6c23bb5f3 avoid chat window keyboard overlap ios
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-04 20:49:38 +05:30
rustdesk
8235bca664 fix mac uninstall service 2023-09-04 16:22:56 +08:00
rustdesk
cd2541a9d2 fix docker issue #5595 2023-09-04 15:50:13 +08:00
蔡略
4f7036a405 feat(part): implement fuse support for linux clipboard
Signed-off-by: 蔡略 <cailue@bupt.edu.cn>
2023-09-04 15:38:53 +08:00
RustDesk
227c9594db Merge pull request #5597 from dignow/fix/image_over_android_toolbar
fix, the session image covers android toolbar
2023-09-04 15:07:05 +08:00
dignow
ea41a60057 fix, the session image covers android toolbar
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-04 14:17:54 +08:00
RustDesk
eee47eae61 Merge pull request #5596 from dignow/fix/generating_id
fix generating id
2023-09-04 12:13:34 +08:00
dignow
b6c1816833 fix generating id
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-04 12:11:35 +08:00
Sahil Yeole
4e359848d1 Merge branch 'rustdesk:master' into master 2023-09-04 01:47:39 +05:30
Sahil Yeole
9cce56caf8 remember chat window last position
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-04 01:45:48 +05:30
RustDesk
f5f0bae2ef Merge pull request #5593 from dignow/fix/remove_dup_maximized_state
Remove dup maximized state
2023-09-03 22:31:54 +08:00
dignow
4fc65aac84 Remote window restore, add 300 milliseconds delay for maximizing after the frame is restored
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-03 22:27:42 +08:00
dignow
bf32477f89 Remove dup maximized state
Signed-off-by: dignow <linlong1265@gmail.com>
2023-09-03 22:18:48 +08:00
Sahil Yeole
969eeff636 add ios chat window border
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-03 18:18:44 +05:30
RustDesk
958607ba9b Merge pull request #5591 from bovirus/master
Update italian language
2023-09-03 18:01:07 +08:00
bovirus
dcfcc1f271 Update italian language 2023-09-03 11:36:10 +02:00
RustDesk
bc3c6af95d Merge pull request #5574 from deep-soft/rustdesk-rustdesk
windows flutter - include version information in self-extracted executable
2023-09-03 15:01:05 +08:00
rustdesk
701220246d fix ci 2023-09-03 14:55:23 +08:00
rustdesk
e3b0cdaf69 Merge branch 'ios_1.2.2' 2023-09-03 11:28:21 +08:00
RustDesk
c61cbfc581 Merge pull request #5589 from 21pages/ios_1.2.2_chat
fix ios setting page show chat title
2023-09-03 10:46:19 +08:00
21pages
58073484fe fix ios setting page show chat title
Signed-off-by: 21pages <pages21@163.com>
2023-09-03 08:07:14 +08:00
deep-soft
8ce1bb1b0b Update flutter-build.yml 2023-09-02 20:52:29 +03:00
deep-soft
3fab42b8d1 Update build.rs 2023-09-02 20:52:07 +03:00
rustdesk
5b802e9edd Merge branch 'ios_1.2.2' 2023-09-03 00:16:08 +08:00
rustdesk
a9308dd992 higher build 2023-09-03 00:06:32 +08:00
RustDesk
937a3e7fd6 Merge pull request #5576 from fufesou/fix/mobile_enable_actions_before_first_image
mobile, enable bottom actions before first image is reached
2023-09-02 23:05:12 +08:00
deep-soft
c9caa5687a Update flutter-build.yml
fix find Runner.res
2023-09-02 14:29:03 +03:00
RustDesk
d6950c680f Merge pull request #5573 from sahilyeole/ios_1.2.2
Fix ios draggable chat window
2023-09-02 17:50:38 +08:00
deep-soft
4fe33db4f3 Update flutter-build.yml 2023-09-01 19:29:10 +03:00
fufesou
96d9604fe1 enable bottom actions before first image is reached
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-09-01 23:55:43 +08:00
deep-soft
0c6eacb141 Update Runner.rc 2023-09-01 16:13:21 +03:00
deep-soft
e83a97349f Update build.rs
# if Runner.res not found compile icon.rc
2023-09-01 16:12:13 +03:00
deep-soft
6c5f0aecb4 Update flutter-build.yml 2023-09-01 16:11:23 +03:00
Sahil Yeole
d9160f9126 Merge branch 'rustdesk:ios_1.2.2' into ios_1.2.2 2023-09-01 17:14:18 +05:30
RustDesk
1d93de8628 Merge pull request #5571 from 21pages/ios_1.2.2
mobile add display settings
2023-09-01 15:23:39 +08:00
21pages
54de5b0300 mobile add default display, merge set server and custom quality code
Signed-off-by: 21pages <pages21@163.com>
2023-09-01 15:04:36 +08:00
21pages
b7145959a7 impl Default for PeerConfig, fix default dispaly not work when ab has password
Signed-off-by: 21pages <pages21@163.com>
2023-09-01 14:57:15 +08:00
RustDesk
1d32a96b01 Merge pull request #5569 from 21pages/ios_1.2.2
replace SettingsTile.navigation with SettingsTile()
2023-09-01 14:57:12 +08:00
Sahil Yeole
9cc02d6fcb fix ios draggable chat window
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-09-01 12:08:33 +05:30
21pages
5d18c04661 replace SettingsTile.navigation with SettingsTile()
Signed-off-by: 21pages <pages21@163.com>
2023-09-01 12:49:57 +08:00
RustDesk
e88e17a4b0 Merge pull request #5557 from 21pages/fix
fix ios build
2023-08-31 09:49:58 +08:00
21pages
a75d73b8ac fix ios build
Signed-off-by: 21pages <pages21@163.com>
2023-08-30 22:40:55 +08:00
RustDesk
bbac6b55d2 Merge pull request #5555 from 21pages/ios_1.2.2
ios add settings tab
2023-08-30 22:10:30 +08:00
21pages
3eeed39f52 ios add settings tab
Signed-off-by: 21pages <pages21@163.com>
2023-08-30 22:04:15 +08:00
RustDesk
7356b7a104 Merge pull request #5554 from 21pages/elevate
close elevation request dialog on submit
2023-08-30 20:58:47 +08:00
21pages
54310b925d close elevation request dialog on submit to avoid frequent request
Signed-off-by: 21pages <pages21@163.com>
2023-08-30 20:50:42 +08:00
RustDesk
85b5c60d60 Merge pull request #5551 from 21pages/android
mobile reset waitForImage
2023-08-30 20:02:08 +08:00
RustDesk
ab48ae6ca6 Merge pull request #5550 from 21pages/ios_1.2.2
Ios 1.2.2 waitForImage and login menu
2023-08-30 20:01:41 +08:00
21pages
7a62eb0ebf mobile reset waitForImage
Signed-off-by: 21pages <pages21@163.com>
2023-08-30 19:46:47 +08:00
21pages
c9423509a9 ios show login/logout
Signed-off-by: 21pages <pages21@163.com>
2023-08-30 19:26:15 +08:00
21pages
0c77d6d918 mobile reset waitForImage
Signed-off-by: 21pages <pages21@163.com>
2023-08-30 18:58:05 +08:00
rustdesk
a0cc6afa7e iOS deploy can run 2023-08-30 18:25:50 +08:00
RustDesk
8a08a0211f Merge pull request #5547 from dignow/refact/ios_1.2.2_dummy_session_get_rgba
use get to call translate()
2023-08-30 14:59:46 +08:00
dignow
2c044d7262 use get to call translate()
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-30 14:56:55 +08:00
RustDesk
9ff3160808 Merge pull request #5546 from dignow/refact/ios_1.2.2_dummy_session_get_rgba
ios add dummy call and remove some lookup functions
2023-08-30 14:03:18 +08:00
dignow
7671ed857d ios add dummy call and remove some lookup functions
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-30 13:49:10 +08:00
RustDesk
b9bbe7a432 Merge pull request #5544 from 21pages/hide_cm
remove hide_cm
2023-08-30 11:56:48 +08:00
21pages
76a18f5ed3 remove hide_cm
Signed-off-by: 21pages <pages21@163.com>
2023-08-30 11:48:42 +08:00
RustDesk
0ee2b02700 Merge pull request #5528 from fufesou/refact/remove_virtual_display_tmp
remove virtual display
2023-08-28 10:48:13 +08:00
fufesou
173984ffd4 remove virtual display, beccause it sometimes unable to install(with the exclamation) and there's an connecting bug
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-28 10:44:24 +08:00
RustDesk
f309ae0c67 Merge pull request #5516 from iAbdullah/master-ar
Add Arabic translation
2023-08-27 20:22:34 +08:00
Abdullah Ibrahim
26ef2539df Update lang.rs
Replace strange Unicode character ';' with Semicolon
2023-08-27 14:43:46 +03:00
RustDesk
bc7df4c841 Merge pull request #5526 from FastAct/patch-19
Update nl.rs
2023-08-27 19:35:07 +08:00
Abdullah Ibrahim
26c95bab66 Update lang.rs 2023-08-27 11:14:29 +03:00
FastAct
95b588f58e Update nl.rs 2023-08-27 09:33:13 +02:00
RustDesk
15e8f6ffb7 Update lang.rs 2023-08-27 13:03:22 +08:00
RustDesk
10cdd7640e Merge pull request #5523 from fufesou/fix/win_try_awake_os_if_locked
win, try awake the os by mouse movement and right click
2023-08-27 13:00:28 +08:00
RustDesk
f216287aee Merge pull request #5524 from 21pages/fix
fix decrypt unicode string
2023-08-27 13:00:11 +08:00
RustDesk
38871a98b4 Merge pull request #5525 from fufesou/fix/better_way_to_detect_no_displays
better way to detect no displays
2023-08-27 12:59:33 +08:00
21pages
9158bdfcf9 fix decrypt unicode string
Signed-off-by: 21pages <pages21@163.com>
2023-08-27 11:39:06 +08:00
fufesou
4dd694ab05 better way to detect no displays
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-27 11:12:02 +08:00
fufesou
553e3ee758 win, try awake the os by mouse movement and right click
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-27 10:28:16 +08:00
Abdullah Ibrahim
a470bf127e Merge branch 'rustdesk:master' into master-ar 2023-08-26 16:11:55 +03:00
Abdullah Ibrahim
52adf51d33 Complete arabic translation 2023-08-26 16:04:50 +03:00
RustDesk
d688e34521 Merge pull request #5514 from 21pages/cm
Do not start cm if file permission not allowed
2023-08-26 19:07:25 +08:00
21pages
50b8744f24 flutter hide cm if client is empty, close cm if that last for 6 seconds
Signed-off-by: 21pages <pages21@163.com>
2023-08-26 19:05:26 +08:00
21pages
3e6faf8364 rust start cm ipc only after login request permission check or switch sides
Signed-off-by: 21pages <pages21@163.com>
2023-08-26 16:43:20 +08:00
Abdullah Ibrahim
720de651f3 add additional translations 2023-08-25 21:58:27 +03:00
Abdullah Ibrahim
3d382d0354 Initial Arabic translation 2023-08-25 19:04:44 +03:00
RustDesk
8fea5585e5 Update README-TR.md 2023-08-25 21:45:00 +08:00
RustDesk
3f12a17246 TR 2023-08-25 21:43:32 +08:00
RustDesk
087ff278aa Merge pull request #5511 from SnmzTony/SnmzTony-patch-1-1
Update tr.rs
2023-08-25 21:13:08 +08:00
Mert Sonmez
301abcaa49 Update tr.rs 2023-08-25 16:10:09 +03:00
RustDesk
e33b8cc8e5 Merge pull request #5510 from SnmzTony/SnmzTony-rustdesk-1
Snmztony rustdesk 1
2023-08-25 19:51:16 +08:00
Mert Sonmez
d1bc8a7202 Update README-TR.md 2023-08-25 14:41:37 +03:00
Mert Sonmez
77fa3bd7fc Create DEVCONTAINER-TR.md 2023-08-25 14:40:02 +03:00
Mert Sonmez
3162fcf154 Create SECURITY-TR.md 2023-08-25 14:38:38 +03:00
Mert Sonmez
c618bdfe91 Update README-TR.md 2023-08-25 14:36:28 +03:00
Mert Sonmez
dd5c9939a0 Create CONTRIBUTING-TR.md 2023-08-25 14:35:45 +03:00
Mert Sonmez
80082b0880 Create CODE_OF_CONDUCT-TR.md 2023-08-25 14:32:27 +03:00
RustDesk
b7aa115bd2 Merge pull request #5507 from SnmzTony/SnmzTony-rustdesk-1
Create README-TR.md
2023-08-25 17:26:07 +08:00
Mert Sonmez
0e9950638c Create README-TR.md 2023-08-25 12:21:33 +03:00
rustdesk
a957acd893 remove LSUIElement=1 in info.plist so that system menu can be shown 2023-08-25 15:19:00 +08:00
RustDesk
a9244333fb Merge pull request #5504 from jimmyGALLAND/update_fr.rs
update fr.rs
2023-08-25 10:07:41 +08:00
Jimmy GALLAND
63a19bc0a1 update fr.rs 2023-08-24 22:36:55 +02:00
cailue
c25d648321 refactor: adjust windows file layout
Signed-off-by: cailue <cailue@bupt.edu.cn>
2023-08-24 23:53:15 +08:00
RustDesk
2f6711dd2d Merge pull request #5498 from 21pages/audit
alarm audit more info
2023-08-24 20:04:50 +08:00
RustDesk
c450b41e8f Merge pull request #5489 from fufesou/fix/enable_menu_before_image
Fix/enable menu before image
2023-08-24 19:57:23 +08:00
fufesou
9937650062 Use Overlay to wrap RemoteToolbar to enable rebuild everytime on click
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-24 14:40:02 +08:00
fufesou
56ff88934f Add RemoteToolbar to Obx(()) to rebuild after pi is recved
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-24 13:07:36 +08:00
fufesou
c1a577797a Revert Ctrl+Alt+Del in toolbar right menu
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-24 12:50:39 +08:00
fufesou
257227920d Fix missing menu action
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-24 12:24:08 +08:00
RustDesk
461633cd83 Merge pull request #5499 from cacing69/master
add new translation
2023-08-24 12:15:06 +08:00
Ibnul Mutaki
a0887e9285 changed tips for better understanding 2023-08-24 11:12:02 +07:00
Ibnul Mutaki
23354d371f change inconsitent word and add new translation 2023-08-24 11:07:47 +07:00
fufesou
0e838d59d5 Check if peer info is set
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-24 12:03:29 +08:00
RustDesk
f305c9d96a Merge pull request #5491 from PeterDaveHello/tw
Update and improve tw translation
2023-08-24 10:24:14 +08:00
RustDesk
226665403f Merge pull request #5496 from cacing69/master
fix some translate read me for indonesian translate, add create contributing-id.md
2023-08-24 10:23:17 +08:00
21pages
88d0460e3c alarm audit more info
Signed-off-by: 21pages <pages21@163.com>
2023-08-24 10:04:34 +08:00
Cacing69
e09b4f878e Merge branch 'rustdesk:master' into master 2023-08-24 08:02:45 +07:00
Ibnul Mutaki
a7ef3ce58a fix some translate read me for indonesian translate, add create contributing-id.md 2023-08-24 08:01:41 +07:00
Peter Dave Hello
256f33b720 Update and improve tw translation 2023-08-24 01:33:06 +08:00
fufesou
e17002c6da set right menu duration from 4s to 300s
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-24 00:00:18 +08:00
fufesou
f2d96b895f hide empty waiting layer after images are reached
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-23 23:57:09 +08:00
fufesou
dade589075 fix, enable menu before image
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-08-23 23:29:15 +08:00
rustdesk
0d9cd25a71 Merge branch 'master' of github.com-rustdesk:rustdesk/rustdesk 2023-08-23 21:59:50 +08:00
rustdesk
cb73490107 add quick fix for https://github.com/rustdesk/rustdesk/issues/5488#issuecomment-1689997785 2023-08-23 21:59:22 +08:00
RustDesk
535405521c Merge pull request #5487 from Mr-Update/master-4
Update de.rs
2023-08-23 20:28:47 +08:00
Mr-Update
8785c08861 Update de.rs 2023-08-23 14:27:30 +02:00
RustDesk
0020a37029 Merge pull request #5486 from SergeyMy/master-3
Update ru.rs
2023-08-23 15:28:02 +08:00
SergeyMy
33cbed592a Update ru.rs 2023-08-23 12:25:43 +05:00
rustdesk
28c0e15058 bump to 1.2.3 2023-08-23 12:56:33 +08:00
rustdesk
a316411f76 Merge branch 'master' of github.com-rustdesk:rustdesk/rustdesk 2023-08-23 12:52:44 +08:00
RustDesk
66ad519dbd Merge pull request #5386 from dignow/refact/tab_2_window_flutter_data
Refact/tab 2 window flutter data
2023-08-23 12:52:19 +08:00
RustDesk
2a8dc1d34a Merge pull request #5323 from dignow/refact/android_scroll_event
Refact/android scroll event
2023-08-23 12:51:54 +08:00
RustDesk
228b670b4f Merge pull request #5485 from 21pages/ab
fix pushAb
2023-08-23 12:51:12 +08:00
21pages
da9fb46b6a fix pushAb
Signed-off-by: 21pages <pages21@163.com>
2023-08-23 12:20:19 +08:00
rustdesk
f4d120b11f remove useless line 2023-08-23 12:04:19 +08:00
RustDesk
bc954b75ce Merge pull request #5482 from SergeyMy/master-2
Update ru.rs
2023-08-23 12:03:33 +08:00
RustDesk
b787734913 Merge branch 'master' into master-2 2023-08-23 12:03:25 +08:00
RustDesk
fb5a6c20de Merge pull request #5483 from sahilyeole/master
Using github latest release url to check for software update
2023-08-23 12:02:45 +08:00
RustDesk
3fda085cbb Merge pull request #5484 from 21pages/ab
add ColorPicker translations
2023-08-23 11:59:02 +08:00
21pages
d87ea854bc add ColorPicker translations
Signed-off-by: 21pages <pages21@163.com>
2023-08-23 08:15:56 +08:00
Sahil Yeole
f41cb0d81c updated get_new_version for ui
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-08-23 00:14:32 +05:30
Sahil Yeole
8427b03a39 Using github latest release url to check for software update
Signed-off-by: Sahil Yeole <sahilyeole93@gmail.com>
2023-08-23 00:13:23 +05:30
SergeyMy
9cb7786182 Update ru.rs 2023-08-22 19:26:59 +05:00
rustdesk
6666dece5d svgo gitlab.svg 2023-08-22 22:02:42 +08:00
RustDesk
efdd17fa9a Merge pull request #5481 from dignow/feat/add_oidc_gitlab_default_icon
oidc, add default gitlab icon
2023-08-22 22:00:35 +08:00
dignow
7f7d5d9f4c oidc, add default gitlab icon
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-22 21:52:23 +08:00
RustDesk
9b542f7653 Merge pull request #5476 from 21pages/ab
change tag color
2023-08-22 19:51:46 +08:00
21pages
b27c3ff169 change tag color
Signed-off-by: 21pages <pages21@163.com>
2023-08-22 19:07:01 +08:00
RustDesk
115221098a Merge pull request #5471 from 21pages/ab
mobile reuse tile peer card
2023-08-22 12:22:53 +08:00
21pages
5a6a7e8d82 mobile use _buildPeerTile
Signed-off-by: 21pages <pages21@163.com>
2023-08-22 11:41:57 +08:00
dignow
9adac5686b fix unregister texture condition
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-16 21:52:03 +08:00
dignow
fad88c2718 refact, tab to window, remove rust cache data
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-14 21:04:24 +08:00
dignow
e205577145 refact, tab to window, flutter data, init commit
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-14 20:58:31 +08:00
dignow
6368ab691c simple refactor, move code from flutter_ffi.rs to flutter.rs
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 16:08:30 +08:00
dignow
5b2358c97f debug android scroll
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:29 +08:00
dignow
072430cef5 debug android scroll
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:29 +08:00
dignow
5f7055e282 debug
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:29 +08:00
dignow
be982d95ea tmp build
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:29 +08:00
dignow
b9c8df7019 debug
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:29 +08:00
dignow
e89ae475f6 fix build
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:29 +08:00
dignow
9476d7fdbb try fix build
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:29 +08:00
dignow
da16a799fa fix build
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:28 +08:00
dignow
9e0feb0b64 tmp debug
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:28 +08:00
dignow
93a600a0a8 tmp commit
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:28 +08:00
dignow
06ee68f836 tmp commit
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:28 +08:00
dignow
d6f1abad95 tmp commit
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:28 +08:00
dignow
933c99110c tmp commit
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:28 +08:00
dignow
8999bbf297 tmp commit
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:28 +08:00
dignow
200fc56a4a tmp commit
Signed-off-by: dignow <linlong1265@gmail.com>
2023-08-10 14:54:28 +08:00
704 changed files with 112688 additions and 40550 deletions

View File

@@ -1,8 +1,16 @@
[target.x86_64-pc-windows-msvc] [target.x86_64-pc-windows-msvc]
rustflags = ["-Ctarget-feature=+crt-static"] rustflags = ["-Ctarget-feature=+crt-static"]
[target.i686-pc-windows-msvc] [target.i686-pc-windows-msvc]
rustflags = ["-Ctarget-feature=+crt-static"] rustflags = ["-C", "target-feature=+crt-static", "-C", "link-args=/NODEFAULTLIB:MSVCRT"]
[target.'cfg(target_os="macos")'] [target.'cfg(target_os="macos")']
rustflags = [ rustflags = [
"-C", "link-args=-sectcreate __CGPreLoginApp __cgpreloginapp /dev/null", "-C", "link-args=-sectcreate __CGPreLoginApp __cgpreloginapp /dev/null",
] ]
#[target.'cfg(target_os="linux")']
# glibc-static required, this may fix https://github.com/rustdesk/rustdesk/issues/9103, but I do not want this big change
# this is unlikely to help also, because the other so files still use libc dynamically
#rustflags = [
# "-C", "link-args=-Wl,-Bstatic -lc -Wl,-Bdynamic"
#]
[net]
git-fetch-with-cli = true

View File

@@ -0,0 +1,56 @@
You are an expert in prompt engineering, specializing in optimizing AI code assistant instructions. Your task is to analyze and improve the instructions for Claude Code.
Follow these steps carefully:
1. Analysis Phase:
Review the chat history in your context window.
Then, examine the current Claude instructions, commands and config
<claude_instructions>
/CLAUDE.md
/.claude/commands/*
**/CLAUDE.md
.claude/settings.json
.claude/settings.local.json
</claude_instructions>
Analyze the chat history, instructions, commands and config to identify areas that could be improved. Look for:
- Inconsistencies in Claude's responses
- Misunderstandings of user requests
- Areas where Claude could provide more detailed or accurate information
- Opportunities to enhance Claude's ability to handle specific types of queries or tasks
- New commands or improvements to a commands name, function or response
- Permissions and MCPs we've approved locally that we should add to the config, especially if we've added new tools or require them for the command to work
2. Interaction Phase:
Present your findings and improvement ideas to the human. For each suggestion:
a) Explain the current issue you've identified
b) Propose a specific change or addition to the instructions
c) Describe how this change would improve Claude's performance
Wait for feedback from the human on each suggestion before proceeding. If the human approves a change, move it to the implementation phase. If not, refine your suggestion or move on to the next idea.
3. Implementation Phase:
For each approved change:
a) Clearly state the section of the instructions you're modifying
b) Present the new or modified text for that section
c) Explain how this change addresses the issue identified in the analysis phase
4. Output Format:
Present your final output in the following structure:
<analysis>
[List the issues identified and potential improvements]
</analysis>
<improvements>
[For each approved improvement:
1. Section being modified
2. New or modified instruction text
3. Explanation of how this addresses the identified issue]
</improvements>
<final_instructions>
[Present the complete, updated set of instructions for Claude, incorporating all approved changes]
</final_instructions>
Remember, your goal is to enhance Claude's performance and consistency while maintaining the core functionality and purpose of the AI assistant. Be thorough in your analysis, clear in your explanations, and precise in your implementations.

View File

@@ -26,8 +26,8 @@ body:
- type: input - type: input
id: os id: os
attributes: attributes:
label: Operating system(s) on local side and remote side label: Operating system(s) on local (controlling) side and remote (controlled) side
description: What operating system(s) do you see this bug on? local side -> remote side. description: What operating system(s) do you see this bug on? local (controlling) side -> remote (controlled) side.
placeholder: | placeholder: |
Windows 10 -> osx Windows 10 -> osx
validations: validations:
@@ -35,8 +35,8 @@ body:
- type: input - type: input
id: version id: version
attributes: attributes:
label: RustDesk Version(s) on local side and remote side label: RustDesk Version(s) on local (controlling) side and remote (controlled) side
description: What RustDesk version(s) do you see this bug on? local side -> remote side. description: What RustDesk version(s) do you see this bug on? local (controlling) side -> remote (controlled) side.
placeholder: | placeholder: |
1.1.9 -> 1.1.8 1.1.9 -> 1.1.8
validations: validations:

View File

@@ -1,20 +0,0 @@
name: 📝 Task
description: Create a task for the team to work on, used internally only. We will delete tasks created by non-team members.
title: "[Task]: "
labels: [Task]
body:
- type: checkboxes
attributes:
label: Are you our team member?
description: If you are not our team member, please go to discussions.
options:
- label: Yes, I am?
required: true
- type: textarea
attributes:
label: SubTasks
placeholder: |
- Sub Task 1
- Sub Task 2
validations:
required: false

11
.github/dependabot.yml vendored Normal file
View File

@@ -0,0 +1,11 @@
version: 2
updates:
- package-ecosystem: "gitsubmodule"
directory: "/"
target-branch: "master"
schedule:
interval: "daily"
commit-message:
prefix: "Git submodule"
labels:
- "dependencies"

View File

@@ -0,0 +1,42 @@
diff --git a/packages/flutter/lib/src/material/dropdown_menu.dart b/packages/flutter/lib/src/material/dropdown_menu.dart
index 7e634cd2aa..c1e9acc295 100644
--- a/packages/flutter/lib/src/material/dropdown_menu.dart
+++ b/packages/flutter/lib/src/material/dropdown_menu.dart
@@ -475,7 +475,7 @@ class _DropdownMenuState<T> extends State<DropdownMenu<T>> {
final GlobalKey _leadingKey = GlobalKey();
late List<GlobalKey> buttonItemKeys;
final MenuController _controller = MenuController();
- late bool _enableFilter;
+ bool _enableFilter = false;
late List<DropdownMenuEntry<T>> filteredEntries;
List<Widget>? _initialMenu;
int? currentHighlight;
@@ -524,6 +524,11 @@ class _DropdownMenuState<T> extends State<DropdownMenu<T>> {
}
_localTextEditingController = widget.controller ?? TextEditingController();
}
+ if (oldWidget.enableFilter != widget.enableFilter) {
+ if (!widget.enableFilter) {
+ _enableFilter = false;
+ }
+ }
if (oldWidget.enableSearch != widget.enableSearch) {
if (!widget.enableSearch) {
currentHighlight = null;
@@ -663,6 +668,7 @@ class _DropdownMenuState<T> extends State<DropdownMenu<T>> {
);
currentHighlight = widget.enableSearch ? i : null;
widget.onSelected?.call(entry.value);
+ _enableFilter = false;
}
: null,
requestFocusOnHover: false,
@@ -735,6 +741,8 @@ class _DropdownMenuState<T> extends State<DropdownMenu<T>> {
if (_enableFilter) {
filteredEntries = widget.filterCallback?.call(filteredEntries, _localTextEditingController!.text)
?? filter(widget.dropdownMenuEntries, _localTextEditingController!);
+ } else {
+ filteredEntries = widget.dropdownMenuEntries;
}
if (widget.enableSearch) {

View File

@@ -1,14 +1,16 @@
# This yaml shares the build bridge steps with ci and nightly. # This yaml shares the build bridge steps with ci and nightly.
name: Build flutter-rust-bridge name: Build flutter-rust-bridge
# 2023-04-19 15:48:00+00:00 # 2023-11-23 18:00:00+00:00
on: on:
workflow_call: workflow_call:
env: env:
FLUTTER_VERSION: "3.10.6" CARGO_EXPAND_VERSION: "1.0.95"
FLUTTER_RUST_BRIDGE_VERSION: "1.75.3" FLUTTER_VERSION: "3.22.3"
FLUTTER_RUST_BRIDGE_VERSION: "1.80.1"
RUST_VERSION: "1.75" # https://github.com/rustdesk/rustdesk/discussions/7503
jobs: jobs:
generate_bridge: generate_bridge:
runs-on: ${{ matrix.job.os }} runs-on: ${{ matrix.job.os }}
@@ -18,26 +20,40 @@ jobs:
job: job:
- { - {
target: x86_64-unknown-linux-gnu, target: x86_64-unknown-linux-gnu,
os: ubuntu-20.04, os: ubuntu-22.04,
extra-build-args: "", extra-build-args: "",
} }
steps: steps:
- name: Checkout source code - name: Checkout source code
uses: actions/checkout@v3 uses: actions/checkout@v4
with:
submodules: recursive
- name: Install prerequisites - name: Install prerequisites
run: | run: |
sudo apt install ca-certificates -y sudo apt-get install ca-certificates -y
sudo apt update -y sudo apt-get update -y
sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang cmake libclang-dev ninja-build llvm-dev libclang-10-dev llvm-10-dev pkg-config sudo apt-get install -y \
clang \
cmake \
curl \
gcc \
git \
g++ \
libclang-dev \
libgtk-3-dev \
llvm-dev \
nasm \
ninja-build \
pkg-config \
wget
- name: Install Rust toolchain - name: Install Rust toolchain
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@v1
with: with:
toolchain: stable toolchain: ${{ env.RUST_VERSION }}
target: ${{ matrix.job.target }} targets: ${{ matrix.job.target }}
override: true components: "rustfmt"
profile: minimal # minimal component installation (ie, no documentation)
- uses: Swatinem/rust-cache@v2 - uses: Swatinem/rust-cache@v2
with: with:
@@ -60,12 +76,14 @@ jobs:
- name: Install flutter rust bridge deps - name: Install flutter rust bridge deps
shell: bash shell: bash
run: | run: |
cargo install flutter_rust_bridge_codegen --version ${{ env.FLUTTER_RUST_BRIDGE_VERSION }} --features "uuid" cargo install cargo-expand --version ${{ env.CARGO_EXPAND_VERSION }} --locked
pushd flutter && flutter pub get && popd cargo install flutter_rust_bridge_codegen --version ${{ env.FLUTTER_RUST_BRIDGE_VERSION }} --features "uuid" --locked
pushd flutter && sed -i -e 's/extended_text: 14.0.0/extended_text: 13.0.0/g' pubspec.yaml && flutter pub get && popd
- name: Run flutter rust bridge - name: Run flutter rust bridge
run: | run: |
~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart ~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart --c-output ./flutter/macos/Runner/bridge_generated.h
cp ./flutter/macos/Runner/bridge_generated.h ./flutter/ios/Runner/bridge_generated.h
- name: Upload Artifact - name: Upload Artifact
uses: actions/upload-artifact@master uses: actions/upload-artifact@master
@@ -74,5 +92,7 @@ jobs:
path: | path: |
./src/bridge_generated.rs ./src/bridge_generated.rs
./src/bridge_generated.io.rs ./src/bridge_generated.io.rs
./flutter/lib/generated_bridge.dart ./flutter/lib/generated_bridge.dart
./flutter/lib/generated_bridge.freezed.dart ./flutter/lib/generated_bridge.freezed.dart
./flutter/macos/Runner/bridge_generated.h
./flutter/ios/Runner/bridge_generated.h

View File

@@ -1,8 +1,11 @@
name: CI name: CI
# env: env:
# MIN_SUPPORTED_RUST_VERSION: "1.46.0" # MIN_SUPPORTED_RUST_VERSION: "1.46.0"
# CICD_INTERMEDIATES_DIR: "_cicd-intermediates" # CICD_INTERMEDIATES_DIR: "_cicd-intermediates"
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
# for multiarch gcc compatibility
VCPKG_COMMIT_ID: "6f29f12e82a8293156836ad81cc9bf5af41fe836"
on: on:
workflow_dispatch: workflow_dispatch:
@@ -17,6 +20,9 @@ on:
- ".github/**" - ".github/**"
- "docs/**" - "docs/**"
- "README.md" - "README.md"
- "res/**"
- "appimage/**"
- "flatpak/**"
jobs: jobs:
# ensure_cargo_fmt: # ensure_cargo_fmt:
@@ -38,6 +44,8 @@ jobs:
# steps: # steps:
# - name: Checkout source code # - name: Checkout source code
# uses: actions/checkout@v3 # uses: actions/checkout@v3
# with:
# submodules: recursive
# - name: Install rust toolchain (v${{ env.MIN_SUPPORTED_RUST_VERSION }}) # - name: Install rust toolchain (v${{ env.MIN_SUPPORTED_RUST_VERSION }})
# uses: actions-rs/toolchain@v1 # uses: actions-rs/toolchain@v1
@@ -67,45 +75,78 @@ jobs:
# - { target: aarch64-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true } # - { target: aarch64-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true }
# - { target: arm-unknown-linux-gnueabihf , os: ubuntu-20.04, use-cross: true } # - { target: arm-unknown-linux-gnueabihf , os: ubuntu-20.04, use-cross: true }
# - { target: arm-unknown-linux-musleabihf, os: ubuntu-20.04, use-cross: true } # - { target: arm-unknown-linux-musleabihf, os: ubuntu-20.04, use-cross: true }
# - { target: i686-pc-windows-msvc , os: windows-2019 } # - { target: i686-pc-windows-msvc , os: windows-2022 }
# - { target: i686-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true } # - { target: i686-unknown-linux-gnu , os: ubuntu-20.04, use-cross: true }
# - { target: i686-unknown-linux-musl , os: ubuntu-20.04, use-cross: true } # - { target: i686-unknown-linux-musl , os: ubuntu-20.04, use-cross: true }
# - { target: x86_64-apple-darwin , os: macos-10.15 } # - { target: x86_64-apple-darwin , os: macos-10.15 }
# - { target: x86_64-pc-windows-gnu , os: windows-2019 } # - { target: x86_64-pc-windows-gnu , os: windows-2022 }
# - { target: x86_64-pc-windows-msvc , os: windows-2019 } # - { target: x86_64-pc-windows-msvc , os: windows-2022 }
- { target: x86_64-unknown-linux-gnu , os: ubuntu-20.04 } - { target: x86_64-unknown-linux-gnu , os: ubuntu-22.04 }
# - { target: x86_64-unknown-linux-musl , os: ubuntu-20.04, use-cross: true } # - { target: x86_64-unknown-linux-musl , os: ubuntu-20.04, use-cross: true }
steps: steps:
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v6
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Checkout source code - name: Checkout source code
uses: actions/checkout@v3 uses: actions/checkout@v4
with:
submodules: recursive
- name: Install prerequisites - name: Install prerequisites
shell: bash shell: bash
run: | run: |
case ${{ matrix.job.target }} in case ${{ matrix.job.target }} in
x86_64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev;; x86_64-unknown-linux-gnu)
sudo apt-get -y update
sudo apt-get install -y \
clang \
cmake \
curl \
gcc \
git \
g++ \
libpam0g-dev \
libasound2-dev \
libunwind-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libgtk-3-dev \
libpulse-dev \
libva-dev \
libvdpau-dev \
libxcb-randr0-dev \
libxcb-shape0-dev \
libxcb-xfixes0-dev \
libxdo-dev \
libxfixes-dev \
nasm \
wget
;;
# arm-unknown-linux-*) sudo apt-get -y update ; sudo apt-get -y install gcc-arm-linux-gnueabihf ;; # arm-unknown-linux-*) sudo apt-get -y update ; sudo apt-get -y install gcc-arm-linux-gnueabihf ;;
# aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;; # aarch64-unknown-linux-gnu) sudo apt-get -y update ; sudo apt-get -y install gcc-aarch64-linux-gnu ;;
esac esac
- name: Restore from cache and install vcpkg - name: Setup vcpkg with Github Actions binary cache
uses: lukka/run-vcpkg@v7 uses: lukka/run-vcpkg@v11
with: with:
setupOnly: true vcpkgDirectory: /opt/artifacts/vcpkg
vcpkgGitCommitId: '501db0f17ef6df184fcdbfbe0f87cde2313b6ab1' #2023.04.15 vcpkgGitCommitId: ${{ env.VCPKG_COMMIT_ID }}
- name: Install vcpkg dependencies - name: Install vcpkg dependencies
run: | run: |
$VCPKG_ROOT/vcpkg install libvpx libyuv opus aom $VCPKG_ROOT/vcpkg install --x-install-root="$VCPKG_ROOT/installed"
shell: bash shell: bash
- name: Install Rust toolchain - name: Install Rust toolchain
uses: actions-rs/toolchain@v1 uses: dtolnay/rust-toolchain@v1
with: with:
toolchain: stable toolchain: stable
target: ${{ matrix.job.target }} targets: ${{ matrix.job.target }}
override: true components: ''
profile: minimal # minimal component installation (ie, no documentation)
- name: Show version information (Rust, cargo, GCC) - name: Show version information (Rust, cargo, GCC)
shell: bash shell: bash
@@ -117,8 +158,8 @@ jobs:
cargo -V cargo -V
rustc -V rustc -V
- uses: Swatinem/rust-cache@v1 - uses: Swatinem/rust-cache@v2
- name: Build - name: Build
uses: actions-rs/cargo@v1 uses: actions-rs/cargo@v1
with: with:
@@ -183,7 +224,9 @@ jobs:
;; ;;
esac; esac;
echo ::set-output name=CARGO_TEST_OPTIONS::${CARGO_TEST_OPTIONS} #deprecated echo ::set-output name=CARGO_TEST_OPTIONS::${CARGO_TEST_OPTIONS}
echo "CARGO_TEST_OPTIONS=${CARGO_TEST_OPTIONS}" >> $GITHUB_ENV
echo "CARGO_TEST_OPTIONS=${CARGO_TEST_OPTIONS}" >> $GITHUB_OUTPUT
- name: Run tests - name: Run tests
uses: actions-rs/cargo@v1 uses: actions-rs/cargo@v1

37
.github/workflows/clear-cache.yml vendored Normal file
View File

@@ -0,0 +1,37 @@
name: Clear cache
on:
workflow_dispatch:
permissions:
actions: write
jobs:
clear-cache:
runs-on: ubuntu-latest
steps:
- name: Clear cache
uses: actions/github-script@v7
with:
script: |
console.log("About to clear")
const caches = await github.rest.actions.getActionsCacheList({
owner: context.repo.owner,
repo: context.repo.repo,
})
for (const cache of caches.data.actions_caches) {
console.log(cache)
github.rest.actions.deleteActionsCacheById({
owner: context.repo.owner,
repo: context.repo.repo,
cache_id: cache.id,
})
}
console.log("Clear completed")
- name: Purge cache # Above seems not clear thouroughly, so add this to double clear
uses: MyAlbum/purge-cache@v2
with:
accessed: true # Purge caches by their last accessed time (default)
created: false # Purge caches by their created time (default)
max-age: 1 # in seconds

39
.github/workflows/fdroid.yml vendored Normal file
View File

@@ -0,0 +1,39 @@
name: Fdroid version file generation
on:
workflow_dispatch:
push:
tags:
- 'v[0-9]+.[0-9]+.[0-9]+'
- '[0-9]+.[0-9]+.[0-9]+'
- 'v[0-9]+.[0-9]+.[0-9]+-[0-9]+'
- '[0-9]+.[0-9]+.[0-9]+-[0-9]+'
jobs:
# https://gitlab.com/fdroid/fdroiddata/-/blob/master/metadata/com.carriez.flutter_hbb.yml
# Finds latest release and transforms F-Droid version code from version as follows:
# X.Y.Z-A => X * 1e6 + Y * 1e4 + Z * 1e2 + A
update-fdroid-version-file:
name: Publish RustDesk version file for F-Droid updater
runs-on: ubuntu-latest
steps:
- name: Generate RustDesk version file
run: |
if [ "${GITHUB_REF_TYPE}" = "tag" ]; then
UPSTREAM_VERNAME="${GITHUB_REF##refs/tags/}"
UPSTREAM_VERNAME="${UPSTREAM_VERNAME##v}"
else
UPSTREAM_VERNAME="$(curl https://api.github.com/repos/rustdesk/rustdesk/releases/latest | jq -r .tag_name | sed 's/^v//')"
fi
UPSTREAM_VERCODE="$(echo "$UPSTREAM_VERNAME" | tr '.' ' ' | tr '-' ' ' | while read -r MAJOR MINOR PATCH REV; do [ -z "$MAJOR" ] && MAJOR=0; [ -z "$MINOR" ] && MINOR=0; [ -z "$PATCH" ] && PATCH=0; [ -z "$REV" ] && REV=0; echo "$(( 1000000 * $MAJOR + 10000 * $MINOR + 100 * $PATCH + $REV ))"; done)"
echo "versionName=$UPSTREAM_VERNAME" > rustdesk-version.txt
echo "versionCode=$UPSTREAM_VERCODE" >> rustdesk-version.txt
shell: bash
- name: Publish RustDesk version file
uses: softprops/action-gh-release@v1
with:
prerelease: true
tag_name: "fdroid-version"
files: |
./rustdesk-version.txt

File diff suppressed because it is too large Load Diff

View File

@@ -13,10 +13,12 @@ on:
- ".github/**" - ".github/**"
- "docs/**" - "docs/**"
- "README.md" - "README.md"
- "res/**"
- "appimage/**"
- "flatpak/**"
jobs: jobs:
run-ci: run-ci:
uses: ./.github/workflows/flutter-build.yml uses: ./.github/workflows/flutter-build.yml
with: with:
upload-artifact: false upload-artifact: false

View File

@@ -12,4 +12,4 @@ jobs:
secrets: inherit secrets: inherit
with: with:
upload-artifact: true upload-artifact: true
upload-tag: "nightly" upload-tag: "nightly"

View File

@@ -15,4 +15,4 @@ jobs:
secrets: inherit secrets: inherit
with: with:
upload-artifact: true upload-artifact: true
upload-tag: "1.2.2" upload-tag: ${{ github.ref_name }}

View File

@@ -1,82 +0,0 @@
name: Flutter Windows History Build
on: [workflow_dispatch]
env:
LLVM_VERSION: "10.0"
FLUTTER_VERSION: "3.10.6"
TAG_NAME: "tmp"
FLUTTER_RUST_BRIDGE_VERSION: "1.75.3"
# vcpkg version: 2022.05.10
# for multiarch gcc compatibility
VCPKG_COMMIT_ID: "501db0f17ef6df184fcdbfbe0f87cde2313b6ab1"
VERSION: "1.2.2"
jobs:
build-for-history-windows:
name: ${{ matrix.job.date }}
runs-on: ${{ matrix.job.os }}
strategy:
fail-fast: false
matrix:
job:
- { target: x86_64-pc-windows-msvc, os: windows-2019, arch: x86_64, date: 2023-08-04, ref: 72c198a1e94cc1e0242fce88f92b3f3caedcd0c3 }
steps:
- name: Checkout source code
uses: actions/checkout@v3
with:
ref: ${{ matrix.job.ref }}
- name: Install LLVM and Clang
uses: KyleMayes/install-llvm-action@v1
with:
version: ${{ env.LLVM_VERSION }}
- name: Install flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
cache: true
- name: Install Rust toolchain
uses: actions-rs/toolchain@v1
with:
toolchain: stable
target: ${{ matrix.job.target }}
override: true
components: rustfmt
profile: minimal # minimal component installation (ie, no documentation)
- name: Install flutter rust bridge deps
run: |
cargo install flutter_rust_bridge_codegen --version ${{ env.FLUTTER_RUST_BRIDGE_VERSION }} --features "uuid"
Push-Location flutter ; flutter pub get ; Pop-Location
~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart
- name: Install vcpkg dependencies
run: |
cd C:\
git clone https://github.com/Kingtous/rustdesk_thirdpary_lib --depth=1
- name: Build rustdesk
env:
VCPKG_ROOT: C:\rustdesk_thirdpary_lib\vcpkg
run: python3 .\build.py --portable --hwcodec --flutter --feature IddDriver
- name: Build self-extracted executable
shell: bash
run: |
pushd ./libs/portable
python3 ./generate.py -f ../../flutter/build/windows/runner/Release/ -o . -e ../../flutter/build/windows/runner/Release/rustdesk.exe
popd
mkdir -p ./SignOutput
mv ./target/release/rustdesk-portable-packer.exe ./SignOutput/rustdesk-${{ matrix.job.date }}-${{ matrix.job.target }}.exe
- name: Publish Release
uses: softprops/action-gh-release@v1
with:
prerelease: true
tag_name: ${{ env.TAG_NAME }}
files: |
./SignOutput/rustdesk-*.exe

418
.github/workflows/playground.yml vendored Normal file
View File

@@ -0,0 +1,418 @@
name: playground
on:
#schedule:
# schedule build every night
# - cron: "0/6 * * * *"
workflow_dispatch:
env:
RUST_VERSION: "1.75" # https://github.com/rustdesk/rustdesk/discussions/7503
CARGO_NDK_VERSION: "3.1.2"
LLVM_VERSION: "15.0.6"
FLUTTER_VERSION: "3.22.2"
FLUTTER_RUST_BRIDGE_VERSION: "1.80.1"
# for arm64 linux because official Dart SDK does not work
FLUTTER_ELINUX_VERSION: "3.16.9"
TAG_NAME: "nightly"
VCPKG_BINARY_SOURCES: "clear;x-gha,readwrite"
VCPKG_COMMIT_ID: "6f29f12e82a8293156836ad81cc9bf5af41fe836"
VERSION: "1.4.0"
NDK_VERSION: "r26d"
#signing keys env variable checks
ANDROID_SIGNING_KEY: "${{ secrets.ANDROID_SIGNING_KEY }}"
MACOS_P12_BASE64: "${{ secrets.MACOS_P12_BASE64 }}"
# To make a custom build with your own servers set the below secret values
RS_PUB_KEY: "${{ secrets.RS_PUB_KEY }}"
RENDEZVOUS_SERVER: "${{ secrets.RENDEZVOUS_SERVER }}"
API_SERVER: "${{ secrets.API_SERVER }}"
UPLOAD_ARTIFACT: "${{ inputs.upload-artifact }}"
SIGN_BASE_URL: "${{ secrets.SIGN_BASE_URL }}"
jobs:
build-for-macOS:
name: ${{ matrix.job.target }}
runs-on: ${{ matrix.job.os }}
strategy:
fail-fast: false
matrix:
job:
- {
target: x86_64-apple-darwin,
os: macos-13, #macos-latest or macos-14 use M1 now, https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#:~:text=14%20GB-,macos%2Dlatest%20or%20macos%2D14,-The%20macos%2Dlatestlabel
extra-build-args: "",
arch: x86_64,
flutter: "3.13.9",
ref: "f6509e3fd6917aa976bad2fc684182601ebf2434",
bridge: "1.80.1",
date: "20231219"
}
- {
target: x86_64-apple-darwin,
os: macos-13, #macos-latest or macos-14 use M1 now, https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#:~:text=14%20GB-,macos%2Dlatest%20or%20macos%2D14,-The%20macos%2Dlatestlabel
extra-build-args: "",
arch: x86_64,
flutter: "3.10.6",
ref: "f6509e3fd6917aa976bad2fc684182601ebf2434",
bridge: "1.80.1",
date: "20231219"
}
- {
target: x86_64-apple-darwin,
os: macos-13, #macos-latest or macos-14 use M1 now, https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#:~:text=14%20GB-,macos%2Dlatest%20or%20macos%2D14,-The%20macos%2Dlatestlabel
extra-build-args: "",
arch: x86_64,
flutter: "3.10.6",
ref: "85ddfc0739f052cab0029c46b899b959ee94eeb8",
bridge: "1.80.1",
date: "20231119"
}
- {
target: x86_64-apple-darwin,
os: macos-13, #macos-latest or macos-14 use M1 now, https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#:~:text=14%20GB-,macos%2Dlatest%20or%20macos%2D14,-The%20macos%2Dlatestlabel
extra-build-args: "",
arch: x86_64,
flutter: "3.13.9",
ref: "85ddfc0739f052cab0029c46b899b959ee94eeb8",
bridge: "1.80.1",
date: "20231119"
}
steps:
- name: Export GitHub Actions cache environment variables
uses: actions/github-script@v6
with:
script: |
core.exportVariable('ACTIONS_CACHE_URL', process.env.ACTIONS_CACHE_URL || '');
core.exportVariable('ACTIONS_RUNTIME_TOKEN', process.env.ACTIONS_RUNTIME_TOKEN || '');
- name: Checkout source code
uses: actions/checkout@v3
with:
ref: ${{ matrix.job.ref }}
submodules: recursive
- name: Import the codesign cert
if: env.MACOS_P12_BASE64 != null
uses: apple-actions/import-codesign-certs@v1
with:
p12-file-base64: ${{ secrets.MACOS_P12_BASE64 }}
p12-password: ${{ secrets.MACOS_P12_PASSWORD }}
keychain: rustdesk
- name: Check sign and import sign key
if: env.MACOS_P12_BASE64 != null
run: |
security default-keychain -s rustdesk.keychain
security find-identity -v
- name: Import notarize key
if: env.MACOS_P12_BASE64 != null
uses: timheuer/base64-to-file@v1.2
with:
# https://gregoryszorc.com/docs/apple-codesign/stable/apple_codesign_rcodesign.html#notarizing-and-stapling
fileName: rustdesk.json
fileDir: ${{ github.workspace }}
encodedString: ${{ secrets.MACOS_NOTARIZE_JSON }}
- name: Install rcodesign tool
if: env.MACOS_P12_BASE64 != null
shell: bash
run: |
pushd /tmp
wget https://github.com/indygreg/apple-platform-rs/releases/download/apple-codesign%2F0.22.0/apple-codesign-0.22.0-macos-universal.tar.gz
tar -zxvf apple-codesign-0.22.0-macos-universal.tar.gz
mv apple-codesign-0.22.0-macos-universal/rcodesign /usr/local/bin
popd
- name: Install build runtime
run: |
brew install llvm create-dmg nasm cmake gcc wget ninja pkg-config
- name: Install flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ matrix.job.flutter }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: ${{ env.RUST_VERSION }}
targets: ${{ matrix.job.target }}
components: "rustfmt"
- uses: Swatinem/rust-cache@v2
with:
prefix-key: ${{ matrix.job.os }}
- name: Install flutter rust bridge deps
shell: bash
run: |
sed -i '' 's/3.1.0/2.17.0/g' flutter/pubspec.yaml;
cargo install flutter_rust_bridge_codegen --version ${{ matrix.job.bridge }} --features "uuid" --locked
# below works for mac to make buildable on 3.13.9
# pushd flutter/lib; find . -name "*.dart" | xargs -I{} sed -i '' 's/textScaler: TextScaler.linear(\(.*\)),/textScaleFactor: \1,/g' {}; popd;
pushd flutter && flutter pub get && popd
~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart --c-output ./flutter/macos/Runner/bridge_generated.h
- name: Setup vcpkg with Github Actions binary cache
uses: lukka/run-vcpkg@v11
with:
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT_ID }}
- name: Install vcpkg dependencies
run: |
$VCPKG_ROOT/vcpkg install --x-install-root="$VCPKG_ROOT/installed"
- name: Restore from cache and install vcpkg
uses: lukka/run-vcpkg@v7
if: false
with:
setupOnly: true
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT_ID }}
- name: Install vcpkg dependencies
if: false
run: |
$VCPKG_ROOT/vcpkg install libvpx libyuv opus aom
- name: Show version information (Rust, cargo, Clang)
shell: bash
run: |
clang --version || true
rustup -V
rustup toolchain list
rustup default
cargo -V
rustc -V
- name: Build rustdesk
run: |
./build.py --flutter ${{ matrix.job.extra-build-args }}
- name: create unsigned dmg
run: |
CREATE_DMG="$(command -v create-dmg)"
CREATE_DMG="$(readlink -f "$CREATE_DMG")"
sed -i -e 's/MAXIMUM_UNMOUNTING_ATTEMPTS=3/MAXIMUM_UNMOUNTING_ATTEMPTS=7/' "$CREATE_DMG"
create-dmg --icon "RustDesk.app" 200 190 --hide-extension "RustDesk.app" --window-size 800 400 --app-drop-link 600 185 rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.dmg ./flutter/build/macos/Build/Products/Release/RustDesk.app
- name: Codesign app and create signed dmg
if: env.MACOS_P12_BASE64 != null
run: |
# Patch create-dmg to give more attempts to unmount image
CREATE_DMG="$(command -v create-dmg)"
CREATE_DMG="$(readlink -f "$CREATE_DMG")"
sed -i -e 's/MAXIMUM_UNMOUNTING_ATTEMPTS=3/MAXIMUM_UNMOUNTING_ATTEMPTS=7/' "$CREATE_DMG"
# Unlock keychain
security default-keychain -s rustdesk.keychain
security unlock-keychain -p ${{ secrets.MACOS_P12_PASSWORD }} rustdesk.keychain
# start sign the rustdesk.app and dmg
rm -rf *.dmg || true
codesign --force --options runtime -s ${{ secrets.MACOS_CODESIGN_IDENTITY }} --deep --strict ./flutter/build/macos/Build/Products/Release/RustDesk.app -vvv
create-dmg --icon "RustDesk.app" 200 190 --hide-extension "RustDesk.app" --window-size 800 400 --app-drop-link 600 185 rustdesk-${{ env.VERSION }}.dmg ./flutter/build/macos/Build/Products/Release/RustDesk.app
codesign --force --options runtime -s ${{ secrets.MACOS_CODESIGN_IDENTITY }} --deep --strict rustdesk-${{ env.VERSION }}.dmg -vvv
# notarize the rustdesk-${{ env.VERSION }}.dmg
rcodesign notary-submit --api-key-path ${{ github.workspace }}/rustdesk.json --staple rustdesk-${{ env.VERSION }}.dmg
- name: Rename rustdesk
run: |
for name in rustdesk*??.dmg; do
mv "$name" "${name%%.dmg}-${{ matrix.job.arch }}-flutter${{ matrix.job.flutter }}-flutter${{ matrix.job.date }}.dmg"
done
- name: Publish DMG package
uses: softprops/action-gh-release@v1
with:
prerelease: true
tag_name: ${{ env.TAG_NAME }}
files: |
rustdesk*-${{ matrix.job.arch }}*.dmg
build-rustdesk-android:
if: false
name: build rustdesk android apk ${{ matrix.job.target }}
runs-on: ${{ matrix.job.os }}
strategy:
fail-fast: false
matrix:
job:
- {
arch: aarch64,
target: aarch64-linux-android,
os: ubuntu-22.04,
openssl-arch: android-arm64,
ref: master, # latest
}
steps:
- name: Checkout source code
uses: actions/checkout@v3
with:
ref: ${{ matrix.job.ref }}
submodules: recursive
- name: Install dependencies
run: |
sudo apt-get update
sudo apt-get install -y \
clang \
cmake \
curl \
gcc-multilib \
git \
g++ \
g++-multilib \
libayatana-appindicator3-dev\
libasound2-dev \
libc6-dev \
libclang-dev \
libunwind-dev \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
libgtk-3-dev \
libpam0g-dev \
libpulse-dev \
libva-dev \
libvdpau-dev \
libxcb-randr0-dev \
libxcb-shape0-dev \
libxcb-xfixes0-dev \
libxdo-dev \
libxfixes-dev \
llvm-dev \
nasm \
yasm \
ninja-build \
openjdk-11-jdk-headless \
pkg-config \
tree \
wget
- name: Install flutter
uses: subosito/flutter-action@v2
with:
channel: "stable"
flutter-version: ${{ env.FLUTTER_VERSION }}
- name: Install Rust toolchain
uses: dtolnay/rust-toolchain@v1
with:
toolchain: ${{ env.RUST_VERSION }}
components: "rustfmt"
- name: Install flutter rust bridge deps
run: |
git config --global core.longpaths true
cargo install flutter_rust_bridge_codegen --version ${{ env.FLUTTER_RUST_BRIDGE_VERSION }} --features "uuid" --locked
sed -i 's/uni_links_desktop/#uni_links_desktop/g' flutter/pubspec.yaml
pushd flutter/lib; find . | grep dart | xargs sed -i 's/textScaler: TextScaler.linear(\(.*\)),/textScaleFactor: \1,/g'; popd;
pushd flutter ; flutter pub get ; popd
~/.cargo/bin/flutter_rust_bridge_codegen --rust-input ./src/flutter_ffi.rs --dart-output ./flutter/lib/generated_bridge.dart
- uses: nttld/setup-ndk@v1
id: setup-ndk
with:
ndk-version: ${{ env.NDK_VERSION }}
add-to-path: true
- name: Setup vcpkg with Github Actions binary cache
uses: lukka/run-vcpkg@v11
with:
vcpkgDirectory: /opt/artifacts/vcpkg
vcpkgGitCommitId: ${{ env.VCPKG_COMMIT_ID }}
- name: Install vcpkg dependencies
run: |
case ${{ matrix.job.target }} in
aarch64-linux-android)
./flutter/build_android_deps.sh arm64-v8a
;;
armv7-linux-androideabi)
./flutter/build_android_deps.sh armeabi-v7a
;;
esac
shell: bash
- name: Clone deps
shell: bash
run: |
pushd /opt
git clone https://github.com/rustdesk-org/rustdesk_thirdparty_lib.git --depth=1
ls -ls /opt/artifacts/vcpkg/installed/arm64-android/lib/
# cp -rf /opt/rustdesk_thirdparty_lib/vcpkg/* /opt/artifacts/vcpkg/
ls -ls /opt/artifacts/vcpkg/installed/arm64-android/lib/
- name: Build rustdesk lib
env:
ANDROID_NDK_HOME: ${{ steps.setup-ndk.outputs.ndk-path }}
ANDROID_NDK_ROOT: ${{ steps.setup-ndk.outputs.ndk-path }}
run: |
rustup target add ${{ matrix.job.target }}
cargo install cargo-ndk --version ${{ env.CARGO_NDK_VERSION }} --locked
case ${{ matrix.job.target }} in
aarch64-linux-android)
./flutter/ndk_arm64.sh
mkdir -p ./flutter/android/app/src/main/jniLibs/arm64-v8a
cp ./target/${{ matrix.job.target }}/release/liblibrustdesk.so ./flutter/android/app/src/main/jniLibs/arm64-v8a/librustdesk.so
;;
armv7-linux-androideabi)
./flutter/ndk_arm.sh
mkdir -p ./flutter/android/app/src/main/jniLibs/armeabi-v7a
cp ./target/${{ matrix.job.target }}/release/liblibrustdesk.so ./flutter/android/app/src/main/jniLibs/armeabi-v7a/librustdesk.so
;;
esac
- name: Build rustdesk
shell: bash
env:
JAVA_HOME: /usr/lib/jvm/java-11-openjdk-amd64
run: |
export PATH=/usr/lib/jvm/java-11-openjdk-amd64/bin:$PATH
# temporary use debug sign config
sed -i "s/signingConfigs.release/signingConfigs.debug/g" ./flutter/android/app/build.gradle
case ${{ matrix.job.target }} in
aarch64-linux-android)
mkdir -p ./flutter/android/app/src/main/jniLibs/arm64-v8a
cp ${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/aarch64-linux-android/libc++_shared.so ./flutter/android/app/src/main/jniLibs/arm64-v8a/
cp ./target/${{ matrix.job.target }}/release/liblibrustdesk.so ./flutter/android/app/src/main/jniLibs/arm64-v8a/librustdesk.so
# build flutter
pushd flutter
flutter build apk --release --target-platform android-arm64 --split-per-abi
mv build/app/outputs/flutter-apk/app-arm64-v8a-release.apk ../rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.apk
;;
armv7-linux-androideabi)
mkdir -p ./flutter/android/app/src/main/jniLibs/armeabi-v7a
cp ${ANDROID_NDK_HOME}/toolchains/llvm/prebuilt/linux-x86_64/sysroot/usr/lib/arm-linux-androideabi/libc++_shared.so ./flutter/android/app/src/main/jniLibs/armeabi-v7a/
cp ./target/${{ matrix.job.target }}/release/liblibrustdesk.so ./flutter/android/app/src/main/jniLibs/armeabi-v7a/librustdesk.so
# build flutter
pushd flutter
flutter build apk --release --target-platform android-arm --split-per-abi
mv build/app/outputs/flutter-apk/app-armeabi-v7a-release.apk ../rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.apk
;;
esac
popd
mkdir -p signed-apk; pushd signed-apk
mv ../rustdesk-${{ env.VERSION }}-${{ matrix.job.arch }}.apk ./rustdesk-test-${{ matrix.job.ref }}-${{ matrix.job.ndk }}.apk
- uses: r0adkll/sign-android-release@v1
name: Sign app APK
if: env.ANDROID_SIGNING_KEY != null
id: sign-rustdesk
with:
releaseDirectory: ./signed-apk
signingKeyBase64: ${{ secrets.ANDROID_SIGNING_KEY }}
alias: ${{ secrets.ANDROID_ALIAS }}
keyStorePassword: ${{ secrets.ANDROID_KEY_STORE_PASSWORD }}
keyPassword: ${{ secrets.ANDROID_KEY_PASSWORD }}
env:
# override default build-tools version (29.0.3) -- optional
BUILD_TOOLS_VERSION: "30.0.2"
- name: Publish signed apk package
uses: softprops/action-gh-release@v1
with:
prerelease: true
tag_name: ${{ env.TAG_NAME }}
files: |
${{steps.sign-rustdesk.outputs.signedReleaseFile}}

View File

@@ -0,0 +1,60 @@
name: build RustDeskTempTopMostWindow
on:
workflow_call:
inputs:
upload-artifact:
type: boolean
default: true
target:
description: 'Target'
required: true
type: string
default: 'windows-2022'
configuration:
description: 'Configuration'
required: true
type: string
default: 'Release'
platform:
description: 'Platform'
required: true
type: string
default: 'x64'
target_version:
description: 'TargetVersion'
required: true
type: string
default: 'Windows10'
env:
project_path: WindowInjection/WindowInjection.vcxproj
jobs:
build-RustDeskTempTopMostWindow:
runs-on: ${{ inputs.target }}
strategy:
fail-fast: false
env:
build_output_dir: RustDeskTempTopMostWindow/WindowInjection/${{ inputs.platform }}/${{ inputs.configuration }}
steps:
- name: Add MSBuild to PATH
uses: microsoft/setup-msbuild@v2
- name: Download the source code
run: |
git clone https://github.com/rustdesk-org/RustDeskTempTopMostWindow RustDeskTempTopMostWindow
# Build. commit 53b548a5398624f7149a382000397993542ad796 is tag v0.3
- name: Build the project
run: |
cd RustDeskTempTopMostWindow && git checkout 53b548a5398624f7149a382000397993542ad796
msbuild ${{ env.project_path }} -p:Configuration=${{ inputs.configuration }} -p:Platform=${{ inputs.platform }} /p:TargetVersion=${{ inputs.target_version }}
- name: Archive build artifacts
uses: actions/upload-artifact@master
if: ${{ inputs.upload-artifact }}
with:
name: topmostwindow-artifacts
path: |
./${{ env.build_output_dir }}/WindowInjection.dll

View File

@@ -1,88 +0,0 @@
name: Build vcpkg dependencies for linux clients
on:
workflow_call:
jobs:
build-vcpkg-deps-linux:
runs-on: ${{ matrix.job.os }}
strategy:
fail-fast: true
matrix:
job:
- { arch: armv7, os: ubuntu-20.04 }
- { arch: x86_64, os: ubuntu-20.04 }
- { arch: aarch64, os: ubuntu-20.04 }
steps:
- name: Create vcpkg artifacts folder
run: mkdir -p /opt/artifacts
- name: Cache Vcpkg
id: cache-vcpkg
uses: actions/cache@v3
with:
path: /opt/artifacts
key: vcpkg-${{ matrix.job.arch }}
- uses: Kingtous/run-on-arch-action@amd64-support
name: Run vcpkg install on ${{ matrix.job.arch }}
id: vcpkg
with:
arch: ${{ matrix.job.arch }}
distro: ubuntu18.04
githubToken: ${{ github.token }}
setup: |
ls -l "/opt/artifacts"
dockerRunArgs: |
--volume "/opt/artifacts:/artifacts"
shell: /bin/bash
install: |
apt update -y
case "${{ matrix.job.arch }}" in
x86_64)
# CMake 3.15+
apt install -y gpg wget ca-certificates
echo 'deb [signed-by=/usr/share/keyrings/kitware-archive-keyring.gpg] https://apt.kitware.com/ubuntu/ bionic main' | tee /etc/apt/sources.list.d/kitware.list >/dev/null
wget -O - https://apt.kitware.com/keys/kitware-archive-latest.asc 2>/dev/null | gpg --dearmor - | tee /usr/share/keyrings/kitware-archive-keyring.gpg >/dev/null
apt update -y
apt install -y curl zip unzip tar git cmake g++ gcc build-essential pkg-config wget nasm yasm ninja-build libjpeg8-dev
cmake --version
gcc -v
;;
aarch64|armv7)
apt install -y curl zip unzip git
esac
run: |
# disable git safe.directory
git config --global --add safe.directory "*"
case "${{ matrix.job.arch }}" in
x86_64)
export VCPKG_FORCE_SYSTEM_BINARIES=1
pushd /artifacts
git clone https://github.com/microsoft/vcpkg.git || true
pushd vcpkg
git reset --hard ${{ env.VCPKG_COMMIT_ID }}
./bootstrap-vcpkg.sh
./vcpkg install libvpx libyuv opus aom
;;
aarch64)
pushd /artifacts
rm -rf rustdesk_thirdparty_lib
git clone https://github.com/Kingtous/rustdesk_thirdparty_lib.git --depth=1
mkdir -p /artifacts/vcpkg/installed
mv ./rustdesk_thirdparty_lib/vcpkg/installed/arm64-linux /artifacts/vcpkg/installed/arm64-linux
;;
armv7)
pushd /artifacts
rm -rf rustdesk_thirdparty_lib
git clone https://github.com/Kingtous/rustdesk_thirdparty_lib.git --depth=1
mkdir -p /artifacts/vcpkg/installed
mv ./rustdesk_thirdparty_lib/vcpkg/installed/arm-linux /artifacts/vcpkg/installed/arm-linux
;;
esac
- name: Upload artifacts
uses: actions/upload-artifact@master
with:
name: vcpkg-artifact-${{ matrix.job.arch }}
path: |
/opt/artifacts/vcpkg/installed

View File

@@ -2,12 +2,14 @@ name: Publish to WinGet
on: on:
release: release:
types: [released] types: [released]
workflow_dispatch:
jobs: jobs:
publish: publish:
runs-on: windows-latest # action can only be run on windows runs-on: ubuntu-latest
steps: steps:
- uses: vedantmgoyal2009/winget-releaser@v1 - uses: vedantmgoyal9/winget-releaser@main
with: with:
identifier: RustDesk.RustDesk identifier: RustDesk.RustDesk
version: ${{ github.event.release.tag_name }} version: "1.4.0"
release-tag: "1.4.0"
token: ${{ secrets.WINGET_TOKEN }} token: ${{ secrets.WINGET_TOKEN }}

7
.gitignore vendored
View File

@@ -49,4 +49,9 @@ lib/generated_bridge.dart
.ssh .ssh
.devcontainer/.* .devcontainer/.*
# build cache in examples # build cache in examples
examples/**/target/ examples/**/target/
# ===
vcpkg_installed
flutter/lib/generated_plugin_registrant.dart
libsciter.dylib
flutter/web/

3
.gitmodules vendored Normal file
View File

@@ -0,0 +1,3 @@
[submodule "libs/hbb_common"]
path = libs/hbb_common
url = https://github.com/rustdesk/hbb_common

91
CLAUDE.md Normal file
View File

@@ -0,0 +1,91 @@
# CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
## Development Commands
### Build Commands
- `cargo run` - Build and run the desktop application (requires libsciter library)
- `python3 build.py --flutter` - Build Flutter version (desktop)
- `python3 build.py --flutter --release` - Build Flutter version in release mode
- `python3 build.py --hwcodec` - Build with hardware codec support
- `python3 build.py --vram` - Build with VRAM feature (Windows only)
- `cargo build --release` - Build Rust binary in release mode
- `cargo build --features hwcodec` - Build with specific features
### Flutter Mobile Commands
- `cd flutter && flutter build android` - Build Android APK
- `cd flutter && flutter build ios` - Build iOS app
- `cd flutter && flutter run` - Run Flutter app in development mode
- `cd flutter && flutter test` - Run Flutter tests
### Testing
- `cargo test` - Run Rust tests
- `cd flutter && flutter test` - Run Flutter tests
### Platform-Specific Build Scripts
- `flutter/build_android.sh` - Android build script
- `flutter/build_ios.sh` - iOS build script
- `flutter/build_fdroid.sh` - F-Droid build script
## Project Architecture
### Directory Structure
- **`src/`** - Main Rust application code
- `src/ui/` - Legacy Sciter UI (deprecated, use Flutter instead)
- `src/server/` - Audio/clipboard/input/video services and network connections
- `src/client.rs` - Peer connection handling
- `src/platform/` - Platform-specific code
- **`flutter/`** - Flutter UI code for desktop and mobile
- **`libs/`** - Core libraries
- `libs/hbb_common/` - Video codec, config, network wrapper, protobuf, file transfer utilities
- `libs/scrap/` - Screen capture functionality
- `libs/enigo/` - Platform-specific keyboard/mouse control
- `libs/clipboard/` - Cross-platform clipboard implementation
### Key Components
- **Remote Desktop Protocol**: Custom protocol implemented in `src/rendezvous_mediator.rs` for communicating with rustdesk-server
- **Screen Capture**: Platform-specific screen capture in `libs/scrap/`
- **Input Handling**: Cross-platform input simulation in `libs/enigo/`
- **Audio/Video Services**: Real-time audio/video streaming in `src/server/`
- **File Transfer**: Secure file transfer implementation in `libs/hbb_common/`
### UI Architecture
- **Legacy UI**: Sciter-based (deprecated) - files in `src/ui/`
- **Modern UI**: Flutter-based - files in `flutter/`
- Desktop: `flutter/lib/desktop/`
- Mobile: `flutter/lib/mobile/`
- Shared: `flutter/lib/common/` and `flutter/lib/models/`
## Important Build Notes
### Dependencies
- Requires vcpkg for C++ dependencies: `libvpx`, `libyuv`, `opus`, `aom`
- Set `VCPKG_ROOT` environment variable
- Download appropriate Sciter library for legacy UI support
### Ignore Patterns
When working with files, ignore these directories:
- `target/` - Rust build artifacts
- `flutter/build/` - Flutter build output
- `flutter/.dart_tool/` - Flutter tooling files
### Cross-Platform Considerations
- Windows builds require additional DLLs and virtual display drivers
- macOS builds need proper signing and notarization for distribution
- Linux builds support multiple package formats (deb, rpm, AppImage)
- Mobile builds require platform-specific toolchains (Android SDK, Xcode)
### Feature Flags
- `hwcodec` - Hardware video encoding/decoding
- `vram` - VRAM optimization (Windows only)
- `flutter` - Enable Flutter UI
- `unix-file-copy-paste` - Unix file clipboard support
- `screencapturekit` - macOS ScreenCaptureKit (macOS only)
### Config
All configurations or options are under `libs/hbb_common/src/config.rs` file, 4 types:
- Settings
- Local
- Display
- Built-in

5861
Cargo.lock generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,11 +1,12 @@
[package] [package]
name = "rustdesk" name = "rustdesk"
version = "1.2.2" version = "1.4.0"
authors = ["rustdesk <info@rustdesk.com>"] authors = ["rustdesk <info@rustdesk.com>"]
edition = "2021" edition = "2021"
build= "build.rs" build= "build.rs"
description = "A remote control software." description = "RustDesk Remote Desktop"
default-run = "rustdesk" default-run = "rustdesk"
rust-version = "1.75"
[lib] [lib]
name = "librustdesk" name = "librustdesk"
@@ -15,28 +16,36 @@ crate-type = ["cdylib", "staticlib", "rlib"]
name = "naming" name = "naming"
path = "src/naming.rs" path = "src/naming.rs"
[[bin]]
name = "service"
path = "src/service.rs"
[features] [features]
inline = [] inline = []
cli = [] cli = []
flutter_texture_render = []
appimage = []
flatpak = []
use_samplerate = ["samplerate"] use_samplerate = ["samplerate"]
use_rubato = ["rubato"] use_rubato = ["rubato"]
use_dasp = ["dasp"] use_dasp = ["dasp"]
flutter = ["flutter_rust_bridge"] flutter = ["flutter_rust_bridge"]
default = ["use_dasp"] default = ["use_dasp"]
hwcodec = ["scrap/hwcodec"] hwcodec = ["scrap/hwcodec"]
vram = ["scrap/vram"]
mediacodec = ["scrap/mediacodec"] mediacodec = ["scrap/mediacodec"]
linux_headless = ["pam" ]
virtual_display_driver = ["virtual_display"]
plugin_framework = [] plugin_framework = []
linux-pkg-config = ["magnum-opus/linux-pkg-config", "scrap/linux-pkg-config"] linux-pkg-config = ["magnum-opus/linux-pkg-config", "scrap/linux-pkg-config"]
unix-file-copy-paste = [
"dep:x11-clipboard",
"dep:x11rb",
"dep:percent-encoding",
"dep:once_cell",
"clipboard/unix-file-copy-paste",
]
screencapturekit = ["cpal/screencapturekit"]
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies] [dependencies]
whoami = "1.4" async-trait = "0.1"
scrap = { path = "libs/scrap", features = ["wayland"] } scrap = { path = "libs/scrap", features = ["wayland"] }
hbb_common = { path = "libs/hbb_common" } hbb_common = { path = "libs/hbb_common" }
serde_derive = "1.0" serde_derive = "1.0"
@@ -47,56 +56,84 @@ cfg-if = "1.0"
lazy_static = "1.4" lazy_static = "1.4"
sha2 = "0.10" sha2 = "0.10"
repng = "0.2" repng = "0.2"
parity-tokio-ipc = { git = "https://github.com/open-trade/parity-tokio-ipc" } parity-tokio-ipc = { git = "https://github.com/rustdesk-org/parity-tokio-ipc" }
runas = "=1.0" # https://github.com/mitsuhiko/rust-runas/issues/13 magnum-opus = { git = "https://github.com/rustdesk-org/magnum-opus" }
magnum-opus = { git = "https://github.com/rustdesk/magnum-opus" }
dasp = { version = "0.11", features = ["signal", "interpolate-linear", "interpolate"], optional = true } dasp = { version = "0.11", features = ["signal", "interpolate-linear", "interpolate"], optional = true }
rubato = { version = "0.12", optional = true } rubato = { version = "0.12", optional = true }
samplerate = { version = "0.2", optional = true } samplerate = { version = "0.2", optional = true }
async-trait = "0.1"
uuid = { version = "1.3", features = ["v4"] } uuid = { version = "1.3", features = ["v4"] }
clap = "4.2" clap = "4.2"
rpassword = "7.2" rpassword = "7.2"
base64 = "0.21"
num_cpus = "1.15" num_cpus = "1.15"
bytes = { version = "1.4", features = ["serde"] } bytes = { version = "1.4", features = ["serde"] }
default-net = "0.14" default-net = "0.14"
wol-rs = "1.0" wol-rs = "1.0"
flutter_rust_bridge = { version = "1.75", features = ["uuid"], optional = true} flutter_rust_bridge = { version = "=1.80", features = ["uuid"], optional = true}
errno = "0.3" errno = "0.3"
rdev = { git = "https://github.com/fufesou/rdev" } rdev = { git = "https://github.com/rustdesk-org/rdev" }
url = { version = "2.3", features = ["serde"] } url = { version = "2.3", features = ["serde"] }
crossbeam-queue = "0.3" crossbeam-queue = "0.3"
hex = "0.4" hex = "0.4"
reqwest = { git = "https://github.com/rustdesk-org/reqwest", features = ["blocking", "json", "rustls-tls"], default-features=false }
chrono = "0.4" chrono = "0.4"
cidr-utils = "0.5" cidr-utils = "0.5"
libloading = "0.8" libloading = "0.8"
fon = "0.6" fon = "0.6"
zip = "0.6" zip = "0.6"
shutdown_hooks = "0.1"
[target.'cfg(not(any(target_os = "android", target_os = "linux")))'.dependencies] totp-rs = { version = "5.4", default-features = false, features = ["gen_secret", "otpauth"] }
cpal = "0.15" stunclient = "0.4"
kcp-sys= { git = "https://github.com/rustdesk-org/kcp-sys"}
[target.'cfg(not(target_os = "linux"))'.dependencies]
# https://github.com/rustdesk/rustdesk/discussions/10197, not use cpal on linux
cpal = { git = "https://github.com/rustdesk-org/cpal", branch = "osx-screencapturekit" }
ringbuf = "0.3" ringbuf = "0.3"
[target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies] [target.'cfg(not(any(target_os = "android", target_os = "ios")))'.dependencies]
mac_address = "1.1" mac_address = "1.1"
sciter-rs = { git = "https://github.com/open-trade/rust-sciter", branch = "dyn" } sciter-rs = { git = "https://github.com/rustdesk-org/rust-sciter", branch = "dyn" }
sys-locale = "0.3" sys-locale = "0.3"
enigo = { path = "libs/enigo", features = [ "with_serde" ] } enigo = { path = "libs/enigo", features = [ "with_serde" ] }
clipboard = { path = "libs/clipboard" } clipboard = { path = "libs/clipboard" }
ctrlc = "3.2" ctrlc = "3.2"
arboard = "3.2" # arboard = { version = "3.4", features = ["wayland-data-control"] }
arboard = { git = "https://github.com/rustdesk-org/arboard", features = ["wayland-data-control"] }
clipboard-master = { git = "https://github.com/rustdesk-org/clipboard-master" }
portable-pty = "0.8.1" # higher version not work on rustc 1.75
system_shutdown = "4.0" system_shutdown = "4.0"
qrcode-generator = "4.1"
[target.'cfg(target_os = "windows")'.dependencies] [target.'cfg(target_os = "windows")'.dependencies]
winapi = { version = "0.3", features = ["winuser", "wincrypt", "shellscalingapi"] } winapi = { version = "0.3", features = [
"winuser",
"wincrypt",
"shellscalingapi",
"pdh",
"synchapi",
"memoryapi",
"shellapi",
"devguid",
"setupapi",
"cguid",
"cfgmgr32",
"ioapiset",
"winspool",
] }
windows = { version = "0.61", features = [
"Win32",
"Win32_System",
"Win32_System_Diagnostics",
"Win32_System_Threading",
"Win32_System_Diagnostics_ToolHelp",
] }
winreg = "0.11" winreg = "0.11"
windows-service = "0.6" windows-service = "0.6"
virtual_display = { path = "libs/virtual_display", optional = true } virtual_display = { path = "libs/virtual_display" }
impersonate_system = { git = "https://github.com/21pages/impersonate-system" } remote_printer = { path = "libs/remote_printer" }
impersonate_system = { git = "https://github.com/rustdesk-org/impersonate-system" }
shared_memory = "0.12" shared_memory = "0.12"
shutdown_hooks = "0.1" tauri-winrt-notification = "0.1"
runas = "1.2"
[target.'cfg(target_os = "macos")'.dependencies] [target.'cfg(target_os = "macos")'.dependencies]
objc = "0.2" objc = "0.2"
@@ -105,55 +142,72 @@ dispatch = "0.2"
core-foundation = "0.9" core-foundation = "0.9"
core-graphics = "0.22" core-graphics = "0.22"
include_dir = "0.7" include_dir = "0.7"
dark-light = "1.0"
fruitbasket = "0.10" fruitbasket = "0.10"
objc_id = "0.1" objc_id = "0.1"
[target.'cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))'.dependencies] [target.'cfg(any(target_os = "macos", target_os = "linux", target_os = "windows"))'.dependencies]
tray-icon = { git = "https://github.com/rustdesk-org/tray-icon" } tray-icon = { git = "https://github.com/tauri-apps/tray-icon" }
tao = { git = "https://github.com/rustdesk-org/tao", branch = "dev" } tao = { git = "https://github.com/rustdesk-org/tao", branch = "dev" }
image = "0.24" image = "0.24"
[target.'cfg(any(target_os = "macos", target_os = "linux"))'.dependencies] [target.'cfg(any(target_os = "macos", target_os = "linux"))'.dependencies]
keepawake = { git = "https://github.com/rustdesk-org/keepawake-rs" } keepawake = { git = "https://github.com/rustdesk-org/keepawake-rs" }
[target.'cfg(any(target_os = "windows", target_os = "linux"))'.dependencies]
wallpaper = { git = "https://github.com/rustdesk-org/wallpaper.rs" }
[target.'cfg(any(target_os = "macos", target_os = "windows"))'.dependencies]
# https://github.com/rustdesk/rustdesk-server-pro/issues/189, using native-tls for better tls support
reqwest = { git = "https://github.com/rustdesk-org/reqwest", features = ["blocking", "socks", "json", "native-tls", "gzip"], default-features=false }
[target.'cfg(not(any(target_os = "macos", target_os = "windows")))'.dependencies]
reqwest = { git = "https://github.com/rustdesk-org/reqwest", features = ["blocking", "socks", "json", "rustls-tls", "rustls-tls-native-roots", "gzip"], default-features=false }
[target.'cfg(target_os = "linux")'.dependencies] [target.'cfg(target_os = "linux")'.dependencies]
psimple = { package = "libpulse-simple-binding", version = "2.27" } psimple = { package = "libpulse-simple-binding", version = "2.27" }
pulse = { package = "libpulse-binding", version = "2.27" } pulse = { package = "libpulse-binding", version = "2.27" }
rust-pulsectl = { git = "https://github.com/open-trade/pulsectl" } rust-pulsectl = { git = "https://github.com/rustdesk-org/pulsectl" }
async-process = "1.7" async-process = "1.7"
mouce = { git="https://github.com/fufesou/mouce.git" } evdev = { git="https://github.com/rustdesk-org/evdev" }
evdev = { git="https://github.com/fufesou/evdev" }
dbus = "0.9" dbus = "0.9"
dbus-crossroads = "0.5" dbus-crossroads = "0.5"
pam = { git="https://github.com/fufesou/pam", optional = true } pam = { git="https://github.com/rustdesk-org/pam" }
users = { version = "0.11" } users = { version = "0.11" }
x11-clipboard = {git="https://github.com/clslaid/x11-clipboard", branch = "feat/store-batch", optional = true}
x11rb = {version = "0.12", features = ["all-extensions"], optional = true}
percent-encoding = {version = "2.3", optional = true}
once_cell = {version = "1.18", optional = true}
nix = { version = "0.29", features = ["term", "process"]}
gtk = "0.18"
termios = "0.3"
[target.'cfg(target_os = "android")'.dependencies] [target.'cfg(target_os = "android")'.dependencies]
android_logger = "0.13" android_logger = "0.13"
jni = "0.21" jni = "0.21"
android-wakelock = { git = "https://github.com/rustdesk-org/android-wakelock" }
[workspace] [workspace]
members = ["libs/scrap", "libs/hbb_common", "libs/enigo", "libs/clipboard", "libs/virtual_display", "libs/virtual_display/dylib", "libs/portable"] members = ["libs/scrap", "libs/hbb_common", "libs/enigo", "libs/clipboard", "libs/virtual_display", "libs/virtual_display/dylib", "libs/portable", "libs/remote_printer"]
exclude = ["vdi/host", "examples/custom_plugin"] exclude = ["vdi/host", "examples/custom_plugin"]
[package.metadata.winres] [package.metadata.winres]
LegalCopyright = "Copyright © 2023 Purslane, Inc." LegalCopyright = "Copyright © 2025 Purslane Ltd. All rights reserved."
# this FileDescription overrides package.description ProductName = "RustDesk"
FileDescription = "RustDesk" FileDescription = "RustDesk Remote Desktop"
OriginalFilename = "rustdesk.exe"
[target.'cfg(target_os="windows")'.build-dependencies] [target.'cfg(target_os="windows")'.build-dependencies]
winres = "0.1" winres = "0.1"
winapi = { version = "0.3", features = [ "winnt" ] } winapi = { version = "0.3", features = [ "winnt", "pdh", "synchapi" ] }
[build-dependencies] [build-dependencies]
cc = "1.0" cc = "1.0"
hbb_common = { path = "libs/hbb_common" } hbb_common = { path = "libs/hbb_common" }
flutter_rust_bridge_codegen = "1.75"
os-version = "0.2" os-version = "0.2"
[dev-dependencies] [dev-dependencies]
hound = "3.5" hound = "3.5"
docopt = "1.1"
[package.metadata.bundle] [package.metadata.bundle]
name = "RustDesk" name = "RustDesk"

View File

@@ -1,21 +1,64 @@
FROM debian FROM debian:bullseye-slim
WORKDIR / WORKDIR /
RUN apt update -y && apt install -y g++ gcc git curl nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake unzip zip sudo libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev cmake ninja-build && rm -rf /var/lib/apt/lists/* ARG DEBIAN_FRONTEND=noninteractive
ENV VCPKG_FORCE_SYSTEM_BINARIES=1
RUN apt update -y && \
apt install --yes --no-install-recommends \
g++ \
gcc \
git \
curl \
nasm \
yasm \
libgtk-3-dev \
clang \
libxcb-randr0-dev \
libxdo-dev \
libxfixes-dev \
libxcb-shape0-dev \
libxcb-xfixes0-dev \
libasound2-dev \
libpam0g-dev \
libpulse-dev \
make \
wget \
libssl-dev \
unzip \
zip \
sudo \
libgstreamer1.0-dev \
libgstreamer-plugins-base1.0-dev \
ca-certificates \
ninja-build && \
rm -rf /var/lib/apt/lists/*
RUN git clone --branch 2023.04.15 --depth=1 https://github.com/microsoft/vcpkg RUN wget https://github.com/Kitware/CMake/releases/download/v3.30.6/cmake-3.30.6.tar.gz --no-check-certificate && \
RUN /vcpkg/bootstrap-vcpkg.sh -disableMetrics tar xzf cmake-3.30.6.tar.gz && \
RUN /vcpkg/vcpkg --disable-metrics install libvpx libyuv opus aom cd cmake-3.30.6 && \
./configure --prefix=/usr/local && \
make && \
make install
RUN git clone --branch 2023.04.15 --depth=1 https://github.com/microsoft/vcpkg && \
/vcpkg/bootstrap-vcpkg.sh -disableMetrics && \
/vcpkg/vcpkg --disable-metrics install libvpx libyuv opus aom
RUN groupadd -r user && \
useradd -r -g user user --home /home/user && \
mkdir -p /home/user/rustdesk && \
chown -R user: /home/user && \
echo "user ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/user
RUN groupadd -r user && useradd -r -g user user --home /home/user && mkdir -p /home/user && chown user /home/user && echo "user ALL=(ALL) NOPASSWD:ALL" | sudo tee /etc/sudoers.d/user
WORKDIR /home/user WORKDIR /home/user
RUN curl -LO https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so RUN curl -LO https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
USER user USER user
RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup.sh RUN curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs > rustup.sh && \
RUN chmod +x rustup.sh chmod +x rustup.sh && \
RUN ./rustup.sh -y ./rustup.sh -y
USER root USER root
ENV HOME=/home/user ENV HOME=/home/user
COPY ./entrypoint / COPY ./entrypoint.sh /
ENTRYPOINT ["/entrypoint"] ENTRYPOINT ["/entrypoint.sh"]

View File

@@ -1,19 +1,23 @@
<p align="center"> <p align="center">
<img src="res/logo-header.svg" alt="RustDesk - Your remote desktop"><br> <img src="res/logo-header.svg" alt="RustDesk - Your remote desktop"><br>
<a href="#free-public-servers">Servers</a>
<a href="#raw-steps-to-build">Build</a> <a href="#raw-steps-to-build">Build</a>
<a href="#how-to-build-with-docker">Docker</a> <a href="#how-to-build-with-docker">Docker</a>
<a href="#file-structure">Structure</a> <a href="#file-structure">Structure</a>
<a href="#snapshot">Snapshot</a><br> <a href="#snapshot">Snapshot</a><br>
[<a href="docs/README-UA.md">Українська</a>] | [<a href="docs/README-CS.md">česky</a>] | [<a href="docs/README-ZH.md">中文</a>] | [<a href="docs/README-HU.md">Magyar</a>] | [<a href="docs/README-ES.md">Español</a>] | [<a href="docs/README-FA.md">فارسی</a>] | [<a href="docs/README-FR.md">Français</a>] | [<a href="docs/README-DE.md">Deutsch</a>] | [<a href="docs/README-PL.md">Polski</a>] | [<a href="docs/README-ID.md">Indonesian</a>] | [<a href="docs/README-FI.md">Suomi</a>] | [<a href="docs/README-ML.md">മലയാളം</a>] | [<a href="docs/README-JP.md">日本語</a>] | [<a href="docs/README-NL.md">Nederlands</a>] | [<a href="docs/README-IT.md">Italiano</a>] | [<a href="docs/README-RU.md">Русский</a>] | [<a href="docs/README-PTBR.md">Português (Brasil)</a>] | [<a href="docs/README-EO.md">Esperanto</a>] | [<a href="docs/README-KR.md">한국어</a>] | [<a href="docs/README-AR.md">العربي</a>] | [<a href="docs/README-VN.md">Tiếng Việt</a>] | [<a href="docs/README-DA.md">Dansk</a>] | [<a href="docs/README-GR.md">Ελληνικά</a>]<br> [<a href="docs/README-UA.md">Українська</a>] | [<a href="docs/README-CS.md">česky</a>] | [<a href="docs/README-ZH.md">中文</a>] | [<a href="docs/README-HU.md">Magyar</a>] | [<a href="docs/README-ES.md">Español</a>] | [<a href="docs/README-FA.md">فارسی</a>] | [<a href="docs/README-FR.md">Français</a>] | [<a href="docs/README-DE.md">Deutsch</a>] | [<a href="docs/README-PL.md">Polski</a>] | [<a href="docs/README-ID.md">Indonesian</a>] | [<a href="docs/README-FI.md">Suomi</a>] | [<a href="docs/README-ML.md">മലയാളം</a>] | [<a href="docs/README-JP.md">日本語</a>] | [<a href="docs/README-NL.md">Nederlands</a>] | [<a href="docs/README-IT.md">Italiano</a>] | [<a href="docs/README-RU.md">Русский</a>] | [<a href="docs/README-PTBR.md">Português (Brasil)</a>] | [<a href="docs/README-EO.md">Esperanto</a>] | [<a href="docs/README-KR.md">한국어</a>] | [<a href="docs/README-AR.md">العربي</a>] | [<a href="docs/README-VN.md">Tiếng Việt</a>] | [<a href="docs/README-DA.md">Dansk</a>] | [<a href="docs/README-GR.md">Ελληνικά</a>] | [<a href="docs/README-TR.md">Türkçe</a>] | [<a href="docs/README-NO.md">Norsk</a>]<br>
<b>We need your help to translate this README, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> and <a href="https://github.com/rustdesk/doc.rustdesk.com">RustDesk Doc</a> to your native language</b> <b>We need your help to translate this README, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> and <a href="https://github.com/rustdesk/doc.rustdesk.com">RustDesk Doc</a> to your native language</b>
</p> </p>
Chat with us: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) > [!Caution]
> **Misuse Disclaimer:** <br>
> The developers of RustDesk do not condone or support any unethical or illegal use of this software. Misuse, such as unauthorized access, control or invasion of privacy, is strictly against our guidelines. The authors are not responsible for any misuse of the application.
Chat with us: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Yet another remote desktop software, written in Rust. Works out of the box, no configuration required. You have full control of your data, with no concerns about security. You can use our rendezvous/relay server, [set up your own](https://rustdesk.com/server), or [write your own rendezvous/relay server](https://github.com/rustdesk/rustdesk-server-demo). Yet another remote desktop solution, written in Rust. Works out of the box with no configuration required. You have full control of your data, with no concerns about security. You can use our rendezvous/relay server, [set up your own](https://rustdesk.com/server), or [write your own rendezvous/relay server](https://github.com/rustdesk/rustdesk-server-demo).
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png) ![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
@@ -25,29 +29,16 @@ RustDesk welcomes contribution from everyone. See [CONTRIBUTING.md](docs/CONTRIB
[**NIGHTLY BUILD**](https://github.com/rustdesk/rustdesk/releases/tag/nightly) [**NIGHTLY BUILD**](https://github.com/rustdesk/rustdesk/releases/tag/nightly)
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" [<img src="https://f-droid.org/badge/get-it-on.png"
alt="Get it on F-Droid" alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
[<img src="https://flathub.org/api/badge?svg&locale=en"
## Free Public Servers alt="Get it on Flathub"
height="80">](https://flathub.org/apps/com.rustdesk.RustDesk)
Below are the servers you are using for free, they may change over time. If you are not close to one of these, your network may be slow.
| Location | Vendor | Specification |
| --------- | ------------- | ------------------ |
| Germany | [Hetzner](https://www.hetzner.com) | 2 vCPU / 4 GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4 GB RAM |
## Dev Container
[![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Container&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/rustdesk/rustdesk)
If you already have VS Code and Docker installed, you can click the badge above to get started. Clicking will cause VS Code to automatically install the Dev Containers extension if needed, clone the source code into a container volume, and spin up a dev container for use.
Go through [DEVCONTAINER.md](docs/DEVCONTAINER.md) for more info.
## Dependencies ## Dependencies
Desktop versions use [Sciter](https://sciter.com/) or Flutter for GUI, this tutorial is for Sciter only. Desktop versions use Flutter or Sciter (deprecated) for GUI, this tutorial is for Sciter only, since it is easier and more friendly to start. Check out our [CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) for building Flutter version.
Please download Sciter dynamic library yourself. Please download Sciter dynamic library yourself.
@@ -55,7 +46,7 @@ Please download Sciter dynamic library yourself.
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) | [Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
[macOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib) [macOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib)
## Raw steps to build ## Raw Steps to build
- Prepare your Rust development env and C++ build env - Prepare your Rust development env and C++ build env
@@ -68,25 +59,26 @@ Please download Sciter dynamic library yourself.
## [Build](https://rustdesk.com/docs/en/dev/build/) ## [Build](https://rustdesk.com/docs/en/dev/build/)
## How to build on Linux ## How to Build on Linux
### Ubuntu 18 (Debian 10) ### Ubuntu 18 (Debian 10)
```sh ```sh
sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \ sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \ libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpam0g-dev
``` ```
### openSUSE Tumbleweed ### openSUSE Tumbleweed
```sh ```sh
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel pam-devel
``` ```
### Fedora 28 (CentOS 8) ### Fedora 28 (CentOS 8)
```sh ```sh
sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel gstreamer1-devel gstreamer1-plugins-base-devel pam-devel
``` ```
### Arch (Manjaro) ### Arch (Manjaro)
@@ -125,7 +117,7 @@ cd
```sh ```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk cd rustdesk
mkdir -p target/debug mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
@@ -133,34 +125,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Change Wayland to X11 (Xorg)
RustDesk does not support Wayland. Check [this](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) to configuring Xorg as the default GNOME session.
## Wayland support
Wayland does not seem to provide any API for sending keypresses to other windows. Therefore, the RustDesk uses an API from a lower level, namely the `/dev/uinput` device (Linux kernel level).
When Wayland is the controlled side, you have to start in the following way:
```bash
# Start uinput service
$ sudo rustdesk --service
$ rustdesk
```
**Notice**: Wayland screen recording uses different interfaces. RustDesk currently only supports org.freedesktop.portal.ScreenCast.
```bash
$ dbus-send --session --print-reply \
--dest=org.freedesktop.portal.Desktop \
/org/freedesktop/portal/desktop \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.portal.ScreenCast string:version
# Not support
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Support
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
variant uint32 4
```
## How to build with Docker ## How to build with Docker
Begin by cloning the repository and building the Docker container: Begin by cloning the repository and building the Docker container:
@@ -168,6 +132,7 @@ Begin by cloning the repository and building the Docker container:
```sh ```sh
git clone https://github.com/rustdesk/rustdesk git clone https://github.com/rustdesk/rustdesk
cd rustdesk cd rustdesk
git submodule update --init --recursive
docker build -t "rustdesk-builder" . docker build -t "rustdesk-builder" .
``` ```
@@ -189,27 +154,29 @@ Or, if you're running a release executable:
target/release/rustdesk target/release/rustdesk
``` ```
Please ensure that you are running these commands from the root of the RustDesk repository, otherwise the application might not be able to find the required resources. Also note that other cargo subcommands such as `install` or `run` are not currently supported via this method as they would install or run the program inside the container instead of the host. Please ensure that you run these commands from the root of the RustDesk repository, or the application may not find the required resources. Also note that other cargo subcommands such as `install` or `run` are not currently supported via this method as they would install or run the program inside the container instead of the host.
## File Structure ## File Structure
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: video codec, config, tcp/udp wrapper, protobuf, fs functions for file transfer, and some other utility functions - **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: video codec, config, tcp/udp wrapper, protobuf, fs functions for file transfer, and some other utility functions
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: screen capture - **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: screen capture
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: platform specific keyboard/mouse control - **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: platform specific keyboard/mouse control
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: GUI - **[libs/clipboard](https://github.com/rustdesk/rustdesk/tree/master/libs/clipboard)**: file copy and paste implementation for Windows, Linux, macOS.
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: obsolete Sciter UI (deprecated)
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: audio/clipboard/input/video services, and network connections - **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: audio/clipboard/input/video services, and network connections
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: start a peer connection - **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: start a peer connection
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: Communicate with [rustdesk-server](https://github.com/rustdesk/rustdesk-server), wait for remote direct (TCP hole punching) or relayed connection - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: Communicate with [rustdesk-server](https://github.com/rustdesk/rustdesk-server), wait for remote direct (TCP hole punching) or relayed connection
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: platform specific code - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: platform specific code
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: Flutter code for mobile - **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: Flutter code for desktop and mobile
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: JavaScript for Flutter web client - **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/v1/js)**: JavaScript for Flutter web client
## Snapshots ## Screenshots
![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png) ![Connection Manager](https://github.com/rustdesk/rustdesk/assets/28412477/db82d4e7-c4bc-4823-8e6f-6af7eadf7651)
![image](https://user-images.githubusercontent.com/71636191/113112619-f705a480-923b-11eb-911d-97e984ef52b6.png) ![Connected to a Windows PC](https://github.com/rustdesk/rustdesk/assets/28412477/9baa91e9-3362-4d06-aa1a-7518edcbd7ea)
![image](https://user-images.githubusercontent.com/71636191/113112857-3fbd5d80-923c-11eb-9836-768325faf906.png) ![File Transfer](https://github.com/rustdesk/rustdesk/assets/28412477/39511ad3-aa9a-4f8c-8947-1cce286a46ad)
![TCP Tunneling](https://github.com/rustdesk/rustdesk/assets/28412477/78e8708f-e87e-4570-8373-1360033ea6c5)
![image](https://user-images.githubusercontent.com/71636191/135385039-38fdbd72-379a-422d-b97f-33df71fb1cec.png)

View File

@@ -2,7 +2,7 @@
version: 1 version: 1
script: script:
- rm -rf ./AppDir || true - rm -rf ./AppDir || true
- bsdtar -zxvf ../rustdesk-1.2.2.deb - bsdtar -zxvf rustdesk.deb
- tar -xvf ./data.tar.xz - tar -xvf ./data.tar.xz
- mkdir ./AppDir - mkdir ./AppDir
- mv ./usr ./AppDir/usr - mv ./usr ./AppDir/usr
@@ -18,26 +18,26 @@ AppDir:
id: rustdesk id: rustdesk
name: rustdesk name: rustdesk
icon: rustdesk icon: rustdesk
version: 1.2.2 version: 1.4.0
exec: usr/lib/rustdesk/rustdesk exec: usr/share/rustdesk/rustdesk
exec_args: $@ exec_args: $@
apt: apt:
arch: arch:
- arm64 - arm64
allow_unauthenticated: true allow_unauthenticated: true
sources: sources:
- sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic main restricted universe multiverse - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ focal main restricted universe multiverse
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32'
- sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic-updates main restricted universe multiverse - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ focal-updates main restricted universe multiverse
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32'
- sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic-backports main restricted - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ focal-backports main restricted
universe multiverse universe multiverse
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32'
- sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ bionic-security main restricted - sourceline: deb [arch=arm64] http://ports.ubuntu.com/ubuntu-ports/ focal-security main restricted
universe multiverse universe multiverse
key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32' key_url: 'http://keyserver.ubuntu.com/pks/lookup?op=get&search=0x3b4fe6acc0b21f32'
include: include:
- libc6 - libc6:arm64
- libgtk-3-0 - libgtk-3-0
- libxcb-randr0 - libxcb-randr0
- libxdo3 - libxdo3
@@ -47,13 +47,19 @@ AppDir:
- libasound2 - libasound2
- libsystemd0 - libsystemd0
- curl - curl
- libva2
- libva-drm2 - libva-drm2
- libva-x11-2 - libva-x11-2
- libvdpau1
- libgstreamer-plugins-base1.0-0 - libgstreamer-plugins-base1.0-0
- gstreamer1.0-pipewire
- libwayland-client0
- libwayland-cursor0 - libwayland-cursor0
- libwayland-egl1 - libwayland-egl1
- libpulse0 - libpulse0
- packagekit-gtk3-module
- libcanberra-gtk3-module
- libpam0g
- libdrm2
exclude: exclude:
- humanity-icon-theme - humanity-icon-theme
- hicolor-icon-theme - hicolor-icon-theme
@@ -69,8 +75,11 @@ AppDir:
- usr/share/doc/*/TODO.* - usr/share/doc/*/TODO.*
runtime: runtime:
env: env:
GIO_MODULE_DIR: $APPDIR/usr/lib/x86_64-linux-gnu/gio/modules/ GIO_MODULE_DIR: /lib64/gio/modules:/usr/lib/aarch64-linux-gnu/gio/modules:$APPDIR/usr/lib/aarch64-linux-gnu/gio/modules
GDK_BACKEND: x11 GDK_BACKEND: x11
APPDIR_LIBRARY_PATH: /lib64:/usr/lib/aarch64-linux-gnu:$APPDIR/lib/aarch64-linux-gnu:$APPDIR/lib/aarch64-linux-gnu/security:$APPDIR/lib/systemd:$APPDIR/usr/lib/aarch64-linux-gnu:$APPDIR/usr/lib/aarch64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders:$APPDIR/usr/lib/aarch64-linux-gnu/gstreamer-1.0:$APPDIR/usr/lib/aarch64-linux-gnu/gtk-3.0/3.0.0/immodules:$APPDIR/usr/lib/aarch64-linux-gnu/gtk-3.0/3.0.0/printbackends:$APPDIR/usr/lib/aarch64-linux-gnu/krb5/plugins/preauth:$APPDIR/usr/lib/aarch64-linux-gnu/libcanberra-0.30:$APPDIR/usr/lib/aarch64-linux-gnu/pulseaudio:$APPDIR/usr/lib/aarch64-linux-gnu/sasl2:$APPDIR/usr/lib/aarch64-linux-gnu/vdpau:$APPDIR/usr/share/rustdesk/lib:$APPDIR/lib/aarch64
GST_PLUGIN_PATH: /lib64/gstreamer-1.0:/usr/lib/aarch64-linux-gnu/gstreamer-1.0:$APPDIR/usr/lib/aarch64-linux-gnu/gstreamer-1.0
GST_PLUGIN_SYSTEM_PATH: /lib64/gstreamer-1.0:/usr/lib/aarch64-linux-gnu/gstreamer-1.0:$APPDIR/usr/lib/aarch64-linux-gnu/gstreamer-1.0
test: test:
fedora-30: fedora-30:
image: appimagecrafters/tests-env:fedora-30 image: appimagecrafters/tests-env:fedora-30

View File

@@ -2,7 +2,7 @@
version: 1 version: 1
script: script:
- rm -rf ./AppDir || true - rm -rf ./AppDir || true
- bsdtar -zxvf ../rustdesk-1.2.2.deb - bsdtar -zxvf rustdesk.deb
- tar -xvf ./data.tar.xz - tar -xvf ./data.tar.xz
- mkdir ./AppDir - mkdir ./AppDir
- mv ./usr ./AppDir/usr - mv ./usr ./AppDir/usr
@@ -18,27 +18,28 @@ AppDir:
id: rustdesk id: rustdesk
name: rustdesk name: rustdesk
icon: rustdesk icon: rustdesk
version: 1.2.2 version: 1.4.0
exec: usr/lib/rustdesk/rustdesk exec: usr/share/rustdesk/rustdesk
exec_args: $@ exec_args: $@
apt: apt:
arch: arch:
- amd64 - amd64
allow_unauthenticated: true allow_unauthenticated: true
sources: sources:
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic main restricted - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal main restricted
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-updates main restricted - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates main restricted
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic universe - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal universe
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-updates universe - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates universe
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic multiverse - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal multiverse
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-updates multiverse - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-updates multiverse
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-backports main restricted - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-backports main restricted
universe multiverse universe multiverse
- sourceline: deb http://archive.ubuntu.com/ubuntu/ bionic-security main restricted - sourceline: deb http://archive.ubuntu.com/ubuntu/ focal-security main restricted
universe multiverse universe multiverse
- sourceline: deb http://ppa.launchpad.net/pipewire-debian/pipewire-upstream/ubuntu
bionic main
include: include:
# https://github.com/rustdesk/rustdesk/issues/9103
# Because of APPDIR_LIBRARY_PATH, this libc6 is not used, use LD_PRELOAD: $APPDIR/usr/lib/x86_64-linux-gnu/libc.so.6 may help, If you have time, please have a try.
# We modify APPDIR_LIBRARY_PATH to use system lib first because gst crashed if not doing so, but you can try to change it.
- libc6:amd64 - libc6:amd64
- libgtk-3-0 - libgtk-3-0
- libxcb-randr0 - libxcb-randr0
@@ -49,14 +50,19 @@ AppDir:
- libasound2 - libasound2
- libsystemd0 - libsystemd0
- curl - curl
- libva2
- libva-drm2 - libva-drm2
- libva-x11-2 - libva-x11-2
- libvdpau1
- libgstreamer-plugins-base1.0-0 - libgstreamer-plugins-base1.0-0
- gstreamer1.0-pipewire - gstreamer1.0-pipewire
- libwayland-client0
- libwayland-cursor0 - libwayland-cursor0
- libwayland-egl1 - libwayland-egl1
- libpulse0 - libpulse0
- packagekit-gtk3-module
- libcanberra-gtk3-module
- libpam0g
- libdrm2
exclude: exclude:
- humanity-icon-theme - humanity-icon-theme
- hicolor-icon-theme - hicolor-icon-theme
@@ -72,8 +78,11 @@ AppDir:
- usr/share/doc/*/TODO.* - usr/share/doc/*/TODO.*
runtime: runtime:
env: env:
GIO_MODULE_DIR: $APPDIR/usr/lib/x86_64-linux-gnu/gio/modules/ GIO_MODULE_DIR: /lib64/gio/modules:/usr/lib/x86_64-linux-gnu/gio/modules:$APPDIR/usr/lib/x86_64-linux-gnu/gio/modules
GDK_BACKEND: x11 GDK_BACKEND: x11
APPDIR_LIBRARY_PATH: /lib64:/usr/lib/x86_64-linux-gnu:$APPDIR/lib/x86_64-linux-gnu:$APPDIR/lib/x86_64-linux-gnu/security:$APPDIR/lib/systemd:$APPDIR/usr/lib/x86_64-linux-gnu:$APPDIR/usr/lib/x86_64-linux-gnu/gdk-pixbuf-2.0/2.10.0/loaders:$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer-1.0:$APPDIR/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/immodules:$APPDIR/usr/lib/x86_64-linux-gnu/gtk-3.0/3.0.0/printbackends:$APPDIR/usr/lib/x86_64-linux-gnu/krb5/plugins/preauth:$APPDIR/usr/lib/x86_64-linux-gnu/libcanberra-0.30:$APPDIR/usr/lib/x86_64-linux-gnu/pulseaudio:$APPDIR/usr/lib/x86_64-linux-gnu/sasl2:$APPDIR/usr/lib/x86_64-linux-gnu/vdpau:$APPDIR/usr/share/rustdesk/lib:$APPDIR/lib/x86_64
GST_PLUGIN_PATH: /lib64/gstreamer-1.0:/usr/lib/x86_64-linux-gnu/gstreamer-1.0:$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer-1.0
GST_PLUGIN_SYSTEM_PATH: /lib64/gstreamer-1.0:/usr/lib/x86_64-linux-gnu/gstreamer-1.0:$APPDIR/usr/lib/x86_64-linux-gnu/gstreamer-1.0
test: test:
fedora-30: fedora-30:
image: appimagecrafters/tests-env:fedora-30 image: appimagecrafters/tests-env:fedora-30

167
build.py
View File

@@ -9,6 +9,7 @@ import shutil
import hashlib import hashlib
import argparse import argparse
import sys import sys
from pathlib import Path
windows = platform.platform().startswith('Windows') windows = platform.platform().startswith('Windows')
osx = platform.platform().startswith( osx = platform.platform().startswith(
@@ -16,7 +17,7 @@ osx = platform.platform().startswith(
hbb_name = 'rustdesk' + ('.exe' if windows else '') hbb_name = 'rustdesk' + ('.exe' if windows else '')
exe_path = 'target/release/' + hbb_name exe_path = 'target/release/' + hbb_name
if windows: if windows:
flutter_build_dir = 'build/windows/runner/Release/' flutter_build_dir = 'build/windows/x64/runner/Release/'
elif osx: elif osx:
flutter_build_dir = 'build/macos/Build/Products/Release/' flutter_build_dir = 'build/macos/Build/Products/Release/'
else: else:
@@ -24,18 +25,26 @@ else:
flutter_build_dir_2 = f'flutter/{flutter_build_dir}' flutter_build_dir_2 = f'flutter/{flutter_build_dir}'
skip_cargo = False skip_cargo = False
def get_arch() -> str:
custom_arch = os.environ.get("ARCH") def get_deb_arch() -> str:
custom_arch = os.environ.get("DEB_ARCH")
if custom_arch is None: if custom_arch is None:
return "amd64" return "amd64"
return custom_arch return custom_arch
def get_deb_extra_depends() -> str:
custom_arch = os.environ.get("DEB_ARCH")
if custom_arch == "armhf": # for arm32v7 libsciter-gtk.so
return ", libatomic1"
return ""
def system2(cmd): def system2(cmd):
err = os.system(cmd) exit_code = os.system(cmd)
if err != 0: if exit_code != 0:
print(f"Error occurred when executing: {cmd}. Exiting.") sys.stderr.write(f"Error occurred when executing: `{cmd}`. Exiting.\n")
sys.exit(-1) sys.exit(-1)
def get_version(): def get_version():
with open("Cargo.toml", encoding="utf-8") as fh: with open("Cargo.toml", encoding="utf-8") as fh:
for line in fh: for line in fh:
@@ -45,21 +54,7 @@ def get_version():
def parse_rc_features(feature): def parse_rc_features(feature):
available_features = { available_features = {}
'IddDriver': {
'platform': ['windows'],
'zip_url': 'https://github.com/fufesou/RustDeskIddDriver/releases/download/v0.3/RustDeskIddDriver_x64.zip',
'checksum_url': 'https://github.com/fufesou/RustDeskIddDriver/releases/download/v0.3/checksum_md5',
'exclude': ['README.md', 'certmgr.exe', 'install_cert_runas_admin.bat', 'RustDeskIddApp.exe'],
},
'PrivacyMode': {
'platform': ['windows'],
'zip_url': 'https://github.com/fufesou/RustDeskTempTopMostWindow/releases/download/v0.1'
'/TempTopMostWindow_x64_pic_en.zip',
'checksum_url': 'https://github.com/fufesou/RustDeskTempTopMostWindow/releases/download/v0.1/checksum_md5',
'include': ['WindowInjection.dll'],
}
}
apply_features = {} apply_features = {}
if not feature: if not feature:
feature = [] feature = []
@@ -83,8 +78,9 @@ def parse_rc_features(feature):
return get_all_features() return get_all_features()
elif isinstance(feature, list): elif isinstance(feature, list):
if windows: if windows:
# force add PrivacyMode # download third party is deprecated, we use github ci instead.
feature.append('PrivacyMode') # feature.append('PrivacyMode')
pass
for feat in feature: for feat in feature:
if isinstance(feat, str) and feat.upper() == 'ALL': if isinstance(feat, str) and feat.upper() == 'ALL':
return get_all_features() return get_all_features()
@@ -109,14 +105,19 @@ def make_parser():
nargs='+', nargs='+',
default='', default='',
help='Integrate features, windows only.' help='Integrate features, windows only.'
'Available: IddDriver, PrivacyMode. Special value is "ALL" and empty "". Default is empty.') 'Available: [Not used for now]. Special value is "ALL" and empty "". Default is empty.')
parser.add_argument('--flutter', action='store_true', parser.add_argument('--flutter', action='store_true',
help='Build flutter package', default=False) help='Build flutter package', default=False)
parser.add_argument( parser.add_argument(
'--hwcodec', '--hwcodec',
action='store_true', action='store_true',
help='Enable feature hwcodec' + ( help='Enable feature hwcodec' + (
'' if windows or osx else ', need libva-dev, libvdpau-dev.') '' if windows or osx else ', need libva-dev.')
)
parser.add_argument(
'--vram',
action='store_true',
help='Enable feature vram, only available on windows now.'
) )
parser.add_argument( parser.add_argument(
'--portable', '--portable',
@@ -124,24 +125,31 @@ def make_parser():
help='Build windows portable' help='Build windows portable'
) )
parser.add_argument( parser.add_argument(
'--flatpak', '--unix-file-copy-paste',
action='store_true', action='store_true',
help='Build rustdesk libs with the flatpak feature enabled' help='Build with unix file copy paste feature'
)
parser.add_argument(
'--appimage',
action='store_true',
help='Build rustdesk libs with the appimage feature enabled'
) )
parser.add_argument( parser.add_argument(
'--skip-cargo', '--skip-cargo',
action='store_true', action='store_true',
help='Skip cargo build process, only flutter version + Linux supported currently' help='Skip cargo build process, only flutter version + Linux supported currently'
) )
if windows:
parser.add_argument(
'--skip-portable-pack',
action='store_true',
help='Skip packing, only flutter version + Windows supported'
)
parser.add_argument( parser.add_argument(
"--package", "--package",
type=str type=str
) )
if osx:
parser.add_argument(
'--screencapturekit',
action='store_true',
help='Enable feature screencapturekit'
)
return parser return parser
@@ -172,8 +180,8 @@ def generate_build_script_for_docker():
export VCPKG_ROOT=`pwd`/vcpkg export VCPKG_ROOT=`pwd`/vcpkg
git clone https://github.com/microsoft/vcpkg git clone https://github.com/microsoft/vcpkg
vcpkg/bootstrap-vcpkg.sh vcpkg/bootstrap-vcpkg.sh
vcpkg/vcpkg install libvpx libyuv opus
popd popd
$VCPKG_ROOT/vcpkg install --x-install-root="$VCPKG_ROOT/installed"
# build rustdesk # build rustdesk
./build.py --flutter --hwcodec ./build.py --flutter --hwcodec
''') ''')
@@ -181,10 +189,14 @@ def generate_build_script_for_docker():
system2("bash /tmp/build.sh") system2("bash /tmp/build.sh")
# Downloading third party resources is deprecated.
# We can use this function in an offline build environment.
# Even in an online environment, we recommend building third-party resources yourself.
def download_extract_features(features, res_dir): def download_extract_features(features, res_dir):
import re import re
proxy = '' proxy = ''
def req(url): def req(url):
if not proxy: if not proxy:
return url return url
@@ -196,9 +208,9 @@ def download_extract_features(features, res_dir):
for (feat, feat_info) in features.items(): for (feat, feat_info) in features.items():
includes = feat_info['include'] if 'include' in feat_info and feat_info['include'] else [] includes = feat_info['include'] if 'include' in feat_info and feat_info['include'] else []
includes = [ re.compile(p) for p in includes ] includes = [re.compile(p) for p in includes]
excludes = feat_info['exclude'] if 'exclude' in feat_info and feat_info['exclude'] else [] excludes = feat_info['exclude'] if 'exclude' in feat_info and feat_info['exclude'] else []
excludes = [ re.compile(p) for p in excludes ] excludes = [re.compile(p) for p in excludes]
print(f'{feat} download begin') print(f'{feat} download begin')
download_filename = feat_info['zip_url'].split('/')[-1] download_filename = feat_info['zip_url'].split('/')[-1]
@@ -261,17 +273,17 @@ def external_resources(flutter, args, res_dir):
def get_features(args): def get_features(args):
features = ['inline'] if not args.flutter else [] features = ['inline'] if not args.flutter else []
if windows:
features.append('virtual_display_driver')
if args.hwcodec: if args.hwcodec:
features.append('hwcodec') features.append('hwcodec')
if args.vram:
features.append('vram')
if args.flutter: if args.flutter:
features.append('flutter') features.append('flutter')
features.append('flutter_texture_render') if args.unix_file_copy_paste:
if args.flatpak: features.append('unix-file-copy-paste')
features.append('flatpak') if osx:
if args.appimage: if args.screencapturekit:
features.append('appimage') features.append('screencapturekit')
print("features:", features) print("features:", features)
return features return features
@@ -281,14 +293,17 @@ def generate_control_file(version):
system2('/bin/rm -rf %s' % control_file_path) system2('/bin/rm -rf %s' % control_file_path)
content = """Package: rustdesk content = """Package: rustdesk
Section: net
Priority: optional
Version: %s Version: %s
Architecture: %s Architecture: %s
Maintainer: rustdesk <info@rustdesk.com> Maintainer: rustdesk <info@rustdesk.com>
Homepage: https://rustdesk.com Homepage: https://rustdesk.com
Depends: libgtk-3-0, libxcb-randr0, libxdo3, libxfixes3, libxcb-shape0, libxcb-xfixes0, libasound2, libsystemd0, curl, libva-drm2, libva-x11-2, libvdpau1, libgstreamer-plugins-base1.0-0, libpam0g, libappindicator3-1, gstreamer1.0-pipewire Depends: libgtk-3-0, libxcb-randr0, libxdo3, libxfixes3, libxcb-shape0, libxcb-xfixes0, libasound2, libsystemd0, curl, libva2, libva-drm2, libva-x11-2, libgstreamer-plugins-base1.0-0, libpam0g, gstreamer1.0-pipewire%s
Recommends: libayatana-appindicator3-1
Description: A remote control software. Description: A remote control software.
""" % (version, get_arch()) """ % (version, get_deb_arch(), get_deb_extra_depends())
file = open(control_file_path, "w") file = open(control_file_path, "w")
file.write(content) file.write(content)
file.close() file.close()
@@ -307,7 +322,7 @@ def build_flutter_deb(version, features):
os.chdir('flutter') os.chdir('flutter')
system2('flutter build linux --release') system2('flutter build linux --release')
system2('mkdir -p tmpdeb/usr/bin/') system2('mkdir -p tmpdeb/usr/bin/')
system2('mkdir -p tmpdeb/usr/lib/rustdesk') system2('mkdir -p tmpdeb/usr/share/rustdesk')
system2('mkdir -p tmpdeb/etc/rustdesk/') system2('mkdir -p tmpdeb/etc/rustdesk/')
system2('mkdir -p tmpdeb/etc/pam.d/') system2('mkdir -p tmpdeb/etc/pam.d/')
system2('mkdir -p tmpdeb/usr/share/rustdesk/files/systemd/') system2('mkdir -p tmpdeb/usr/share/rustdesk/files/systemd/')
@@ -317,7 +332,7 @@ def build_flutter_deb(version, features):
system2('mkdir -p tmpdeb/usr/share/polkit-1/actions') system2('mkdir -p tmpdeb/usr/share/polkit-1/actions')
system2('rm tmpdeb/usr/bin/rustdesk || true') system2('rm tmpdeb/usr/bin/rustdesk || true')
system2( system2(
f'cp -r {flutter_build_dir}/* tmpdeb/usr/lib/rustdesk/') f'cp -r {flutter_build_dir}/* tmpdeb/usr/share/rustdesk/')
system2( system2(
'cp ../res/rustdesk.service tmpdeb/usr/share/rustdesk/files/systemd/') 'cp ../res/rustdesk.service tmpdeb/usr/share/rustdesk/files/systemd/')
system2( system2(
@@ -328,8 +343,6 @@ def build_flutter_deb(version, features):
'cp ../res/rustdesk.desktop tmpdeb/usr/share/applications/rustdesk.desktop') 'cp ../res/rustdesk.desktop tmpdeb/usr/share/applications/rustdesk.desktop')
system2( system2(
'cp ../res/rustdesk-link.desktop tmpdeb/usr/share/applications/rustdesk-link.desktop') 'cp ../res/rustdesk-link.desktop tmpdeb/usr/share/applications/rustdesk-link.desktop')
system2(
'cp ../res/com.rustdesk.RustDesk.policy tmpdeb/usr/share/polkit-1/actions/')
system2( system2(
'cp ../res/startwm.sh tmpdeb/etc/rustdesk/') 'cp ../res/startwm.sh tmpdeb/etc/rustdesk/')
system2( system2(
@@ -342,7 +355,7 @@ def build_flutter_deb(version, features):
system2('mkdir -p tmpdeb/DEBIAN') system2('mkdir -p tmpdeb/DEBIAN')
generate_control_file(version) generate_control_file(version)
system2('cp -a ../res/DEBIAN/* tmpdeb/DEBIAN/') system2('cp -a ../res/DEBIAN/* tmpdeb/DEBIAN/')
md5_file('usr/share/rustdesk/files/systemd/rustdesk.service') md5_file_folder("tmpdeb/")
system2('dpkg-deb -b tmpdeb rustdesk.deb;') system2('dpkg-deb -b tmpdeb rustdesk.deb;')
system2('/bin/rm -rf tmpdeb/') system2('/bin/rm -rf tmpdeb/')
@@ -350,10 +363,11 @@ def build_flutter_deb(version, features):
os.rename('rustdesk.deb', '../rustdesk-%s.deb' % version) os.rename('rustdesk.deb', '../rustdesk-%s.deb' % version)
os.chdir("..") os.chdir("..")
def build_deb_from_folder(version, binary_folder): def build_deb_from_folder(version, binary_folder):
os.chdir('flutter') os.chdir('flutter')
system2('mkdir -p tmpdeb/usr/bin/') system2('mkdir -p tmpdeb/usr/bin/')
system2('mkdir -p tmpdeb/usr/lib/rustdesk') system2('mkdir -p tmpdeb/usr/share/rustdesk')
system2('mkdir -p tmpdeb/usr/share/rustdesk/files/systemd/') system2('mkdir -p tmpdeb/usr/share/rustdesk/files/systemd/')
system2('mkdir -p tmpdeb/usr/share/icons/hicolor/256x256/apps/') system2('mkdir -p tmpdeb/usr/share/icons/hicolor/256x256/apps/')
system2('mkdir -p tmpdeb/usr/share/icons/hicolor/scalable/apps/') system2('mkdir -p tmpdeb/usr/share/icons/hicolor/scalable/apps/')
@@ -361,7 +375,7 @@ def build_deb_from_folder(version, binary_folder):
system2('mkdir -p tmpdeb/usr/share/polkit-1/actions') system2('mkdir -p tmpdeb/usr/share/polkit-1/actions')
system2('rm tmpdeb/usr/bin/rustdesk || true') system2('rm tmpdeb/usr/bin/rustdesk || true')
system2( system2(
f'cp -r ../{binary_folder}/* tmpdeb/usr/lib/rustdesk/') f'cp -r ../{binary_folder}/* tmpdeb/usr/share/rustdesk/')
system2( system2(
'cp ../res/rustdesk.service tmpdeb/usr/share/rustdesk/files/systemd/') 'cp ../res/rustdesk.service tmpdeb/usr/share/rustdesk/files/systemd/')
system2( system2(
@@ -372,15 +386,13 @@ def build_deb_from_folder(version, binary_folder):
'cp ../res/rustdesk.desktop tmpdeb/usr/share/applications/rustdesk.desktop') 'cp ../res/rustdesk.desktop tmpdeb/usr/share/applications/rustdesk.desktop')
system2( system2(
'cp ../res/rustdesk-link.desktop tmpdeb/usr/share/applications/rustdesk-link.desktop') 'cp ../res/rustdesk-link.desktop tmpdeb/usr/share/applications/rustdesk-link.desktop')
system2(
'cp ../res/com.rustdesk.RustDesk.policy tmpdeb/usr/share/polkit-1/actions/')
system2( system2(
"echo \"#!/bin/sh\" >> tmpdeb/usr/share/rustdesk/files/polkit && chmod a+x tmpdeb/usr/share/rustdesk/files/polkit") "echo \"#!/bin/sh\" >> tmpdeb/usr/share/rustdesk/files/polkit && chmod a+x tmpdeb/usr/share/rustdesk/files/polkit")
system2('mkdir -p tmpdeb/DEBIAN') system2('mkdir -p tmpdeb/DEBIAN')
generate_control_file(version) generate_control_file(version)
system2('cp -a ../res/DEBIAN/* tmpdeb/DEBIAN/') system2('cp -a ../res/DEBIAN/* tmpdeb/DEBIAN/')
md5_file('usr/share/rustdesk/files/systemd/rustdesk.service') md5_file_folder("tmpdeb/")
system2('dpkg-deb -b tmpdeb rustdesk.deb;') system2('dpkg-deb -b tmpdeb rustdesk.deb;')
system2('/bin/rm -rf tmpdeb/') system2('/bin/rm -rf tmpdeb/')
@@ -388,18 +400,23 @@ def build_deb_from_folder(version, binary_folder):
os.rename('rustdesk.deb', '../rustdesk-%s.deb' % version) os.rename('rustdesk.deb', '../rustdesk-%s.deb' % version)
os.chdir("..") os.chdir("..")
def build_flutter_dmg(version, features): def build_flutter_dmg(version, features):
if not skip_cargo: if not skip_cargo:
# set minimum osx build target, now is 10.14, which is the same as the flutter xcode project # set minimum osx build target, now is 10.14, which is the same as the flutter xcode project
system2(f'MACOSX_DEPLOYMENT_TARGET=10.14 cargo build --features {features} --lib --release') system2(
f'MACOSX_DEPLOYMENT_TARGET=10.14 cargo build --features {features} --release')
# copy dylib # copy dylib
system2( system2(
"cp target/release/liblibrustdesk.dylib target/release/librustdesk.dylib") "cp target/release/liblibrustdesk.dylib target/release/librustdesk.dylib")
os.chdir('flutter') os.chdir('flutter')
system2('flutter build macos --release') system2('flutter build macos --release')
system2('cp -rf ../target/release/service ./build/macos/Build/Products/Release/RustDesk.app/Contents/MacOS/')
'''
system2( system2(
"create-dmg --volname \"RustDesk Installer\" --window-pos 200 120 --window-size 800 400 --icon-size 100 --app-drop-link 600 185 --icon RustDesk.app 200 190 --hide-extension RustDesk.app rustdesk.dmg ./build/macos/Build/Products/Release/RustDesk.app") "create-dmg --volname \"RustDesk Installer\" --window-pos 200 120 --window-size 800 400 --icon-size 100 --app-drop-link 600 185 --icon RustDesk.app 200 190 --hide-extension RustDesk.app rustdesk.dmg ./build/macos/Build/Products/Release/RustDesk.app")
os.rename("rustdesk.dmg", f"../rustdesk-{version}.dmg") os.rename("rustdesk.dmg", f"../rustdesk-{version}.dmg")
'''
os.chdir("..") os.chdir("..")
@@ -414,7 +431,7 @@ def build_flutter_arch_manjaro(version, features):
system2('HBB=`pwd`/.. FLUTTER=1 makepkg -f') system2('HBB=`pwd`/.. FLUTTER=1 makepkg -f')
def build_flutter_windows(version, features): def build_flutter_windows(version, features, skip_portable_pack):
if not skip_cargo: if not skip_cargo:
system2(f'cargo build --features {features} --lib --release') system2(f'cargo build --features {features} --lib --release')
if not os.path.exists("target/release/librustdesk.dll"): if not os.path.exists("target/release/librustdesk.dll"):
@@ -425,6 +442,8 @@ def build_flutter_windows(version, features):
os.chdir('..') os.chdir('..')
shutil.copy2('target/release/deps/dylib_virtual_display.dll', shutil.copy2('target/release/deps/dylib_virtual_display.dll',
flutter_build_dir_2) flutter_build_dir_2)
if skip_portable_pack:
return
os.chdir('libs/portable') os.chdir('libs/portable')
system2('pip3 install -r requirements.txt') system2('pip3 install -r requirements.txt')
system2( system2(
@@ -474,13 +493,14 @@ def main():
os.chdir('../../..') os.chdir('../../..')
if flutter: if flutter:
build_flutter_windows(version, features) build_flutter_windows(version, features, args.skip_portable_pack)
return return
system2('cargo build --release --features ' + features) system2('cargo build --release --features ' + features)
# system2('upx.exe target/release/rustdesk.exe') # system2('upx.exe target/release/rustdesk.exe')
system2('mv target/release/rustdesk.exe target/release/RustDesk.exe') system2('mv target/release/rustdesk.exe target/release/RustDesk.exe')
pa = os.environ.get('P') pa = os.environ.get('P')
if pa: if pa:
# https://certera.com/kb/tutorial-guide-for-safenet-authentication-client-for-code-signing/
system2( system2(
f'signtool sign /a /v /p {pa} /debug /f .\\cert.pfx /t http://timestamp.digicert.com ' f'signtool sign /a /v /p {pa} /debug /f .\\cert.pfx /t http://timestamp.digicert.com '
'target\\release\\rustdesk.exe') 'target\\release\\rustdesk.exe')
@@ -545,13 +565,6 @@ def main():
'cp libsciter.dylib target/release/bundle/osx/RustDesk.app/Contents/MacOS/') 'cp libsciter.dylib target/release/bundle/osx/RustDesk.app/Contents/MacOS/')
# https://github.com/sindresorhus/create-dmg # https://github.com/sindresorhus/create-dmg
system2('/bin/rm -rf *.dmg') system2('/bin/rm -rf *.dmg')
plist = "target/release/bundle/osx/RustDesk.app/Contents/Info.plist"
txt = open(plist).read()
with open(plist, "wt") as fh:
fh.write(txt.replace("</dict>", """
<key>LSUIElement</key>
<string>1</string>
</dict>"""))
pa = os.environ.get('P') pa = os.environ.get('P')
if pa: if pa:
system2(''' system2('''
@@ -564,7 +577,8 @@ def main():
codesign -s "Developer ID Application: {0}" --force --options runtime ./target/release/bundle/osx/RustDesk.app/Contents/MacOS/* codesign -s "Developer ID Application: {0}" --force --options runtime ./target/release/bundle/osx/RustDesk.app/Contents/MacOS/*
codesign -s "Developer ID Application: {0}" --force --options runtime ./target/release/bundle/osx/RustDesk.app codesign -s "Developer ID Application: {0}" --force --options runtime ./target/release/bundle/osx/RustDesk.app
'''.format(pa)) '''.format(pa))
system2('create-dmg "RustDesk %s.dmg" "target/release/bundle/osx/RustDesk.app"' % version) system2(
'create-dmg "RustDesk %s.dmg" "target/release/bundle/osx/RustDesk.app"' % version)
os.rename('RustDesk %s.dmg' % os.rename('RustDesk %s.dmg' %
version, 'rustdesk-%s.dmg' % version) version, 'rustdesk-%s.dmg' % version)
if pa: if pa:
@@ -584,7 +598,7 @@ def main():
else: else:
print('Not signed') print('Not signed')
else: else:
# buid deb package # build deb package
system2( system2(
'mv target/release/bundle/deb/rustdesk*.deb ./rustdesk.deb') 'mv target/release/bundle/deb/rustdesk*.deb ./rustdesk.deb')
system2('dpkg-deb -R rustdesk.deb tmpdeb') system2('dpkg-deb -R rustdesk.deb tmpdeb')
@@ -609,21 +623,24 @@ def main():
os.system('mkdir -p tmpdeb/etc/pam.d/') os.system('mkdir -p tmpdeb/etc/pam.d/')
os.system('cp pam.d/rustdesk.debian tmpdeb/etc/pam.d/rustdesk') os.system('cp pam.d/rustdesk.debian tmpdeb/etc/pam.d/rustdesk')
system2('strip tmpdeb/usr/bin/rustdesk') system2('strip tmpdeb/usr/bin/rustdesk')
system2('mkdir -p tmpdeb/usr/lib/rustdesk') system2('mkdir -p tmpdeb/usr/share/rustdesk')
system2('mv tmpdeb/usr/bin/rustdesk tmpdeb/usr/lib/rustdesk/') system2('mv tmpdeb/usr/bin/rustdesk tmpdeb/usr/share/rustdesk/')
system2('cp libsciter-gtk.so tmpdeb/usr/lib/rustdesk/') system2('cp libsciter-gtk.so tmpdeb/usr/share/rustdesk/')
md5_file('usr/share/rustdesk/files/systemd/rustdesk.service') md5_file_folder("tmpdeb/")
md5_file('etc/rustdesk/startwm.sh')
md5_file('etc/X11/rustdesk/xorg.conf')
md5_file('etc/pam.d/rustdesk')
md5_file('usr/lib/rustdesk/libsciter-gtk.so')
system2('dpkg-deb -b tmpdeb rustdesk.deb; /bin/rm -rf tmpdeb/') system2('dpkg-deb -b tmpdeb rustdesk.deb; /bin/rm -rf tmpdeb/')
os.rename('rustdesk.deb', 'rustdesk-%s.deb' % version) os.rename('rustdesk.deb', 'rustdesk-%s.deb' % version)
def md5_file(fn): def md5_file(fn):
md5 = hashlib.md5(open('tmpdeb/' + fn, 'rb').read()).hexdigest() md5 = hashlib.md5(open('tmpdeb/' + fn, 'rb').read()).hexdigest()
system2('echo "%s %s" >> tmpdeb/DEBIAN/md5sums' % (md5, fn)) system2('echo "%s /%s" >> tmpdeb/DEBIAN/md5sums' % (md5, fn))
def md5_file_folder(base_dir):
base_path = Path(base_dir)
for file in base_path.rglob('*'):
if file.is_file() and 'DEBIAN' not in file.parts:
relative_path = file.relative_to(base_path)
md5_file(str(relative_path))
if __name__ == "__main__": if __name__ == "__main__":

View File

@@ -1,9 +1,11 @@
#[cfg(windows)] #[cfg(windows)]
fn build_windows() { fn build_windows() {
let file = "src/platform/windows.cc"; let file = "src/platform/windows.cc";
cc::Build::new().file(file).compile("windows"); let file2 = "src/platform/windows_delete_test_cert.cc";
cc::Build::new().file(file).file(file2).compile("windows");
println!("cargo:rustc-link-lib=WtsApi32"); println!("cargo:rustc-link-lib=WtsApi32");
println!("cargo:rerun-if-changed={}", file); println!("cargo:rerun-if-changed={}", file);
println!("cargo:rerun-if-changed={}", file2);
} }
#[cfg(target_os = "macos")] #[cfg(target_os = "macos")]
@@ -41,7 +43,7 @@ fn build_manifest() {
} }
} }
fn install_oboe() { fn install_android_deps() {
let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap(); let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap();
if target_os != "android" { if target_os != "android" {
return; return;
@@ -49,6 +51,8 @@ fn install_oboe() {
let mut target_arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap(); let mut target_arch = std::env::var("CARGO_CFG_TARGET_ARCH").unwrap();
if target_arch == "x86_64" { if target_arch == "x86_64" {
target_arch = "x64".to_owned(); target_arch = "x64".to_owned();
} else if target_arch == "x86" {
target_arch = "x86".to_owned();
} else if target_arch == "aarch64" { } else if target_arch == "aarch64" {
target_arch = "arm64".to_owned(); target_arch = "arm64".to_owned();
} else { } else {
@@ -57,7 +61,11 @@ fn install_oboe() {
let target = format!("{}-android", target_arch); let target = format!("{}-android", target_arch);
let vcpkg_root = std::env::var("VCPKG_ROOT").unwrap(); let vcpkg_root = std::env::var("VCPKG_ROOT").unwrap();
let mut path: std::path::PathBuf = vcpkg_root.into(); let mut path: std::path::PathBuf = vcpkg_root.into();
path.push("installed"); if let Ok(vcpkg_root) = std::env::var("VCPKG_INSTALLED_ROOT") {
path = vcpkg_root.into();
} else {
path.push("installed");
}
path.push(target); path.push(target);
println!( println!(
"{}", "{}",
@@ -66,62 +74,15 @@ fn install_oboe() {
path.join("lib").to_str().unwrap() path.join("lib").to_str().unwrap()
) )
); );
println!("cargo:rustc-link-lib=ndk_compat");
println!("cargo:rustc-link-lib=oboe"); println!("cargo:rustc-link-lib=oboe");
println!("cargo:rustc-link-lib=c++"); println!("cargo:rustc-link-lib=c++");
println!("cargo:rustc-link-lib=OpenSLES"); println!("cargo:rustc-link-lib=OpenSLES");
// I always got some strange link error with oboe, so as workaround, put oboe.cc into oboe src: src/common/AudioStreamBuilder.cpp
// also to avoid libc++_shared not found issue, cp ndk's libc++_shared.so to jniLibs, e.g.
// ./flutter_hbb/android/app/src/main/jniLibs/arm64-v8a/libc++_shared.so
// let include = path.join("include");
//cc::Build::new().file("oboe.cc").include(include).compile("oboe_wrapper");
}
#[cfg(feature = "flutter")]
fn gen_flutter_rust_bridge() {
if !std::env::var("RUN_FFIGEN").is_ok() {
return;
}
use lib_flutter_rust_bridge_codegen::{
config_parse, frb_codegen, get_symbols_if_no_duplicates, RawOpts,
};
let llvm_path = match std::env::var("LLVM_HOME") {
Ok(path) => Some(vec![path]),
Err(_) => None,
};
// Tell Cargo that if the given file changes, to rerun this build script.
println!("cargo:rerun-if-changed=src/flutter_ffi.rs");
// Options for frb_codegen
let raw_opts = RawOpts {
// Path of input Rust code
rust_input: vec!["src/flutter_ffi.rs".to_string()],
// Path of output generated Dart code
dart_output: vec!["flutter/lib/generated_bridge.dart".to_string()],
// Path of output generated C header
c_output: Some(vec!["flutter/macos/Runner/bridge_generated.h".to_string()]),
/// Path to the installed LLVM
llvm_path,
// for other options use defaults
..Default::default()
};
// get opts from raw opts
let configs = config_parse(raw_opts);
// generation of rust api for ffi
let all_symbols = get_symbols_if_no_duplicates(&configs).unwrap();
for config in configs.iter() {
frb_codegen(config, &all_symbols).unwrap();
}
} }
fn main() { fn main() {
hbb_common::gen_version(); hbb_common::gen_version();
install_oboe(); install_android_deps();
// there is problem with cfg(target_os) in build.rs, so use our workaround
// let target_os = std::env::var("CARGO_CFG_TARGET_OS").unwrap();
// if target_os == "android" || target_os == "ios" {
#[cfg(feature = "flutter")]
gen_flutter_rust_bridge();
// return;
// }
#[cfg(all(windows, feature = "inline"))] #[cfg(all(windows, feature = "inline"))]
build_manifest(); build_manifest();
#[cfg(windows)] #[cfg(windows)]

101
docs/CODE_OF_CONDUCT-JP.md Normal file
View File

@@ -0,0 +1,101 @@
# コントリビューター規約 行動規範
## 私たちの誓い
私たちは、メンバー、貢献者、リーダーとして、年齢、体格、目に見える・見えない障害、
民族性、性の特徴、性自認と表現、経験のレベル、教育、社会経済的地位、国籍、個人の外見、
人種、宗教、性的自認と指向に関係なく、誰もがハラスメントのないコミュニティに参加できるようにすることを誓います。
私たちは、開かれた、歓迎された、多様で、包容力のある、健全な地域社会に貢献するように行動し、交流することを誓います。
## 私たちの基準
地域社会にとって好ましい環境にコントリビュートする行動の例には、以下のようなものがある:
* 他者への共感と優しさ
* 異なる意見、視点、経験を尊重すること
* 建設的なフィードバックを与え、潔く受け入れること
* 私たちの過ちによって影響を受けた人々に責任を受け入れ、謝罪し、経験から学ぶこと
* 私たち個人にとってだけでなく、地域社会全体にとって何が最善であるかに焦点を合わせること
許されない行為の例:
* 性的な言葉やイメージの使用、性的な注目や誘いかけ
* 荒らし、侮辱的または軽蔑的なコメント、個人的または政治的な攻撃
* 公的または私的な嫌がらせ
* 明示的な許可なく、他人の住所や電子メールアドレスなどの個人情報を公開すること
* 職業上不適切と見なされるその他の行為
## 執行責任
コミュニティリーダーは、許容される行動の基準を明確にし、実施する責任があり、
不適切、脅迫的、攻撃的、または有害と判断される行動に対しては、適切かつ公正な是正措置をとります
コミュニティリーダーは、本行動規範に沿わないコメント、コミット、コード、ウィキ編集、
課題、その他の貢献を削除、編集、拒否する権利と責任を有し、適切な場合にはモデレーション決定の理由を伝えます。
## スコープ
この行動規範は、すべてのコミュニティスペースで適用され、また個人が公的なスペースでコミュニティを公式に代表している場合にも適用されます。
当コミュニティを代表する例としては、公式 E メールアドレスの使用、公式ソーシャルメディアアカウントによる投稿、
オンラインまたはオフラインのイベントでの任命された代表としての行動などが挙げられます。
## 施行
虐待、ハラスメント、その他容認できない行為があった場合は、[info@rustdesk.com](mailto:info@rustdesk.com) の
執行担当コミュニティリーダーに報告することができる。
すべての苦情は、迅速かつ公正に検討・調査されます。
すべての地域社会の指導者は、いかなる事件の報告者のプライバシーと安全を尊重する義務がある。
## 執行ガイドライン
コミュニティリーダーは、本行動規範に違反すると判断した行為に対する結果を決定する際、
以下の「コミュニティへの影響に関するガイドライン」に従います:
### 1. 修正
**コミュニティへの影響**: 不適切な言葉の使用、またはプロフェッショナルでない、あるいは地域社会で歓迎されないとみなされるその他の行動。
**結果**: コミュニティリーダーからの私的な書面による警告。違反の性質と、
なぜその行為が不適切であったのかについての説明を明確にする。公的な謝罪が要求される場合もある。
### 2. 警告
**コミュニティへの影響**: 単一の出来事または一連の行動による違反。
**結果**: 行動を続けた場合の結果を伴う警告。一定期間、行動規範の実施者との勝手な交流を含め、
関係者と交流しないこと。これには、ソーシャルメディアなどの外部チャンネルだけでなく、
コミュニティスペースでの交流を避けることも含まれます。これらの条件に違反した場合、一時的または恒久的に追放される可能性があります。
### 3. 一時的な禁止
**コミュニティへの影響**: 継続的な不適切な行動を含む、コミュニティ基準に対する重大な違反。
**結果**: 一定期間、地域社会とのあらゆる交流や公的なコミュニケーションを一時的に禁止すること。
この期間中は、行動規範を執行する人々との未承諾の交流を含め、関係者との公私にわたる交流は許されない。
これらの条件に違反した場合、永久禁止となる可能性があります。
### 4. 永久禁止
**コミュニティへの影響**: 継続的な不適切な行動、個人に対する嫌がらせ、
または個人クラスに対する攻撃や中傷など、地域社会の基準に対する違反のパターンを示すこと。
**結果**: コミュニティ内でのあらゆる公的交流の永久禁止。
## 帰属
この行動規範は、[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0] に掲載されている
[コントリビューター規約][ホームページ]、バージョン 2.0 から引用したものです。
コミュニティインパクトガイドラインは、[Mozilla's code of conduct enforcement ladder][Mozilla CoC] に触発されました。
この行動規範に関するよくある質問については、[https://www.contributor-covenant.org/faq][FAQ] の FAQ をご覧ください。
翻訳は [https://www.contributor-covenant.org/translations][翻訳] にあります。
[ホームページ]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[翻訳]: https://www.contributor-covenant.org/translations

125
docs/CODE_OF_CONDUCT-NO.md Normal file
View File

@@ -0,0 +1,125 @@
# Atferdskodeks for bidragsyterpaktern
## Hva Vi Står For
Vi som medlemer, bidragere, og ledere står for å skape ett hat-fritt felleskap,
uansett alder, kroppstørrelse, synlig eller usynlige funksjonsnedsettninger,
etnesitet, kjønns karaktertrekk, kjønnsidentitet, kunnskapsnivå, utdanning,
sosial-økonomisk status, nasjonalitet, utsende, rase, religion, eller seksual
identitet og orientasjon.
Vi står for åpen, velkommende, mangfold, inklusiv og sunn oppførsel i vårt felleskap.
## Våre Standarer
Eksempler på oppførsel som hjelper ett positivt felleskap inkluderer:
* Vise empati og vennlighet mot andre mennesker
* Være respektfull ovenfor ulike meninger, synspunkter og erfaringer
* Gi og ta konstruktiv kritikk i beste mening
* Akseptere ansvar og unskylde seg for de som er utsatt av våre feil,
og lære av disse
* Fokusere på det som er best ikke bare for individer, men for felleskapet
Eksempler på uakseptabel oppførsel inkluderer:
* Bruk av seksualisert språk eller bilder, og seksual oppmerksomhet.
* Troll-ene, fornermende og nedsettende kommentarer, og personlig eller politiske angrep
* Offentlig eller privat trakassering
* Publisering av andres private informasjon, sånn som bosteds- og epost-addresser,
uten deres godskjenning.
* Andre rettningslinjer som kan bli sett på som upassende i en profesjonell setting.
## Håndhevingsansvar
Felleskapets ledere har ansvar for å klarifisere og håndheve våre standarer av
akseptert oppførsel og vill ta rimelige og rettferdige handliger som respons på
oppførsel de anser som upassende, truende, fornermende eller skadelig.
Felleskapets ledere har retten og ansvaret til å fjerne, redigere, eller avslå
kommentarer, commits, kode, wiki endringer, issues, og andre birag som ikke
samsvarer med disse etiske rettningslinjene, og vill kommunisere grunner for
moderatorenes valg når passende.
## Omfang
Disse etiske rettningslinjene gjelder innenfor alle platformene til felleskapet, og
de gjelder også når ett individ representerer felleskapet på offentlige medier.
Eksempler på representasjon av vårt felleskap inkluderer bruke av offisielle e-mail
addresser, publisering gjennom en offisiell sosial media bruker, eller oppførsel som en
utpekt representant på digitale og fysiske arrangsjemanger.
## Håndheving
Hendelser av misbruk, trakasserende eller på noen måte uakseptert oppførsel kann
bli raportert til felleskapets ledere med ansvar for håndheving på
[info@rustdesk.com](mailto:info@rustdesk.com).
All tilbakemelding vill bli sett gjennom og investigert rettferdig så fort som mulig.
Alle felleskapets ledere er obligert til å respektere privatlivet og sikkerhetet ovenfor
den som raporterer en hendelse.
## Håndhevings Guide
Felleskapets ledere vill følge disse Rettningslinjene for sammfunspåvirkning med
tanke på konsekvenser for en handling de anser i brudd med disse etiske rettningslinjene:
### 1. Korreksjon
**Sammfunspåvirkning**: Bruk av upassende språk eller annen oppførsel ansett som
uprofesjonelt eller uvelkommen i dette felleskapet.
**Konsekvens**: En privat, skrevet advarsel fra en leder av felleskapet, som
klarifiserer grunnlaget til hvorfor denne oppførselen var upassende. En offentlig
unskyldning kan bli forespurt.
### 2. Advarsel
**Sammfunspåvirkning**: Ett brudd på en singulær hendelse eller en serie handlinger.
**Konsekvens**: En advarsel med konsekvenser for kontinuerende oppførsel. Ingen
interaksjon med individene involvert, inkluderer uoppfordret interaksjoner med
de som håndhever disse etiske rettningslinjene, er tillat for en spesifisert tidsperiode.
Dette inkluderer å unngå interaksjoner i felleskapets platformer, samt eksterne
kanaler, som f.eks sosial media. Brudd av disse vilkårene kan føre til midlertidig
eller permanent bannlysning.
### 3. Midlertidig Bannlysning
**Sammfunspåvirkning**: Ett særiøst brudd på felleskapets standarer, inkludert
vedvarende upassende oppførsel.
**Konsekvens**: En midlertidig bannlysning fra noen som helst interaksjon eller
offentlig kommunikasjon med felleskapet for en spesifisert tidsperiode. Ingen
interaksjon med individene involvert, inkluderer uoppfordret interaksjoner med
de som håndhever disse etiske rettningslinjene, er tillat for denne perioden.
Brudd på disse vilkårene kan føre til permanent bannlysning.
### 4. Permanent Bannlysning
**Sammfunspåvirkning**: Demonstasjon av mønster i brudd på felleskapets standarer,
inklusivt vedvarende upassende oppførsel, trakassering av ett individ, eller
aggresjon mot eller nedsettelse av grupper individer.
**Konsekvens**: En permanent bannlysning fra alle offentlige interaksjoner i
felleskapet
## Attribusjon
Disse etiske rettningslinjene er adaptert fra [Contributor Covenant][homepage],
versjon 2.0, tilgjengelig ved
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
Sammfunspåvirknings guid inspirert av
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
For svar til vanlige spørsmål angående disse etiske rettningslinjene, se FAQ på
[https://www.contributor-covenant.org/faq][FAQ]. Oversettelse tilgjengelig
ved [https://www.contributor-covenant.org/translations][translations].
[homepage]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

View File

@@ -0,0 +1,89 @@
# Katkıda Bulunanların Davranış Kuralları
## Taahhüdümüz
Biz üyeler, katkıda bulunanlar ve liderler olarak, yaş, beden büyüklüğü, görünür veya görünmez engellilik, etnik köken, cinsiyet özellikleri, cinsiyet kimliği ve ifadesi, deneyim seviyesi, eğitim, sosyo-ekonomik durum, milliyet, kişisel görünüm, ırk, din veya cinsel kimlik ve yönelim ayrımı gözetmeksizin herkes için topluluğumuzdaki katılımı taciz içermeyen bir deneyim haline getirmeyi taahhüt ederiz.
ık, hoşgörülü, çeşitli, kapsayıcı ve sağlıklı bir topluluğa katkıda bulunacak şekillerde hareket etmeyi ve etkileşimde bulunmayı taahhüt ederiz.
## Standartlarımız
Topluluğumuz için olumlu bir ortam yaratmaya katkıda bulunan davranış örnekleri şunlardır:
* Diğer insanlara empati ve nezaket göstermek
* Farklı görüşlere, bakış açılarına ve deneyimlere saygılı olmak
* Yapıcı eleştiriyi vermek ve zarifçe kabul etmek
* Hatalarımızdan etkilenenlere sorumluluk kabul etmek, özür dilemek ve deneyimden öğrenmek
* Sadece bireyler olarak değil, aynı zamanda genel topluluk için en iyisi üzerine odaklanmak
Kabul edilemez davranış örnekleri şunları içerir:
* Cinselleştirilmiş dil veya imgelerin kullanımı ve cinsel ilgi veya herhangi bir türdeki yaklaşımlar
* Trollük, aşağılayıcı veya hakaret içeren yorumlar ve kişisel veya siyasi saldırılar
* Kamuoyu veya özel taciz
* Başkalarının fiziksel veya e-posta adresi gibi özel bilgilerini, açık izinleri olmadan yayınlamak
* Profesyonel bir ortamda makul bir şekilde uygunsuz kabul edilebilecek diğer davranışlar
## Uygulama Sorumlulukları
Topluluk liderleri, kabul edilebilir davranış standartlarımızııklığa kavuşturmak ve uygulamakla sorumludur ve uygunsuz, tehditkar, saldırgan veya zarar verici herhangi bir davranışa yanıt olarak uygun ve adil düzeltici önlemler alacaklardır.
Topluluk liderleri, bu Davranış Kurallarına uyumlu olmayan yorumları, taahhütlerini veya kodu, wiki düzenlemelerini, sorunları ve diğer katkıları kaldırma, düzenleme veya reddetme hakkına sahiptir. Denetim kararlarının nedenlerini uygun olduğunda ileteceklerdir.
## Kapsam
Bu Davranış Kuralları, tüm topluluk alanlarında geçerlidir ve aynı zamanda birey resmi olarak topluluğu halka açık alanlarda temsil ettiğinde de geçerlidir. Topluluğumuzu temsil etme örnekleri, resmi bir e-posta adresi kullanmak, resmi bir sosyal medya hesabı üzerinden gönderi yapmak veya çevrimiçi veya çevrimdışı bir etkinlikte atanmış bir temsilci olarak hareket etmeyi içerir.
## Uygulama
Taciz edici, rahatsız edici veya başka türlü kabul edilemez davranış örnekleri, [info@rustdesk.com](mailto:info@rustdesk.com) adresindeki uygulama sorumlularına bildirilebilir. Tüm şikayetler hızlı ve adil bir şekilde incelenecek ve araştırılacaktır.
Tüm topluluk liderleri, olayın raporlayıcısının gizliliğine ve güvenliğine saygı gösterme yükümlülüğündedir.
## Uygulama Kılavuzları
Topluluk liderleri, bu Davranış Kurallarını ihlal olarak değerlendirdikleri herhangi bir eylem için bu Topluluk Etkisi Kılavuzlarını izleyeceklerdir:
### 1. Düzeltme
**Topluluk Etkisi**: Topluluk içinde profesyonel veya hoşgörülü olmayan uygun olmayan dil veya diğer davranışların kullanımı.
**Sonuç**: Topluluk liderlerinden özel ve yazılı bir uyarı almak, ihlalin niteliği ve davranışın nedeninin açıklığa kavuşturulması. Bir kamu özrü istenebilir.
### 2. Uyarı
**Topluluk Etkisi**: Tek bir olay veya dizi aracılığıyla bir ihlal.
**Sonuç**: Devam eden davranış için sonuçları olan bir uyarı. Topluluk liderleri de dahil olmak üzere ihlalle ilgili kişilerle etkileşim, belirli bir süre boyunca önerilmez. Bu, topluluk alanlarında ve sosyal medya gibi harici kanallarda etkileşimleri içerir. Bu koşulları ihlal etmek geçici veya kalıcı bir yasağa yol açabilir.
### 3. Geçici Yasak
**Topluluk Etkisi**: Sürekli uygunsuz davranış da dahil olmak üzere topluluk standartlarının ciddi bir ihlali.
**Sonuç**: Belirli bir süre için toplulukla herhangi bir türdeki etkileşim veya halka açık iletişimden geçici bir yasak. Bu dönem boyunca, toplul
ukla veya uygulama kurallarını uygulayanlarla her türlü kamuoyu veya özel etkileşim izin verilmez. Bu koşulları ihlal etmek geçici veya kalıcı bir yasağa yol açabilir.
### 4. Kalıcı Yasak
**Topluluk Etkisi**: Topluluk standartlarının ihlalinde sürekli bir desen sergilemek, bireye sürekli olarak uygun olmayan davranışlarda bulunmak, bir bireye tacizde bulunmak veya birey sınıflarına karşı saldırganlık veya aşağılama yapmak.
**Sonuç**: Topluluk içinde her türlü halka açık etkileşimden kalıcı bir yasak.
## Atıf
Bu Davranış Kuralları, [Contributor Covenant][anasayfa], 2.0 sürümünden uyarlanmıştır ve
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0] adresinde bulunmaktadır.
Topluluk Etkisi Kılavuzları,
[Mozilla'nın davranış kuralları uygulama merdiveni][Mozilla DK] tarafından ilham alınarak oluşturulmuştur.
Bu davranış kuralları hakkında yaygın soruların cevapları için, SSS'ye göz atın:
[https://www.contributor-covenant.org/faq][SSS]. Çeviriler,
[https://www.contributor-covenant.org/translations][çeviriler] adresinde bulunabilir.
[anasayfa]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
[Mozilla DK]: https://github.com/mozilla/diversity
[SSS]: https://www.contributor-covenant.org/faq
[çeviriler]: https://www.contributor-covenant.org/translations

View File

@@ -0,0 +1,87 @@
# 贡献者公约行为准则
## 我们的承诺
身为社区成员、贡献者和领袖,我们承诺使社区参与者不受骚扰,无论其年龄、体型、可见或不可见的缺陷、族裔、性征、性别认同和表达、经验水平、教育程度、社会与经济地位、国籍、相貌、种族、种姓、肤色、宗教信仰、性倾向或性取向如何。
我们承诺以有助于建立开放、友善、多样化、包容、健康社区的方式行事和互动。
## 我们的标准
有助于为我们的社区创造积极环境的行为例子包括但不限于:
* 表现出对他人的同情和善意
* 尊重不同的主张、观点和感受
* 提出和大方接受建设性意见
* 承担责任并向受我们错误影响的人道歉
* 注重社区共同诉求,而非个人得失
不当行为例子包括:
* 使用情色化的语言或图像,及性引诱或挑逗
* 嘲弄、侮辱或诋毁性评论,以及人身或政治攻击
* 公开或私下的骚扰行为
* 未经他人明确许可,公布他人的私人信息,如物理或电子邮件地址
* 其他有理由认定为违反职业操守的不当行为
## 责任和权力
社区领袖有责任解释和落实我们所认可的行为准则,并妥善公正地对他们认为不当、威胁、冒犯或有害的任何行为采取纠正措施。
社区领导有权力和责任删除、编辑或拒绝或拒绝与本行为准则不相符的评论comment、提交commits、代码、维基wiki编辑、议题issues或其他贡献并在适当时机知采取措施的理由。
## 适用范围
本行为准则适用于所有社区场合,也适用于在公共场所代表社区时的个人。
代表社区的情形包括使用官方电子邮件地址、通过官方社交媒体帐户发帖或在线上或线下活动中担任指定代表。
## 监督
辱骂、骚扰或其他不可接受的行为可通过[info@rustdesk.com](mailto:info@rustdesk.com)向负责监督的社区领袖报告。 所有投诉都将得到及时和公平的审查和调查。
所有社区领袖都有义务尊重任何事件报告者的隐私和安全。
## 处理方针
社区领袖将遵循下列社区处理方针来明确他们所认定违反本行为准则的行为的处理方式:
### 1. 纠正
**社区影响**: 使用不恰当的语言或其他在社区中被认定为不符合职业道德或不受欢迎的行为。
**处理意见**: 由社区领袖发出非公开的书面警告,明确说明违规行为的性质,并解释举止如何不妥。或将要求公开道歉。
### 2. 警告
**社区影响**: 单个或一系列违规行为。
**处理意见**: 警告并对连续性行为进行处理。在指定时间内,不得与相关人员互动,包括主动与行为准则执行者互动。这包括避免在社区场所和外部渠道中的互动。违反这些条款可能会导致临时或永久封禁。
### 3. 临时封禁
**社区影响**: 严重违反社区准则,包括持续的不当行为。
**处理意见**: 在指定时间内,暂时禁止与社区进行任何形式的互动或公开交流。在此期间,不得与相关人员进行公开或私下互动,包括主动与行为准则执行者互动。违反这些条款可能会导致永久封禁。
### 4. 永久封禁
**社区影响**: 行为模式表现出违反社区准则,包括持续的不当行为、骚扰个人或攻击或贬低某个类别的个体。
**处理意见**: 永久禁止在社区内进行任何形式的公开互动。
## 参见
本行为准则改编自[参与者公约][homepage]2.0 版, 参见
[https://www.contributor-covenant.org/zh-cn/version/2/0/code_of_conduct.html][v2.0].
指导方针借鉴自[Mozilla纪检分级][Mozilla CoC].
有关本行为准则的常见问题的答案,参见 [https://www.contributor-covenant.org/faq][FAQ]。 其他语言翻译参见[https://www.contributor-covenant.org/translations][translations]。
[homepage]: https://www.contributor-covenant.org
[v2.0]: https://www.contributor-covenant.org/zh-cn/version/2/0/code_of_conduct.html
[Mozilla CoC]: https://github.com/mozilla/diversity
[FAQ]: https://www.contributor-covenant.org/faq
[translations]: https://www.contributor-covenant.org/translations

View File

@@ -1,42 +1,42 @@
# Beitr<EFBFBD>ge zu RustDesk # Beiträge zu RustDesk
RustDesk begr<EFBFBD><EFBFBD>t Beitr<EFBFBD>ge von jedem. Hier sind die Richtlinien, wenn Sie uns RustDesk begrüßt Beiträge von jedem. Hier sind die Richtlinien, wenn Sie uns
helfen m<EFBFBD>chten: helfen möchten:
## Beitr<EFBFBD>ge ## Beiträge
Beitr<EFBFBD>ge zu RustDesk oder seinen Abh<EFBFBD>ngigkeiten sollten in Form von Pull Beiträge zu RustDesk oder seinen Abhängigkeiten sollten in Form von Pull
Requests auf GitHub erfolgen. Jeder Pull Request wird von einem Hauptakteur Requests auf GitHub erfolgen. Jeder Pull Request wird von einem Hauptakteur
(jemand mit der Erlaubnis, Korrekturen einzubringen) gepr<EFBFBD>ft und entweder in den (jemand mit der Erlaubnis, Korrekturen einzubringen) geprüft und entweder in den
Hauptbaum eingef<EFBFBD>gt oder Feedback f<EFBFBD>r notwendige <EFBFBD>nderungen gegeben. Alle Hauptbaum eingefügt oder Feedback für notwendige Änderungen gegeben. Alle
Beitr<EFBFBD>ge sollten diesem Format folgen, auch die von Hauptakteuren. Beiträge sollten diesem Format folgen, auch die von Hauptakteuren.
Wenn Sie an einem Problem arbeiten m<EFBFBD>chten, melden Sie es bitte zuerst an, indem Wenn Sie an einem Problem arbeiten möchten, melden Sie es bitte zuerst an, indem
Sie auf GitHub erkl<EFBFBD>ren, dass Sie daran arbeiten m<EFBFBD>chten. Damit soll verhindert Sie auf GitHub erklären, dass Sie daran arbeiten möchten. Damit soll verhindert
werden, dass Beitr<EFBFBD>ge zum gleichen Thema doppelt bearbeitet werden. werden, dass Beiträge zum gleichen Thema doppelt bearbeitet werden.
## Checkliste f<EFBFBD>r Pull Requests ## Checkliste für Pull Requests
- Verzweigen Sie sich vom Master-Branch und, falls n<EFBFBD>tig, wechseln Sie zum - Verzweigen Sie sich vom Master-Branch und, falls nötig, wechseln Sie zum
aktuellen Master-Branch, bevor Sie Ihren Pull Request einreichen. Wenn das aktuellen Master-Branch, bevor Sie Ihren Pull Request einreichen. Wenn das
Zusammenf<EFBFBD>hren mit dem Master nicht reibungslos funktioniert, werden Sie Zusammenführen mit dem Master nicht reibungslos funktioniert, werden Sie
m<EFBFBD>glicherweise aufgefordert, Ihre <EFBFBD>nderungen zu <EFBFBD>berarbeiten. möglicherweise aufgefordert, Ihre Änderungen zu überarbeiten.
- Commits sollten so klein wie m<EFBFBD>glich sein und gleichzeitig sicherstellen, dass - Commits sollten so klein wie möglich sein und gleichzeitig sicherstellen, dass
jeder Commit unabh<EFBFBD>ngig voneinander korrekt ist (d. h., jeder Commit sollte jeder Commit unabhängig voneinander korrekt ist (d. h., jeder Commit sollte
sich <EFBFBD>bersetzen lassen und Tests bestehen). sich übersetzen lassen und Tests bestehen).
- Commits sollten von einem "Herkunftszertifikat f<EFBFBD>r Entwickler" - Commits sollten von einem "Herkunftszertifikat für Entwickler"
(https://developercertificate.org) begleitet werden, das besagt, dass Sie (und (https://developercertificate.org) begleitet werden, das besagt, dass Sie (und
ggf. Ihr Arbeitgeber) mit den Bedingungen der [Projektlizenz](../LICENCE) ggf. Ihr Arbeitgeber) mit den Bedingungen der [Projektlizenz](../LICENCE)
einverstanden sind. In Git ist dies die Option `-s` f<EFBFBD>r `git commit`. einverstanden sind. In Git ist dies die Option `-s` für `git commit`.
- Wenn Ihr Patch nicht begutachtet wird oder Sie eine bestimmte Person zur - Wenn Ihr Patch nicht begutachtet wird oder Sie eine bestimmte Person zur
Begutachtung ben<EFBFBD>tigen, k<EFBFBD>nnen Sie einem Gutachter mit @ antworten und um eine Begutachtung benötigen, können Sie einem Gutachter mit @ antworten und um eine
Begutachtung des Pull Requests oder einen Kommentar bitten. Sie k<EFBFBD>nnen auch Begutachtung des Pull Requests oder einen Kommentar bitten. Sie können auch
per [E-Mail](mailto:info@rustdesk.com) um eine Begutachtung bitten. per [E-Mail](mailto:info@rustdesk.com) um eine Begutachtung bitten.
- F<EFBFBD>gen Sie Tests hinzu, die sich auf den behobenen Fehler oder die neue - Fügen Sie Tests hinzu, die sich auf den behobenen Fehler oder die neue
Funktion beziehen. Funktion beziehen.
Spezifische Git-Anweisungen finden Sie im [GitHub-Workflow](https://github.com/servo/servo/wiki/GitHub-workflow). Spezifische Git-Anweisungen finden Sie im [GitHub-Workflow](https://github.com/servo/servo/wiki/GitHub-workflow).
@@ -47,4 +47,4 @@ https://github.com/rustdesk/rustdesk/blob/master/docs/CODE_OF_CONDUCT.md
## Kommunikation ## Kommunikation
RustDesk-Mitarbeiter arbeiten h<EFBFBD>ufig im [Discord](https://discord.gg/nDceKgxnkV). RustDesk-Mitarbeiter arbeiten häufig im [Discord](https://discord.gg/nDceKgxnkV).

31
docs/CONTRIBUTING-ID.md Normal file
View File

@@ -0,0 +1,31 @@
# Berkontribusi dalam pengembangan RustDesk
RustDesk mengajak semua orang untuk ikut berkontribusi. Berikut ini adalah panduan jika kamu sedang mempertimbangkan untuk memberikan bantuan kepada kami:
## Kontirbusi
Untuk melakukan kontribusi pada RustDesk atau dependensinya, sebaiknya dilakukan dalam bentuk pull request di GitHub. Setiap permintaan pull request akan ditinjau oleh kontributor utama atau seseorang yang memiliki wewenang untuk menggabungkan perubahan kode, baik yang sudah dimasukkan ke dalam struktur utama ataupun memberikan umpan balik untuk perubahan yang akan diperlukan. Setiap kontribusi harus sesuai dengan format ini, juga termasuk yang berasal dari kontributor utama.
Apabila kamu ingin mengatasi sebuah masalah yang sudah ada di daftar issue, harap klaim terlebih dahulu dengan memberikan komentar pada GitHub issue yang ingin kamu kerjakan. Hal ini dilakukan untuk mencegah terjadinya duplikasi dari kontributor pada daftar issue yang sama.
## Pemeriksaan Pull Request
- Branch yang menjadi acuan adalah branch master dari repositori utama dan, jika diperlukan, lakukan rebase ke branch master yang terbaru sebelum kamu mengirim pull request. Apabila terdapat masalah kita melakukan proses merge ke branch master kemungkinan kamu akan diminta untuk melakukan rebase pada perubahan yang sudah dibuat.
- Sebaiknya buatlah commit seminimal mungkin, sambil memastikan bahwa setiap commit yang dibuat sudah benar (contohnya, setiap commit harus bisa di kompilasi dan berhasil melewati tahap test).
- Setiap commit harus disertai dengan tanda tangan Sertifikat Asal Pengembang (Developer Certificate of Origin) (<http://developercertificate.org>), yang mengindikasikan bahwa kamu (and your employer if applicable) bersedia untuk patuh terhadap persyaratan dari [lisensi projek](../LICENCE). Di git bash, ini adalah opsi parameter `-s` pada `git commit`
- Jika perubahan yang kamu buat tidak mendapat tinjauan atau kamu membutuhkan orang tertentu untuk meninjaunya, kamu bisa @-reply seorang reviewer meminta peninjauan dalam permintaan pull request atau komentar, atau kamu bisa meminta tinjauan melalui [email](mailto:info@rustdesk.com).
- Sertakan test yang relevan terhadap bug atau fitur baru yang sudah dikerjakan.
Untuk instruksi Git yang lebih lanjut, cek disini [GitHub workflow 101](https://github.com/servo/servo/wiki/GitHub-workflow).
## Tindakan
<https://github.com/rustdesk/rustdesk/blob/master/docs/CODE_OF_CONDUCT-ID.md>
## Komunikasi
Kontributor RustDesk sering berkunjung ke [Discord](https://discord.gg/nDceKgxnkV).

41
docs/CONTRIBUTING-JP.md Normal file
View File

@@ -0,0 +1,41 @@
# RustDesk へのコントリビュート
RustDesk は皆さんからのコントリビュートを歓迎します。ご協力いただける方のガイドラインは
以下の通りです:
## コントリビューション
RustDesk またはその依存関係へのコントリビュートは、GitHub のプルリクエストの形で行ってください。
それぞれのプルリクエストは、コアコントリビューター(パッチの適用を許可されている人)によってレビューされ、
メインツリーに適用されるか、必要な変更についてのフィードバックが与えられます。
コアコントリビューターからのものであっても、すべてのコントリビューターはこのフォーマットに従うべきです。
ある issue に取り組みたい場合は、GitHub の issue にコメントすることで、まずその対応を主張してください。
これは、同じ issue に対するコントリビューターの重複作業を防ぐためです。
## プルリクエストのチェックリスト
- master ブランチからブランチし、必要であればプルリクエストを提出する前に現在の master ブランチにリベースしてください。
master と正しくマージできない場合、変更をリベースするよう求められる可能性があります。
- コミットは、各コミットが独立して正しい(すなわち、各コミットがコンパイルされ、テストに合格する)ことを保証しながら、
可能な限り小さくすべきです。
- コミットには、Developer Certificate of Origin (http://developercertificate.org) の sign-off を添えてください。
これは、あなた(および該当する場合はあなたの雇用主)が [プロジェクトのライセンス](../LICENCE) の条項に拘束されることに
同意していることを示すものです。git では、これは `git commit``-s` オプションを使います。
- もしあなたのパッチがレビューされなかったり、特定の人にレビューしてもらう必要がある場合、
プルリクエストやコメントでレビューを依頼するレビュアーに@返信したり、[email](mailto:info@rustdesk.com) でレビューを依頼することができます。
- 修正したバグや新機能に関連するテストを追加する。
具体的なgitの手順については、[GitHub workflow 101](https://github.com/servo/servo/wiki/GitHub-workflow)を参照してください。
## 行動規範
https://github.com/rustdesk/rustdesk/blob/master/docs/CODE_OF_CONDUCT.md
## コミュニケーション
RustDesk のコントリビューターは、[Discord](https://discord.gg/nDceKgxnkV) を良く使っています。

40
docs/CONTRIBUTING-KR.md Normal file
View File

@@ -0,0 +1,40 @@
# RustDesk에 기여하기
RustDesk는 모든 분들의 기여를 환영합니다. RustDesk에 기여하고 싶으시다면 아래 가이드를 참고해 주세요:
## 기여 방법
RustDesk 프로젝트 또는 관련 라이브러리에 대한 기여는 GitHub 풀 리퀘스트(Pull Request) 형태로 이루어져야 합니다.
각 풀 리퀘스트는 핵심 기여자(패치 적용 권한이 있는 사람)가 검토하며,
메인 브랜치에 통합되거나 필요한 변경 사항에 대한 피드백을 받게 됩니다.
핵심 기여자를 포함한 모든 기여자는 이 형식을 따라야 합니다.
특정 이슈에 대해 작업하고 싶다면, 먼저 해당 GitHub 이슈에 댓글을 달아 작업 의사를 알려주세요.
이는 여러 기여자가 동일한 이슈에 대해 중복으로 작업하는 것을 방지하기 위함입니다.
## 풀 리퀘스트 체크리스트
- master 브랜치에서 새 브랜치를 만들고, 필요한 경우 Pull Request를 제출하기 전에 현재 master
브랜치로 리베이스하세요. master 브랜치와 깔끔하게 병합(merge)되지 않으면 변경 사항을
리베이스하도록 요청받을 수 있습니다.
- 커밋(commit)은 가능한 한 작게 유지하고, 각 커밋이 독립적으로 올바른지 (즉, 각 커밋이 컴파일되고 테스트를 통과하는지) 확인해야 합니다.
- 커밋에는 개발자 원본 증명서(DCO, Developer Certificate of Origin - http://developercertificate.org) 서명이 포함되어야 합니다. 이는 기여자(해당하는 경우
기여자의 고용주 포함)가 [프로젝트 라이선스](../LICENCE) 조건에 동의함을 의미합니다.
Git에서는 `git commit` 명령어에 `-s` 옵션을 사용합니다.
- 패치가 검토되지 않거나 특정 리뷰어의 검토가 필요하다면, 풀 리퀘스트나 댓글에서
@멘션으로 리뷰어에게 알리거나 [이메일](mailto:info@rustdesk.com)로 검토를 요청할 수 있습니다.
- 수정한 버그나 추가한 기능과 관련된 테스트 코드를 포함해 주세요.
Git 사용에 대한 자세한 내용은 [GitHub workflow 101](https://github.com/servo/servo/wiki/GitHub-workflow) 문서를 참고하세요.
## 기여자 행동 강령
https://github.com/rustdesk/rustdesk/blob/master/docs/CODE_OF_CONDUCT.md
## 소통 채널
RustDesk 기여자들은 주로 [Discord](https://discord.gg/nDceKgxnkV)에서 소통합니다.

46
docs/CONTRIBUTING-NO.md Normal file
View File

@@ -0,0 +1,46 @@
# Bidrag til RustDesk
RustDesk er åpene for bidrag fra alle. Her er reglene for de som har lyst til å
hjelpe oss:
## Bidrag
Bidrag til RustDesk eller deres avhengigheter burde være i form av GitHub pull requests.
Hver pull request vill bli sett igjennom av en kjerne bidrager (noen med autoritet til
å godkjenne endringene) og enten bli sendt til main treet eller respondert med
tilbakemelding på endringer som er nødvendig. Alle bidrag burde følge dette formate
også de fra kjerne bidragere.
Om du ønsker å jobbe på en issue må du huske å gjøre krav på den først. Dette
kann gjøres ved å kommentere på den GitHub issue-en du ønsker å jobbe på.
Dette er for å hindre duplikat innsats på samme problem.
## Pull Request Sjekkliste
- Lag en gren fra master grenen og, hvis det er nødvendig, rebase den til den nåværende
master grenen før du sender inn din pull request. Hvis ikke dette gjøres på rent
vis vill du bli spurt om å rebase dine endringer.
- Commits burde være så små som mulig, samtidig som de må være korrekt uavhenging av hverandre
(hver commit burde kompilere og bestå tester).
- Commits burde være akkopaniert med en Developer Certificate of Origin
(http://developercertificate.org), som indikerer att du (og din arbeidsgiver
i det tilfellet) godkjenner å bli knyttet til vilkårene av [prosjekt lisensen](../LICENCE).
Ved bruk av git er dette `-s` opsjonen til `git commit`.
- Hvis dine endringer ikke blir sett eller hvis du trenger en spesefik person til
å se på dem kan du @-svare en med autoritet til å godkjenne dine endringer.
Dette kann gjøres i en pull request, en kommentar eller via epost på [email](mailto:info@rustdesk.com).
- Legg til tester relevant til en fikset bug eller en ny tilgjengelighet.
For spesefike git instruksjoner, se [GitHub workflow 101](https://github.com/servo/servo/wiki/GitHub-workflow).
## Oppførsel
https://github.com/rustdesk/rustdesk/blob/master/docs/CODE_OF_CONDUCT.md
## Kommunikasjon
RustDesk bidragere burker [Discord](https://discord.gg/nDceKgxnkV).

View File

@@ -5,18 +5,14 @@ RustDesk приветствует вклад каждого.
## Вклад в развитие ## Вклад в развитие
Вклады в развитие RustDesk или его зависимости должны быть Вклады в развитие RustDesk или его зависимости должны быть сделаны в виде `pull request` на GitHub.
сделаны в виде `pull request` на GitHub. Каждый такой Каждый такой `pull request` будет рассмотрен основным участником (кем-то, у кого есть разрешение
`pull request` будет рассмотрен основным участником на влив исправлений) и либо помещен в основное дерево, либо Вам будет дан отзыв о необходимых правках.
(кем-то, у кого есть разрешение на влив исправлений) Все материалы должны соответствовать этому формату, даже те, которые поступают от основных авторов.
и либо помещен в основное дерево, либо Вам будет дан отзыв
о необходимых правках. Все материалы должны соответствовать
этому формату, даже те, которые поступают от основных авторов.
Если вы хотите поработать над какой-либо проблемой, то пожалуйста, Если вы хотите поработать над какой-либо проблемой, то пожалуйста, сначала напишите об этом,
сначала напишите об этом, создав тикет на GitHub, и описав, создав `issue` на GitHub, и описав, над чем вы хотите поработать. Это делается для того,
над чем вы хотите поработать. Это делается для того, чтобы чтобы предотвратить дублирование усилий участников по одному и тому же вопросу.
предотвратить дублирование усилий участников по одному и тому же вопросу.
## Контрольный список для Ваших `pull request` ## Контрольный список для Ваших `pull request`
@@ -24,13 +20,13 @@ RustDesk приветствует вклад каждого.
ветку перед отправкой `pull request`. При наличии конфликтов слияния вам будет ветку перед отправкой `pull request`. При наличии конфликтов слияния вам будет
предложено их устранить, возможно при помощи того же `rebase`. предложено их устранить, возможно при помощи того же `rebase`.
- Коммиты должны быть, по возможности, небольшим, при этом гарантируя, что каждаый - Коммиты должны быть, по возможности, небольшими, при этом гарантируя, что каждый
коммит является независимо правильным (т.е., каждый коммит должен компилироваться и проходить тесты). коммит является независимо правильным (т.е., каждый коммит должен компилироваться и проходить тесты).
- Коммиты должны сопровождаться `Developer Certificate of Origin` - Коммиты должны сопровождаться подписью `Developer Certificate of Origin`
(http://developercertificate.org) подписью, которая укажет на то, что вы (и (http://developercertificate.org), которая укажет на то, что вы (и ваш работодатель,
ваш работодатель, если это применимо) согласны соблюдать условия если это применимо) согласны соблюдать условия [лицензии проекта](../LICENCE).
[лицензии проекта](../LICENCE). В `git` это флаг `-s` при использовании `git commit` В `git` это флаг `-s` при использовании `git commit`
- Если ваш патч не проходит рецензирование или вам нужно, - Если ваш патч не проходит рецензирование или вам нужно,
чтобы его проверил конкретный человек, Вы можете ответить рецензенту через `@`, чтобы его проверил конкретный человек, Вы можете ответить рецензенту через `@`,
@@ -40,7 +36,7 @@ RustDesk приветствует вклад каждого.
Для получения конкретных инструкций `git` см. [GitHub workflow 101](https://github.com/servo/servo/wiki/Github-workflow). Для получения конкретных инструкций `git` см. [GitHub workflow 101](https://github.com/servo/servo/wiki/Github-workflow).
## Кодекс поведения участников и вкладчиков ## Правила поведения участников и вкладчиков
Нормы поведения внутри сообщества подробно описаны [здесь](CODE_OF_CONDUCT-RU.md). Нормы поведения внутри сообщества подробно описаны [здесь](CODE_OF_CONDUCT-RU.md).

31
docs/CONTRIBUTING-TR.md Normal file
View File

@@ -0,0 +1,31 @@
# RustDesk'a Katkı Sağlamak
RustDesk, herkesten katkıyı memnuniyetle karşılar. Eğer bize yardımcı olmayı düşünüyorsanız, işte rehberlik eden kurallar:
## Katkılar
RustDesk veya bağımlılıklarına yapılan katkılar, GitHub pull istekleri şeklinde yapılmalıdır. Her bir pull isteği, çekirdek katkıcı tarafından gözden geçirilecek (yamaları kabul etme izni olan biri) ve ana ağaca kabul edilecek veya gerekli değişiklikler için geri bildirim verilecektir. Tüm katkılar bu formata uymalıdır, çekirdek katkıcılardan gelenler bile.
Eğer bir konu üzerinde çalışmak isterseniz, önce üzerinde çalışmak istediğinizi belirten bir yorum yaparak konuyu talep ediniz. Bu, katkı sağlayanların aynı konuda çift çalışmasını engellemek içindir.
## Pull İstek Kontrol Listesi
- Master dalından dallandırın ve gerekiyorsa pull isteğinizi göndermeden önce mevcut master dalına rebase yapın. Eğer master ile temiz bir şekilde birleşmezse, değişikliklerinizi rebase yapmanız istenebilir.
- Her bir commit mümkün olduğunca küçük olmalıdır, ancak her commit'in bağımsız olarak doğru olduğundan emin olun (örneğin, her commit derlenebilir ve testleri geçmelidir).
- Commit'ler, bir Geliştirici Sertifikası ile desteklenmelidir (http://developercertificate.org). Bu, [proje lisansının](../LICENCE) koşullarına uymayı kabul ettiğinizi gösteren bir onaydır. Git'te bunu `git commit` seçeneği olarak `-s` seçeneği ile yapabilirsiniz.
- Yamalarınız gözden geçirilmiyorsa veya belirli bir kişinin gözden geçirmesine ihtiyacınız varsa, çekme isteği veya yorum içinde bir gözden geçirmeyi istemek için bir inceleyiciyi @etiketleyebilir veya inceleme için [e-posta](mailto:info@rustdesk.com) ile talep edebilirsiniz.
- Düzelttiğiniz hatanın veya eklediğiniz yeni özelliğin ilgili testlerini ekleyin.
Daha spesifik git talimatları için, [GitHub iş akışı 101](https://github.com/servo/servo/wiki/GitHub-workflow)'e bakınız.
## Davranış
https://github.com/rustdesk/rustdesk/blob/master/docs/CODE_OF_CONDUCT-TR.md
## İletişim
RustDesk katkı sağlayıcıları, [Discord](https://discord.gg/nDceKgxnkV) kanalını sık sık ziyaret ederler.

32
docs/CONTRIBUTING-ZH.md Normal file
View File

@@ -0,0 +1,32 @@
# 为RustDesk做贡献
Rust欢迎每一位贡献者如果您有意向为我们做出贡献请遵循以下指南
## 贡献方式
对 RustDesk 或其依赖项的贡献需要通过 GitHub 的 Pull Request (PR) 的形式提交。每个 PR 都会由核心贡献者(即有权限合并代码的人)进行审核,审核通过后代码会合并到主分支,或者您会收到需要修改的反馈。所有贡献者,包括核心贡献者,提交的代码都应遵循此流程。
如果您希望处理某个问题,请先在对应的 GitHub issue 下发表评论,声明您将处理该问题,以避免该问题被多位贡献者重复处理。
## PR 注意事项
- 从 master 分支创建一个新的分支并在提交PR之前如果需要将您的分支 变基(rebase) 到最新的 master 分支。如果您的分支无法顺利合并到 master 分支,您可能会被要求更新您的代码。
- 每次提交的改动应该尽可能少,并且要保证每次提交的代码都是正确的(即每个 commit 都应能成功编译并通过测试)。
- 每个提交都应附有开发者证书签名(http://developercertificate.org), 表明您(以及您的雇主,若适用)同意遵守项目[许可证条款](../LICENCE)。在使用 git 提交代码时,可以通过在 `git commit` 时使用 `-s` 选项加入签名
- 如果您的 PR 未被及时审核,或需要指定的人员进行审核,您可以通过在 PR 或评论中 @ 提到相关审核者,以及发送[电子邮件](mailto:info@rustdesk.com)的方式请求审核。
- 请为修复的 bug 或新增的功能添加相应的测试用例。
有关具体的 git 使用说明,请参考[GitHub workflow 101](https://github.com/servo/servo/wiki/GitHub-workflow).
## 行为准则
请遵守项目的[贡献者公约行为准则](./CODE_OF_CONDUCT-ZH.md)。
## 沟通渠道
RustDesk 的贡献者主要通过 [Discord](https://discord.gg/nDceKgxnkV) 进行交流。

14
docs/DEVCONTAINER-JP.md Normal file
View File

@@ -0,0 +1,14 @@
docker コンテナで devcontainer を起動すると、デバッグモードの linux バイナリが作成されます。
現在 devcontainer では、Linux と android のビルドをデバッグモードとリリースモードの両方で提供しています。
以下は、特定のビルドを作成するためにプロジェクトのルートから実行するコマンドの表になります。
コマンド|ビルド タイプ|モード
-|-|-|
`.devcontainer/build.sh --debug linux`|Linux|debug
`.devcontainer/build.sh --release linux`|Linux|release
`.devcontainer/build.sh --debug android`|android-arm64|debug
`.devcontainer/build.sh --release android`|android-arm64|release

14
docs/DEVCONTAINER-NO.md Normal file
View File

@@ -0,0 +1,14 @@
Etter start av devcontainer i docker konteineren, blir en linux binærfil i debug modus laget.
Nå tilbyr devcontainer linux og android builds i både debug og release modus.
Under er tabellen over kommandoer som kan kjøres fra rot-direktive for kreasjon av spesefike builds.
Kommando|Build Type|Modus
-|-|-|
`.devcontainer/build.sh --debug linux`|Linux|debug
`.devcontainer/build.sh --release linux`|Linux|release
`.devcontainer/build.sh --debug android`|android-arm64|debug
`.devcontainer/build.sh --release android`|android-arm64|release

12
docs/DEVCONTAINER-TR.md Normal file
View File

@@ -0,0 +1,12 @@
Docker konteynerinde devcontainer'ın başlatılmasından sonra, hata ayıklama modunda bir Linux ikili dosyası oluşturulur.
Şu anda devcontainer, hata ayıklama ve sürüm modunda hem Linux hem de Android derlemeleri sunmaktadır.
Aşağıda, belirli derlemeler oluşturmak için projenin kökünden çalıştırılması gereken komutlar yer almaktadır.
Komut | Derleme Türü | Mod
-|-|-
`.devcontainer/build.sh --debug linux` | Linux | hata ayıklama
`.devcontainer/build.sh --release linux` | Linux | sürüm
`.devcontainer/build.sh --debug android` | Android-arm64 | hata ayıklama
`.devcontainer/build.sh --release android` | Android-arm64 | sürüm

View File

@@ -9,7 +9,7 @@
<b> لغتك الأم, <a href="https://github.com/rustdesk/doc.rustdesk.com">Doc</a> و <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a>, README نحن بحاجة إلى مساعدتك لترجمة هذا </b> <b> لغتك الأم, <a href="https://github.com/rustdesk/doc.rustdesk.com">Doc</a> و <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a>, README نحن بحاجة إلى مساعدتك لترجمة هذا </b>
</p> </p>
[Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) :تواصل معنا عبر [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk) :تواصل معنا عبر
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -27,13 +27,6 @@
[**BINARY تنزيل**](https://github.com/rustdesk/rustdesk/releases) [**BINARY تنزيل**](https://github.com/rustdesk/rustdesk/releases)
## خوادم مفتوحة ومجانية
فيما يلي الخوادم التي تستخدمها مجانًا، وقد تتغير طوال الوقت. إذا لم تكن قريبًا من أحد هؤلاء، فقد تكون شبكتك بطيئة.
| الموقع | المورد | المواصفات |
| --------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4 GB RAM |
## التبعيات ## التبعيات
@@ -118,10 +111,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### X11 (Xorg) إلى Wayland تغيير
افتراضية GNOME session ك Xorg إتبع [هذه](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) الخطوات لإعداد Wayland لا تدعم RustDesk
## Docker طريقة البناء باستخدام ## Docker طريقة البناء باستخدام
ابدأ باستنساخ المستودع وبناء الكونتاينر: ابدأ باستنساخ المستودع وبناء الكونتاينر:

View File

@@ -6,10 +6,10 @@
<a href="#file-structure">Struktura</a> <a href="#file-structure">Struktura</a>
<a href="#snapshot">Ukázky</a><br> <a href="#snapshot">Ukázky</a><br>
[<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br> [<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br>
<b>Potřebujeme Vaši pomoc s překláním textů tohoto ČTIMNE, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">uživatelského rozhraní aplikace RustDesk</a> a <a href="https://github.com/rustdesk/doc.rustdesk.com">dokumentace k ní</a> do vašeho jazyka</b> <b>Potřebujeme Vaši pomoc s překladem tohoto README, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">uživatelského rozhraní aplikace RustDesk</a> a <a href="https://github.com/rustdesk/doc.rustdesk.com">dokumentace k ní</a> do vašeho jazyka</b>
</p> </p>
Dopisujte si s námi: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Popovídejte si s námi: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -22,14 +22,6 @@ Projekt RustDesk vítá přiložení ruky k dílu od každého. Jak začít se d
[**STAHOVÁNÍ ZKOMPILOVANÝCH APLIKACÍ**](https://github.com/rustdesk/rustdesk/releases) [**STAHOVÁNÍ ZKOMPILOVANÝCH APLIKACÍ**](https://github.com/rustdesk/rustdesk/releases)
## Veřejné, zdarma službu nabízející servery
Níže jsou uvedeny servery zdarma k vašemu použití (údaje se mohou v čase měnit). Pokud se nenacházíte v oblastech světa poblíž nich, spojení může být pomalé.
| umístění | dodavatel | parametry |
| --------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4 GB RAM |
## Softwarové součásti, na kterých závisí ## Softwarové součásti, na kterých závisí
Varianta pro počítač používá pro grafické uživatelské rozhraní [sciter](https://sciter.com/) stáhněte si potřebnou knihovnu. Varianta pro počítač používá pro grafické uživatelské rozhraní [sciter](https://sciter.com/) stáhněte si potřebnou knihovnu.
@@ -44,7 +36,7 @@ Varianta pro mobilní platformy používá aplikační rámec (framework) Flutte
- Připravte si vývojové prostředí pro jazyky Rust a C++ - Připravte si vývojové prostředí pro jazyky Rust a C++
- Nainstalujte [vcpkg](https://github.com/microsoft/vcpkg), a nastavte správně proměnnou prostsředí `VCPKG_ROOT` - Nainstalujte [vcpkg](https://github.com/microsoft/vcpkg), a správně nastavte proměnnou prostředí `VCPKG_ROOT`
- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static - Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
- Linux/MacOS: vcpkg install libvpx libyuv opus aom - Linux/MacOS: vcpkg install libvpx libyuv opus aom
@@ -111,10 +103,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Změna z Wayland na X11 (Xorg)
RustDesk (zatím) nepodporuje zobrazovací server Wayland. Jak nastavit Xorg jako výchozí pro relace v prostředí GNOME naleznete [zde](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/).
## Jak sestavit prostřednictvím Docker kontejnerizace ## Jak sestavit prostřednictvím Docker kontejnerizace
Začněte tím, že si naklonujete tento repozitář a sestavíte docker kontejner: Začněte tím, že si naklonujete tento repozitář a sestavíte docker kontejner:
@@ -131,7 +119,7 @@ Poté pokaždé, když bude třeba aplikaci sestavit, spusťte následující p
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
``` ```
Všimněte si, že prvotní sestavení může trvat déle (než se do mezipaměti uloží veškeré softwarové součásti, které jsou potřeba) následná opakování už budou rychlejší. Dále, pokud potřebujete příkazu pro sestavení zadat nějaké argumenty, je možné je zapsat na konec příkazu na pozici `<OPTIONAL-ARGS>`. Například, pokud byste chtěli sestavit optimalizovaně pro vydání, spustili byste výše uvedený příkaz následovaný `--release`. Výsledný spustitelný soubor se objeví v cílové složce na vašem systému a bude ho možné spustit pomocí: Všimněte si, že prvotní sestavení může trvat déle (než se do mezipaměti uloží veškeré softwarové součásti, které jsou potřeba) následná opakování už budou rychlejší. Pokud navíc potřebujete zadat různé argumenty příkazu pro sestavení, můžete tak učinit na konci příkazu v pozici `<OPTIONAL-ARGS>`. Například, pokud byste chtěli sestavit optimalizovanou verzi pro vydání, spustili byste výše uvedený příkaz následovaný `--release`. Výsledný spustitelný soubor se objeví v cílové složce na vašem systému a bude ho možné spustit pomocí:
```sh ```sh
target/debug/rustdesk target/debug/rustdesk
@@ -143,7 +131,7 @@ Nebo, pokud spouštíte variantu pro vydání:
target/release/rustdesk target/release/rustdesk
``` ```
Zajistětě, abyste tyto příkazy spouštěli z kořene repozitáře s RustDesk, jinak aplikace nemusí být schopná nalézt potřebné prostředky (resources). Také si všimněte, že ostatní dílčí príkazy nástroje cargo, jako třeba `install` nebo `run` zatím nejsou prostřednictvím této metody podporovány, protože by vedly k instalaci či spuštění program uvnitř kontejneru namísto přímo v systému. Ujistěte se, že tyto příkazy spouštíte z kořenového adresáře RustDesk, jinak aplikace nemusí být schopná nalézt potřebné prostředky (resources). Také si všimněte, že ostatní dílčí príkazy nástroje cargo, jako třeba `install` nebo `run` zatím nejsou prostřednictvím této metody podporovány, protože by vedly k instalaci či spuštění program uvnitř kontejneru namísto přímo v systému.
## Struktura souborů ## Struktura souborů

View File

@@ -9,24 +9,16 @@
<b>Vi har brug for din hjælp til at oversætte denne README, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> og <a href=" https://github.com/rustdesk/doc.rustdesk.com">Dokument</a> til dit modersmål</b> <b>Vi har brug for din hjælp til at oversætte denne README, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> og <a href=" https://github.com/rustdesk/doc.rustdesk.com">Dokument</a> til dit modersmål</b>
</p> </p>
Chat med os: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Chat med os: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Endnu en fjernskrivebordssoftware, skrevet i Rust. Fungerer ud af æsken, ingen konfiguration påkrævet. Du har fuld kontrol over dine data uden bekymringer om sikkerhed. Du kan bruge vores rendezvous/relay-server, [opsætte din egen](https://rustdesk.com/server), eller [skrive din egen rendezvous/relay-server](https://github.com/rustdesk/rustdesk- server-demo). Endnu en fjernskrivebordssoftware, skrevet i Rust. Fungerer ud af æsken, ingen konfiguration påkrævet. Du har fuld kontrol over dine data uden bekymringer om sikkerhed. Du kan bruge vores rendezvous/relay-server, [opsætte din egen](https://rustdesk.com/server), eller [skrive din egen rendezvous/relay-server](https://github.com/rustdesk/rustdesk- server-demo).
RustDesk hilser bidrag fra alle velkommen. Se [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md) for at få hjælp til at komme i gang. RustDesk hilser bidrag fra alle velkommen. Se [`docs/CONTRIBUTING.md`](CONTRIBUTING.md) for at få hjælp til at komme i gang.
[**PROGRAM DOWNLOAD**](https://github.com/rustdesk/rustdesk/releases) [**PROGRAM DOWNLOAD**](https://github.com/rustdesk/rustdesk/releases)
## Gratis offentlige servere
Nedenfor er de servere, du bruger gratis, det kan ændre sig med tiden. Hvis du ikke er tæt på en af disse, kan dit netværk være langsomt.
| Beliggenhed | Udbyder | Specifikation |
| ---------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
## Afhængigheder ## Afhængigheder
Desktopversioner bruger [sciter](https://sciter.com/) eller Flutter til GUI, denne vejledning er kun for Sciter. Desktopversioner bruger [sciter](https://sciter.com/) eller Flutter til GUI, denne vejledning er kun for Sciter.
@@ -108,33 +100,6 @@ mv libsciter-gtk.so target/debug
cargo run cargo run
``` ```
### Skift Wayland til X11 (Xorg)
RustDesk understøtter ikke Wayland. Tjek [dette](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) for at konfigurere Xorg som standard GNOME-session.
## Wayland-support
Wayland ser ikke ud til at levere nogen API til at sende tastetryk til andre vinduer. Derfor bruger rustdesk et API fra et lavere niveau, nemlig `/dev/uinput`-enheden (Linux-kerneniveau).
Når wayland er den kontrollerede side, skal du starte på følgende måde:
```bash
# Start uinput service
$ sudo rustdesk --service
$ rustdesk
```
**Bemærk**: Wayland-skærmoptagelse bruger forskellige grænseflader. RustDesk understøtter i øjeblikket kun org.freedesktop.portal.ScreenCast.
```bash
$ dbus-send --session --print-reply \
--dest=org.freedesktop.portal.Desktop \
/org/freedesktop/portal/desktop \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.portal.ScreenCast string:version
# Not support
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Support
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
variant uint32 4
```
## Sådan bygger du med Docker ## Sådan bygger du med Docker
```sh ```sh

View File

@@ -9,7 +9,12 @@
<b>Wir brauchen Ihre Hilfe, um dieses README, die <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk-Benutzeroberfläche</a> und die <a href="https://github.com/rustdesk/doc.rustdesk.com">Dokumentation</a> in Ihre Muttersprache zu übersetzen.</b> <b>Wir brauchen Ihre Hilfe, um dieses README, die <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk-Benutzeroberfläche</a> und die <a href="https://github.com/rustdesk/doc.rustdesk.com">Dokumentation</a> in Ihre Muttersprache zu übersetzen.</b>
</p> </p>
Reden Sie mit uns auf: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) > [!Vorsicht]
> **Haftungsausschluss bei Missbrauch::** <br>
> Die Entwickler von RustDesk billigen oder unterstützen keine unethische oder illegale Nutzung dieser Software. Missbrauch, wie unbefugter Zugriff, unbefugte Kontrolle oder Verletzung der Privatsphäre, verstößt strikt gegen unsere Richtlinien. Die Autoren sind nicht verantwortlich für jeglichen Missbrauch der Anwendung.
Reden Sie mit uns auf: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -29,22 +34,6 @@ RustDesk heißt jegliche Mitarbeit willkommen. Schauen Sie sich [CONTRIBUTING-DE
alt="Get it on F-Droid" alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
## Freie öffentliche Server
Nachfolgend sind die Server gelistet, die Sie kostenlos nutzen können. Es kann sein, dass sich diese Liste immer mal wieder ändert. Falls Sie nicht in der Nähe einer dieser Server sind, kann es sein, dass Ihre Verbindung langsam sein wird.
| Standort | Anbieter | Spezifikation |
| --------- | ------------- | ------------------ |
| Deutschland | [Hetzner](https://www.hetzner.com/de/) | 2 vCPU / 4 GB RAM |
| Ukraine (Kiew) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4 GB RAM |
## Dev-Container
[![In Dev-Containern öffnen](https://img.shields.io/static/v1?label=Dev%20Container&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/rustdesk/rustdesk)
Wenn Sie VS Code und Docker bereits installiert haben, können Sie auf das Abzeichen oben klicken, um loszulegen. Wenn Sie darauf klicken, wird VS Code automatisch die Dev-Container-Erweiterung installieren, den Quellcode in ein Container-Volume klonen und einen Dev-Container für die Verwendung aufsetzen.
Weitere Informationen finden Sie in [DEVCONTAINER-DE.md](DEVCONTAINER-DE.md).
## Abhängigkeiten ## Abhängigkeiten
Desktop-Versionen verwenden [Sciter](https://sciter.com/) oder Flutter für die GUI, dieses Tutorial ist nur für Sciter. Desktop-Versionen verwenden [Sciter](https://sciter.com/) oder Flutter für die GUI, dieses Tutorial ist nur für Sciter.
@@ -133,34 +122,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Wayland zu X11 (Xorg) ändern
RustDesk unterstützt Wayland nicht. Siehe [hier](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/), um Xorg als Standard-GNOME-Sitzung zu nutzen.
## Wayland-Unterstützung
Wayland scheint keine API für das Senden von Tastatureingaben an andere Fenster zu bieten. Daher verwendet RustDesk eine API von einer niedrigeren Ebene, nämlich dem Gerät `/dev/uinput` (Linux-Kernelebene).
Wenn Wayland die kontrollierte Seite ist, müssen Sie wie folgt vorgehen:
```bash
# Dienst uinput starten
$ sudo rustdesk --service
$ rustdesk
```
**Hinweis**: Die Wayland-Bildschirmaufnahme verwendet verschiedene Schnittstellen. RustDesk unterstützt derzeit nur org.freedesktop.portal.ScreenCast.
```bash
$ dbus-send --session --print-reply \
--dest=org.freedesktop.portal.Desktop \
/org/freedesktop/portal/desktop \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.portal.ScreenCast string:version
# Keine Unterstützung
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Unterstützung
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
variant uint32 4
```
## Auf Docker kompilieren ## Auf Docker kompilieren
Beginnen Sie damit, das Repository zu klonen und den Docker-Container zu bauen: Beginnen Sie damit, das Repository zu klonen und den Docker-Container zu bauen:

View File

@@ -9,7 +9,7 @@
<b>Ni bezonas helpon traduki tiun README kaj <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">la interfacon</a> al via denaska lingvo</b> <b>Ni bezonas helpon traduki tiun README kaj <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">la interfacon</a> al via denaska lingvo</b>
</p> </p>
Babili kun ni: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Babili kun ni: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -19,14 +19,6 @@ RustDesk bonvenigas kontribuon de ĉiuj. Vidu [`docs/CONTRIBUTING.md`](CONTRIBUT
[**BINARA ELŜUTO**](https://github.com/rustdesk/rustdesk/releases) [**BINARA ELŜUTO**](https://github.com/rustdesk/rustdesk/releases)
## Senpagaj publikaj serviloj
Malsupre estas la serviloj, kiuj vi uzas senpage, ĝi povas ŝanĝi laŭlonge de la tempo. Se vi ne estas proksima de unu de tiuj, via reto povas esti malrapida.
| Situo | Vendanto | Detaloj |
| --------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dependantaĵoj ## Dependantaĵoj
La labortabla versio uzas [sciter](https://sciter.com/) por la interfaco, bonvolu elŝuti la bibliotekon dinamikan sciter. La labortabla versio uzas [sciter](https://sciter.com/) por la interfaco, bonvolu elŝuti la bibliotekon dinamikan sciter.
@@ -104,10 +96,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Ŝanĝi Wayland por X11 (Xorg)
RustDesk ne subtenas Wayland. Kontrolu [tion](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) por agordi Xorg kiel defaŭlta sesio GNOME.
## Kiel kompili kun Docker ## Kiel kompili kun Docker
Komencu klonante la deponejon kaj kompilu la konteneron Docker: Komencu klonante la deponejon kaj kompilu la konteneron Docker:

View File

@@ -9,12 +9,18 @@
<b>Necesitamos tu ayuda para traducir este README a tu idioma</b> <b>Necesitamos tu ayuda para traducir este README a tu idioma</b>
</p> </p>
Chatea con nosotros: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) > [!Caution]
> **Descargo de responsabilidad por mal uso:** <br>
> Los desarrolladores de RustDesk no aprueban ni apoyan ningún uso no ético o ilegal de este software. El mal uso, como el acceso no autorizado, el control o la invasión de la privacidad, va estrictamente en contra de nuestras directrices. Los autores no se hacen responsables de ningún uso indebido de la aplicación.
Chatea con nosotros: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Otro software de escritorio remoto, escrito en Rust. Funciona de forma inmediata, sin necesidad de configuración. Tienes el control total de tus datos, sin preocupaciones sobre la seguridad. Puedes utilizar nuestro servidor de rendezvous/relay, [instalar el tuyo](https://rustdesk.com/server), o [escribir tu propio servidor rendezvous/relay](https://github.com/rustdesk/rustdesk-server-demo). Otro software de escritorio remoto, escrito en Rust. Funciona de forma inmediata, sin necesidad de configuración. Tienes el control total de tus datos, sin preocupaciones sobre la seguridad. Puedes utilizar nuestro servidor de rendezvous/relay, [instalar el tuyo](https://rustdesk.com/server), o [escribir tu propio servidor rendezvous/relay](https://github.com/rustdesk/rustdesk-server-demo).
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
RustDesk agradece la contribución de todo el mundo. Lee [`docs/CONTRIBUTING.md`](CONTRIBUTING.md) para ayuda para empezar. RustDesk agradece la contribución de todo el mundo. Lee [`docs/CONTRIBUTING.md`](CONTRIBUTING.md) para ayuda para empezar.
[**¿Cómo funciona rustdesk?**](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) [**¿Cómo funciona rustdesk?**](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F)
@@ -24,21 +30,15 @@ RustDesk agradece la contribución de todo el mundo. Lee [`docs/CONTRIBUTING.md`
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" [<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid" alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
[<img src="https://flathub.org/api/badge?svg&locale=en"
## Servidores gratis de uso público alt="Get it on Flathub"
height="80">](https://flathub.org/apps/com.rustdesk.RustDesk)
A continuación se muestran los servidores gratuitos, pueden cambiar a medida que pasa el tiempo. Si no estás cerca de uno de ellos, tu conexión puede ser lenta.
| Ubicación | Compañía | Especificación |
| --------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dependencias ## Dependencias
La versión Desktop usa [Sciter](https://sciter.com/) o Flutter para el GUI, este tutorial es solo para Sciter. Las versiones de escritorio utilizan Flutter o Sciter (obsoleto) para GUI, este tutorial es sólo para Sciter, ya que es más fácil y más amigable para empezar. Echa un vistazo a nuestro [CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) para la construcción de la versión Flutter.
Por favor descarga la librería dinámica de Sciter tu mismo. Por favor descarga la librería dinámica de Sciter tú mismo.
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) | [Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) |
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) | [Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
@@ -60,13 +60,21 @@ Por favor descarga la librería dinámica de Sciter tu mismo.
### Ubuntu 18 (Debian 10) ### Ubuntu 18 (Debian 10)
```sh ```sh
sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpam0g-dev
```
### openSUSE Tumbleweed
```sh
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel pam-devel
``` ```
### Fedora 28 (CentOS 8) ### Fedora 28 (CentOS 8)
```sh ```sh
sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel gstreamer1-devel gstreamer1-plugins-base-devel pam-devel
``` ```
### Arch (Manjaro) ### Arch (Manjaro)
@@ -105,40 +113,12 @@ cd
```sh ```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk cd rustdesk
mkdir -p target/debug mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug mv libsciter-gtk.so target/debug
cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
```
### Cambia Wayland a X11 (Xorg)
RustDesk no soporta Wayland. Lee [esto](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) para configurar Xorg en la sesión por defecto de GNOME.
## Soporte para Wayland
Wayland no parece proporcionar ninguna API para enviar pulsaciones de teclas a otras ventanas. Por lo tanto, rustdesk usa una API de nivel bajo, a saber, el dispositivo `/dev/uinput` (a nivel del kernel de Linux).
Cuando wayland esta del lado controlado, hay que iniciar de la siguiente manera:
```bash
# Empezar el servicio uinput
$ sudo rustdesk --service
$ rustdesk
```
**Aviso**: La grabación de pantalla de Wayland utiliza diferentes interfaces. RustDesk actualmente sólo soporta org.freedesktop.portal.ScreenCast
```bash
$ dbus-send --session --print-reply \
--dest=org.freedesktop.portal.Desktop \
/org/freedesktop/portal/desktop \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.portal.ScreenCast string:version
# No soportado
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Soportado
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
variant uint32 4
``` ```
## Como compilar con Docker ## Como compilar con Docker
@@ -148,10 +128,11 @@ Empieza clonando el repositorio y compilando el contenedor de docker:
```sh ```sh
git clone https://github.com/rustdesk/rustdesk git clone https://github.com/rustdesk/rustdesk
cd rustdesk cd rustdesk
git submodule update --init --recursive
docker build -t "rustdesk-builder" . docker build -t "rustdesk-builder" .
``` ```
Entonces, cada vez que necesites compilar una modificación, ejecuta el siguiente comando: Entonces, cada vez que necesites compilar la aplicación, ejecuta el siguiente comando:
```sh ```sh
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
@@ -184,12 +165,16 @@ Por favor, asegurate de que estás ejecutando estos comandos desde la raíz del
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: Flutter, código para moviles - **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: Flutter, código para moviles
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: Javascript para el cliente web Flutter - **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: Javascript para el cliente web Flutter
> [!Precaución]
> **Descargo de responsabilidad por uso indebido:** <br>
> Los desarrolladores de RustDesk no aprueban ni apoyan ningún uso no ético o ilegal de este software. El uso indebido, como el acceso no autorizado, el control o la invasión de la privacidad, está estrictamente en contra de nuestras directrices. Los autores no son responsables de ningún uso indebido de la aplicación.
## Capturas de pantalla ## Capturas de pantalla
![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png) ![Connection Manager](https://github.com/rustdesk/rustdesk/assets/28412477/db82d4e7-c4bc-4823-8e6f-6af7eadf7651)
![image](https://user-images.githubusercontent.com/71636191/113112619-f705a480-923b-11eb-911d-97e984ef52b6.png) ![Connected to a Windows PC](https://github.com/rustdesk/rustdesk/assets/28412477/9baa91e9-3362-4d06-aa1a-7518edcbd7ea)
![image](https://user-images.githubusercontent.com/71636191/113112857-3fbd5d80-923c-11eb-9836-768325faf906.png) ![File Transfer](https://github.com/rustdesk/rustdesk/assets/28412477/39511ad3-aa9a-4f8c-8947-1cce286a46ad)
![image](https://user-images.githubusercontent.com/71636191/135385039-38fdbd72-379a-422d-b97f-33df71fb1cec.png) ![TCP Tunneling](https://github.com/rustdesk/rustdesk/assets/28412477/78e8708f-e87e-4570-8373-1360033ea6c5)

View File

@@ -9,7 +9,7 @@
<p align="center" dir="auto">[<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]</p> <p align="center" dir="auto">[<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]</p>
<p dir="rtl" align="center"><b>برای ترجمه این سند (README)، <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang" dir="rtl">رابط کاربری RustDesk</a>، <a href="https://github.com/rustdesk/doc.rustdesk.com" dir="rtl">و مستندات آن</a> به زبان مادری شما به کمکتان نیازمندیم. </b></p> <p dir="rtl" align="center"><b>برای ترجمه این سند (README)، <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang" dir="rtl">رابط کاربری RustDesk</a>، <a href="https://github.com/rustdesk/doc.rustdesk.com" dir="rtl">و مستندات آن</a> به زبان مادری شما به کمکتان نیازمندیم. </b></p>
با ما گفتگو کنید: [Reddit](https://www.reddit.com/r/rustdesk) | [Twitter](https://twitter.com/rustdesk) | [Discord](https://discord.gg/nDceKgxnkV) با ما گفتگو کنید: [Reddit](https://www.reddit.com/r/rustdesk) | [Twitter](https://twitter.com/rustdesk) | [Discord](https://discord.gg/nDceKgxnkV) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -25,13 +25,6 @@
[دریافت نرم‌افزار](https://github.com/rustdesk/rustdesk/releases) [دریافت نرم‌افزار](https://github.com/rustdesk/rustdesk/releases)
## سرورهای عمومی رایگان
شما مي‌توانید از سرورهای زیر به رایگان استفاده کنید. این لیست ممکن است به مرور زمان تغییر می‌کند. اگر به این سرورها نزدیک نیستید، ممکن است اتصال شما کند باشد.
| موقعیت | سرویس دهنده | مشخصات |
| --------- | ------------- | ------------------ |
| آلمان | Hetzner | 2 vCPU / 4GB RAM |
## وابستگی ها ## وابستگی ها
نسخه‌های رومیزی از [sciter](https://sciter.com/) برای رابط کاربری گرافیکی استفاده می‌کنند. خواهشمندیم کتابخانه‌ی پویای sciter را خودتان دانلود کنید از این منابع دریافت کنید. نسخه‌های رومیزی از [sciter](https://sciter.com/) برای رابط کاربری گرافیکی استفاده می‌کنند. خواهشمندیم کتابخانه‌ی پویای sciter را خودتان دانلود کنید از این منابع دریافت کنید.
@@ -112,10 +105,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### تغییر Wayland به (X11 (Xorg
راست‌دسک از Wayland پشتیبانی نمی کند. برای جایگزنی Xorg به عنوان پیش‌فرض GNOM، [اینجا](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) را کلیک کنید.
## نحوه ساخت با داکر ## نحوه ساخت با داکر
این مخزن Git را دریافت کنید و کانتینر را به روش زیر بسازید این مخزن Git را دریافت کنید و کانتینر را به روش زیر بسازید

View File

@@ -9,7 +9,7 @@
<b>Tarvitsemme apua tämän README-tiedoston kääntämiseksi äidinkielellesi</b> <b>Tarvitsemme apua tämän README-tiedoston kääntämiseksi äidinkielellesi</b>
</p> </p>
Juttele meidän kanssa: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Juttele meidän kanssa: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -19,14 +19,6 @@ RustDesk toivottaa avustukset tervetulleiksi kaikilta. Katso lisätietoja [`docs
[**BINAARILATAUS**](https://github.com/rustdesk/rustdesk/releases) [**BINAARILATAUS**](https://github.com/rustdesk/rustdesk/releases)
## Vapaita julkisia palvelimia
Alla on palvelimia, joita voit käyttää ilmaiseksi, ne saattavat muuttua ajan mittaan. Jos et ole lähellä yhtä näistä, verkkosi voi olla hidas.
| Sijainti | Myyjä | Määrittely |
| --------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Riippuvuudet ## Riippuvuudet
Desktop-versiot käyttävät [sciter](https://sciter.com/) graafisena käyttöliittymänä, lataa sciter-dynaaminen kirjasto itsellesi. Desktop-versiot käyttävät [sciter](https://sciter.com/) graafisena käyttöliittymänä, lataa sciter-dynaaminen kirjasto itsellesi.
@@ -104,10 +96,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Vaihda Wayland-ympäristö X11 (Xorg)-ympäristöön
RustDesk ei tue Waylandia. Tarkista [tämä](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) asettamalla Xorg oletus GNOME-istuntoon.
## Kuinka rakennetaan Dockerin kanssa ## Kuinka rakennetaan Dockerin kanssa
Aloita kloonaamalla tietovarasto ja rakentamalla docker-säiliö: Aloita kloonaamalla tietovarasto ja rakentamalla docker-säiliö:

View File

@@ -9,7 +9,7 @@
<b>Nous avons besoin de votre aide pour traduire ce README dans votre langue maternelle</b>. <b>Nous avons besoin de votre aide pour traduire ce README dans votre langue maternelle</b>.
</p> </p>
Chattez avec nous : [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Chattez avec nous : [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -19,14 +19,6 @@ RustDesk accueille les contributions de tout le monde. Voir [`docs/CONTRIBUTING.
[**TÉLÉCHARGEMENT BINAIRE**](https://github.com/rustdesk/rustdesk/releases) [**TÉLÉCHARGEMENT BINAIRE**](https://github.com/rustdesk/rustdesk/releases)
## Serveurs publics libres
Ci-dessous se trouvent les serveurs que vous utilisez gratuitement, cela peut changer au fil du temps. Si vous n'êtes pas proche de l'un d'entre eux, votre réseau peut être lent.
| Location | Vendor | Specification |
| --------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
## Dépendances ## Dépendances
Les versions de bureau utilisent [sciter](https://sciter.com/) pour l'interface graphique, veuillez télécharger la bibliothèque dynamique sciter vous-même. Les versions de bureau utilisent [sciter](https://sciter.com/) pour l'interface graphique, veuillez télécharger la bibliothèque dynamique sciter vous-même.
@@ -104,10 +96,6 @@ mv libsciter-gtk.so target/debug
Exécution du cargo Exécution du cargo
``` ```
### Changer Wayland en X11 (Xorg)
RustDesk ne supporte pas Wayland. Lisez [cela](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) pour configurer Xorg comme la session GNOME par défaut.
## Comment construire avec Docker ## Comment construire avec Docker
Commencez par cloner le dépôt et construire le conteneur Docker : Commencez par cloner le dépôt et construire le conteneur Docker :
@@ -149,6 +137,10 @@ Veuillez vous assurer que vous exécutez ces commandes à partir de la racine du
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)** : Communiquer avec [rustdesk-server](https://github.com/rustdesk/rustdesk-server), attendre une connexion distante directe (TCP hole punching) ou relayée. - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)** : Communiquer avec [rustdesk-server](https://github.com/rustdesk/rustdesk-server), attendre une connexion distante directe (TCP hole punching) ou relayée.
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)** : code spécifique à la plateforme - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)** : code spécifique à la plateforme
> [!Attention]
> **Avertissement contre l'utilisation abusive:** <br>
> Les développeurs de RustDesk ne cautionnent ni ne soutiennent aucune utilisation non éthique ou illégale de ce logiciel. Toute utilisation abusive, telle que l'accès non autorisé, le contrôle ou l'invasion de la vie privée, est strictement contraire à nos directives. Les auteurs ne sont pas responsables de toute utilisation abusive de l'application.
## Images ## Images
![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png) ![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png)

View File

@@ -9,7 +9,7 @@
<b>Χρειαζόμαστε τη βοήθειά σας για να μεταφράσουμε αυτό το αρχείο README, το <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> και το <a href="https://github.com/rustdesk/doc.rustdesk.com">Doc</a> στη μητρική σας γλώσσα</b> <b>Χρειαζόμαστε τη βοήθειά σας για να μεταφράσουμε αυτό το αρχείο README, το <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> και το <a href="https://github.com/rustdesk/doc.rustdesk.com">Doc</a> στη μητρική σας γλώσσα</b>
</p> </p>
Επικοινωνήστε μαζί μας μέσω: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Επικοινωνήστε μαζί μας μέσω: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -17,7 +17,7 @@
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png) ![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
Το RustDesk ενθαρρύνει τη συνεισφορά όλων. Διαβάστε το [`docs/CONTRIBUTING.md`](docs/CONTRIBUTING.md) για βοήθεια στο πως να ξεκινήσετε. Το RustDesk ενθαρρύνει τη συνεισφορά όλων. Διαβάστε το [`docs/CONTRIBUTING.md`](CONTRIBUTING.md) για βοήθεια στο πως να ξεκινήσετε.
[**Συχνές ερωτήσεις**](https://github.com/rustdesk/rustdesk/wiki/FAQ) [**Συχνές ερωτήσεις**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
@@ -29,22 +29,6 @@
alt="Get it on F-Droid" alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
## Δωρεάν δημόσιοι διακομιστές
Παρακάτω είναι οι διακομιστές που χρησιμοποιούνται δωρεάν, ενδέχεται να αλλάξουν με την πάροδο του χρόνου. Εάν δεν είστε κοντά σε ένα από αυτούς, το δίκτυό σας ίσως να είναι αργό.
| Περιοχή | Πάροχος | Προδιαγραφές |
| --------- | ------------- | ------------------ |
| Γερμανία | Hetzner | 2 vCPU / 4GB RAM |
| Ουκρανία (Κίεβο) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dev Container
[![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Container&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/rustdesk/rustdesk)
Αν έχετε εγκατεστημένα το VS Code και το Docker, μπορείτε να ξεκινήσετε κάνοντας κλικ στην παραπάνω εικόνα. Αυτό θα έχει ως αποτέλεσμα, το VS Code να εγκαταστήσει αυτόματα την επέκταση Dev Containers, εάν χρειάζεται, θα κλωνοποιήσει τον πηγαίο κώδικα σε έναν νέο container και θα εκκινήσει ένα Dev Container για χρήση προγραμματισμού.
Για περισσότερες πληροφορίες μεταβείτε στο [DEVCONTAINER.md](docs/DEVCONTAINER.md).
## Προαπαιτούμενα για build ## Προαπαιτούμενα για build
Στις παραθυρικές εκδόσεις χρησιμοποιείται είτε το [sciter](https://sciter.com/) είτε το Flutter, τα παρακάτω βήματα είναι μόνο για το Sciter. Στις παραθυρικές εκδόσεις χρησιμοποιείται είτε το [sciter](https://sciter.com/) είτε το Flutter, τα παρακάτω βήματα είναι μόνο για το Sciter.
@@ -133,34 +117,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Αλλαγή του Wayland σε X11 (Xorg)
Το RustDesk δεν υποστηρίζει το πρωτόκολλο Wayland. Διαβάστε [εδώ](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) ώστε να ορίσετε το Xorg ως το προκαθορισμένο GNOME περιβάλλον.
## Υποστήριξη Wayland
Το Wayland προς το παρόν δεν διαθέτει κάποιο API το οποίο να στέλνει τα πατήματα πλήκτρων στα υπόλοιπα παράθυρα. Για τον λόγο αυτό, το Rustdesk χρησιμοποιεί ένα API από κατώτερο επίπεδο, όπως το `/dev/uinput` (Linux kernel level).
Σε περίπτωση που το Wayland είναι η ελεγχόμενη πλευρά, θα πρέπει να ξεκινήσετε με τον παρακάτω τρόπο:
```bash
# Start uinput service
$ sudo rustdesk --service
$ rustdesk
```
**Σημείωση**: Η εγγραφή οθόνης του Wayland χρησιμοποιεί διαφορετικές διεπαφές. Το RustDesk προς το παρόν υποστηρίζει μόνο org.freedesktop.portal.ScreenCast.
```bash
$ dbus-send --session --print-reply \
--dest=org.freedesktop.portal.Desktop \
/org/freedesktop/portal/desktop \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.portal.ScreenCast string:version
# Not support
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Support
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
variant uint32 4
```
## Πως να κάνετε build στο Docker ## Πως να κάνετε build στο Docker
Ξεκινήστε κλωνοποιώντας το αποθετήριο και κάνοντας build το docker container: Ξεκινήστε κλωνοποιώντας το αποθετήριο και κάνοντας build το docker container:
@@ -189,7 +145,7 @@ target/debug/rustdesk
target/release/rustdesk target/release/rustdesk
``` ```
Βεβαιωθείτε ότι εκτελείτε αυτές τις εντολές από την αρχική διαδρομή του αποθετηρίου του Rustdesk, διαφορετικά η εφαρμογή ενδέχεται να μην είναι σε θέση να βρεί τους απαιτούμενους πόρους. Σημειώστε επίσης ότι άλλες υποεντολές, όπως το `install` ή το `run` δεν υποστηρίζονται επί του παρόντος μέσω αυτής της μεθόδου καθώς θα εγκαταστήσουν ή θα εκτελέσουν το πρόγραμμα εντός του container αντί του κεντρικού υπολογιστή. Βεβαιωθείτε ότι εκτελείτε αυτές τις εντολές από την αρχική διαδρομή του αποθετηρίου του RustDesk, διαφορετικά η εφαρμογή ενδέχεται να μην είναι σε θέση να βρεί τους απαιτούμενους πόρους. Σημειώστε επίσης ότι άλλες υποεντολές, όπως το `install` ή το `run` δεν υποστηρίζονται επί του παρόντος μέσω αυτής της μεθόδου καθώς θα εγκαταστήσουν ή θα εκτελέσουν το πρόγραμμα εντός του container αντί του κεντρικού υπολογιστή.
## Δομή φακέλων ## Δομή φακέλων

View File

@@ -9,7 +9,7 @@
<b>Kell a segítséged, hogy lefordítsuk ezt a README-t, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">a RustDesk UI-t</a> és a <a href="https://github.com/rustdesk/doc.rustdesk.com">Dokumentációt</a> az anyanyelvedre</b> <b>Kell a segítséged, hogy lefordítsuk ezt a README-t, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">a RustDesk UI-t</a> és a <a href="https://github.com/rustdesk/doc.rustdesk.com">Dokumentációt</a> az anyanyelvedre</b>
</p> </p>
Beszélgess velünk: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Beszélgess velünk: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -27,14 +27,6 @@ A RustDesk szívesen fogad minden contributiont, támogatást mindenkitől. Lás
alt="Get it on F-Droid" alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
## Ingyenes publikus szerverek
Ezalatt az üzenet alatt találhatóak azok a publikus szerverek, amelyeket ingyen használhatsz. Ezek a szerverek változhatnak a jövőben, illetve a hálózatuk lehet hogy lassú lehet.
| Hely | Host | Specifikáció |
| --------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dependencies ## Dependencies
Az asztali verziók [sciter](https://sciter.com/)-t használnak a GUI-hoz, kérlek telepítsd a dynamikus könyvtárat magad. Az asztali verziók [sciter](https://sciter.com/)-t használnak a GUI-hoz, kérlek telepítsd a dynamikus könyvtárat magad.
@@ -116,10 +108,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Válts Wayland-ról X11-re (Xorg)
A RustDesk nem támogatja a Waylendet. [Itt](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) található egy tutorial amelynek segítségével beállíthatod a Xorg-ot mint alap GNOME session.
## Hogyan építs Dockerrel ## Hogyan építs Dockerrel
Kezdjünk a repo clónozásával, majd pedig a Docker container megépítésével: Kezdjünk a repo clónozásával, majd pedig a Docker container megépítésével:

View File

@@ -9,33 +9,31 @@
<b>Kami membutuhkan bantuanmu untuk menterjemahkan file README dan <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> ke Bahasa Indonesia</b> <b>Kami membutuhkan bantuanmu untuk menterjemahkan file README dan <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> ke Bahasa Indonesia</b>
</p> </p>
Mari mengobrol bersama kami: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Mari mengobrol bersama kami: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Merupakan perangkat lunak Remote Desktop yang baru, dibangun dengan Rust. kamu bisa langsung menggunakannya tanpa perlu konfigurasi tambahan. Serta ,emiliki kontrol penuh terhadap semua data, tanpa perlu merasa was-was tentang isu keamanan, dan yang lebih menarik adalah memiliki opsi untuk menggunakan server rendezvous/relay milik kami, [konfigurasi server sendiri](https://rustdesk.com/server), atau [tulis rendezvous/relay server anda sendiri](https://github.com/rustdesk/rustdesk-server-demo). [![Open Bounties](https://img.shields.io/endpoint?url=https%3A%2F%2Fconsole.algora.io%2Fapi%2Fshields%2Frustdesk%2Fbounties%3Fstatus%3Dopen)](https://console.algora.io/org/rustdesk/bounties?status=open)
RustDesk mengajak semua orang untuk ikut berkontribusi. Lihat [`docs/CONTRIBUTING.md`](CONTRIBUTING.md) untuk melihat panduan. Merupakan perangkat lunak Remote Desktop yang baru, dan dibangun dengan Rust. Bahkan kamu bisa langsung menggunakannya tanpa perlu melakukan konfigurasi tambahan. Serta memiliki kontrol penuh terhadap semua data, tanpa perlu merasa was-was tentang isu keamanan, dan yang lebih menarik adalah memiliki opsi untuk menggunakan server rendezvous/relay milik kami, [konfigurasi server sendiri](https://rustdesk.com/server), atau [tulis rendezvous/relay server anda sendiri](https://github.com/rustdesk/rustdesk-server-demo).
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
RustDesk mengajak semua orang untuk ikut berkontribusi. Lihat [`docs/CONTRIBUTING-ID.md`](CONTRIBUTING-ID.md) untuk melihat panduan.
[**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
[**UNDUH BINARY**](https://github.com/rustdesk/rustdesk/releases) [**UNDUH BINARY**](https://github.com/rustdesk/rustdesk/releases)
## Server Publik Gratis [**NIGHTLY BUILD**](https://github.com/rustdesk/rustdesk/releases/tag/nightly)
Di bawah ini merupakan server gratis yang bisa kamu gunakan, seiring waktu kemungkinan akan terjadi perubahan spesifikasi pada setiap server. Jika lokasi kamu berada jauh dengan salah satu server yang tersedia, kemungkinan koneksi akan terasa lambat ketika melakukan proses remote. [<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
| Lokasi | Penyedia | Spesifikasi | alt="Get it on F-Droid"
| --------- | ------------- | ------------------ | height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
| Jerman | [Hetzner](https://www.hetzner.com) | 2 vCPU / 4GB RAM |
| Ukraina (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dev Container
[![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Container&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/rustdesk/rustdesk)
Apabila kamu sudah menginstall VS Code dan Docker, kamu bisa mengklik badge yang ada diatas untuk memulainya. Dengan mengklik badge tersebut secara otomatis akan menginstal ekstensi pada VS Code, lakukan kloning (clone) source code kedalam container volume, dan aktifkan dev container untuk menggunakannya.
## Dependensi ## Dependensi
Pada versi desktop, antarmuka pengguna (GUI) menggunakan [Sciter](https://sciter.com/) atau flutter, tutorial ini hanya berlaku untuk Sciter Pada versi desktop, antarmuka pengguna (GUI) menggunakan [Sciter](https://sciter.com/) atau flutter
Kamu bisa mengunduh Sciter dynamic library disini. Kamu bisa mengunduh Sciter dynamic library disini.
@@ -116,37 +114,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Mengubah Wayland ke X11 (Xorg)
RustDesk tidak mendukung Wayland. Cek [ini](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) untuk mengonfigurasi Xorg sebagai sesi standar di GNOME.
## Kompatibilitas dengan Wayland
Sepertinya Wayland tidak memiliki API untuk mengirimkan ketukan tombol ke jendela lain. Maka dari itu, RustDesk menggunakan API dari level yang lebih rendah, lebih tepatnya perangkat `/dev/uinput` (linux kernel level)
Saat Wayland menjadi sisi yang dikendalikan atau sisi yang sedang diremote, kamu harus memulai dengan cara ini
```bash
# Start uinput service
$ sudo rustdesk --service
$ rustdesk
```
**Harap Diperhatikan**: Saat Perekaman layar menggunakan Wayland antarmuka (UI) yang ditampilkan akan berbeda. Untuk saat ini RustDesk hanya mendukung org.freedesktop.portal.ScreenCast.
```bash
$ dbus-send --session --print-reply \
--dest=org.freedesktop.portal.Desktop \
/org/freedesktop/portal/desktop \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.portal.ScreenCast string:version
# Not support
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Support
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
variant uint32 4
```
## Cara Build dengan Docker ## Cara Build dengan Docker
Mulailah dengan melakukan kloning (clone) repositori dan build dengan docker container: Mulailah dengan melakukan kloning (clone) repositori dan build dengan docker container:

View File

@@ -4,37 +4,38 @@
<a href="#passaggi-per-la-compilazione">Compilazione</a> <a href="#passaggi-per-la-compilazione">Compilazione</a>
<a href="#come-compilare-con-docker">Docker</a> <a href="#come-compilare-con-docker">Docker</a>
<a href="#struttura-dei-file">Struttura</a> <a href="#struttura-dei-file">Struttura</a>
<a href="#screenshots">Schermate</a><br> <a href="#schermate">Schermate</a><br>
[<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br> [<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-DA.md">Dansk</a>] | [<a href="README-GR.md">Ελληνικά</a>] | [<a href="README-TR.md">Türkçe</a>]<br>
<b>Abbiamo bisogno del tuo aiuto per tradurre questo file README e la <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">UI RustDesk</a> nella tua lingua nativa</b> <b>Abbiamo bisogno del tuo aiuto per tradurre questo file README e la <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">UI RustDesk</a> nella tua lingua nativa</b>
</p> </p>
Chatta con noi su: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Chatta con noi su: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Ancora un altro software per il controllo remoto del desktop, scritto in Rust. [![Bounties aperti](https://img.shields.io/endpoint?url=https%3A%2F%2Fconsole.algora.io%2Fapi%2Fshields%2Frustdesk%2Fbounties%3Fstatus%3Dopen)](https://console.algora.io/org/rustdesk/bounties?status=open)
Funziona immediatamente, nessuna configurazione richiesta. Hai il pieno controllo dei tuoi dati, senza preoccupazioni per la sicurezza.
Puoi usare il nostro server rendezvous/relay, [configurare il tuo server](https://rustdesk.com/server) o [realizzare il tuo server rendezvous/relay](https://github.com/rustdesk/rustdesk-server-demo).
RustDesk accoglie il contributo di tutti. Ancora un altro software per il controllo remoto del desktop, scritto in Rust. Funziona immediatamente, nessuna configurazione richiesta. Hai il pieno controllo dei tuoi dati, senza preoccupazioni per la sicurezza. Puoi usare il nostro server rendezvous/relay, [configurare il tuo server](https://rustdesk.com/server) o [realizzare il tuo server rendezvous/relay](https://github.com/rustdesk/rustdesk-server-demo).
Per ulteriori informazioni su come iniziare a contribuire, vedi [`docs/CONTRIBUTING-IT.md`](CONTRIBUTING.md).
[**DOWNLOAD PROGRAMMA**](https://github.com/rustdesk/rustdesk/releases) ![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
## Server pubblici gratuiti RustDesk accoglie il contributo di tutti. Per ulteriori informazioni su come iniziare a contribuire, vedi [CONTRIBUTING.md](CONTRIBUTING-IT.md).
Qui sotto trovi i server che possono essere usati gratuitamente, la lista potrebbe cambiare nel tempo. [**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
Se non sei vicino a uno di questi server, la connessione potrebbe essere lenta.
| Posizione | Venditore | Specifiche | [**SCARICA PROGRAMMA**](https://github.com/rustdesk/rustdesk/releases)
| --------- | ------------- | ------------------ |
| Germania | Hetzner | 2 vCPU / 4GB RAM | [**SCARICA NIGHTLY**](https://github.com/rustdesk/rustdesk/releases/tag/nightly)
| Ucraina (Kyev) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
## Dipendenze ## Dipendenze
La versione Desktop usa per la GUI [sciter](https://sciter.com/), per favore scarica la libreria dinamica sciter. Le versioni desktop utilizzano Flutter o Sciter (deprecato) per l'interfaccia utente, questo tutorial è solo per Sciter, poiché è più facile per iniziare. Controlla il nostro [CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) per la compilazione della versione Flutter.
Scarica la libreria dinamica Sciter.
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) | [Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) |
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) | [Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
@@ -51,12 +52,22 @@ La versione Desktop usa per la GUI [sciter](https://sciter.com/), per favore sca
- Esegui `cargo run` - Esegui `cargo run`
## [Build](https://rustdesk.com/docs/en/dev/build/)
## Come compilare in Linux ## Come compilare in Linux
### Ubuntu 18 (Debian 10) ### Ubuntu 18 (Debian 10)
```sh ```sh
sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
```
### openSUSE Tumbleweed
```sh
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel
``` ```
### Fedora 28 (CentOS 8) ### Fedora 28 (CentOS 8)
@@ -109,11 +120,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Cambiare Wayland in X11 (Xorg)
RustDesk non supporta Wayland.
Controlla [qui](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) per configurare Xorg come sessione predefinita di GNOME.
## Come compilare con Docker ## Come compilare con Docker
Clona il repository e compila i container docker: Clona il repository e compila i container docker:
@@ -130,10 +136,7 @@ Quindi, ogni volta che devi compilare l'applicazione, esegui il seguente comando
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
``` ```
Tieni presente che la prima build potrebbe richiedere più tempo prima che le dipendenze vengano memorizzate nella cache, le build successive saranno più veloci. Tieni presente che la prima build potrebbe richiedere più tempo prima che le dipendenze vengano memorizzate nella cache, le build successive saranno più veloci. Inoltre, se hai bisogno di specificare argomenti diversi per il comando build, puoi farlo alla fine del comando nella posizione `<OPTIONAL-ARGS>`. Ad esempio, se vuoi creare una versione di rilascio ottimizzata, esegui il comando precedentemente indicato seguito da `--release`. L'eseguibile generato sarà creato nella cartella destinazione del sistema e può essere eseguito con:
Inoltre, se hai bisogno di specificare argomenti diversi per il comando build, puoi farlo alla fine del comando nella posizione `<OPTIONAL-ARGS>`.
Ad esempio, se vuoi creare una versione di rilascio ottimizzata, esegui il comando precedentemente indicato seguito da `--release`.
L'eseguibile generato sarà creato nella cartella destinazione del sistema e può essere eseguito con:
```sh ```sh
target/debug/rustdesk target/debug/rustdesk
@@ -145,19 +148,25 @@ Oppure, se stai avviando un eseguibile di rilascio:
target/release/rustdesk target/release/rustdesk
``` ```
Assicurati di eseguire questi comandi dalla radice del repository RustDesk, altrimenti l'applicazione potrebbe non essere in grado di trovare le risorse richieste. Assicurati di eseguire questi comandi dalla radice del repository RustDesk, altrimenti l'applicazione potrebbe non essere in grado di trovare le risorse richieste. Nota inoltre che altri sottocomandi cargo come `install` o `run` non sono attualmente supportati tramite questo metodo poiché installerebbero o eseguirebbero il programma all'interno del container anziché nell'host.
Nota inoltre che altri sottocomandi cargo come `install` o `run` non sono attualmente supportati tramite questo metodo poiché installerebbero o eseguirebbero il programma all'interno del container anziché nell'host.
## Struttura dei file ## Struttura dei file
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: codec video, config, wrapper tcp/udp, protobuf, funzioni per il trasferimento file, e altre funzioni utili. - **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: codec video, config, wrapper tcp/udp, protobuf, funzioni per il trasferimento file, e altre funzioni utili.
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: cattura dello schermo - **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: cattura dello schermo
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: controllo tastiera/mouse specifico della piattaforma - **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: controllo tastiera/mouse specifico della piattaforma
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: GUI - **[libs/clipboard](https://github.com/rustdesk/rustdesk/tree/master/libs/clipboard)**: implementazione del copia e incolla dei file per Windows, Linux, macOS.
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: Sciter UI obsoleto (deprecato)
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: servizi audio/appunti/input/video e connessioni di rete - **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: servizi audio/appunti/input/video e connessioni di rete
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: avvio di una connessione peer - **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: avvio di una connessione peer
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: Comunica con [rustdesk-server](https://github.com/rustdesk/rustdesk-server), attende la connessione remota diretta (TCP hole punching) oppure indiretta (relayed) - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: comunica con [rustdesk-server](https://github.com/rustdesk/rustdesk-server), attende la connessione remota diretta (TCP hole punching) oppure indiretta (relayed)
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: codice specifico della piattaforma - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: codice specifico della piattaforma
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: codice Flutter per desktop e mobile
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: JavaScript per client web Flutter
> [!Attenzione]
> **Dichiarazione di non responsabilità per uso improprio:** <br>
> Gli sviluppatori di RustDesk non approvano né supportano alcun uso non etico o illegale di questo software. L'uso improprio, come l'accesso non autorizzato, il controllo o l'invasione della privacy, è strettamente contro le nostre linee guida. Gli autori non sono responsabili per qualsiasi uso improprio dell'applicazione.
## Schermate ## Schermate

View File

@@ -1,67 +1,73 @@
<p align="center"> <p align="center">
<img src="../res/logo-header.svg" alt="RustDesk - Your remote desktop"><br> <img src="../res/logo-header.svg" alt="RustDesk - あなたのためのリモートデスクトップ"><br>
<a href="#free-public-servers">Servers</a> <a href="#free-public-servers">Servers</a>
<a href="#raw-steps-to-build">Build</a> <a href="#raw-steps-to-build">Build</a>
<a href="#how-to-build-with-docker">Docker</a> <a href="#how-to-build-with-docker">Docker</a>
<a href="#file-structure">Structure</a> <a href="#file-structure">Structure</a>
<a href="#snapshot">Snapshot</a><br> <a href="#snapshot">Snapshot</a><br>
[<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br> [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-DA.md">Dansk</a>] | [<a href="README-GR.md">Ελληνικά</a>] | [<a href="README-TR.md">Türkçe</a>]<br>
<b>このREADMEをあなたの母国語に翻訳するために、あなたの助けが必要です。</b> <b>README<a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a><a href="https://github.com/rustdesk/doc.rustdesk.com">RustDesk Doc</a>の翻訳者を歓迎します!</b>
</p> </p>
Chat with us: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) 私たちと話す: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Rustで書かれた、設定不要ですぐに使えるリモートデスクトップソフトウェアです。自分のデータを完全にコントロールでき、セキュリティの心配もありません。私たちのランデブー/リレーサーバを使うことも、[自分で設定する](https://rustdesk.com/server) ことも、 [自分でランデブー/リレーサーバを書くこともできます](https://github.com/rustdesk/rustdesk-server-demo)。 Rustで書かれた、設定不要ですぐに使えるリモートデスクトップソフトウェアです。自分のデータを完全にコントロールでき、セキュリティの心配もありません。私たちのランデブー/リレーサーバを使うことも、[自分でサーバーをセットアップする](https://rustdesk.com/server) ことも、 [自分でランデブー/リレーサーバを作成する](https://github.com/rustdesk/rustdesk-server-demo)こともできます
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png) ![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
RustDeskは誰からの貢献歓迎します。 貢献するには [`docs/CONTRIBUTING.md`](CONTRIBUTING.md) を参照してください。 RustDeskは皆さんの貢献歓迎します。
貢献の方法については[CONTRIBUTING.md](CONTRIBUTING.md)をご確認ください。
[**RustDeskはどの様に動くのか?**](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) [**よくある質問**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
[**BINARY DOWNLOAD**](https://github.com/rustdesk/rustdesk/releases) [**パッケージのダウンロード**](https://github.com/rustdesk/rustdesk/releases)
## 無料のパブリックサーバー [**ナイトリービルド**](https://github.com/rustdesk/rustdesk/releases/tag/nightly)
下記のサーバーは、無料で使用できますが、後々変更されることがあります。これらのサーバーから遠い場合、接続が遅い可能性があります。 [<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
| Location | Vendor | Specification | alt="F-Droidで入手する"
| --------- | ------------- | ------------------ | height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
| Germany | Hetzner | 2 vCPU / 4GB RAM |
## 依存関係 ## 依存関係
デスクトップ版ではGUIに [sciter](https://sciter.com/) が使われています。 sciter dynamic library をダウンロードしてください。 デスクトップ版ではGUIにFlutterまたはSciter(非推奨)を使用しますが、チュートリアルでは分かりやすく、簡単なSciterのみを対象に解説しています。Flutterでのビルド方法については[CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml)をご覧ください。
Sciter dynamic libraryを事前にダウンロードしてください。
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) | [Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) |
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) | [Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
[MacOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib) [macOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib)
モバイル版はFlutterを利用します。デスクトップ版もSciterからFlutterへマイグレーション予定です。
## ビルド手順 ## ビルド手順
- Rust開発環境とC ++ビルド環境を準備します - Rust開発環境とC++ビルド環境を準備します
- [vcpkg](https://github.com/microsoft/vcpkg), をインストールし、 `VCPKG_ROOT` 環境変数を正しく設定します。 - [vcpkg](https://github.com/microsoft/vcpkg)をインストールし、環境変数に`VCPKG_ROOT`設定します。
その後、以下のコマンドを実行します。
- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
- Linux/MacOS: vcpkg install libvpx libyuv opus aom
- run `cargo run`
- Windowsの場合: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
- Linux/macOSの場合: vcpkg install libvpx libyuv opus aom
- `cargo run`を実行します。
## [ビルド](https://rustdesk.com/docs/en/dev/build/) ## [ビルド](https://rustdesk.com/docs/en/dev/build/)
## Linuxでのビルド手順 ## Linuxでのビルド方法
### Ubuntu 18 (Debian 10) ### Ubuntu 18 (Debian 10)
```sh ```sh
sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
```
### openSUSE Tumbleweed
```sh
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel
``` ```
### Fedora 28 (CentOS 8) ### Fedora 28 (CentOS 8)
@@ -76,7 +82,7 @@ sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-
sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire
``` ```
### Install vcpkg ### vcpkgのインストール
```sh ```sh
git clone https://github.com/microsoft/vcpkg git clone https://github.com/microsoft/vcpkg
@@ -88,7 +94,7 @@ export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom vcpkg/vcpkg install libvpx libyuv opus aom
``` ```
### Fix libvpx (For Fedora) ### libvpxの修正 (Fedoraのみ)
```sh ```sh
cd vcpkg/buildtrees/libvpx/src cd vcpkg/buildtrees/libvpx/src
@@ -114,14 +120,9 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Wayland の場合、X11Xorgに変更します ## Dockerでのビルド方法
RustDeskはWaylandをサポートしていません。 リポジトリをクローンし、Dockerコンテナを構築します:
[こちら](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) を確認して、XorgをデフォルトのGNOMEセッションとして構成します。
## Dockerでビルドする方法
リポジトリのクローンを作成し、Dockerコンテナを構築することから始めます。
```sh ```sh
git clone https://github.com/rustdesk/rustdesk git clone https://github.com/rustdesk/rustdesk
@@ -129,44 +130,54 @@ cd rustdesk
docker build -t "rustdesk-builder" . docker build -t "rustdesk-builder" .
``` ```
その後、アプリケーションをビルドする必要があるたびに、以下のコマンドを実行します 以下のコマンドを実行します:
```sh ```sh
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
``` ```
このコマンドはRustDeskをビルドする度に実行する必要があります。
なお、最初のビルドでは、依存関係がキャッシュされるまで時間がかかることがありますが、その後のビルドではより速くなります。さらに、ビルドコマンドに別の引数を指定する必要がある場合は、コマンドの最後にある `<OPTIONAL-ARGS>` の位置で指定することができます。例えば、最適化されたリリースバージョンをビルドしたい場合は、上記のコマンドの後に 初回ビルドは時間がかかるかもしれませんが、2回目以降は依存関係がキャッシュされるため、ビルドにかかる時間が短くなります。
`--release` を実行します。できあがった実行ファイルはシステムのターゲットフォルダに格納され、のコマンドで実行できます。 ビルドコマンドに追加の引数を指定する必要がある場合は、コマンドの最後(`<OPTIONAL-ARGS>`の位置)で指定することができます。例えば、最適化されたリリースバージョンをビルドしたい場合は、上記のコマンドの後に `--release`追記し実行します。ビルドされた実行ファイルはあなたのシステムのターゲットフォルダに保存され、下記のコマンドで実行することができます。
デバッグビルドを起動する場合:
```sh ```sh
target/debug/rustdesk target/debug/rustdesk
``` ```
あるいは、リリース用の実行ファイルを実行している場合: リリースビルドを起動する場合:
```sh ```sh
target/release/rustdesk target/release/rustdesk
``` ```
これらのコマンドをRustDeskリポジトリのルートから実行していることを確認してください。そうしないと、アプリケーションが必要なリソースを見つけられない可能性があります。また、 `install``run` などの他の cargo サブコマンドは、ホストではなくコンテナ内プログラムをインストールまたは実行するため、現在の方法ではサポートされていないことに注意してください コマンドをRustDeskリポジトリのルートから実行していることを確認してください。また、`install``run` などの他のcargoサブコマンドは、ホストではなくコンテナ内プログラムをインストール実行するため、現在の方法ではサポートされていません
## ファイル構造 ## ファイル構造
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: ビデオコーデック、コンフィグ、tcp/udpラッパー、protobuf、ファイル転送用のfs関数その他のユーティリティ関数 - **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: ビデオコーデック、設定、tcp/udpラッパー、protobuf、ファイル転送に利用されるfs関数その他のユーティリティ関数
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: スクリーンキャプチャ - **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: スクリーンキャプチャ
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: プラットフォーム固有のキーボード/マウスコントロール - **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: プラットフォーム固有のキーボード/マウス操作
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: GUI - **[libs/clipboard](https://github.com/rustdesk/rustdesk/tree/master/libs/clipboard)**: Windows、Linux、macOS向けのファイルのコピーと貼り付けの実装
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: オーディオ/クリップボード/入力/ビデオサービス、ネットワーク接続 - **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: 廃止された Sciter UI (非推奨)
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**:
オーディオ/クリップボード/入力/ビデオ サービスとネットワーク接続
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: ピア接続の開始 - **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: ピア接続の開始
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: [rustdesk-server](https://github.com/rustdesk/rustdesk-server), と通信し、リモートダイレクト (TCP hole punching) または中継接続を待つ - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: [rustdesk-server](https://github.com/rustdesk/rustdesk-server)と通信し、リモートの直接接続(TCPホールパンチング)や中継接続を担う
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: プラットフォーム固有のコード - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: プラットフォーム固有のコード
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: デスクトップとモバイル向けのFlutterコード
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: Flutterウェブクライアント向けのJavaScript
## スナップショット > [!注意]
> **:不正使用に関する免責事項** <br>
> RustDeskの開発者は、このソフトウェアの非倫理的または違法な使用を容認または支持しません。不正アクセス、不正な制御、またはプライバシーの侵害などの不正使用は、当社のガイドラインに厳密に違反します。開発者は、アプリケーションの不正使用に対して一切の責任を負いません。
![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png) ## スクリーンショット
![image](https://user-images.githubusercontent.com/71636191/113112619-f705a480-923b-11eb-911d-97e984ef52b6.png) ![Connection Manager](https://github.com/rustdesk/rustdesk/assets/28412477/db82d4e7-c4bc-4823-8e6f-6af7eadf7651)
![image](https://user-images.githubusercontent.com/71636191/113112857-3fbd5d80-923c-11eb-9836-768325faf906.png) ![Connected to a Windows PC](https://github.com/rustdesk/rustdesk/assets/28412477/9baa91e9-3362-4d06-aa1a-7518edcbd7ea)
![image](https://user-images.githubusercontent.com/71636191/135385039-38fdbd72-379a-422d-b97f-33df71fb1cec.png) ![File Transfer](https://github.com/rustdesk/rustdesk/assets/28412477/39511ad3-aa9a-4f8c-8947-1cce286a46ad)
![TCP Tunneling](https://github.com/rustdesk/rustdesk/assets/28412477/78e8708f-e87e-4570-8373-1360033ea6c5)

View File

@@ -1,71 +1,84 @@
<p align="center"> <p align="center">
<img src="../res/logo-header.svg" alt="RustDesk - Your remote desktop"><br> <img src="../res/logo-header.svg" alt="RustDesk - Your remote desktop"><br>
<a href="#free-public-servers">Servers</a>
<a href="#raw-steps-to-build">Build</a> <a href="#raw-steps-to-build">Build</a>
<a href="#how-to-build-with-docker">Docker</a> <a href="#how-to-build-with-docker">Docker</a>
<a href="#file-structure">Structure</a> <a href="#file-structure">Structure</a>
<a href="#snapshot">Snapshot</a><br> <a href="#snapshot">Snapshot</a><br>
[<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br> [<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-DA.md">Dansk</a>] | [<a href="README-GR.md">Ελληνικά</a>] | [<a href="README-TR.md">Türkçe</a>] | [<a href="README-NO.md">Norsk</a>]<br>
<b>README를 모국어로 번역하기 위한 당신의 도움 필요합니다.</b> <b>README<a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a><a href="https://github.com/rustdesk/doc.rustdesk.com">RustDesk 문서</a>를 여러분의 모국어로 번역하는 데 도움 필요합니다.</b>
</p> </p>
Chat with us: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) > [!Caution]
> **오용 관련 면책 조항:** <br>
> RustDesk 개발자는 이 소프트웨어의 비윤리적이거나 불법적인 사용을 용납하거나 지원하지 않습니다. 무단 액세스, 제어 또는 사생활 침해와 같은 오용은 당사의 가이드라인에 엄격히 위배됩니다. 개발자는 애플리케이션의 오용에 대해 책임을 지지 않습니다.
채팅하기: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Rust로 작성되었고, 설정없이 바로 사용할 수 있는 원격 데스트탑 소프트웨어입니다. 자신의 데이터를 완전히 컨트롤할 수 있고, 보안 염려도 없습니다. 우리의 rendezvous/relay 서버를 사용해도, [스스로 설정](https://rustdesk.com/server)하는 것도, [스스로 rendezvous/relay 서버를 작성할 수도 있습니다](https://github.com/rustdesk/rustdesk-server-demo). Rust로 작성되었고, 설정 없이 바로 사용할 수 있는 원격 데스크톱 소프트웨어입니다. 자신의 데이터를 완전히 제어할 수 있고, 보안 염려도 없습니다. 저희 rendezvous/relay 서버를 사용하거나, [직접 설정](https://rustdesk.com/server)하거나 [자체 rendezvous/relay 서버를 구축](https://github.com/rustdesk/rustdesk-server-demo)할 수도 있습니다.
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png) ![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
RustDesk는 모든 기여를 환영합니다. 기여하고자 한다면 [`docs/CONTRIBUTING.md`](CONTRIBUTING.md)를 참조해주세요. RustDesk는 모든 기여를 환영합니다. 기여하고다면 [`CONTRIBUTING-KR.md`](CONTRIBUTING-KR.md)를 참고해 주세요.
[**RustDesk는 어떻게 작동하는가?**](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) [**자주 묻는 질문 (FAQ)**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
[**BINARY DOWNLOAD**](https://github.com/rustdesk/rustdesk/releases) [**바이너리 다운로드**](https://github.com/rustdesk/rustdesk/releases)
## 무료 퍼블릭 서버 [**나이틀리 빌드**](https://github.com/rustdesk/rustdesk/releases/tag/nightly)
표에 있는 서버는 무료로 사용할 수 있지만 추후 변경될 수도 있습니다. 이 서버에서 멀다면, 네트워크가 느려질 가능성도 있습니다. [<img src="https://f-droid.org/badge/get-it-on.png"
| Location | Vendor | Specification | alt="F-Droid에서 다운로드"
| --------- | ------------- | ------------------ | height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
| Germany | Hetzner | 2 vCPU / 4GB RAM | [<img src="https://flathub.org/api/badge?svg&locale=en"
alt="Flathub에서 다운로드"
height="80">](https://flathub.org/apps/com.rustdesk.RustDesk)
## 의존관계 ## 의존
데스크탑판에는 GUI에 [sciter](https://sciter.com/)가 사용되었습니다. sciter dynamic library 를 다운로드해주세요. 데스크톱 버전은 GUI에 Flutter 또는 Sciter (지원 중단됨)를 사용합니다. 이 튜토리얼은 Sciter 전용이며, 시작하기 더 쉽고 친숙하기 때문입니다. Flutter 버전 빌드는 [CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml)를 확인하세요.
Sciter 동적 라이브러리를 직접 다운로드하세요.
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) | [Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) |
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) | [Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
[MacOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib) [macOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib)
모바일 버전은 Flutter를 사용합니다. 데스크탑 또한 Sciter에서 Flutter로 마이그레이션할 예정입니다. ## 기본 빌드 방법
## 빌드 순서 - Rust 개발 환경과 C++ 빌드 환경을 준비하세요.
- Rust 개발환경, C++ 빌드 환경을 준비합니다. - [vcpkg](https://github.com/microsoft/vcpkg)를 설치하고 `VCPKG_ROOT` 환경변수를 정확히 설정하세요.
- [vcpkg](https://github.com/microsoft/vcpkg) 설치하고 `VCPKG_ROOT` 환경변수를 정확히 설정합니다.
- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static - Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
- Linux/MacOS: vcpkg install libvpx libyuv opus aom - Linux/MacOS: vcpkg install libvpx libyuv opus aom
- run `cargo run` - `cargo run`을 실행합니다.
## [Build](https://rustdesk.com/docs/en/dev/build/) ## [빌드](https://rustdesk.com/docs/en/dev/build/)
## Linux에서 빌드 순서 ## Linux에서 빌드 방법
### Ubuntu 18 (Debian 10) ### Ubuntu 18 (Debian 10)
```sh ```sh
sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpam0g-dev
```
### openSUSE Tumbleweed
```sh
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel pam-devel
``` ```
### Fedora 28 (CentOS 8) ### Fedora 28 (CentOS 8)
```sh ```sh
sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel gstreamer1-devel gstreamer1-plugins-base-devel pam-devel
``` ```
### Arch (Manjaro) ### Arch (Manjaro)
@@ -74,7 +87,7 @@ sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-
sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire
``` ```
### Install vcpkg ### vcpkg 설치
```sh ```sh
git clone https://github.com/microsoft/vcpkg git clone https://github.com/microsoft/vcpkg
@@ -86,7 +99,7 @@ export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom vcpkg/vcpkg install libvpx libyuv opus aom
``` ```
### Fix libvpx (For Fedora) ### libvpx 수정 (For Fedora)
```sh ```sh
cd vcpkg/buildtrees/libvpx/src cd vcpkg/buildtrees/libvpx/src
@@ -99,12 +112,12 @@ cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/
cd cd
``` ```
### Build ### 빌드
```sh ```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk cd rustdesk
mkdir -p target/debug mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
@@ -112,60 +125,58 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Wayland 일 경우, X11(Xorg)로 변경 ## Docker로 빌드하는 방법
RustDesk는 Wayland를 지원하지 않습니다. [링크](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/)를 확인해서 Xorg 기본값의 GNOME 세션을 구성합니다. 먼저 리포지토리를 복제하고 Docker 컨테이너를 빌드합니다:
## Docker에 빌드하는 방법
레포지토리를 클론하고, Docker 컨테이너 구성하는 것으로 시작합니다.
```sh ```sh
git clone https://github.com/rustdesk/rustdesk git clone https://github.com/rustdesk/rustdesk
cd rustdesk cd rustdesk
git submodule update --init --recursive
docker build -t "rustdesk-builder" . docker build -t "rustdesk-builder" .
``` ```
이후, 애플리케이션을 빌드할 필요가 있을 때마다, 이하의 커맨드를 실행합니다. 그 다음, 애플리케이션을 빌드하려면 다음 명령을 실행하세요:
```sh ```sh
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
``` ```
첫 빌드에는 의존관계가 캐시될 때까지 시간이 걸릴 수 있습니다만, 이후 빌드때는 빨라집니다. 더불어 빌드 커맨드에 다른 인수를 지정할 필요가 있다면, 커맨드 끝에 있는 `<OPTIONAL-ARGS>` 에 지정할 수 있습니다. 예를 들어 최적화된 출시 버전을 빌드하고 싶다면 이렇게 상기한 커맨드 뒤에 `--release` 를 붙여 실행합니다. 성공했다면 실행파일은 시스템 타겟 폴더에 담겨지고, 다음 커맨드로 실행할 수 있습니다. 첫 빌드에는 의존성이 캐시되느라 시간이 걸릴 수 있지만, 그 이후 빌드부터는 더 빨라집니다. 빌드 명령에 다른 인수를 추가하고 싶다면, 명령 끝의 `<OPTIONAL-ARGS>` 부분에 지정하세요. 예를 들어, 최적화된 릴리즈 버전을 빌드하고 싶다면 위 명령 뒤에 `--release`를 붙여 실행합니다. 결과 실행 파일은 시스템의 target 폴더에 생성되며, 다음 명령으로 실행할 수 있습니다:
```sh ```sh
target/debug/rustdesk target/debug/rustdesk
``` ```
혹은 출시용 실행 파일을 실행할 수도 있습니다. 또는, 릴리즈 실행 파일을 실행하는 경우:
```sh ```sh
target/release/rustdesk target/release/rustdesk
``` ```
커맨드를 RustDesk 리포지토리 루트에서 실행한다는 것을 확인해주세요. 그렇게 하지 않으면 애플리케이션이 필요한 리소스를 발견하지 못 가능성이 있습니다. 또한 `install`, `run` 같은 cargo 서브커맨드는 호스트가 아니라 컨테이너 프로그램을 설치, 실행을 위함이므로 현재 이 방은 지원지 않다는념해주시길 바랍니다. 이 명령들은 RustDesk 리포지토리 루트 디렉토리에서 실행해야 합니다. 그렇지 않으면 애플리케이션이 필요한 리소스를 지 못할 있습니다. 또한, `install` 또는 `run` 같은 cargo 하위 명령은 호스트가 아 컨테이너 내부에 프로그램을 설치하거나 실행하므로 현재 이 방은 지원지 않습니다. 이의해 주세요.
## File Structure ## 파일 구조
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: 비디오 코덱, 설정, tcp/udp 랩퍼, protobuf, 파일 전송을 위한 fs 함수, 그 외 유틸리티 함수 - **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: 비디오 코덱, 설정, TCP/UDP 래퍼, Protobuf, 파일 전송을 위한 fs 함수 및 기타 유틸리티 함수
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: 화면 캡처 - **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: 화면 캡처
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: 플랫폼 고유 키보드/마우스 컨트롤 - **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: 플랫폼 키보드/마우스 제어
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: GUI - **[libs/clipboard](https://github.com/rustdesk/rustdesk/tree/master/libs/clipboard)**: Windows, Linux, macOS용 파일 복사 및 붙여넣기 구현
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: 오디오, 클립보드, 입력, 비디오 서비스 그리고 네트워크 연결 - **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: 더 이상 사용되지 않는 Sciter UI (지원 중단됨)
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: 피어 접속 시작 - **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: 오디오/클립보드/입력/비디오 서비스 및 네트워크 연결
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: [rustdesk-server](https://github.com/rustdesk/rustdesk-server)와 통신해서 리모트 다이렉트(TCP hole punching) 혹은 relayed 접속 - **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: 피어 연결 시작
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: 플랫폼 고유의 코드 - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: [rustdesk-server](https://github.com/rustdesk/rustdesk-server)와 통신, Remote Direct (TCP Hole Punching) 또는 Relayed Connection 대기
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: Flutter code for mobile - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: 플랫폼별 코드
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: Javascript for Flutter web client - **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: 데스크톱 및 모바일용 Flutter 코드
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/v1/js)**: Flutter 웹 클라이언트용 JavaScript
## Snapshot ## 스냅샷
![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png) ![Connection Manager](https://github.com/rustdesk/rustdesk/assets/28412477/db82d4e7-c4bc-4823-8e6f-6af7eadf7651)
![image](https://user-images.githubusercontent.com/71636191/113112619-f705a480-923b-11eb-911d-97e984ef52b6.png) ![Connected to a Windows PC](https://github.com/rustdesk/rustdesk/assets/28412477/9baa91e9-3362-4d06-aa1a-7518edcbd7ea)
![image](https://user-images.githubusercontent.com/71636191/113112857-3fbd5d80-923c-11eb-9836-768325faf906.png) ![File Transfer](https://github.com/rustdesk/rustdesk/assets/28412477/39511ad3-aa9a-4f8c-8947-1cce286a46ad)
![image](https://user-images.githubusercontent.com/71636191/135385039-38fdbd72-379a-422d-b97f-33df71fb1cec.png) ![TCP Tunneling](https://github.com/rustdesk/rustdesk/assets/28412477/78e8708f-e87e-4570-8373-1360033ea6c5)

View File

@@ -9,7 +9,7 @@
<b>ഈ README നിങ്ങളുടെ മാതൃഭാഷയിലേക്ക് വിവർത്തനം ചെയ്യാൻ ഞങ്ങൾക്ക് നിങ്ങളുടെ സഹായം ആവശ്യമാണ്</b> <b>ഈ README നിങ്ങളുടെ മാതൃഭാഷയിലേക്ക് വിവർത്തനം ചെയ്യാൻ ഞങ്ങൾക്ക് നിങ്ങളുടെ സഹായം ആവശ്യമാണ്</b>
</p> </p>
ഞങ്ങളുമായി ചാറ്റ് ചെയ്യുക: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) ഞങ്ങളുമായി ചാറ്റ് ചെയ്യുക: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -19,13 +19,6 @@
[**BINARY DOWNLOAD**](https://github.com/rustdesk/rustdesk/releases) [**BINARY DOWNLOAD**](https://github.com/rustdesk/rustdesk/releases)
## സൗജന്യ പൊതു സെർവറുകൾ
നിങ്ങൾ സൗജന്യമായി ഉപയോഗിക്കുന്ന സെർവറുകൾ ചുവടെയുണ്ട്, അത് സമയത്തിനനുസരിച്ച് മാറിയേക്കാം. നിങ്ങൾ ഇവയിലൊന്നിനോട് അടുത്തല്ലെങ്കിൽ, നിങ്ങളുടെ നെറ്റ്‌വർക്ക് സ്ലോ ആയേക്കാം.
| സ്ഥാനം | കച്ചവടക്കാരൻ | വിവരണം |
| --------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
## ഡിപെൻഡൻസികൾ ## ഡിപെൻഡൻസികൾ
ഡെസ്‌ക്‌ടോപ്പ് പതിപ്പുകൾ GUI-യ്‌ക്കായി [sciter](https://sciter.com/) ഉപയോഗിക്കുന്നു, ദയവായി സ്‌സൈറ്റർ ഡൈനാമിക് ലൈബ്രറി സ്വയം ഡൗൺലോഡ് ചെയ്യുക. ഡെസ്‌ക്‌ടോപ്പ് പതിപ്പുകൾ GUI-യ്‌ക്കായി [sciter](https://sciter.com/) ഉപയോഗിക്കുന്നു, ദയവായി സ്‌സൈറ്റർ ഡൈനാമിക് ലൈബ്രറി സ്വയം ഡൗൺലോഡ് ചെയ്യുക.
@@ -103,10 +96,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### വേലാൻഡ് X11 (Xorg) ആയി മാറ്റുക
RustDesk Wayland-നെ പിന്തുണയ്ക്കുന്നില്ല. സ്ഥിരസ്ഥിതി ഗ്നോം സെഷനായി Xorg കോൺഫിഗർ ചെയ്യുന്നതിന് [ഇത്](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) പരിശോധിക്കുക.
## ഡോക്കർ ഉപയോഗിച്ച് എങ്ങനെ നിർമ്മിക്കാം ## ഡോക്കർ ഉപയോഗിച്ച് എങ്ങനെ നിർമ്മിക്കാം
റെപ്പോസിറ്റോറി ക്ലോണുചെയ്‌ത് ഡോക്കർ കണ്ടെയ്‌നർ നിർമ്മിക്കുന്നതിലൂടെ ആരംഭിക്കുക: റെപ്പോസിറ്റോറി ക്ലോണുചെയ്‌ത് ഡോക്കർ കണ്ടെയ്‌നർ നിർമ്മിക്കുന്നതിലൂടെ ആരംഭിക്കുക:

View File

@@ -9,7 +9,7 @@
<b>Wij hebben uw hulp nodig om dit README bestand te vertalen, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> en <a href="https://github.com/rustdesk/doc.rustdesk.com">Doc</a> naar uw moedertaal</b> <b>Wij hebben uw hulp nodig om dit README bestand te vertalen, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> en <a href="https://github.com/rustdesk/doc.rustdesk.com">Doc</a> naar uw moedertaal</b>
</p> </p>
Chat met ons: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Chat met ons: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -27,22 +27,6 @@ RustDesk verwelkomt bijdragen van iedereen. Zie [`docs/CONTRIBUTING.md`](CONTRIB
alt="Download het op F-Droid" alt="Download het op F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
## Gratis openbare servers
Hieronder staan de servers die u gratis gebruikt, ze kunnen in de loop van de tijd veranderen. Als u niet in de buurt van een van deze servers bevindt, kan uw vervinding langzamer zijn.
| Locatie | Aanbieder | Specificaties |
| --------- | ------------- | ------------------ |
| Duitsland | Hetzner | 2 vCPU / 4GB RAM |
| Oekraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dev Container
[![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Container&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/rustdesk/rustdesk)
Als u VS Code en Docker al hebt geinstalleerd, kunt u op de bovenstaande badge klikken om te beginnen. Door te klikken zal VS Code automatisch de Dev Containers-extensie installeren indien nodig, de broncode klonen naar een containervolume en een dev container opstarten voor gebruik.
Bekijk [DEVCONTAINER.md](docs/DEVCONTAINER.md) voor meer informatie.
## Afhankelijkheden ## Afhankelijkheden
Desktop versies gebruiken [sciter](https://sciter.com/) of Flutter voor GUI, deze handleiding is alleen voor Sciter. Desktop versies gebruiken [sciter](https://sciter.com/) of Flutter voor GUI, deze handleiding is alleen voor Sciter.
@@ -130,34 +114,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Wissel van Wayland naar X11 (Xorg)
RustDesk ondersteunt Wayland niet. Lees [hier](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) hoe je Xorg als standaardsessie kunt instellen voor GNOME.
## Wayland support
Wayland lijkt geen API te bieden voor het verzenden van toetsaanslagen naar andere vensters. Daarom gebruikt de rustdesk een API van een lager niveau, namelijk het `/dev/uinput` apparaat (Linux kernel niveau).
Als wayland de gecontroleerde kant is, moet je op de volgende manier beginnen:
```bash
# Start uinput service
$ sudo rustdesk --service
$ rustdesk
```
**Let op**: Wayland schermopname gebruikt verschillende interfaces. RustDesk ondersteunt momenteel alleen org.freedesktop.portal.ScreenCast.
```bash
$ dbus-send --session --print-reply \
--dest=org.freedesktop.portal.Desktop \
/org/freedesktop/portal/desktop \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.portal.ScreenCast string:version
# Not support
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Support
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
variant uint32 4
```
## Bouwen met Docker ## Bouwen met Docker
Begin met het klonen van de repository en het bouwen van de docker container: Begin met het klonen van de repository en het bouwen van de docker container:

177
docs/README-NO.md Normal file
View File

@@ -0,0 +1,177 @@
<p align="center">
<img src="res/logo-header.svg" alt="RustDesk - Your remote desktop"><br>
<a href="#public-servers">Servere</a>
<a href="#raw-steps-to-build">Build</a>
<a href="#how-to-build-with-docker">Docker</a>
<a href="#file-structure">Struktur</a>
<a href="#snapshot">Snapshot</a><br>
[<a href="docs/README-UA.md">Українська</a>] | [<a href="docs/README-CS.md">česky</a>] | [<a href="docs/README-ZH.md">中文</a>] | [<a href="docs/README-HU.md">Magyar</a>] | [<a href="docs/README-ES.md">Español</a>] | [<a href="docs/README-FA.md">فارسی</a>] | [<a href="docs/README-FR.md">Français</a>] | [<a href="docs/README-DE.md">Deutsch</a>] | [<a href="docs/README-PL.md">Polski</a>] | [<a href="docs/README-ID.md">Indonesian</a>] | [<a href="docs/README-FI.md">Suomi</a>] | [<a href="docs/README-ML.md">മലയാളം</a>] | [<a href="docs/README-JP.md">日本語</a>] | [<a href="docs/README-NL.md">Nederlands</a>] | [<a href="docs/README-IT.md">Italiano</a>] | [<a href="docs/README-RU.md">Русский</a>] | [<a href="docs/README-PTBR.md">Português (Brasil)</a>] | [<a href="docs/README-EO.md">Esperanto</a>] | [<a href="docs/README-KR.md">한국어</a>] | [<a href="docs/README-AR.md">العربي</a>] | [<a href="docs/README-VN.md">Tiếng Việt</a>] | [<a href="docs/README-DA.md">Dansk</a>] | [<a href="docs/README-GR.md">Ελληνικά</a>] | [<a href="docs/README-TR.md">Türkçe</a>] | [<a href="docs/README-NO.md">Norsk</a><br>
<b>Vi trenger din hjelp til å oversette denne README-en, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> og <a href="https://github.com/rustdesk/doc.rustdesk.com">RustDesk Doc</a> tid ditt morsmål</b>
</p>
Snakk med oss: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Enda en annen fjernstyrt desktop programvare, skrevet i Rust. Virker rett ut av pakken, ingen konfigurasjon nødvendig. Du har full kontroll over din data, uten beskymring for sikkerhet. Du kan bruke vår rendezvous_mediator/relay server, [sett opp din egen](https://rustdesk.com/server), eller [skriv din egen rendezvous_mediator/relay server](https://github.com/rustdesk/rustdesk-server-demo).
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
RustDesk er velkommen for bidrag fra alle. Se [CONTRIBUTING.md](CONTRIBUTING-NO.md) for hjelp med oppstart.
[**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
[**BINARY NEDLASTING**](https://github.com/rustdesk/rustdesk/releases)
[**NIGHTLY BUILD**](https://github.com/rustdesk/rustdesk/releases/tag/nightly)
[<img src="https://f-droid.org/badge/get-it-on.png"
alt="Få det på F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
[<img src="https://flathub.org/api/badge?svg&locale=en"
alt="Få det på Flathub"
height="80">](https://flathub.org/apps/com.rustdesk.RustDesk)
## Avhengigheter
Desktop versjoner bruker Flutter eller Sciter (avviklet) for GUI, denne veiledningen er bare for Sciter, grunnet att det er letter og en mer venlig start. Skjekk ut vår [CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) for bygging av Flutter versjonen.
Venligst last ned Sciters dynamiske bibliotek selv.
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) |
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
[macOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib)
## Rå steg for bygging
- Klargjør ditt Rust development env og C++ build env
- Installer [vcpkg](https://github.com/microsoft/vcpkg), og koriger `VCPKG_ROOT` env vaiabelen
- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
- Linux/macOS: vcpkg install libvpx libyuv opus aom
- Kjør `cargo run`
## [Bygg](https://rustdesk.com/docs/en/dev/build/)
## Hvordan Bygge til Linux
### Ubuntu 18 (Debian 10)
```sh
sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpam0g-dev
```
### openSUSE Tumbleweed
```sh
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel pam-devel
```
### Fedora 28 (CentOS 8)
```sh
sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel gstreamer1-devel gstreamer1-plugins-base-devel pam-devel
```
### Arch (Manjaro)
```sh
sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire
```
### Installer vcpkg
```sh
git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2023.04.15
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom
```
### Fiks libvpx (For Fedora)
```sh
cd vcpkg/buildtrees/libvpx/src
cd *
./configure
sed -i 's/CFLAGS+=-I/CFLAGS+=-fPIC -I/g' Makefile
sed -i 's/CXXFLAGS+=-I/CXXFLAGS+=-fPIC -I/g' Makefile
make
cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/
cd
```
### Bygg
```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run
```
## Hvordan bygge med Docker
Start med å klone repositoret og bygg Docker konteineren:
```sh
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .
```
Deretter, hver gang du trenger å bygge applikasjonen, kjør følgene kommando:
```sh
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
```
Det kan ta lengere tid før avhengighetene blir bufret første gang du bygger, senere bygg er raskere. Hvis du trenger å spesifisere forkjellige argumenter til bygge kommandoen, kan du gjøre det på slutten av kommandoen ved `<OPTIONAL-ARGS>` feltet. For eksempel, hvis du ville bygge en optimalisert release versjon, ville du kjørt kommandoen over fulgt `--release`. Den kjørbare filen vill være tilgjengelig i mål direktive på ditt system, og kan bli kjørt med:
```sh
target/debug/rustdesk
```
Eller, hvis du kjører ett release program:
```sh
target/release/rustdesk
```
Venligst pass på att du kjører disse kommandoene fra roten av RustDesk repositoret, eller kan det hende att applikasjon ikke finner de riktige ressursene. Pass også på att andre cargo subkommandoer som for eksempel `install` eller `run` ikke støttes med denne metoden da de vill installere eller kjøre programmet i konteineren istedet for verten.
## Fil Struktur
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: video kodek, configurasjon, tcp/udp innpakning, protobuf, fs funksjon for fil overføring, og noen andre verktøy funksjoner
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: skjermfangst
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: platform spesefik keyboard/mus kontroll
- **[libs/clipboard](https://github.com/rustdesk/rustdesk/tree/master/libs/clipboard)**: fil kopi og innliming implementasjon for Windows, Linux, macOS.
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: foreldret Sciter UI (avviklet)
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: lyd/utklippstavle/input/video tjenester, og internett tilkobling
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: start en peer tilkobling
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: Kommunikasjon med [rustdesk-server](https://github.com/rustdesk/rustdesk-server), vent på direkte fjernstyring (TCP hulling) eller vidresendt tilkobling
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: platform spesefik kode
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: Flutter kode for desktop og mobil
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: JavaScript for Flutter nettsted klient
## Skjermbilder
![Tilkoblings Manager](https://github.com/rustdesk/rustdesk/assets/28412477/db82d4e7-c4bc-4823-8e6f-6af7eadf7651)
![Koble til Windows PC](https://github.com/rustdesk/rustdesk/assets/28412477/9baa91e9-3362-4d06-aa1a-7518edcbd7ea)
![Fil Overføring](https://github.com/rustdesk/rustdesk/assets/28412477/39511ad3-aa9a-4f8c-8947-1cce286a46ad)
![TCP Tunneling](https://github.com/rustdesk/rustdesk/assets/28412477/78e8708f-e87e-4570-8373-1360033ea6c5)

View File

@@ -9,7 +9,7 @@
<b>Potrzebujemy twojej pomocy w tłumaczeniu README na twój ojczysty język</b> <b>Potrzebujemy twojej pomocy w tłumaczeniu README na twój ojczysty język</b>
</p> </p>
Porozmawiaj z nami na: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Porozmawiaj z nami na: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -29,22 +29,6 @@ RustDesk zaprasza do współpracy każdego. Zobacz [`docs/CONTRIBUTING-PL.md`](C
alt="Get it on F-Droid" alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
## Darmowe Serwery Publiczne
Poniżej znajdują się serwery, z których można korzystać za darmo, może się to zmienić z upływem czasu. Jeśli nie znajdujesz się w pobliżu jednego z nich, Twoja prędkość połączenia może być niska.
| Lokalizacja | Dostawca | Specyfikacja |
| --------- | ------------- | ------------------ |
| Niemcy | Hetzner | 2 vCPU / 4GB RAM |
| Ukraina (Kijów) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Konterner Programisty (Dev Container)
[![Otwórz w Kontenerze programisty](https://img.shields.io/static/v1?label=Dev%20Container&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/rustdesk/rustdesk)
Jeżeli masz zainstalowany VS Code i Docker, możesz kliknąć w powyższy link, aby rozpocząć. Kliknięcie spowoduje automatyczną instalację rozszrzenia Kontenera Programisty w VS Code (jeżeli wymagany), sklonuje kod źródłowy do kontenera, i przygotuje kontener do użycia.
Więcej informacji w pliku [DEVCONTAINER-PL.md](docs/DEVCONTAINER-PL.md) for more info.
## Zależności ## Zależności
Wersje desktopowe używają [sciter](https://sciter.com/) dla GUI, proszę pobrać samodzielnie bibliotekę sciter. Wersje desktopowe używają [sciter](https://sciter.com/) dla GUI, proszę pobrać samodzielnie bibliotekę sciter.
@@ -128,34 +112,6 @@ mv libsciter-gtk.so target/debug
cargo run cargo run
``` ```
### Zmień Wayland na X11 (Xorg)
RustDesk nie obsługuje Waylanda. Sprawdź [tutaj](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/), jak skonfigurować Xorg jako domyślną sesję GNOME.
## Wspracie Wayland
Wygląda na to, że Wayland nie wspiera żadnego API do wysyłania naciśnięć klawiszy do innych okien. Dlatego rustdesk używa API z niższego poziomu, urządzenia o nazwie `/dev/uinput` (poziom jądra Linux).
Gdy po stronie kontrolowanej pracuje Wayland, musisz uruchomić program w następujący sposób:
```bash
# Start uinput service
$ sudo rustdesk --service
$ rustdesk
```
**Uwaga**: Nagrywanie ekranu Wayland wykorzystuje różne interfejsy. RustDesk obecnie obsługuje tylko org.freedesktop.portal.ScreenCast.
```bash
$ dbus-send --session --print-reply \
--dest=org.freedesktop.portal.Desktop \
/org/freedesktop/portal/desktop \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.portal.ScreenCast string:version
# Not support
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Support
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
variant uint32 4
```
## Jak kompilować za pomocą Dockera ## Jak kompilować za pomocą Dockera
Rozpocznij od sklonowania repozytorium i stworzenia kontenera docker: Rozpocznij od sklonowania repozytorium i stworzenia kontenera docker:
@@ -208,3 +164,4 @@ Upewnij się, że uruchamiasz te polecenia z katalogu głównego repozytorium Ru
![image](https://user-images.githubusercontent.com/71636191/113112857-3fbd5d80-923c-11eb-9836-768325faf906.png) ![image](https://user-images.githubusercontent.com/71636191/113112857-3fbd5d80-923c-11eb-9836-768325faf906.png)
![image](https://user-images.githubusercontent.com/71636191/135385039-38fdbd72-379a-422d-b97f-33df71fb1cec.png) ![image](https://user-images.githubusercontent.com/71636191/135385039-38fdbd72-379a-422d-b97f-33df71fb1cec.png)

View File

@@ -9,7 +9,7 @@
<b>Precisamos de sua ajuda para traduzir este README e a <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">UI do RustDesk</a> para sua língua nativa</b> <b>Precisamos de sua ajuda para traduzir este README e a <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">UI do RustDesk</a> para sua língua nativa</b>
</p> </p>
Converse conosco: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Converse conosco: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -19,14 +19,6 @@ RustDesk acolhe contribuições de todos. Leia [`docs/CONTRIBUTING.md`](CONTRIBU
[**DOWNLOAD DE BINÁRIOS**](https://github.com/rustdesk/rustdesk/releases) [**DOWNLOAD DE BINÁRIOS**](https://github.com/rustdesk/rustdesk/releases)
## Servidores Públicos Grátis
Abaixo estão os servidores que você está utilizando de graça, ele pode mudar com o tempo. Se você não está próximo de algum deles, sua conexão pode ser lenta.
| Localização | Fornecedor | Especificações |
| ----------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
## Dependências ## Dependências
Versões de desktop utilizam [sciter](https://sciter.com/) para a GUI, por favor baixe a biblioteca dinâmica sciter por conta própria. Versões de desktop utilizam [sciter](https://sciter.com/) para a GUI, por favor baixe a biblioteca dinâmica sciter por conta própria.
@@ -104,10 +96,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Mude Wayland para X11 (Xorg)
RustDesk não suporta Wayland. Veja [esse link](https://docs.fedoraproject.org/pt_BR/quick-docs/configuring-xorg-as-default-gnome-session/) para configurar o Xorg como a sessão padrão do GNOME.
## Como compilar com Docker ## Como compilar com Docker
Comece clonando o repositório e montando o container docker: Comece clonando o repositório e montando o container docker:
@@ -149,6 +137,10 @@ Por favor verifique que está executando estes comandos da raiz do repositório
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: Comunicação com [rustdesk-server](https://github.com/rustdesk/rustdesk-server), aguardar pela conexão remota direta (TCP hole punching) ou conexão indireta (relayed) - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: Comunicação com [rustdesk-server](https://github.com/rustdesk/rustdesk-server), aguardar pela conexão remota direta (TCP hole punching) ou conexão indireta (relayed)
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: código específico a cada plataforma - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: código específico a cada plataforma
> [!Cuidadob]
> **Aviso de uso indevido:** <br>
> Os desenvolvedores do RustDesk não aprovam nem apoiam qualquer uso antiético ou ilegal deste software. O uso indevido, como acesso não autorizado, controle ou invasão de privacidade, é estritamente contra nossas diretrizes. Os autores não são responsáveis por qualquer uso indevido da aplicação.
## Screenshots ## Screenshots
![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png) ![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png)

View File

@@ -1,49 +1,52 @@
<p align="center"> <p align="center">
<img src="../res/logo-header.svg" alt="RustDesk - Ваш удаленый рабочий стол"><br> <img src="../res/logo-header.svg" alt="RustDesk - Ваш удаленый рабочий стол"><br>
<a href="#free-public-servers">Servers</a> <a href="#первичные-шаги-для-сборки">Первичные шаги для сборки</a>
<a href="#raw-steps-to-build">Build</a> <a href="#как-собрать-с-помощью-Docker">Как собрать с помощью Docker</a>
<a href="#how-to-build-with-docker">Docker</a> <a href="#структура-файлов">Структура файлов</a>
<a href="#file-structure">Structure</a> <a href="#скриншоты">Скриншоты</a><br>
<a href="#snapshot">Snapshot</a><br>
[<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br> [<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br>
<b>Нам нужна ваша помощь для перевода этого README <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> <b>Нам нужна ваша помощь в переводе этого README, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">интерфейса RustDesk</a>
и документацию RustDesk на ваш родной язык. <a href="https://github.com/rustdesk/doc.rustdesk.com">RustDesk Doc</a></b> и <a href="https://github.com/rustdesk/doc.rustdesk.com">документации RustDesk</a> на ваш родной язык.</b>
</p> </p>
Общение с нами: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) > [!Caution]
> **Отказ от ответственности за неправомерное использование** <br>
> Разработчики RustDesk не одобряют и не поддерживают какое-либо неэтичное или незаконное использование данного программного обеспечения. Неправомерное использование (несанкционированный доступ, контроль или вторжение в частную жизнь) строго противоречит нашим правилам. Авторы не несут ответственности за любое неправомерное использование приложения.
Общение с нами: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Еще одно программное обеспечение для удаленного рабочего стола, написанное на Rust. Работает из коробки, не требует настройки. Вы полностью контролируете свои данные, не беспокоясь о безопасности. Вы можете использовать наш сервер ретрансляции, [настроить свой собственный](https://rustdesk.com/server), или [написать свой](https://github.com/rustdesk/rustdesk-server-demo). Ещё одно программное обеспечение для удаленного рабочего стола, написанное на Rust. Работает из коробки, настройки не требует. Вы полностью контролируете свои данные, не беспокоясь о безопасности. Вы можете использовать наш сервер ретрансляции, [настроить свой собственный](https://rustdesk.com/server), или [написать свой](https://github.com/rustdesk/rustdesk-server-demo).
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png) ![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
RustDesk приветствует вклад каждого. Ознакомьтесь с [`docs/CONTRIBUTING-RU.md`](CONTRIBUTING-RU.md) в начале работы для понимания. RustDesk приветствует вклад каждого. Ознакомьтесь с [`docs/CONTRIBUTING-RU.md`](CONTRIBUTING-RU.md) в начале работы для понимания.
[**Как работает RustDesk?**](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) [**Как работает RustDesk?**](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) (Документация на английском языке)
[**Часто задаваемые вопросы**](https://github.com/rustdesk/rustdesk/wiki/FAQ) (Страница на английском языке)
[**СКАЧАТЬ ПРИЛОЖЕНИЕ**](https://github.com/rustdesk/rustdesk/releases) [**СКАЧАТЬ ПРИЛОЖЕНИЕ**](https://github.com/rustdesk/rustdesk/releases)
[**ночные сборки (актуальные)**](https://github.com/rustdesk/rustdesk/releases/tag/nightly) [**НОЧНЫЕ СБОРКИ (Актуальные)**](https://github.com/rustdesk/rustdesk/releases/tag/nightly)
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" alt="Get it on F-Droid" height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) [<img src="https://f-droid.org/badge/get-it-on.png"
alt="Get it on F-Droid"
## Бесплатные общедоступные серверы height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
[<img src="https://flathub.org/api/badge?svg&locale=en"
Ниже приведены бесплатные публичные сервера, используемые по умолчанию. Имейте ввиду, они могут меняться со временем. Также стоит отметить, что скорость работы сети зависит от вашего местоположения и расстояния до серверов. Подключение происходит к ближайшему доступному. alt="Get it on Flathub"
| Расположение | Поставщик | Технические характеристики | height="80">](https://flathub.org/apps/com.rustdesk.RustDesk)
| --------- | ------------- | ------------------ |
| Германия | Hetzner | 2 vCPU / 4GB RAM |
## Зависимости ## Зависимости
Настольные версии используют [sciter](https://sciter.com/) для графического интерфейса, загрузите динамическую библиотеку sciter самостоятельно. Для ПК-версии используются библиотеки Flutter или Sciter (устаревшее) для графического интерфейса. Данное руководство подразумевает работу с Sciter, так как он более простой в использовании и с ним легче начать работу. Вы можете также посмотреть на механизм нашего [CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) для сборок на Flutter.
Загрузите динамическую библиотеку Flutter самостоятельно.
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) | [Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) |
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) | [Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
[MacOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib) [macOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib)
Мобильные версии используют Flutter. В будущем мы перенесем настольную версию со Sciter на Flutter.
## Первичные шаги для сборки ## Первичные шаги для сборки
@@ -52,22 +55,32 @@ RustDesk приветствует вклад каждого. Ознакомьт
- Установите [vcpkg](https://github.com/microsoft/vcpkg), и правильно установите переменную `VCPKG_ROOT` - Установите [vcpkg](https://github.com/microsoft/vcpkg), и правильно установите переменную `VCPKG_ROOT`
- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static - Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
- Linux/MacOS: vcpkg install libvpx libyuv opus aom - Linux/macOS: vcpkg install libvpx libyuv opus aom
- Запустите `cargo run` - Выполните команду `cargo run`
## [Сборка](https://rustdesk.com/docs/ru/dev/build/)
## Как собрать на Linux ## Как собрать на Linux
### Ubuntu 18 (Debian 10) ### Ubuntu 18 (Debian 10)
```sh ```sh
sudo apt install -y g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpam0g-dev
```
### openSUSE Tumbleweed
```sh
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel pam-devel
``` ```
### Fedora 28 (CentOS 8) ### Fedora 28 (CentOS 8)
```sh ```sh
sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel gstreamer1-devel gstreamer1-plugins-base-devel pam-devel
``` ```
### Arch (Manjaro) ### Arch (Manjaro)
@@ -106,7 +119,7 @@ cd
```sh ```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk git clone --recurse-submodules https://github.com/rustdesk/rustdesk
cd rustdesk cd rustdesk
mkdir -p target/debug mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
@@ -114,10 +127,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Смените Wayland на X11 (Xorg)
RustDesk не поддерживает Wayland. Смотрите [этот документ](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) для настройки Xorg в качестве сеанса GNOME по умолчанию.
## Как собрать с помощью Docker ## Как собрать с помощью Docker
Начните с клонирования репозитория и создания docker-контейнера: Начните с клонирования репозитория и создания docker-контейнера:
@@ -125,16 +134,17 @@ RustDesk не поддерживает Wayland. Смотрите [этот до
```sh ```sh
git clone https://github.com/rustdesk/rustdesk git clone https://github.com/rustdesk/rustdesk
cd rustdesk cd rustdesk
git submodule update --init --recursive
docker build -t "rustdesk-builder" . docker build -t "rustdesk-builder" .
``` ```
Затем каждый раз, когда вам нужно собрать приложение, запускайте следующую команду: Затем при каждой сборке приложения выполняйте следующую команду:
```sh ```sh
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
``` ```
Обратите внимание, что первая сборка может занять больше времени, прежде чем зависимости будут кэшированы, но последующие сборки будут выполняться быстрее. Кроме того, если вам нужно указать другие аргументы для команды сборки, вы можете сделать это в конце команды в переменной `<OPTIONAL-ARGS>`. Например, если вы хотите создать оптимизированную версию, вы должны запустить приведенную выше команду и в конце строки добавить `--release`. Полученный исполняемый файл будет доступен в целевой папке вашей системы и может быть запущен с помощью: Обратите внимание, что первая сборка может занять больше времени, прежде чем зависимости будут кэшированы, но последующие сборки будут выполняться быстрее. Кроме того, если вам нужно указать другие аргументы для команды сборки, вы можете сделать это в конце команды в переменной `<OPTIONAL-ARGS>`. Например, если вы хотите создать оптимизированную версию, вы должны выполнить приведенную выше команду и в конце строки добавить `--release`. Полученный исполняемый файл будет доступен в целевой папке вашей системы и может быть запущен с помощью следующей команды:
```sh ```sh
target/debug/rustdesk target/debug/rustdesk
@@ -146,25 +156,28 @@ target/debug/rustdesk
target/release/rustdesk target/release/rustdesk
``` ```
Пожалуйста, убедитесь, что вы запускаете эти команды из корня репозитория RustDesk, иначе приложение не сможет найти необходимые ресурсы. Также обратите внимание, что другие cargo подкоманды, такие как `install` или `run`, в настоящее время не поддерживаются этим методом, поскольку они будут устанавливать или запускать программу внутри контейнера, а не на хосте. Пожалуйста, убедитесь, что вы запускаете эти команды из корня репозитория RustDesk, иначе приложение не сможет найти необходимые ресурсы. Также обратите внимание, что другие подкоманды Cargo, такие как `install` или `run`, в настоящее время не поддерживаются этим методом, поскольку они будут устанавливать или запускать программу внутри контейнера, а не на хосте.
## Структура файлов ## Структура файлов
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: видеокодек, конфиг, обертка tcp/udp, protobuf, функции fs для передачи файлов и некоторые другие служебные функции - **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: видеокодек, конфигурация, враппер TCP/UDP, protobuf, функции файловой системы для передачи файлов и некоторые другие служебные функции
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: захват экрана - **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: захват экрана
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: специфичное для платформы управление клавиатурой/мышью - **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: специфичное для платформы управление клавиатурой/мышью
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: графический пользовательский интерфейс - **[libs/clipboard](https://github.com/rustdesk/rustdesk/tree/master/libs/clipboard)**: функционал буфера обмена файлами для Windows, Linux, и macOS
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: сервисы аудио/буфера обмена/ввода/видео и сетевых подключений - **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: графический пользовательский интерфейс на Sciter (устаревшее)
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: сервисы аудио, буфера обмена, ввода, видео и сетевых подключений
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: одноранговое соединение - **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: одноранговое соединение
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: свяжитесь с [rustdesk-server](https://github.com/rustdesk/rustdesk-server), дождитесь удаленного прямого (обход TCP NAT) или ретранслируемого соединения - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: связь с [сервером Rustdesk](https://github.com/rustdesk/rustdesk-server), ожидает удаленного прямого (через TCP hole punching) или ретранслируемого соединения
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: специфичный для платформы код - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: специфичный для платформы код
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: код Flutter для ПК-версии и мобильных устройств
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/v1/js)**: JavaScript для Web-клиента Flutter
## Скриншоты ## Скриншоты
![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png) ![Менеджер соединений](https://github.com/rustdesk/rustdesk/assets/28412477/db82d4e7-c4bc-4823-8e6f-6af7eadf7651)
![image](https://user-images.githubusercontent.com/71636191/113112619-f705a480-923b-11eb-911d-97e984ef52b6.png) ![Подключение к удалённому рабочему столу на Windows](https://github.com/rustdesk/rustdesk/assets/28412477/9baa91e9-3362-4d06-aa1a-7518edcbd7ea)
![image](https://user-images.githubusercontent.com/71636191/113112857-3fbd5d80-923c-11eb-9836-768325faf906.png) ![Передача файлов](https://github.com/rustdesk/rustdesk/assets/28412477/39511ad3-aa9a-4f8c-8947-1cce286a46ad)
![image](https://user-images.githubusercontent.com/71636191/135385039-38fdbd72-379a-422d-b97f-33df71fb1cec.png) ![TCP-туннелирование](https://github.com/rustdesk/rustdesk/assets/28412477/78e8708f-e87e-4570-8373-1360033ea6c5)

182
docs/README-TR.md Normal file
View File

@@ -0,0 +1,182 @@
<p align="center">
<img src="../res/logo-header.svg" alt="RustDesk - Uzak masaüstü uygulamanız"><br>
<a href="#free-public-servers">Sunucular</a>
<a href="#raw-steps-to-build">Derleme</a>
<a href="#how-to-build-with-docker">Docker ile Derleme</a>
<a href="#file-structure">Dosya Yapısı</a>
<a href="#snapshot">Ekran Görüntüleri</a><br>
[<a href="docs/README-UA.md">Українська</a>] | [<a href="docs/README-CS.md">česky</a>] | [<a href="docs/README-ZH.md">中文</a>] | [<a href="docs/README-HU.md">Magyar</a>] | [<a href="docs/README-ES.md">Español</a>] | [<a href="docs/README-FA.md">فارسی</a>] | [<a href="docs/README-FR.md">Français</a>] | [<a href="docs/README-DE.md">Deutsch</a>] | [<a href="docs/README-PL.md">Polski</a>] | [<a href="docs/README-ID.md">Indonesian</a>] | [<a href="docs/README-FI.md">Suomi</a>] | [<a href="docs/README-ML.md">മലയാളം</a>] | [<a href="docs/README-JP.md">日本語</a>] | [<a href="docs/README-NL.md">Nederlands</a>] | [<a href="docs/README-IT.md">Italiano</a>] | [<a href="docs/README-RU.md">Русский</a>] | [<a href="docs/README-PTBR.md">Português (Brasil)</a>] | [<a href="docs/README-EO.md">Esperanto</a>] | [<a href="docs/README-KR.md">한국어</a>] | [<a href="docs/README-AR.md">العربي</a>] | [<a href="docs/README-VN.md">Tiếng Việt</a>] | [<a href="docs/README-DA.md">Dansk</a>] | [<a href="docs/README-GR.md">Ελληνικά</a>]<br>
<b>README, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> ve <a href="https://github.com/rustdesk/doc.rustdesk.com">RustDesk Belge</a>'sini ana dilinize çevirmemiz için yardımınıza ihtiyacımız var</b>
</p>
Bizimle sohbet edin: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Başka bir uzak masaüstü yazılımı daha, Rust dilinde yazılmış. Hemen kullanıma hazır, hiçbir yapılandırma gerektirmez. Verilerinizin tam kontrolünü elinizde tutarsınız ve güvenlikle ilgili endişeleriniz olmaz. Kendi buluş/iletme sunucumuzu kullanabilirsiniz, [kendi sunucunuzu kurabilirsiniz](https://rustdesk.com/server) veya [kendi buluş/iletme sunucunuzu yazabilirsiniz](https://github.com/rustdesk/rustdesk-server-demo).
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
RustDesk, herkesten katkıyı kabul eder. Başlamak için [CONTRIBUTING.md](CONTRIBUTING-TR.md) belgesine göz atın.
[**SSS**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
[**BİNARİ İNDİR**](https://github.com/rustdesk/rustdesk/releases)
[**NİGHTLY DERLEME**](https://github.com/rustdesk/rustdesk/releases/tag/nightly)
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="F-Droid'de Alın"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
## Bağımlılıklar
Masaüstü sürümleri GUI için
[Sciter](https://sciter.com/) veya Flutter kullanır, bu kılavuz sadece Sciter içindir.
Lütfen Sciter dinamik kütüphanesini kendiniz indirin.
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) |
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
[macOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib)
## Temel Derleme Adımları
- Rust geliştirme ortamınızı ve C++ derleme ortamınızı hazırlayın.
- [vcpkg](https://github.com/microsoft/vcpkg) yükleyin ve `VCPKG_ROOT` çevresel değişkenini doğru bir şekilde ayarlayın.
- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
- Linux/macOS: vcpkg install libvpx libyuv opus aom
- `cargo run` komutunu çalıştırın.
## [Derleme](https://rustdesk.com/docs/en/dev/build/)
## Linux Üzerinde Derleme Nasıl Yapılır
### Ubuntu 18 (Debian 10)
```sh
sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev
```
### openSUSE Tumbleweed
```sh
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel
```
### Fedora 28 (CentOS 8)
```sh
sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel
```
### Arch (Manjaro)
```sh
sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire
```
### vcpkg'yi Yükleyin
```sh
git clone https://github.com/microsoft/vcpkg
cd vcpkg
git checkout 2023.04.15
cd ..
vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom
```
### libvpx'i Düzeltin (Fedora için)
```sh
cd vcpkg/buildtrees/libvpx/src
cd *
./configure
sed -i 's/CFLAGS+=-I/CFLAGS+=-fPIC -I/g' Makefile
sed -i 's/CXXFLAGS+=-I/CXXFLAGS+=-fPIC -I/g' Makefile
make
cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/
cd
```
### Derleme
```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
source $HOME/.cargo/env
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
mkdir -p target/debug
wget https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so
mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run
```
## Docker ile Derleme Nasıl Yapılır
Öncelikle deposunu klonlayın ve Docker konteynerini oluşturun:
```sh
git clone https://github.com/rustdesk/rustdesk
cd rustdesk
docker build -t "rustdesk-builder" .
```
Ardından, uygulamayı derlemek için her seferinde aşağıdaki komutu çalıştırın:
```sh
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
```
İlk derleme, bağımlılıklar önbelleğe alınmadan önce daha uzun sürebilir, sonraki derlemeler daha hızlı olacaktır. Ayrıca, derleme komutuna isteğe bağlı argümanlar belirtmeniz gerekiyorsa, bunu
komutun sonunda `<İSTEĞE BAĞLI-ARGÜMANLAR>` pozisyonunda yapabilirsiniz. Örneğin, optimize edilmiş bir sürümü derlemek isterseniz, yukarıdaki komutu çalıştırdıktan sonra `--release` ekleyebilirsiniz. Oluşan yürütülebilir dosya sisteminizdeki hedef klasöründe bulunacak ve şu komutla çalıştırılabilir:
```sh
target/debug/rustdesk
```
Veya, yayın yürütülebilir dosyası çalıştırılıyorsa:
```sh
target/release/rustdesk
```
Lütfen bu komutları RustDesk deposunun kökünden çalıştırdığınızdan emin olun, aksi takdirde uygulama gereken kaynakları bulamayabilir. Ayrıca, `install` veya `run` gibi diğer cargo altkomutları şu anda bu yöntem aracılığıyla desteklenmemektedir, çünkü bunlar programı konteyner içinde kurar veya çalıştırır ve ana makinede değil.
## Dosya Yapısı
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: video kodlayıcı, yapılandırma, tcp/udp sarmalayıcı, protobuf, dosya transferi için fs işlevleri ve diğer bazı yardımcı işlevler
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: ekran yakalama
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: platforma özgü klavye/fare kontrolü
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: GUI
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: ses/pasta/klavye/video hizmetleri ve ağ bağlantıları
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: bir eş bağlantısı başlatır
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: [rustdesk-server](https://github.com/rustdesk/rustdesk-server) ile iletişim kurar, uzak doğrudan (TCP delik vurma) veya iletme bağlantısını bekler
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: platforma özgü kod
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: mobil için Flutter kodu
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: Flutter web istemcisi için JavaScript
> [!Dikkat]
> **Yanlış Kullanım Uyarısı:** <br>
> RustDesk geliştiricileri, bu yazılımın etik olmayan veya yasa dışı kullanımını onaylamaz veya desteklemez. Yetkisiz erişim, kontrol veya gizlilik ihlali gibi kötüye kullanımlar kesinlikle yönergelerimize aykırıdır. Yazarlar, uygulamanın herhangi bir yanlış kullanımından sorumlu değildir.
## Ekran Görüntüleri
![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png)
![image](https://user-images.githubusercontent.com/71636191/113112619-f705a480-923b-11eb-911d-97e984ef52b6.png)
![image](https://user-images.githubusercontent.com/71636191/113112857-3fbd5d80-923c-11eb-9836-768325faf906.png)
![image](https://user-images.githubusercontent.com/71636191/135385039-38fdbd72-379a-422d-b97f-33df71fb1cec.png)
```

View File

@@ -1,71 +1,57 @@
<p align="center"> <p align="center">
<img src="../res/logo-header.svg" alt="RustDesk - Ваш віддалений робочий стіл"><br> <img src="../res/logo-header.svg" alt="RustDesk - Ваша віддалена стільниця"><br>
<a href="#безкоштовні-загальнодоступні-сервери">Сервери</a> <a href="#публічні-сервери">Сервери</a>
<a href="#первинні-кроки-для-складання">Складання</a> <a href="#кроки-для-збірки">Збирання</a>
<a href="#як-зібрати-за-допомогою-docker">Docker</a> <a href="#як-зібрати-за-допомогою-docker">Docker</a>
<a href="#структура-файлів">Структура</a> <a href="#структура-файлів">Структура</a>
<a href="#знімки">Знімки</a><br> <a href="#знімки-екрана">Знімки екрана</a><br>
[<a href="../README.md">English</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br> [<a href="../README.md">English</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-DA.md">Dansk</a>] | [<a href="README-GR.md">Ελληνικά</a>] | [<a href="README-TR.md">Türkçe</a>]<br>
<b>Нам потрібна ваша допомога для перекладу цього README і <a href="https://github.com/rustdesk/rustdesk/tree/master/src/rustdesk/tree/master/src/lang">RustDesk UI</a> на вашу рідну мову</B> <b>Нам потрібна ваша допомога для перекладу цього README, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">інтерфейсу</a> та <a href="https://github.com/rustdesk/doc.rustdesk.com">документації</a> RustDesk вашою рідною мовою</B>
</p> </p>
Спілкування з нами: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Спілкування з нами: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Ще одне програмне забезпечення для віддаленого робочого столу, написане на Rust. Працює з коробки, не потребує налаштування. Ви повністю контролюєте свої дані, не турбуючись про безпеку. Ви можете використовувати наш сервер ретрансляції, [налаштувати свій власний](https://rustdesk.com/server), або [написати свій власний сервер ретрансляції](https://github.com/rustdesk/rustdesk-server-demo). Ще один застосунок для віддаленого керування стільницею, написаний на Rust. Працює з коробки, не потребує налаштування. Ви повністю контролюєте свої дані, не турбуючись про безпеку. Ви можете використовувати наш сервер ретрансляції, [налаштувати свій власний](https://rustdesk.com/server), або [написати свій власний сервер ретрансляції](https://github.com/rustdesk/rustdesk-server-demo).
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png) ![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
RustDesk вітає внесок кожного. Дивіться [`docs/CONTRIBUTING.md`](CONTRIBUTING.md) для допомоги на початку роботи. RustDesk вітає внесок кожного. Ознайомтеся з [CONTRIBUTING.md](CONTRIBUTING.md), щоб отримати допомогу на початковому етапі.
[**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ) [**ЧаПи**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
[**Як працює RustDesk?**](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) [**ЗАВАНТАЖЕННЯ ЗАСТОСУНКУ**](https://github.com/rustdesk/rustdesk/releases)
[**ЗАВАНТАЖИТИ ЗАСТОСУНОК**](https://github.com/rustdesk/rustdesk/releases) [**НІЧНІ ЗБІРКИ**](https://github.com/rustdesk/rustdesk/releases/tag/nightly)
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" [<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid" alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
## Безкоштовні загальнодоступні сервери
Нижче наведені сервери, для безкоштовного використання, вони можуть змінюватися з часом. Якщо ви не перебуваєте поруч з одним із них, ваша мережа може працювати повільно.
| Місцезнаходження | Постачальник | Технічні характеристики |
| --------- | ------------- | ------------------ |
| Німеччина | Hetzner | 2 VCPU / 4GB RAM |
| Україна (Київ) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4GB RAM |
## Dev Container
[![Open in Dev Containers](https://img.shields.io/static/v1?label=Dev%20Container&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/rustdesk/rustdesk)
Якщо у вас уже встановлено VS Code і Docker, ви можете натиснути значок вище, щоб почати. Клацання призведе до того, що VS Code автоматично встановить розширення Dev Containers, якщо це необхідно, клонує виcхідний код у том контейнера та розгорне контейнер dev для використання.
Дивіться [DEVCONTAINER.md](docs/DEVCONTAINER.md) для додаткової інфо.
## Залежності ## Залежності
Настільні версії використовують [sciter](https://sciter.com/) для графічного інтерфейсу, завантажте динамічну бібліотеку sciter самостійно. Стільничні версії використовують Flutter чи Sciter (застаріле) для графічного інтерфейсу. Ця інструкція лише для Sciter, оскільки він є більш простим та дружнім для початківців. Перегляньте [CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) для збірки версії на Flutter.
Будь ласка, завантажте динамічну бібліотеку Sciter самостійно.
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) | [Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) |
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) | [Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
[MacOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib) [macOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib)
Мобільні версії використовують Flutter. У майбутньому ми перенесемо настільну версію зі Sciter на Flutter. ## Кроки для збірки
## Первинні кроки для складання - Підготуйте середовище розробки Rust і середовище збирання C++.
- Підготуйте середовище розробки Rust і середовище збірки C++.
- Встановіть [vcpkg](https://github.com/microsoft/vcpkg), і правильно встановіть змінну `VCPKG_ROOT`. - Встановіть [vcpkg](https://github.com/microsoft/vcpkg), і правильно встановіть змінну `VCPKG_ROOT`.
- Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static - Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
- Linux/MacOS: vcpkg install libvpx libyuv opus aom - Linux/macOS: vcpkg install libvpx libyuv opus aom
- Запустіть `cargo run` - Запустіть `cargo run`
## [Збирання](https://rustdesk.com/docs/en/dev/build/)
## Як зібрати на Linux ## Як зібрати на Linux
### Ubuntu 18 (Debian 10) ### Ubuntu 18 (Debian 10)
@@ -73,18 +59,19 @@ RustDesk вітає внесок кожного. Дивіться [`docs/CONTRIB
```sh ```sh
sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \ sudo apt install -y zip g++ gcc git curl wget nasm yasm libgtk-3-dev clang libxcb-randr0-dev libxdo-dev \
libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \ libxfixes-dev libxcb-shape0-dev libxcb-xfixes0-dev libasound2-dev libpulse-dev cmake make \
libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libclang-dev ninja-build libgstreamer1.0-dev libgstreamer-plugins-base1.0-dev libpam0g-dev
``` ```
### openSUSE Tumbleweed ### openSUSE Tumbleweed
```sh ```sh
sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel sudo zypper install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libXfixes-devel cmake alsa-lib-devel gstreamer-devel gstreamer-plugins-base-devel xdotool-devel pam-devel
``` ```
### Fedora 28 (CentOS 8) ### Fedora 28 (CentOS 8)
```sh ```sh
sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-devel libxdo-devel libXfixes-devel pulseaudio-libs-devel cmake alsa-lib-devel gstreamer1-devel gstreamer1-plugins-base-devel pam-devel
``` ```
### Arch (Manjaro) ### Arch (Manjaro)
@@ -99,7 +86,7 @@ sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-c
git clone https://github.com/microsoft/vcpkg git clone https://github.com/microsoft/vcpkg
cd vcpkg cd vcpkg
git checkout 2023.04.15 git checkout 2023.04.15
cd ... cd ..
vcpkg/bootstrap-vcpkg.sh vcpkg/bootstrap-vcpkg.sh
export VCPKG_ROOT=$HOME/vcpkg export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom vcpkg/vcpkg install libvpx libyuv opus aom
@@ -118,7 +105,7 @@ cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/
cd cd
``` ```
### Збірка ### Збирання
```sh ```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
@@ -131,10 +118,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Змініть Wayland на X11 (Xorg)
RustDesk не підтримує Wayland. Дивіться [цей документ](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) для налаштування Xorg як сеансу GNOME за замовчуванням.
## Як зібрати за допомогою Docker ## Як зібрати за допомогою Docker
Почніть з клонування сховища та створення docker-контейнера: Почніть з клонування сховища та створення docker-контейнера:
@@ -145,7 +128,7 @@ cd rustdesk
docker build -t "rustdesk-builder" . docker build -t "rustdesk-builder" .
``` ```
Потім кожного разу, коли вам потрібно зібрати додаток, запускайте таку команду: Надалі щоразу, коли вам буде потрібно зібрати застосунок, запускайте таку команду:
```sh ```sh
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
@@ -170,20 +153,22 @@ target/release/rustdesk
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: відеокодек, конфіг, обгортка tcp/udp, protobuf, функції fs для передавання файлів і деякі інші службові функції - **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: відеокодек, конфіг, обгортка tcp/udp, protobuf, функції fs для передавання файлів і деякі інші службові функції
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: захоплення екрана - **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: захоплення екрана
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: специфічне для платформи керування клавіатурою/мишею - **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: специфічне для платформи керування клавіатурою/мишею
- **[libs/clipboard](https://github.com/rustdesk/rustdesk/tree/master/libs/clipboard)**: реалізація копіювання та вставлення файлів для Windows, Linux, macOS.
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: графічний інтерфейс користувача - **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: графічний інтерфейс користувача
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: сервіси аудіо/буфера обміну/вводу/відео та мережевих підключень - **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: сервіси аудіо/буфера обміну/вводу/відео та мережевих підключень
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: однорангове з'єднання - **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: однорангове зʼєднання
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: комунікація з [rustdesk-server](https://github.com/rustdesk/rustdesk-server), очікування віддаленого прямого (обхід TCP NAT) або ретрансльованого з'єднання - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: комунікація з [rustdesk-server](https://github.com/rustdesk/rustdesk-server), очікування віддаленого прямого (обхід TCP NAT) або ретрансльованого зʼєднання
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: специфічний для платформи код - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: специфічний для платформи код
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: код Flutter для мобільних пристроїв - **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: код Flutter для мобільних пристроїв
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: JavaScript для Flutter веб клієнту - **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: JavaScript для веб клієнта на Flutter
## Знімки ## Знімки екрана
![image](https://user-images.githubusercontent.com/71636191/113112362-ae4deb80-923b-11eb-957d-ff88daad4f06.png) ![Менеджер зʼєднань](https://github.com/rustdesk/rustdesk/assets/28412477/db82d4e7-c4bc-4823-8e6f-6af7eadf7651)
![image](https://user-images.githubusercontent.com/71636191/113112619-f705a480-923b-11eb-911d-97e984ef52b6.png) ![Підключення до ПК з Windows](https://github.com/rustdesk/rustdesk/assets/28412477/9baa91e9-3362-4d06-aa1a-7518edcbd7ea)
![image](https://user-images.githubusercontent.com/71636191/113112857-3fbd5d80-923c-11eb-9836-768325faf906.png) ![Передача файлів](https://github.com/rustdesk/rustdesk/assets/28412477/39511ad3-aa9a-4f8c-8947-1cce286a46ad)
![Тунелювання TCP](https://github.com/rustdesk/rustdesk/assets/28412477/78e8708f-e87e-4570-8373-1360033ea6c5)
![image](https://user-images.githubusercontent.com/71636191/135385039-38fdbd72-379a-422d-b97f-33df71fb1cec.png)

View File

@@ -1,64 +1,55 @@
<p align="center"> <p align="center">
<img src="../res/logo-header.svg" alt="RustDesk - Phần mềm điểu khiển máy tính từ xa dành cho bạn"><br> <img src="../res/logo-header.svg" alt="RustDesk - Your remote desktop"><br>
<a href="#free-public-servers">Máy chủ</a> <a href="#free-public-servers">Server</a>
<a href="#raw-steps-to-build">Build</a> <a href="#raw-steps-to-build">Build</a>
<a href="#how-to-build-with-docker">Docker</a> <a href="#how-to-build-with-docker">Docker</a>
<a href="#file-structure">Cấu trúc tệp tin</a> <a href="#file-structure">Structure</a>
<a href="#snapshot">Snapshot</a><br> <a href="#snapshot">Snapshot</a><br>
[<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br> [<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-ZH.md">中文</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br>
<b>Chúng tôi cần sự gíup đỡ của bạn để dịch trang README này, <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a><a href="https://github.com/rustdesk/doc.rustdesk.com">tài liệu</a> sang ngôn ngữ bản địa của bạn</b> <b>Chúng tôi rất hoan nghênh sự hỗ trợ của bạn trong việc dịch trang README, trang giao diện người dùng của RustDesk - <a href="https://github.com/rustdesk/rustdesk/tree/master/src/lang">RustDesk UI</a> trang tài liệu của RustDesk - <a href="https://github.com/rustdesk/doc.rustdesk.com">RustDesk Doc</a> sang Tiếng Việt</b>
</p> </p>
Chat với chúng tôi qua: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) Hãy trao đổi với chúng tôi qua: [Discord](https://discord.gg/nDceKgxnkV) | [Twitter](https://twitter.com/rustdesk) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
Một phần mềm điểu khiển máy tính từ xa, đuợc lập trình bằng ngôn ngữ Rust. Hoạt động tức thì, không cần phải cài đặt. Bạn có toàn quyền điểu khiển với dữ liệu của bạn mà không cần phải lo lắng về sự bảo mật. Bạn có thể sử dụng máy chủ rendezvous/relay của chúng tôi, [tự cài đặt máy chủ](https://rustdesk.com/server), hay thậm chí [tự tạo máy chủ rendezvous/relay](https://github.com/rustdesk/rustdesk-server-demo). RustDesk là một phần mềm điểu khiển máy tính từ xa mã nguồn mở, được viết bằng Rust. Nó hoạt động ngay sau khi cài đặt, không yêu cầu cấu hình phức tạp. Bạn có toàn quyền kiểm soát với dữ liệu của mình mà không cần phải lo lắng về vấn đề bảo mật. Bạn có thể sử dụng máy chủ rendezvous/relay của chúng tôi hoặc [tự cài đặt máy chủ của riêng mình](https://rustdesk.com/server) hay thậm chí [tự tạo máy chủ rendezvous/relay cho riêng bạn](https://github.com/rustdesk/rustdesk-server-demo).
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png) ![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
Mọi người đều đuợc chào đón để đóng góp vào RustDesk. Để bắt đầu, hãy đọc [`docs/CONTRIBUTING.md`](CONTRIBUTING.md). **RustDesk** luôn hoan nghênh mọi đóng góp từ mọi người. Hãy xem tệp [`docs/CONTRIBUTING.md`](CONTRIBUTING.md) để bắt đầu.
[**RustDesk hoạt động như thế nào?**](https://github.com/rustdesk/rustdesk/wiki/How-does-RustDesk-work%3F) [**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
[**BINARY DOWNLOAD**](https://github.com/rustdesk/rustdesk/releases)
[**CÁC BẢN PHÂN PHÁT MÃ NHỊ PHÂN**](https://github.com/rustdesk/rustdesk/releases) [**NIGHTLY BUILD**](https://github.com/rustdesk/rustdesk/FAQreleases/tag/nightly)
[<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png" [<img src="https://fdroid.gitlab.io/artwork/badge/get-it-on.png"
alt="Get it on F-Droid" alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
## Các Máy Chủ Công Khai Miễn Phí
Dưới đây là những máy chủ mà bạn có thể sử dụng mà không mất phí, chú ý là máy chủ có thể thay đổi theo thời gian. Nếu địa điểm của bạn không gần một trong số những máy chủ này, thì kết nói có thể chậm.
| Địa điểm | Nhà cung cấp | Cấu hình |
| --------- | ------------- | ------------------ |
| Germany | Hetzner | 2 vCPU / 4GB RAM |
## Dependencies ## Dependencies
Phiên bản cho máy tính sử dụng [sciter](https://sciter.com/) cho giao diện của phần mềm, vậy nên bn cần tự tải về thư viện sciter. Phiên bản máy tính sử dụng __Flutter__ hoặc __Sciter__ (đã lỗi thời) cho giao diện người dùng (GUI). Hướng dẫn này chỉ áp dụng cho phiên bn Sciter, vì nó thân thiện và dễ bắt đầu hơn. Hãy kiểm tra [CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml) của chúng tôi để xây dựng phiên bản Flutter.
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) | Vui lòng tự tải thư viện `Sciter` về máy theo hướng dẫn cho từng hệ điều hành.
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
[MacOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib)
Phiên bản cho điện thoại sử dụng Flutter. Chúng tôi sẽ chuyển sang sử dụng Flutter thay cho Sciter cho phiên bản máy tính. [Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) | [Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) | [MacOS](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.osx/libsciter.dylib)
## Cách để build ## Các bước build cơ bản
- Chuẩn bị môi trường phát triển Rust và môi trường build C++ - Chuẩn bị môi trường phát triển Rust và môi trường biên dịch C++
- Tải và cài [vcpkg](https://github.com/microsoft/vcpkg), và đặt biến môi trường `VCPKG_ROOT` sao cho đúng. - Tải và cài đặt [`vcpkg`](https://github.com/microsoft/vcpkg), và thiết lập biến môi trường `VCPKG_ROOT`.
- Đối với Windows: vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static
- Đối với Linux/MacOS: vcpkg install libvpx libyuv opus aom
- Windows: `vcpkg install libvpx:x64-windows-static libyuv:x64-windows-static opus:x64-windows-static aom:x64-windows-static`
- Linux/MacOS: `vcpkg install libvpx libyuv opus aom`
- Chạy lệnh `cargo run` - Chạy lệnh `cargo run`
## [Build](https://rustdesk.com/docs/en/dev/build/) ## [Build](https://rustdesk.com/docs/en/dev/build/)
## Cách để build cho Linux ## Cách build cho Linux
### Ubuntu 18 (Debian 10) ### Ubuntu 18 (Debian 10)
@@ -78,7 +69,7 @@ sudo yum -y install gcc-c++ git curl wget nasm yasm gcc gtk3-devel clang libxcb-
sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire sudo pacman -Syu --needed unzip git cmake gcc curl wget yasm nasm zip make pkg-config clang gtk3 xdotool libxcb libxfixes alsa-lib pipewire
``` ```
### Cách cài vcpkg ### Cách cài đặt `vcpkg`
```sh ```sh
git clone https://github.com/microsoft/vcpkg git clone https://github.com/microsoft/vcpkg
@@ -90,7 +81,7 @@ export VCPKG_ROOT=$HOME/vcpkg
vcpkg/vcpkg install libvpx libyuv opus aom vcpkg/vcpkg install libvpx libyuv opus aom
``` ```
### Cách sửa lỗi libvpx (Dành cho hệ điều hành Fedora) ### Cách sửa lỗi `libvpx` (Dành cho hệ điều hành Fedora)
```sh ```sh
cd vcpkg/buildtrees/libvpx/src cd vcpkg/buildtrees/libvpx/src
@@ -103,7 +94,7 @@ cp libvpx.a $HOME/vcpkg/installed/x64-linux/lib/
cd cd
``` ```
### Cách build ### Build
```sh ```sh
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
@@ -116,13 +107,9 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### Chuyển từ Wayland sang X11 (Xorg) ## Cách build bằng Docker
RustDesk hiện không hỗ trợ Wayland. Hãy xem [đường linh ở đây](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/) cách để cài đặt Xorg làm session mặc định của GNOME. Bắt đầu bằng cách sao chép repo này về máy tính của bạn và tạo Docker container:
## Cách để build sử dụng Docker
Bắt đầu bằng cách sao chép repo này về máy tính và build cái Docker cointainer:
```sh ```sh
git clone https://github.com/rustdesk/rustdesk git clone https://github.com/rustdesk/rustdesk
@@ -130,37 +117,37 @@ cd rustdesk
docker build -t "rustdesk-builder" . docker build -t "rustdesk-builder" .
``` ```
Rồi mỗi khi bạn chạy ứng dụng, thì hãy chạy lệnh này: Sau đó, mỗi khi bạn chạy ứng dụng, thì hãy chạy dòng lệnh sau:
```sh ```sh
docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder docker run --rm -it -v $PWD:/home/user/rustdesk -v rustdesk-git-cache:/home/user/.cargo/git -v rustdesk-registry-cache:/home/user/.cargo/registry -e PUID="$(id -u)" -e PGID="$(id -g)" rustdesk-builder
``` ```
Chú ý: Lần build đầu tiên có thể sẽ mất lâu hơn truớc khi các dependecies đuợc lưu lại, nhng lần build sau sẽ nhanh hơn. Hơn nũa, nếu bạn cần cung cấp các cài đặt lệnh khác cho lệnh build, bạn có thể đặt những cài đặt lệnh này vào cuối lệnh ở phần `<OPTIONAL-ARGS>`. Ví dụ nếu bạn cần build phiên bản đuợc tối ưu hóa, bạn sẽ chạy lệnh trên cùng với cài đặt lệnh --release. Kết quả build sẽ được lưu trong thư mục target trên máy tính của bạn, và có thể chạy với lệnh: Lưu ý rằng **lần build đầu tiên có thể mất thời gian hơn trước khi các dependencies được lưu vào bộ nhớ cache**, nhưng các lần build sau sẽ nhanh hơn. Ngoài ra, nếu bạn cần chỉ định các đối số khác cho lệnh build, bạn có thể thêm chúng vào cuối lệnh ở phần `<OPTIONAL-ARGS>`. Ví dụ, nếu bạn muốn build phiên bản tối ưu hóa, bạn sẽ chạy lệnh trên với tùy chọn `--release`. Kết quả biên dịch sẽ được lưu trong thư mục target trên máy tính của bạn, và có thể chạy với lệnh:
```sh ```sh
target/debug/rustdesk target/debug/rustdesk
``` ```
Nếu bạn đang chạy bản build đuợc tối ưu hóa, thì bạn có thể chạy với lệnh: Nếu bạn đang chạy bản build được tối ưu hóa, thì bạn có thể chạy với lệnh:
```sh ```sh
target/release/rustdesk target/release/rustdesk
``` ```
Hãy đảm bảo bạn đang chạy những lệnh này từ thu mục rễ của repo RustDesk, vì nếu không thì ứng dụng có thể sẽ không tìm đuợc những tệp tài nguyên cần thiết. Cũng như nhớ rằng những lệnh con của cargo như `install` hoặc `run` hiện chưa được hỗ trợ bởi phương pháp này vì chúng sẽ cài đặt hoặc chạy ứng dụng trong container thay vì trên máy tính của bạn. Hãy đảm bảo rằng bạn đang chạy các lệnh này từ gốc của thư mục **RustDesk**, nếu không, ứng dụng có thể không thể tìm thấy các tệp tài nguyên cần thiết. Hãy lưu ý rằng các câu lệnh con khác của **cargo** như **install** hoặc **run** hiện không được hỗ trợ qua phương pháp này, vì chúng sẽ cài đặt hoặc chạy chương trình bên trong **container** thay vì trên máy tính của bạn.
## Cấu trúc tệp tin ## Cấu trúc tệp tin
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: video codec, cấu hình, tcp/udp wrapper, protobuf, fs functions để truyền file, và một số hàm tiện ích khác - **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: video codec, cấu hình, tcp/udp wrapper, protobuf, fs functions để truyền file, và một số hàm tiện ích khác
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: để ghi lại màn hình - **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: ghi lại màn hình
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: để điều khiển máy tính/con chuột trên những nền tảng khác nhau - **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: điều khiển máy tính/chuột trên các nền tảng khác nhau
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: giao diện người dùng - **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: giao diện người dùng
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: các dịch vụ âm thanh, clipboard, đầu vào, video và các kết nối mạng - **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: các dịch vụ âm thanh, clipboard, đầu vào, video và các kết nối mạng
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: để bắt đầu kết nối với một peer - **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: bắt đầu kết nối với một peer
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: Để liên lạc với [rustdesk-server](https://github.com/rustdesk/rustdesk-server), đợi cho kết nối trực tiếp (TCP hole punching) hoặc kết nối được relayed. - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: giao tiếp với [rustdesk-server](https://github.com/rustdesk/rustdesk-server), đợi kết nối trực tiếp (TCP hole punching) hoặc kết nối được chuyển tiếp.
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: mã nguồn riêng cho mỗi nền tảng - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: mã nguồn riêng cho mỗi nền tảng
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: Mã Flutter dành cho điện thoại - **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: Mã Flutter dành máy tính và điện thoại
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: Mã JavaScript dành cho giao diện trên web bằng Flutter - **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: Mã JavaScript dành cho giao diện trên web bằng Flutter
## Snapshot ## Snapshot

View File

@@ -8,7 +8,11 @@
[<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br> [<a href="../README.md">English</a>] | [<a href="README-UA.md">Українська</a>] | [<a href="README-CS.md">česky</a>] | [<a href="README-HU.md">Magyar</a>] | [<a href="README-ES.md">Español</a>] | [<a href="README-FA.md">فارسی</a>] | [<a href="README-FR.md">Français</a>] | [<a href="README-DE.md">Deutsch</a>] | [<a href="README-PL.md">Polski</a>] | [<a href="README-ID.md">Indonesian</a>] | [<a href="README-FI.md">Suomi</a>] | [<a href="README-ML.md">മലയാളം</a>] | [<a href="README-JP.md">日本語</a>] | [<a href="README-NL.md">Nederlands</a>] | [<a href="README-IT.md">Italiano</a>] | [<a href="README-RU.md">Русский</a>] | [<a href="README-PTBR.md">Português (Brasil)</a>] | [<a href="README-EO.md">Esperanto</a>] | [<a href="README-KR.md">한국어</a>] | [<a href="README-AR.md">العربي</a>] | [<a href="README-VN.md">Tiếng Việt</a>] | [<a href="README-GR.md">Ελληνικά</a>]<br>
</p> </p>
Chat with us: [知乎](https://www.zhihu.com/people/rustdesk) | [Discord](https://discord.gg/nDceKgxnkV) | [Reddit](https://www.reddit.com/r/rustdesk) > [!CAUTION]
> **免责声明:** <br>
> RustDesk 的开发人员不纵容或支持任何不道德或非法的软件使用行为。滥用行为,例如未经授权的访问、控制或侵犯隐私,严格违反我们的准则。作者对应用程序的任何滥用行为概不负责。
与我们交流: [知乎](https://www.zhihu.com/people/rustdesk) | [Discord](https://discord.gg/nDceKgxnkV) | [Reddit](https://www.reddit.com/r/rustdesk) | [YouTube](https://www.youtube.com/@rustdesk)
[![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09) [![ko-fi](https://ko-fi.com/img/githubbutton_sm.svg)](https://ko-fi.com/I2I04VU09)
@@ -18,7 +22,7 @@ Chat with us: [知乎](https://www.zhihu.com/people/rustdesk) | [Discord](https:
![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png) ![image](https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png)
RustDesk 期待各位的贡献. 如何参与开发? 详情请看 [CONTRIBUTING.md](docs/CONTRIBUTING.md). RustDesk 期待各位的贡献. 如何参与开发? 详情请看 [CONTRIBUTING-ZH.md](CONTRIBUTING-ZH.md).
[**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ) [**FAQ**](https://github.com/rustdesk/rustdesk/wiki/FAQ)
@@ -30,26 +34,11 @@ RustDesk 期待各位的贡献. 如何参与开发? 详情请看 [CONTRIBUTING.m
alt="Get it on F-Droid" alt="Get it on F-Droid"
height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb) height="80">](https://f-droid.org/en/packages/com.carriez.flutter_hbb)
## 免费的公共服务器
以下是您可以使用的、免费的、会随时更新的公共服务器列表,在国内也许网速会很慢或者无法访问。
| Location | Vendor | Specification |
| --------- | ------------- | ------------------ |
| Germany | [Hetzner](https://www.hetzner.com) | 2 vCPU / 4 GB RAM |
| Ukraine (Kyiv) | [dc.volia](https://dc.volia.com) | 2 vCPU / 4 GB RAM |
## Dev Container
[![在 Dev Containers 中打开](https://img.shields.io/static/v1?label=Dev%20Container&message=Open&color=blue&logo=visualstudiocode)](https://vscode.dev/redirect?url=vscode://ms-vscode-remote.remote-containers/cloneInVolume?url=https://github.com/rustdesk/rustdesk)
如果你已经安装了 VS Code 和 Docker, 你可以点击上面的徽章开始使用. 点击后, VS Code 将自动安装 Dev Containers 扩展(如果需要),将源代码克隆到容器卷中, 并启动一个 Dev 容器供使用.
Go through [DEVCONTAINER.md](docs/DEVCONTAINER.md) for more info.
## 依赖 ## 依赖
桌面版本界面使用[sciter](https://sciter.com/), 请自行下载 桌面版本使用 Flutter 或 Sciter已弃用作为 GUI本教程仅适用于 Sciter因为它更简单且更易于上手。查看我们的[CI](https://github.com/rustdesk/rustdesk/blob/master/.github/workflows/flutter-build.yml)以构建 Flutter 版本
请自行下载Sciter动态库。
[Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) | [Windows](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.win/x64/sciter.dll) |
[Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) | [Linux](https://raw.githubusercontent.com/c-smile/sciter-sdk/master/bin.lnx/x64/libsciter-gtk.so) |
@@ -134,39 +123,6 @@ mv libsciter-gtk.so target/debug
VCPKG_ROOT=$HOME/vcpkg cargo run VCPKG_ROOT=$HOME/vcpkg cargo run
``` ```
### 把 Wayland 修改成 X11 (Xorg)
RustDesk 暂时不支持 Wayland不过正在积极开发中。
> [点我](https://docs.fedoraproject.org/en-US/quick-docs/configuring-xorg-as-default-gnome-session/)
查看如何将 Xorg 设置成默认的 GNOME session.
## Wayland 支持
Wayland 似乎没有提供任何将按键发送到其他窗口的 API. 因此, RustDesk 使用较低级别的 API, 即 `/dev/uinput` devices (Linux kernal level).
当 Wayland 是受控方时,您必须以下列方式开始操作:
```bash
# Start uinput service
$ sudo rustdesk --service
$ rustdesk
```
**Notice**: Wayland 屏幕录制使用不同的接口. RustDesk 目前只支持 org.freedesktop.portal.ScreenCast.
```bash
$ dbus-send --session --print-reply \
--dest=org.freedesktop.portal.Desktop \
/org/freedesktop/portal/desktop \
org.freedesktop.DBus.Properties.Get \
string:org.freedesktop.portal.ScreenCast string:version
# Not support
Error org.freedesktop.DBus.Error.InvalidArgs: No such interface “org.freedesktop.portal.ScreenCast”
# Support
method return time=1662544486.931020 sender=:1.54 -> destination=:1.139 serial=257 reply_serial=2
variant uint32 4
```
## 使用 Docker 编译 ## 使用 Docker 编译
克隆版本库并构建 Docker 容器: 克隆版本库并构建 Docker 容器:
@@ -183,8 +139,8 @@ docker build -t "rustdesk-builder" . # 构建容器
``` ```
在Dockerfile的RUN apt update之前插入两行 在Dockerfile的RUN apt update之前插入两行
RUN sed -i "s/deb.debian.org/mirrors.163.com/g" /etc/apt/sources.list RUN sed -i "s|deb.debian.org|mirrors.aliyun.com|g" /etc/apt/sources.list && \
RUN sed -i "s/security.debian.org/mirrors.163.com/g" /etc/apt/sources.list sed -i "s|security.debian.org|mirrors.aliyun.com|g" /etc/apt/sources.list
``` ```
2. 修改容器系统中的 cargo 源,在`RUN ./rustup.sh -y`后插入下面代码: 2. 修改容器系统中的 cargo 源,在`RUN ./rustup.sh -y`后插入下面代码:
@@ -257,12 +213,13 @@ target/release/rustdesk
- **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: 视频编解码, 配置, tcp/udp 封装, protobuf, 文件传输相关文件系统操作函数, 以及一些其他实用函数 - **[libs/hbb_common](https://github.com/rustdesk/rustdesk/tree/master/libs/hbb_common)**: 视频编解码, 配置, tcp/udp 封装, protobuf, 文件传输相关文件系统操作函数, 以及一些其他实用函数
- **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: 屏幕截取 - **[libs/scrap](https://github.com/rustdesk/rustdesk/tree/master/libs/scrap)**: 屏幕截取
- **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: 平台相关的鼠标键盘输入 - **[libs/enigo](https://github.com/rustdesk/rustdesk/tree/master/libs/enigo)**: 平台相关的鼠标键盘输入
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: GUI - **[libs/clipboard](https://github.com/rustdesk/rustdesk/tree/master/libs/clipboard)**: Windows、Linux、macOS 的文件复制和粘贴实现
- **[src/ui](https://github.com/rustdesk/rustdesk/tree/master/src/ui)**: 过时的 Sciter UI已弃用
- **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: 被控端服务音频、剪切板、输入、视频服务、网络连接的实现 - **[src/server](https://github.com/rustdesk/rustdesk/tree/master/src/server)**: 被控端服务音频、剪切板、输入、视频服务、网络连接的实现
- **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: 控制端 - **[src/client.rs](https://github.com/rustdesk/rustdesk/tree/master/src/client.rs)**: 控制端
- **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: 与[rustdesk-server](https://github.com/rustdesk/rustdesk-server)保持UDP通讯, 等待远程连接(通过打洞直连或者中继) - **[src/rendezvous_mediator.rs](https://github.com/rustdesk/rustdesk/tree/master/src/rendezvous_mediator.rs)**: 与[rustdesk-server](https://github.com/rustdesk/rustdesk-server)保持UDP通讯, 等待远程连接(通过打洞直连或者中继)
- **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: 平台服务相关代码 - **[src/platform](https://github.com/rustdesk/rustdesk/tree/master/src/platform)**: 平台服务相关代码
- **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: 移动版本的Flutter代码 - **[flutter](https://github.com/rustdesk/rustdesk/tree/master/flutter)**: 适用于桌面和移动设备的 Flutter 代码
- **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: Flutter Web版本中的Javascript代码 - **[flutter/web/js](https://github.com/rustdesk/rustdesk/tree/master/flutter/web/js)**: Flutter Web版本中的Javascript代码
## 截图 ## 截图

9
docs/SECURITY-JP.md Normal file
View File

@@ -0,0 +1,9 @@
# セキュリティポリシー
## 脆弱性の報告
私たちはプロジェクトのセキュリティを非常に重視しています。私たちは、すべてのユーザーが脆弱性を発見した場合、私たちに報告することを奨励しています。
RustDesk プロジェクトにセキュリティの脆弱性を発見した場合は、info@rustdesk.com までメールで責任を持って報告してください。
現時点では、バグ報奨金制度はありません。私たちは大きな問題を解決しようとしている小さなチームです。コミュニティ全体のために安全なアプリケーションを作り続けることができるよう、
責任を持って脆弱性を報告してください。

7
docs/SECURITY-KR.md Normal file
View File

@@ -0,0 +1,7 @@
# 보안 정책
## 취약점 보고
저희는 프로젝트의 보안을 매우 중요하게 생각합니다. 모든 사용자가 발견한 취약점을 저희에게 보고할 것을 권장합니다. RustDesk 프로젝트에서 보안 취약점이 발견되면 info@rustdesk.com 로 이메일을 보내 책임감 있게 보고해 주시기 바랍니다.
현재로서는 버그 현상금 프로그램이 없습니다. 저희는 큰 문제를 해결하기 위해 노력하는 소규모 팀입니다. 전체 커뮤니티를 위한 안전한 애플리케이션을 계속 구축할 수 있도록 취약점을 책임감 있게 신고해 주시기 바랍니다.

9
docs/SECURITY-NO.md Normal file
View File

@@ -0,0 +1,9 @@
# Sikkerhets Rettningslinjer
## Reportering av en Sårbarhet
Vi verdsetter pris på sikkerhet for prosjektet høyt. Og oppmunterer alle brukere til å rapportere sårbarheter de oppdager til oss.
Om du finner en sikkerhets sårbarhet i RustDesk prosjektet, venligst raportere det ansvarsfult ved å sende oss en email til info@rustdesk.com.
På dette tidspunktet har vi ingen bug dusør program. Vi er ett lite team som prøver å løse ett stort problem. Vi trenger att du raporterer alle sårbarhetene
annsvarfult så vi kan fortsettte å bygge ett en sikker applikasjon for hele felleskapet.

9
docs/SECURITY-TR.md Normal file
View File

@@ -0,0 +1,9 @@
# Güvenlik Politikası
## Bir Güvenlik Açığı Bildirme
Projemiz için güvenliği çok önemsiyoruz. Kullanıcıların keşfettikleri herhangi bir güvenlik açığını bize bildirmelerini teşvik ediyoruz.
Eğer RustDesk projesinde bir güvenlik açığı bulursanız, lütfen info@rustdesk.com adresine sorumlu bir şekilde bildirin.
Şu an için bir hata ödül programımız bulunmamaktadır. Büyük bir sorunu çözmeye çalışan küçük bir ekibiz. Herhangi bir güvenlik açığını sorumlu bir şekilde bildirmenizi rica ederiz,
böylece tüm topluluk için güvenli bir uygulama oluşturmaya devam edebiliriz.

88
docs/iOS_AUDIO_CAPTURE.md Normal file
View File

@@ -0,0 +1,88 @@
# iOS Audio Capture Implementation
## Overview
RustDesk iOS audio capture is implemented following the existing audio service pattern, capturing app audio by default and sending it to peers using the Opus codec.
## Architecture
### Components
1. **Native Layer** (`libs/scrap/src/ios/native/ScreenCapture.m`)
- Captures audio using ReplayKit's audio sample buffers
- Supports both app audio and microphone audio
- Converts audio format information for Rust processing
2. **FFI Layer** (`libs/scrap/src/ios/ffi.rs`)
- Provides safe Rust bindings for audio control
- `enable_audio(mic: bool, app_audio: bool)` - Enable/disable audio sources
- `set_audio_callback()` - Register callback for audio data
3. **Audio Service** (`src/server/audio_service.rs::ios_impl`)
- Follows the same pattern as other platforms
- Uses Opus encoder with 48kHz stereo configuration
- Processes audio in 10ms chunks (480 samples)
- Sends encoded audio as `AudioFrame` messages
## Audio Flow
1. **Capture**: ReplayKit provides audio as Linear PCM in CMSampleBuffer format
2. **Callback**: Native code passes raw PCM data to Rust via FFI callback
3. **Conversion**: Rust converts audio data from i16 to f32 normalized [-1.0, 1.0]
4. **Encoding**: Opus encoder compresses audio for network transmission
5. **Transmission**: Encoded audio sent to peers as protobuf messages
## Configuration
- **Sample Rate**: 48,000 Hz (standard for all platforms)
- **Channels**: 2 (Stereo)
- **Format**: Linear PCM, typically 16-bit
- **Encoder**: Opus with LowDelay application mode
- **Frame Size**: 480 samples (10ms at 48kHz)
## Usage
By default, app audio is captured automatically when screen recording starts:
```rust
// In audio_service.rs
enable_audio(false, true); // mic=false, app_audio=true
```
To enable microphone:
```rust
enable_audio(true, true); // mic=true, app_audio=true
```
## Permissions
- **App Audio**: No additional permission required (part of screen recording)
- **Microphone**: Requires `NSMicrophoneUsageDescription` in Info.plist
## Implementation Details
### Audio Format Handling
The native layer logs audio format on first capture:
```
Audio format - Sample rate: 48000, Channels: 2, Bits per channel: 16, Format: 1819304813
```
### Zero Detection
Like other platforms, implements audio zero gate to avoid sending silent frames:
- Tracks consecutive zero frames
- Stops sending after 800 frames of silence
- Resumes immediately when audio detected
### Thread Safety
- Audio callback runs on ReplayKit's audio queue
- Uses Rust channels for thread-safe communication
- Non-blocking receive in service loop
## Limitations
- Audio only available during active screen capture
- System audio requires Broadcast Upload Extension
- Audio/video synchronization handled separately

View File

@@ -0,0 +1,336 @@
# iOS Screen and Audio Capture Implementation Guide
## Overview
This document describes the complete implementation of screen and audio capture for iOS in RustDesk. The implementation uses Apple's ReplayKit framework through FFI, allowing screen recording with minimal overhead while maintaining compatibility with RustDesk's existing architecture.
## Architecture Overview
```
┌─────────────────────────────────────────────────────────────────────┐
│ iOS System │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────┐ ┌─────────────────┐ ┌────────────────┐ │
│ │ ReplayKit │ │ Main App │ │ Broadcast Ext. │ │
│ │ │ │ │ │ (System-wide) │ │
│ │ - RPScreen │────▶│ Objective-C │◀───│ │ │
│ │ Recorder │ │ ScreenCapture │ │ SampleHandler │ │
│ │ - Video/Audio │ │ ↓ │ │ │ │
│ └─────────────────┘ │ C Interface │ └────────────────┘ │
│ │ ↓ │ │
│ │ Rust FFI │ │
│ │ ↓ │ │
│ │ Capture/Audio │ │
│ │ Services │ │
│ └─────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘
```
## Directory Structure
```
rustdesk/
├── libs/scrap/src/ios/
│ ├── mod.rs # Rust capture implementation
│ ├── ffi.rs # FFI bindings
│ ├── native/
│ │ ├── ScreenCapture.h # C interface header
│ │ └── ScreenCapture.m # Objective-C implementation
│ └── README.md # iOS-specific documentation
├── flutter/ios/
│ ├── Runner/
│ │ └── Info.plist # Permissions
│ └── BroadcastExtension/ # System-wide capture
│ ├── SampleHandler.h/m # Broadcast extension
│ └── Info.plist # Extension config
└── src/server/
└── audio_service.rs # iOS audio integration
```
## Implementation Components
### 1. Native Layer (Objective-C)
#### ScreenCapture.h - C Interface
```objective-c
// Video capture
void ios_capture_init(void);
bool ios_capture_start(void);
void ios_capture_stop(void);
uint32_t ios_capture_get_frame(uint8_t* buffer, uint32_t buffer_size,
uint32_t* out_width, uint32_t* out_height);
// Audio capture
void ios_capture_set_audio_enabled(bool enable_mic, bool enable_app_audio);
typedef void (*audio_callback_t)(const uint8_t* data, uint32_t size, bool is_mic);
void ios_capture_set_audio_callback(audio_callback_t callback);
// System-wide capture
void ios_capture_show_broadcast_picker(void);
bool ios_capture_is_broadcasting(void);
```
#### ScreenCapture.m - Implementation Details
- Uses `RPScreenRecorder` for in-app capture
- Handles both video and audio sample buffers
- Converts BGRA to RGBA pixel format
- Thread-safe frame buffer management
- CFMessagePort for IPC with broadcast extension
### 2. FFI Layer (Rust)
#### ffi.rs - Safe Rust Bindings
```rust
pub fn init()
pub fn start_capture() -> bool
pub fn stop_capture()
pub fn get_frame() -> Option<(Vec<u8>, u32, u32)>
pub fn enable_audio(mic: bool, app_audio: bool)
pub fn set_audio_callback(callback: Option<extern "C" fn(*const u8, u32, bool)>)
pub fn show_broadcast_picker()
```
Key features:
- Lazy static buffers to reduce allocations
- Callback mechanism for asynchronous frame updates
- Thread-safe frame buffer access
### 3. Rust Capture Implementation
#### mod.rs - Capturer Implementation
```rust
pub struct Capturer {
width: usize,
height: usize,
display: Display,
frame_data: Vec<u8>,
last_frame: Vec<u8>,
}
impl TraitCapturer for Capturer {
fn frame<'a>(&'a mut self, timeout: Duration) -> io::Result<crate::Frame<'a>>
}
```
Features:
- Implements RustDesk's `TraitCapturer` interface
- Frame deduplication using `would_block_if_equal`
- Automatic cleanup on drop
- Compatible with existing video pipeline
### 4. Audio Service Integration
#### audio_service.rs - iOS Audio Module
```rust
#[cfg(target_os = "ios")]
mod ios_impl {
const SAMPLE_RATE: u32 = 48000;
const CHANNELS: u16 = 2;
const FRAMES_PER_BUFFER: usize = 480; // 10ms
pub struct State {
encoder: Option<Encoder>,
receiver: Option<Receiver<Vec<f32>>>,
// ...
}
}
```
Features:
- Opus encoder with 48kHz stereo
- PCM i16 to f32 conversion
- Zero detection for silence gating
- Non-blocking audio processing
### 5. Broadcast Upload Extension
For system-wide capture (captures other apps):
#### SampleHandler.m
- Runs in separate process
- Captures entire screen
- Sends frames via CFMessagePort to main app
- Memory-efficient frame transfer
## Capture Modes
### 1. In-App Capture (Default)
```rust
// Captures only RustDesk app
let display = Display::primary()?;
let mut capturer = Capturer::new(display)?;
```
### 2. System-Wide Capture
```rust
// Shows iOS broadcast picker
ffi::show_broadcast_picker();
// User must manually start from Control Center
```
## Build Configuration
### Cargo.toml
```toml
[build-dependencies]
cc = "1.0" # For compiling Objective-C
```
### build.rs
```rust
if target_os == "ios" {
cc::Build::new()
.file("src/ios/native/ScreenCapture.m")
.flag("-fobjc-arc")
.flag("-fmodules")
.compile("ScreenCapture");
}
```
### Info.plist Permissions
```xml
<key>NSMicrophoneUsageDescription</key>
<string>This app needs microphone access for screen recording with audio</string>
```
## Data Flow
### Video Capture Flow
1. ReplayKit captures screen → CMSampleBuffer
2. Native code converts BGRA → RGBA
3. Frame callback or polling from Rust
4. Rust checks for duplicate frames
5. Creates `Frame::PixelBuffer` for video pipeline
6. Existing video encoder/transmission
### Audio Capture Flow
1. ReplayKit captures app audio → CMSampleBuffer
2. Native extracts Linear PCM data
3. FFI callback to Rust audio service
4. Convert i16 PCM → f32 normalized
5. Opus encoding at 48kHz
6. Send as `AudioFrame` protobuf
## Memory Management
### Optimizations
- Reuse static buffers for frame data (33MB max)
- Lazy allocation based on actual frame size
- Frame deduplication to avoid redundant processing
- Proper synchronization with `@synchronized` blocks
- Weak references in completion handlers
### Cleanup
- `dealloc` method for CFMessagePort cleanup
- Drop implementation stops capture
- Automatic buffer cleanup
## Performance Considerations
### Frame Rate
- 30-60 FPS depending on device
- Frame skipping in broadcast extension (every 2nd frame)
- Non-blocking frame retrieval
### Latency
- In-app: ~2-5ms capture latency
- System-wide: ~10-20ms (IPC overhead)
- Audio: ~10ms chunks for low latency
### CPU Usage
- Hardware-accelerated capture
- Efficient pixel format conversion
- Minimal memory copies
## Security & Privacy
### Permissions Required
- Screen Recording (always required)
- Microphone (optional, for mic audio)
### User Control
- Recording indicator shown by iOS
- User must grant permission
- Can stop anytime from Control Center
### App Groups (for Broadcast Extension)
```
group.com.carriez.rustdesk.screenshare
```
## Integration with RustDesk
### Video Service
- Works with existing `scrap` infrastructure
- Compatible with all video encoders (VP8/9, H264/5)
- Standard frame processing pipeline
### Audio Service
- Integrated as platform-specific implementation
- Same Opus encoding as other platforms
- Compatible with existing audio routing
## Limitations
1. **No cursor capture** - iOS doesn't expose cursor
2. **Permission required** - User must explicitly allow
3. **Broadcast extension memory** - Limited to ~50MB
4. **Background execution** - Limited by iOS policies
## Testing
### Build for iOS
```bash
cd flutter
flutter build ios
```
### Required Setup in Xcode
1. Add Broadcast Upload Extension target
2. Configure app groups
3. Set up code signing
4. Link ReplayKit framework
### Test Scenarios
1. In-app screen capture
2. System-wide broadcast
3. Audio capture (app/mic)
4. Permission handling
5. Background/foreground transitions
## Troubleshooting
### Common Issues
1. **No frames received**
- Check screen recording permission
- Verify capture is started
- Check frame timeout settings
2. **Audio not working**
- Verify microphone permission
- Check audio callback registration
- Confirm audio format compatibility
3. **Broadcast extension not appearing**
- Verify bundle identifiers
- Check code signing
- Ensure extension is included in build
4. **Memory warnings**
- Reduce frame rate in broadcast extension
- Check buffer allocations
- Monitor memory usage
## Future Improvements
1. **Hardware encoding** - Use VideoToolbox for H.264
2. **Adaptive quality** - Adjust based on network/CPU
3. **Picture-in-Picture** - Support PiP mode
4. **Screen orientation** - Better rotation handling
5. **Audio enhancements** - Noise suppression, echo cancellation
## Conclusion
This implementation provides full screen and audio capture capabilities for iOS while maintaining compatibility with RustDesk's cross-platform architecture. The use of FFI minimizes overhead while allowing native iOS features to be accessed from Rust code.

View File

@@ -1,28 +0,0 @@
[package]
name = "custom_plugin"
version = "0.1.0"
edition = "2021"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[lib]
name = "custom_plugin"
path = "src/lib.rs"
crate-type = ["cdylib"]
[features]
default = ["flutter"]
flutter = []
[dependencies]
lazy_static = "1.4.0"
rustdesk = { path = "../../", version = "1.2.0", features = ["flutter"]}
[profile.release]
lto = true
codegen-units = 1
panic = 'abort'
strip = true
#opt-level = 'z' # only have smaller size after strip
rpath = true

View File

@@ -1,30 +0,0 @@
use librustdesk::api::RustDeskApiTable;
/// This file demonstrates how to write a custom plugin for RustDesk.
use std::ffi::{c_char, c_int, CString};
lazy_static::lazy_static! {
pub static ref PLUGIN_NAME: CString = CString::new("A Template Rust Plugin").unwrap();
pub static ref PLUGIN_ID: CString = CString::new("TemplatePlugin").unwrap();
// Do your own logic based on the API provided by RustDesk.
pub static ref API: RustDeskApiTable = RustDeskApiTable::default();
}
#[no_mangle]
fn plugin_name() -> *const c_char {
return PLUGIN_NAME.as_ptr();
}
#[no_mangle]
fn plugin_id() -> *const c_char {
return PLUGIN_ID.as_ptr();
}
#[no_mangle]
fn plugin_init() -> c_int {
return 0 as _;
}
#[no_mangle]
fn plugin_dispose() -> c_int {
return 0 as _;
}

90
examples/ipc.rs Normal file
View File

@@ -0,0 +1,90 @@
use docopt::Docopt;
use hbb_common::{
env_logger::{init_from_env, Env, DEFAULT_FILTER_ENV},
log, tokio,
};
use librustdesk::{ipc::Data, *};
const USAGE: &'static str = "
IPC test program.
Usage:
ipc (-s | --server | -c | --client) [-p <str> | --postfix=<str>]
ipc (-h | --help)
Options:
-h --help Show this screen.
-s --server Run as IPC server.
-c --client Run as IPC client.
-p --postfix=<str> IPC path postfix [default: ].
";
#[derive(Debug, serde::Deserialize)]
struct Args {
flag_server: bool,
flag_client: bool,
flag_postfix: String,
}
#[tokio::main]
async fn main() {
init_from_env(Env::default().filter_or(DEFAULT_FILTER_ENV, "info"));
let args: Args = Docopt::new(USAGE)
.and_then(|d| d.deserialize())
.unwrap_or_else(|e| e.exit());
if args.flag_server {
if args.flag_postfix.is_empty() {
log::info!("Starting IPC server...");
} else {
log::info!(
"Starting IPC server with postfix: '{}'...",
args.flag_postfix
);
}
ipc_server(&args.flag_postfix).await;
} else if args.flag_client {
if args.flag_postfix.is_empty() {
log::info!("Starting IPC client...");
} else {
log::info!(
"Starting IPC client with postfix: '{}'...",
args.flag_postfix
);
}
ipc_client(&args.flag_postfix).await;
}
}
async fn ipc_server(postfix: &str) {
let postfix = postfix.to_string();
let postfix2 = postfix.clone();
std::thread::spawn(move || {
if let Err(err) = crate::ipc::start(&postfix) {
log::error!("Failed to start ipc: {}", err);
std::process::exit(-1);
}
});
tokio::time::sleep(std::time::Duration::from_secs(1)).await;
ipc_client(&postfix2).await;
}
async fn ipc_client(postfix: &str) {
loop {
match crate::ipc::connect(1000, postfix).await {
Ok(mut conn) => match conn.send(&Data::Empty).await {
Ok(_) => {
log::info!("send message to ipc server success");
}
Err(e) => {
log::error!("Failed to send message to ipc server: {}", e);
}
},
Err(e) => {
log::error!("Failed to connect to ipc server: {}", e);
}
}
tokio::time::sleep(std::time::Duration::from_secs(6)).await;
}
}

View File

@@ -1 +1 @@
An open-source remote desktop application, the open source TeamViewer alternative. An open-source remote desktop application, the TeamViewer alternative

View File

@@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8"?>
<component type="desktop-application">
<id>com.rustdesk.RustDesk</id>
<developer id="com.rustdesk">
<name>RustDesk</name>
</developer>
<launchable type="desktop-id">com.rustdesk.RustDesk.desktop</launchable>
<metadata_license>CC0-1.0</metadata_license>
<project_license>AGPL-3.0-only</project_license>
<name>RustDesk</name>
<summary>Secure remote desktop access</summary>
<description>
<p>
RustDesk is a full-featured open source remote control alternative for self-hosting and security with minimal configuration.
</p>
<ul>
<li> Works on Windows, macOS, Linux, iOS, Android, Web. </li>
<li> Supports VP8 / VP9 / AV1 software codecs, and H264 / H265 hardware codecs. </li>
<li> Own your data, easily set up self-hosting solution on your infrastructure. </li>
<li> P2P connection with end-to-end encryption based on NaCl. </li>
<li> No administrative privileges or installation needed for Windows, elevate priviledge locally or from remote on demand. </li>
<li> We like to keep things simple and will strive to make simpler where possible. </li>
</ul>
<p>
For self-hosting setup instructions please go to our home page.
</p>
</description>
<categories>
<category>Utility</category>
</categories>
<screenshots>
<screenshot type="default">
<caption>Remote desktop session</caption>
<image>https://user-images.githubusercontent.com/71636191/171661982-430285f0-2e12-4b1d-9957-4a58e375304d.png</image>
</screenshot>
</screenshots>
<branding>
<color type="primary" scheme_preference="light">#d9eaf8</color>
<color type="primary" scheme_preference="dark">#0160ee</color>
</branding>
<url type="homepage">https://rustdesk.com</url>
<url type="bugtracker">https://github.com/rustdesk/rustdesk/issues</url>
<url type="faq">https://github.com/rustdesk/rustdesk/wiki/FAQ</url>
<url type="help">https://rustdesk.com/docs</url>
<url type="donation">https://ko-fi.com/rustdesk</url>
<url type="vcs-browser">https://github.com/rustdesk/rustdesk</url>
<url type="translate">https://github.com/rustdesk/rustdesk/tree/master/src/lang</url>
<url type="contribute">https://github.com/rustdesk/rustdesk/blob/master/docs/CONTRIBUTING.md</url>
<url type="contact">https://rustdesk.com/docs/en/technical-support</url>
<requires>
<display_length compare="ge">600</display_length>
<internet>always</internet>
</requires>
<supports>
<control>keyboard</control>
<control>pointing</control>
</supports>
<content_rating type="oars-1.1"/>
</component>

View File

@@ -1,43 +1,60 @@
{ {
"id": "com.rustdesk.RustDesk", "id": "com.rustdesk.RustDesk",
"runtime": "org.freedesktop.Platform", "runtime": "org.freedesktop.Platform",
"runtime-version": "21.08", "runtime-version": "24.08",
"sdk": "org.freedesktop.Sdk", "sdk": "org.freedesktop.Sdk",
"command": "rustdesk", "command": "rustdesk",
"icon": "share/icons/hicolor/scalable/apps/rustdesk.svg", "cleanup": ["/include", "/lib/pkgconfig", "/share/gtk-doc"],
"rename-desktop-file": "rustdesk.desktop",
"rename-icon": "rustdesk",
"modules": [ "modules": [
"shared-modules/libappindicator/libappindicator-gtk3-12.10.json", "shared-modules/libappindicator/libappindicator-gtk3-12.10.json",
"xdotool.json", {
"name": "xdotool",
"no-autogen": true,
"make-install-args": ["PREFIX=${FLATPAK_DEST}"],
"sources": [
{
"type": "archive",
"url": "https://github.com/jordansissel/xdotool/releases/download/v3.20211022.1/xdotool-3.20211022.1.tar.gz",
"sha256": "96f0facfde6d78eacad35b91b0f46fecd0b35e474c03e00e30da3fdd345f9ada"
}
]
},
{
"name": "pam",
"buildsystem": "autotools",
"config-opts": ["--disable-selinux"],
"sources": [
{
"type": "archive",
"url": "https://github.com/linux-pam/linux-pam/releases/download/v1.3.1/Linux-PAM-1.3.1.tar.xz",
"sha256": "eff47a4ecd833fbf18de9686632a70ee8d0794b79aecb217ebd0ce11db4cd0db"
}
]
},
{ {
"name": "rustdesk", "name": "rustdesk",
"buildsystem": "simple", "buildsystem": "simple",
"build-commands": [ "build-commands": [
"bsdtar -zxvf rustdesk-1.2.2.deb", "bsdtar -Oxf rustdesk.deb data.tar.xz | bsdtar -xf -",
"tar -xvf ./data.tar.xz", "cp -r usr/* /app/",
"cp -r ./usr/* /app/", "mkdir -p /app/bin && ln -s /app/share/rustdesk/rustdesk /app/bin/rustdesk"
"mkdir -p /app/bin && ln -s /app/lib/rustdesk/rustdesk /app/bin/rustdesk",
"mv /app/share/applications/rustdesk.desktop /app/share/applications/com.rustdesk.RustDesk.desktop",
"sed -i '/^Icon=/ c\\Icon=com.rustdesk.RustDesk' /app/share/applications/com.rustdesk.RustDesk.desktop",
"sed -i '/^Icon=/ c\\Icon=com.rustdesk.RustDesk' /app/share/applications/rustdesk-link.desktop",
"mv /app/share/icons/hicolor/scalable/apps/rustdesk.svg /app/share/icons/hicolor/scalable/apps/com.rustdesk.RustDesk.svg",
"for size in 16 24 32 48 64 128 256 512; do\n rsvg-convert -w $size -h $size -f png -o $size.png logo.svg\n install -Dm644 $size.png /app/share/icons/hicolor/${size}x${size}/apps/com.rustdesk.RustDesk.png\n done"
], ],
"cleanup": ["/include", "/lib/pkgconfig", "/share/gtk-doc"],
"sources": [ "sources": [
{ {
"type": "file", "type": "file",
"path": "../rustdesk-1.2.2.deb" "path": "rustdesk.deb"
}, },
{ {
"type": "file", "type": "file",
"path": "../res/logo.svg" "path": "com.rustdesk.RustDesk.metainfo.xml"
} }
] ]
} }
], ],
"finish-args": [ "finish-args": [
"--share=ipc", "--share=ipc",
"--socket=x11",
"--socket=fallback-x11", "--socket=fallback-x11",
"--socket=wayland", "--socket=wayland",
"--share=network", "--share=network",
@@ -46,4 +63,4 @@
"--socket=pulseaudio", "--socket=pulseaudio",
"--talk-name=org.freedesktop.Flatpak" "--talk-name=org.freedesktop.Flatpak"
] ]
} }

View File

@@ -1,15 +0,0 @@
{
"name": "xdotool",
"buildsystem": "simple",
"build-commands": [
"make -j4 && PREFIX=./build make install",
"cp -r ./build/* /app/"
],
"sources": [
{
"type": "archive",
"url": "https://github.com/jordansissel/xdotool/releases/download/v3.20211022.1/xdotool-3.20211022.1.tar.gz",
"sha256": "96f0facfde6d78eacad35b91b0f46fecd0b35e474c03e00e30da3fdd345f9ada"
}
]
}

1
flutter/.gitignore vendored
View File

@@ -32,7 +32,6 @@
/build/ /build/
# Web related # Web related
lib/generated_plugin_registrant.dart
# Symbolication related # Symbolication related
app.*.symbols app.*.symbols

View File

@@ -13,4 +13,4 @@ A few resources to get you started if this is your first Flutter project:
For help getting started with Flutter development, view the For help getting started with Flutter development, view the
[online documentation](https://docs.flutter.dev/), which offers tutorials, [online documentation](https://docs.flutter.dev/), which offers tutorials,
samples, guidance on mobile development, and a full API reference. samples and guidance on mobile development, and a full API reference.

View File

@@ -1,3 +1,11 @@
import com.google.protobuf.gradle.*
plugins {
id "com.google.protobuf" version "0.9.4"
id "com.android.application"
id "kotlin-android"
id "dev.flutter.flutter-gradle-plugin"
}
def keystoreProperties = new Properties() def keystoreProperties = new Properties()
def keystorePropertiesFile = rootProject.file('key.properties') def keystorePropertiesFile = rootProject.file('key.properties')
if (keystorePropertiesFile.exists()) { if (keystorePropertiesFile.exists()) {
@@ -12,11 +20,6 @@ if (localPropertiesFile.exists()) {
} }
} }
def flutterRoot = localProperties.getProperty('flutter.sdk')
if (flutterRoot == null) {
throw new GradleException("Flutter SDK not found. Define location with flutter.sdk in the local.properties file.")
}
def flutterVersionCode = localProperties.getProperty('flutter.versionCode') def flutterVersionCode = localProperties.getProperty('flutter.versionCode')
if (flutterVersionCode == null) { if (flutterVersionCode == null) {
flutterVersionCode = '1' flutterVersionCode = '1'
@@ -27,14 +30,33 @@ if (flutterVersionName == null) {
flutterVersionName = '1.0' flutterVersionName = '1.0'
} }
apply plugin: 'com.android.application' dependencies {
apply plugin: 'kotlin-android' implementation 'com.google.protobuf:protobuf-javalite:3.20.1'
apply from: "$flutterRoot/packages/flutter_tools/gradle/flutter.gradle" }
protobuf {
protoc {
artifact = 'com.google.protobuf:protoc:3.20.1'
}
generateProtoTasks {
all().configureEach { task ->
task.builtins {
java {
option "lite"
}
}
}
}
}
android { android {
compileSdkVersion 33 compileSdkVersion 34
sourceSets { sourceSets {
main.java.srcDirs += 'src/main/kotlin' main.java.srcDirs += 'src/main/kotlin'
main.proto.srcDirs += '../../../libs/hbb_common/protos'
main.proto.includes += "message.proto"
} }
compileOptions { compileOptions {
@@ -46,7 +68,7 @@ android {
// TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html).
applicationId "com.carriez.flutter_hbb" applicationId "com.carriez.flutter_hbb"
minSdkVersion 21 minSdkVersion 21
targetSdkVersion 31 targetSdkVersion 33
versionCode flutterVersionCode.toInteger() versionCode flutterVersionCode.toInteger()
versionName flutterVersionName versionName flutterVersionName
} }
@@ -65,6 +87,7 @@ android {
// TODO: Add your own signing config for the release build. // TODO: Add your own signing config for the release build.
// Signing with the debug keys for now, so `flutter run --release` works. // Signing with the debug keys for now, so `flutter run --release` works.
signingConfig signingConfigs.release signingConfig signingConfigs.release
proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules'
} }
} }
} }
@@ -75,8 +98,7 @@ flutter {
dependencies { dependencies {
implementation "androidx.media:media:1.6.0" implementation "androidx.media:media:1.6.0"
implementation 'com.github.getActivity:XXPermissions:16.2' implementation 'com.github.getActivity:XXPermissions:18.5'
implementation("org.jetbrains.kotlin:kotlin-stdlib") { version { strictly("$kotlin_version") } } implementation("org.jetbrains.kotlin:kotlin-stdlib") { version { strictly("1.9.10") } }
implementation 'com.caverock:androidsvg-aar:1.4'
} }
apply plugin: 'com.google.gms.google-services'

View File

@@ -1,40 +0,0 @@
{
"project_info": {
"project_number": "768133699366",
"firebase_url": "https://rustdesk.firebaseio.com",
"project_id": "rustdesk",
"storage_bucket": "rustdesk.appspot.com"
},
"client": [
{
"client_info": {
"mobilesdk_app_id": "1:768133699366:android:5fc9015370e344457993e7",
"android_client_info": {
"package_name": "com.carriez.flutter_hbb"
}
},
"oauth_client": [
{
"client_id": "768133699366-s9gdfsijefsd5g1nura4kmfne42lencn.apps.googleusercontent.com",
"client_type": 3
}
],
"api_key": [
{
"current_key": "AIzaSyAPOsKcXjrAR-7Z148sYr_gdB_JQZkamTM"
}
],
"services": {
"appinvite_service": {
"other_platform_oauth_client": [
{
"client_id": "768133699366-s9gdfsijefsd5g1nura4kmfne42lencn.apps.googleusercontent.com",
"client_type": 3
}
]
}
}
}
],
"configuration_version": "1"
}

View File

@@ -0,0 +1,4 @@
# Keep class members from protobuf generated code.
-keepclassmembers class * extends com.google.protobuf.GeneratedMessageLite {
<fields>;
}

View File

@@ -3,6 +3,7 @@
package="com.carriez.flutter_hbb"> package="com.carriez.flutter_hbb">
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.POST_NOTIFICATIONS" />
<uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" /> <uses-permission android:name="android.permission.REQUEST_IGNORE_BATTERY_OPTIMIZATIONS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" /> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
@@ -14,6 +15,13 @@
<uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" /> <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" /> <uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<queries>
<intent>
<!-- https://developer.android.com/training/package-visibility/use-cases#open-urls-custom-tabs -->
<action android:name="android.support.customtabs.action.CustomTabsService" />
</intent>
</queries>
<application <application
android:icon="@mipmap/ic_launcher" android:icon="@mipmap/ic_launcher"
android:label="RustDesk" android:label="RustDesk"
@@ -61,6 +69,14 @@
<category android:name="android.intent.category.LAUNCHER" /> <category android:name="android.intent.category.LAUNCHER" />
</intent-filter> </intent-filter>
<!-- Intent for deep linking-->
<intent-filter>
<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" />
</intent-filter>
</activity> </activity>
<activity <activity
@@ -72,6 +88,11 @@
android:name=".MainService" android:name=".MainService"
android:enabled="true" android:enabled="true"
android:foregroundServiceType="mediaProjection" /> android:foregroundServiceType="mediaProjection" />
<service
android:name=".FloatingWindowService"
android:enabled="true" />
<!-- <!--
Don't delete the meta-data below. Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java This is used by the Flutter tool to generate GeneratedPluginRegistrant.java
@@ -81,4 +102,4 @@
android:value="2" /> android:value="2" />
</application> </application>
</manifest> </manifest>

View File

@@ -0,0 +1,193 @@
package com.carriez.flutter_hbb
import ffi.FFI
import android.Manifest
import android.content.Context
import android.media.*
import android.content.pm.PackageManager
import android.media.projection.MediaProjection
import androidx.annotation.RequiresApi
import androidx.core.app.ActivityCompat
import android.os.Build
import android.util.Log
import kotlin.concurrent.thread
const val AUDIO_ENCODING = AudioFormat.ENCODING_PCM_FLOAT // ENCODING_OPUS need API 30
const val AUDIO_SAMPLE_RATE = 48000
const val AUDIO_CHANNEL_MASK = AudioFormat.CHANNEL_IN_STEREO
class AudioRecordHandle(private var context: Context, private var isVideoStart: ()->Boolean, private var isAudioStart: ()->Boolean) {
private val logTag = "LOG_AUDIO_RECORD_HANDLE"
private var audioRecorder: AudioRecord? = null
private var audioReader: AudioReader? = null
private var minBufferSize = 0
private var audioRecordStat = false
private var audioThread: Thread? = null
@RequiresApi(Build.VERSION_CODES.M)
fun createAudioRecorder(inVoiceCall: Boolean, mediaProjection: MediaProjection?): Boolean {
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.Q) {
return false
}
if (ActivityCompat.checkSelfPermission(
context,
Manifest.permission.RECORD_AUDIO
) != PackageManager.PERMISSION_GRANTED
) {
Log.d(logTag, "createAudioRecorder failed, no RECORD_AUDIO permission")
return false
}
var builder = AudioRecord.Builder()
.setAudioFormat(
AudioFormat.Builder()
.setEncoding(AUDIO_ENCODING)
.setSampleRate(AUDIO_SAMPLE_RATE)
.setChannelMask(AUDIO_CHANNEL_MASK).build()
);
if (inVoiceCall) {
builder.setAudioSource(MediaRecorder.AudioSource.VOICE_COMMUNICATION)
} else {
mediaProjection?.let {
var apcc = AudioPlaybackCaptureConfiguration.Builder(it)
.addMatchingUsage(AudioAttributes.USAGE_MEDIA)
.addMatchingUsage(AudioAttributes.USAGE_ALARM)
.addMatchingUsage(AudioAttributes.USAGE_GAME)
.addMatchingUsage(AudioAttributes.USAGE_UNKNOWN).build();
builder.setAudioPlaybackCaptureConfig(apcc);
} ?: let {
Log.d(logTag, "createAudioRecorder failed, mediaProjection null")
return false
}
}
audioRecorder = builder.build()
Log.d(logTag, "createAudioRecorder done,minBufferSize:$minBufferSize")
return true
}
@RequiresApi(Build.VERSION_CODES.M)
private fun checkAudioReader() {
if (audioReader != null && minBufferSize != 0) {
return
}
// read f32 to byte , length * 4
minBufferSize = 2 * 4 * AudioRecord.getMinBufferSize(
AUDIO_SAMPLE_RATE,
AUDIO_CHANNEL_MASK,
AUDIO_ENCODING
)
if (minBufferSize == 0) {
Log.d(logTag, "get min buffer size fail!")
return
}
audioReader = AudioReader(minBufferSize, 4)
Log.d(logTag, "init audioData len:$minBufferSize")
}
@RequiresApi(Build.VERSION_CODES.M)
fun startAudioRecorder() {
checkAudioReader()
if (audioReader != null && audioRecorder != null && minBufferSize != 0) {
try {
FFI.setFrameRawEnable("audio", true)
audioRecorder!!.startRecording()
audioRecordStat = true
audioThread = thread {
while (audioRecordStat) {
audioReader!!.readSync(audioRecorder!!)?.let {
FFI.onAudioFrameUpdate(it)
}
}
// let's release here rather than onDestroy to avoid threading issue
audioRecorder?.release()
audioRecorder = null
minBufferSize = 0
FFI.setFrameRawEnable("audio", false)
Log.d(logTag, "Exit audio thread")
}
} catch (e: Exception) {
Log.d(logTag, "startAudioRecorder fail:$e")
}
} else {
Log.d(logTag, "startAudioRecorder fail")
}
}
fun onVoiceCallStarted(mediaProjection: MediaProjection?): Boolean {
if (!isSupportVoiceCall()) {
return false
}
// No need to check if video or audio is started here.
if (!switchToVoiceCall(mediaProjection)) {
return false
}
return true
}
fun onVoiceCallClosed(mediaProjection: MediaProjection?): Boolean {
// Return true if not supported, because is was not started.
if (!isSupportVoiceCall()) {
return true
}
if (isVideoStart()) {
switchOutVoiceCall(mediaProjection)
}
tryReleaseAudio()
return true
}
@RequiresApi(Build.VERSION_CODES.M)
fun switchToVoiceCall(mediaProjection: MediaProjection?): Boolean {
audioRecorder?.let {
if (it.getAudioSource() == MediaRecorder.AudioSource.VOICE_COMMUNICATION) {
return true
}
}
audioRecordStat = false
audioThread?.join()
audioThread = null
if (!createAudioRecorder(true, mediaProjection)) {
Log.e(logTag, "createAudioRecorder fail")
return false
}
startAudioRecorder()
return true
}
@RequiresApi(Build.VERSION_CODES.M)
fun switchOutVoiceCall(mediaProjection: MediaProjection?): Boolean {
audioRecorder?.let {
if (it.getAudioSource() != MediaRecorder.AudioSource.VOICE_COMMUNICATION) {
return true
}
}
audioRecordStat = false
audioThread?.join()
if (!createAudioRecorder(false, mediaProjection)) {
Log.e(logTag, "createAudioRecorder fail")
return false
}
startAudioRecorder()
return true
}
fun tryReleaseAudio() {
if (isAudioStart() || isVideoStart()) {
return
}
audioRecordStat = false
audioThread?.join()
audioThread = null
}
fun destroy() {
Log.d(logTag, "destroy audio record handle")
audioRecordStat = false
audioThread?.join()
}
}

View File

@@ -0,0 +1,392 @@
package com.carriez.flutter_hbb
import android.annotation.SuppressLint
import android.app.PendingIntent
import android.app.Service
import android.content.Intent
import android.content.res.Configuration
import android.graphics.Bitmap
import android.graphics.Canvas
import android.graphics.PixelFormat
import android.graphics.drawable.BitmapDrawable
import android.graphics.drawable.Drawable
import android.os.Build
import android.os.Handler
import android.os.IBinder
import android.os.Looper
import android.util.Log
import android.view.Gravity
import android.view.MotionEvent
import android.view.View
import android.view.WindowManager
import android.view.WindowManager.LayoutParams.FLAG_LAYOUT_IN_SCREEN
import android.view.WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE
import android.view.WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL
import android.view.WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON
import android.widget.ImageView
import android.widget.PopupMenu
import com.caverock.androidsvg.SVG
import ffi.FFI
import kotlin.math.abs
class FloatingWindowService : Service(), View.OnTouchListener {
private lateinit var windowManager: WindowManager
private lateinit var layoutParams: WindowManager.LayoutParams
private lateinit var floatingView: ImageView
private lateinit var originalDrawable: Drawable
private lateinit var leftHalfDrawable: Drawable
private lateinit var rightHalfDrawable: Drawable
private var dragging = false
private var lastDownX = 0f
private var lastDownY = 0f
private var viewCreated = false;
private var keepScreenOn = KeepScreenOn.DURING_CONTROLLED
companion object {
private val logTag = "floatingService"
private var firstCreate = true
private var viewWidth = 120
private var viewHeight = 120
private const val MIN_VIEW_SIZE = 32 // size 0 does not help prevent the service from being killed
private const val MAX_VIEW_SIZE = 320
private var viewUntouchable = false
private var viewTransparency = 1f // 0 means invisible but can help prevent the service from being killed
private var customSvg = ""
private var lastLayoutX = 0
private var lastLayoutY = 0
private var lastOrientation = Configuration.ORIENTATION_UNDEFINED
}
override fun onBind(intent: Intent): IBinder? {
return null
}
override fun onCreate() {
super.onCreate()
windowManager = getSystemService(WINDOW_SERVICE) as WindowManager
try {
if (firstCreate) {
firstCreate = false
onFirstCreate(windowManager)
}
Log.d(logTag, "floating window size: $viewWidth x $viewHeight, transparency: $viewTransparency, lastLayoutX: $lastLayoutX, lastLayoutY: $lastLayoutY, customSvg: $customSvg")
createView(windowManager)
handler.postDelayed(runnable, 1000)
Log.d(logTag, "onCreate success")
} catch (e: Exception) {
Log.d(logTag, "onCreate failed: $e")
}
}
override fun onDestroy() {
super.onDestroy()
if (viewCreated) {
windowManager.removeView(floatingView)
}
handler.removeCallbacks(runnable)
}
@SuppressLint("ClickableViewAccessibility")
private fun createView(windowManager: WindowManager) {
floatingView = ImageView(this)
viewCreated = true
originalDrawable = resources.getDrawable(R.drawable.floating_window, null)
if (customSvg.isNotEmpty()) {
try {
val svg = SVG.getFromString(customSvg)
Log.d(logTag, "custom svg info: ${svg.documentWidth} x ${svg.documentHeight}");
// This make the svg render clear
svg.documentWidth = viewWidth * 1f
svg.documentHeight = viewHeight * 1f
originalDrawable = svg.renderToPicture().let {
BitmapDrawable(
resources,
Bitmap.createBitmap(it.width, it.height, Bitmap.Config.ARGB_8888)
.also { bitmap ->
it.draw(Canvas(bitmap))
})
}
floatingView.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
Log.d(logTag, "custom svg loaded")
} catch (e: Exception) {
e.printStackTrace()
}
}
val originalBitmap = Bitmap.createBitmap(
originalDrawable.intrinsicWidth,
originalDrawable.intrinsicHeight,
Bitmap.Config.ARGB_8888
)
val canvas = Canvas(originalBitmap)
originalDrawable.setBounds(
0,
0,
originalDrawable.intrinsicWidth,
originalDrawable.intrinsicHeight
)
originalDrawable.draw(canvas)
val leftHalfBitmap = Bitmap.createBitmap(
originalBitmap,
0,
0,
originalDrawable.intrinsicWidth / 2,
originalDrawable.intrinsicHeight
)
val rightHalfBitmap = Bitmap.createBitmap(
originalBitmap,
originalDrawable.intrinsicWidth / 2,
0,
originalDrawable.intrinsicWidth / 2,
originalDrawable.intrinsicHeight
)
leftHalfDrawable = BitmapDrawable(resources, leftHalfBitmap)
rightHalfDrawable = BitmapDrawable(resources, rightHalfBitmap)
floatingView.setImageDrawable(rightHalfDrawable)
floatingView.setOnTouchListener(this)
floatingView.alpha = viewTransparency * 1f
var flags = FLAG_LAYOUT_IN_SCREEN or FLAG_NOT_TOUCH_MODAL or FLAG_NOT_FOCUSABLE
if (viewUntouchable || viewTransparency == 0f) {
flags = flags or WindowManager.LayoutParams.FLAG_NOT_TOUCHABLE
}
layoutParams = WindowManager.LayoutParams(
viewWidth / 2,
viewHeight,
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) WindowManager.LayoutParams.TYPE_APPLICATION_OVERLAY else WindowManager.LayoutParams.TYPE_PHONE,
flags,
PixelFormat.TRANSLUCENT
)
layoutParams.gravity = Gravity.TOP or Gravity.START
layoutParams.x = lastLayoutX
layoutParams.y = lastLayoutY
val keepScreenOnOption = FFI.getLocalOption("keep-screen-on").lowercase()
keepScreenOn = when (keepScreenOnOption) {
"never" -> KeepScreenOn.NEVER
"service-on" -> KeepScreenOn.SERVICE_ON
else -> KeepScreenOn.DURING_CONTROLLED
}
Log.d(logTag, "keepScreenOn option: $keepScreenOnOption, value: $keepScreenOn")
updateKeepScreenOnLayoutParams()
windowManager.addView(floatingView, layoutParams)
moveToScreenSide()
}
private fun onFirstCreate(windowManager: WindowManager) {
val wh = getScreenSize(windowManager)
val w = wh.first
val h = wh.second
// size
FFI.getLocalOption("floating-window-size").let {
if (it.isNotEmpty()) {
try {
val size = it.toInt()
if (size in MIN_VIEW_SIZE..MAX_VIEW_SIZE && size <= w / 2 && size <= h / 2) {
viewWidth = size
viewHeight = size
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
// untouchable
viewUntouchable = FFI.getLocalOption("floating-window-untouchable") == "Y"
// transparency
FFI.getLocalOption("floating-window-transparency").let {
if (it.isNotEmpty()) {
try {
val transparency = it.toInt()
if (transparency in 0..10) {
viewTransparency = transparency * 1f / 10
}
} catch (e: Exception) {
e.printStackTrace()
}
}
}
// custom svg
FFI.getLocalOption("floating-window-svg").let {
if (it.isNotEmpty()) {
customSvg = it
}
}
// position
lastLayoutX = 0
lastLayoutY = (wh.second - viewHeight) / 2
lastOrientation = resources.configuration.orientation
}
private fun performClick() {
showPopupMenu()
}
override fun onTouch(view: View?, event: MotionEvent?): Boolean {
when (event?.action) {
MotionEvent.ACTION_DOWN -> {
dragging = false
lastDownX = event.rawX
lastDownY = event.rawY
}
MotionEvent.ACTION_UP -> {
val clickDragTolerance = 10f
if (abs(event.rawX - lastDownX) < clickDragTolerance && abs(event.rawY - lastDownY) < clickDragTolerance) {
performClick()
} else {
moveToScreenSide()
}
}
MotionEvent.ACTION_MOVE -> {
val dx = event.rawX - lastDownX
val dy = event.rawY - lastDownY
// ignore too small fist start moving(some time is click)
if (!dragging && dx*dx+dy*dy < 25) {
return false
}
dragging = true
layoutParams.x = event.rawX.toInt()
layoutParams.y = event.rawY.toInt()
layoutParams.width = viewWidth
floatingView.setImageDrawable(originalDrawable)
windowManager.updateViewLayout(view, layoutParams)
lastLayoutX = layoutParams.x
lastLayoutY = layoutParams.y
}
}
return false
}
private fun moveToScreenSide(center: Boolean = false) {
val windowManager = getSystemService(WINDOW_SERVICE) as WindowManager
val wh = getScreenSize(windowManager)
val w = wh.first
if (layoutParams.x < w / 2) {
layoutParams.x = 0
floatingView.setImageDrawable(rightHalfDrawable)
} else {
layoutParams.x = w - viewWidth / 2
floatingView.setImageDrawable(leftHalfDrawable)
}
if (center) {
layoutParams.y = (wh.second - viewHeight) / 2
}
layoutParams.width = viewWidth / 2
windowManager.updateViewLayout(floatingView, layoutParams)
lastLayoutX = layoutParams.x
lastLayoutY = layoutParams.y
}
override fun onConfigurationChanged(newConfig: Configuration) {
super.onConfigurationChanged(newConfig)
if (newConfig.orientation != lastOrientation) {
lastOrientation = newConfig.orientation
val wh = getScreenSize(windowManager)
Log.d(logTag, "orientation: $lastOrientation, screen size: ${wh.first} x ${wh.second}")
val newW = wh.first
val newH = wh.second
if (newConfig.orientation == Configuration.ORIENTATION_LANDSCAPE || newConfig.orientation == Configuration.ORIENTATION_PORTRAIT) {
// Proportional change
layoutParams.x = (layoutParams.x.toFloat() / newH.toFloat() * newW.toFloat()).toInt()
layoutParams.y = (layoutParams.y.toFloat() / newW.toFloat() * newH.toFloat()).toInt()
}
moveToScreenSide()
}
}
private fun showPopupMenu() {
val popupMenu = PopupMenu(this, floatingView)
val idShowRustDesk = 0
popupMenu.menu.add(0, idShowRustDesk, 0, translate("Show RustDesk"))
// For host side, clipboard sync
val idSyncClipboard = 1
val isServiceSyncEnabled = (MainActivity.rdClipboardManager?.isCaptureStarted ?: false) && FFI.isServiceClipboardEnabled()
if (isServiceSyncEnabled) {
popupMenu.menu.add(0, idSyncClipboard, 0, translate("Update client clipboard"))
}
val idStopService = 2
popupMenu.menu.add(0, idStopService, 0, translate("Stop service"))
popupMenu.setOnMenuItemClickListener { menuItem ->
when (menuItem.itemId) {
idShowRustDesk -> {
openMainActivity()
true
}
idSyncClipboard -> {
syncClipboard()
true
}
idStopService -> {
stopMainService()
true
}
else -> false
}
}
popupMenu.setOnDismissListener {
moveToScreenSide()
}
popupMenu.show()
}
private fun openMainActivity() {
val intent = Intent(this, MainActivity::class.java)
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK)
val pendingIntent = PendingIntent.getActivity(
this, 0, intent,
PendingIntent.FLAG_IMMUTABLE or PendingIntent.FLAG_ONE_SHOT
)
try {
pendingIntent.send()
} catch (e: PendingIntent.CanceledException) {
e.printStackTrace()
}
}
private fun syncClipboard() {
MainActivity.rdClipboardManager?.syncClipboard(false)
}
private fun stopMainService() {
MainActivity.flutterMethodChannel?.invokeMethod("stop_service", null)
}
enum class KeepScreenOn {
NEVER,
DURING_CONTROLLED,
SERVICE_ON,
}
private val handler = Handler(Looper.getMainLooper())
private val runnable = object : Runnable {
override fun run() {
if (updateKeepScreenOnLayoutParams()) {
windowManager.updateViewLayout(floatingView, layoutParams)
}
handler.postDelayed(this, 1000) // 1000 milliseconds = 1 second
}
}
private fun updateKeepScreenOnLayoutParams(): Boolean {
val oldOn = layoutParams.flags and FLAG_KEEP_SCREEN_ON != 0
val newOn = keepScreenOn == KeepScreenOn.SERVICE_ON || (keepScreenOn == KeepScreenOn.DURING_CONTROLLED && MainService.isStart)
if (oldOn != newOn) {
Log.d(logTag, "change keep screen on to $newOn")
if (newOn) {
layoutParams.flags = layoutParams.flags or FLAG_KEEP_SCREEN_ON
} else {
layoutParams.flags = layoutParams.flags and FLAG_KEEP_SCREEN_ON.inv()
}
return true
}
return false
}
}

View File

@@ -10,22 +10,52 @@ import android.accessibilityservice.AccessibilityService
import android.accessibilityservice.GestureDescription import android.accessibilityservice.GestureDescription
import android.graphics.Path import android.graphics.Path
import android.os.Build import android.os.Build
import android.os.Bundle
import android.os.Handler
import android.os.Looper
import android.util.Log import android.util.Log
import android.widget.EditText
import android.view.accessibility.AccessibilityEvent import android.view.accessibility.AccessibilityEvent
import android.view.ViewGroup.LayoutParams
import android.view.accessibility.AccessibilityNodeInfo
import android.view.KeyEvent as KeyEventAndroid
import android.view.ViewConfiguration
import android.graphics.Rect
import android.media.AudioManager
import android.accessibilityservice.AccessibilityServiceInfo
import android.accessibilityservice.AccessibilityServiceInfo.FLAG_INPUT_METHOD_EDITOR
import android.accessibilityservice.AccessibilityServiceInfo.FLAG_RETRIEVE_INTERACTIVE_WINDOWS
import android.view.inputmethod.EditorInfo
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import java.util.* import java.util.*
import java.lang.Character
import kotlin.math.abs import kotlin.math.abs
import kotlin.math.max import kotlin.math.max
import hbb.MessageOuterClass.KeyEvent
import hbb.MessageOuterClass.KeyboardMode
import hbb.KeyEventConverter
const val LIFT_DOWN = 9 // const val BUTTON_UP = 2
const val LIFT_MOVE = 8 // const val BUTTON_BACK = 0x08
const val LIFT_UP = 10
const val LEFT_DOWN = 9
const val LEFT_MOVE = 8
const val LEFT_UP = 10
const val RIGHT_UP = 18 const val RIGHT_UP = 18
// (BUTTON_BACK << 3) | BUTTON_UP
const val BACK_UP = 66
const val WHEEL_BUTTON_DOWN = 33 const val WHEEL_BUTTON_DOWN = 33
const val WHEEL_BUTTON_UP = 34 const val WHEEL_BUTTON_UP = 34
const val WHEEL_DOWN = 523331 const val WHEEL_DOWN = 523331
const val WHEEL_UP = 963 const val WHEEL_UP = 963
const val TOUCH_SCALE_START = 1
const val TOUCH_SCALE = 2
const val TOUCH_SCALE_END = 3
const val TOUCH_PAN_START = 4
const val TOUCH_PAN_UPDATE = 5
const val TOUCH_PAN_END = 6
const val WHEEL_STEP = 120 const val WHEEL_STEP = 120
const val WHEEL_DURATION = 50L const val WHEEL_DURATION = 50L
const val LONG_TAP_DELAY = 200L const val LONG_TAP_DELAY = 200L
@@ -41,22 +71,32 @@ class InputService : AccessibilityService() {
private val logTag = "input service" private val logTag = "input service"
private var leftIsDown = false private var leftIsDown = false
private var touchPath = Path() private var touchPath = Path()
private var stroke: GestureDescription.StrokeDescription? = null
private var lastTouchGestureStartTime = 0L private var lastTouchGestureStartTime = 0L
private var mouseX = 0 private var mouseX = 0
private var mouseY = 0 private var mouseY = 0
private var timer = Timer() private var timer = Timer()
private var recentActionTask: TimerTask? = null private var recentActionTask: TimerTask? = null
// 100(tap timeout) + 400(long press timeout)
private val longPressDuration = ViewConfiguration.getTapTimeout().toLong() + ViewConfiguration.getLongPressTimeout().toLong()
private val wheelActionsQueue = LinkedList<GestureDescription>() private val wheelActionsQueue = LinkedList<GestureDescription>()
private var isWheelActionsPolling = false private var isWheelActionsPolling = false
private var isWaitingLongPress = false private var isWaitingLongPress = false
private var fakeEditTextForTextStateCalculation: EditText? = null
private var lastX = 0
private var lastY = 0
private val volumeController: VolumeController by lazy { VolumeController(applicationContext.getSystemService(AUDIO_SERVICE) as AudioManager) }
@RequiresApi(Build.VERSION_CODES.N) @RequiresApi(Build.VERSION_CODES.N)
fun onMouseInput(mask: Int, _x: Int, _y: Int) { fun onMouseInput(mask: Int, _x: Int, _y: Int) {
val x = max(0, _x) val x = max(0, _x)
val y = max(0, _y) val y = max(0, _y)
if (mask == 0 || mask == LIFT_MOVE) { if (mask == 0 || mask == LEFT_MOVE) {
val oldX = mouseX val oldX = mouseX
val oldY = mouseY val oldY = mouseY
mouseX = x * SCREEN_INFO.scale mouseX = x * SCREEN_INFO.scale
@@ -70,31 +110,30 @@ class InputService : AccessibilityService() {
} }
} }
// left button down ,was up // left button down, was up
if (mask == LIFT_DOWN) { if (mask == LEFT_DOWN) {
isWaitingLongPress = true isWaitingLongPress = true
timer.schedule(object : TimerTask() { timer.schedule(object : TimerTask() {
override fun run() { override fun run() {
if (isWaitingLongPress) { if (isWaitingLongPress) {
isWaitingLongPress = false isWaitingLongPress = false
leftIsDown = false continueGesture(mouseX, mouseY)
endGesture(mouseX, mouseY)
} }
} }
}, LONG_TAP_DELAY * 4) }, longPressDuration)
leftIsDown = true leftIsDown = true
startGesture(mouseX, mouseY) startGesture(mouseX, mouseY)
return return
} }
// left down ,was down // left down, was down
if (leftIsDown) { if (leftIsDown) {
continueGesture(mouseX, mouseY) continueGesture(mouseX, mouseY)
} }
// left up ,was down // left up, was down
if (mask == LIFT_UP) { if (mask == LEFT_UP) {
if (leftIsDown) { if (leftIsDown) {
leftIsDown = false leftIsDown = false
isWaitingLongPress = false isWaitingLongPress = false
@@ -104,6 +143,11 @@ class InputService : AccessibilityService() {
} }
if (mask == RIGHT_UP) { if (mask == RIGHT_UP) {
longPress(mouseX, mouseY)
return
}
if (mask == BACK_UP) {
performGlobalAction(GLOBAL_ACTION_BACK) performGlobalAction(GLOBAL_ACTION_BACK)
return return
} }
@@ -167,6 +211,30 @@ class InputService : AccessibilityService() {
} }
} }
@RequiresApi(Build.VERSION_CODES.N)
fun onTouchInput(mask: Int, _x: Int, _y: Int) {
when (mask) {
TOUCH_PAN_UPDATE -> {
mouseX -= _x * SCREEN_INFO.scale
mouseY -= _y * SCREEN_INFO.scale
mouseX = max(0, mouseX);
mouseY = max(0, mouseY);
continueGesture(mouseX, mouseY)
}
TOUCH_PAN_START -> {
mouseX = max(0, _x) * SCREEN_INFO.scale
mouseY = max(0, _y) * SCREEN_INFO.scale
startGesture(mouseX, mouseY)
}
TOUCH_PAN_END -> {
endGesture(mouseX, mouseY)
mouseX = max(0, _x) * SCREEN_INFO.scale
mouseY = max(0, _y) * SCREEN_INFO.scale
}
else -> {}
}
}
@RequiresApi(Build.VERSION_CODES.N) @RequiresApi(Build.VERSION_CODES.N)
private fun consumeWheelActions() { private fun consumeWheelActions() {
if (isWheelActionsPolling) { if (isWheelActionsPolling) {
@@ -189,18 +257,100 @@ class InputService : AccessibilityService() {
} }
} }
private fun startGesture(x: Int, y: Int) { @RequiresApi(Build.VERSION_CODES.N)
touchPath = Path() private fun performClick(x: Int, y: Int, duration: Long) {
touchPath.moveTo(x.toFloat(), y.toFloat()) val path = Path()
lastTouchGestureStartTime = System.currentTimeMillis() path.moveTo(x.toFloat(), y.toFloat())
} try {
val longPressStroke = GestureDescription.StrokeDescription(path, 0, duration)
private fun continueGesture(x: Int, y: Int) { val builder = GestureDescription.Builder()
touchPath.lineTo(x.toFloat(), y.toFloat()) builder.addStroke(longPressStroke)
Log.d(logTag, "performClick x:$x y:$y time:$duration")
dispatchGesture(builder.build(), null, null)
} catch (e: Exception) {
Log.e(logTag, "performClick, error:$e")
}
} }
@RequiresApi(Build.VERSION_CODES.N) @RequiresApi(Build.VERSION_CODES.N)
private fun endGesture(x: Int, y: Int) { private fun longPress(x: Int, y: Int) {
performClick(x, y, longPressDuration)
}
private fun startGesture(x: Int, y: Int) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
touchPath.reset()
} else {
touchPath = Path()
}
touchPath.moveTo(x.toFloat(), y.toFloat())
lastTouchGestureStartTime = System.currentTimeMillis()
lastX = x
lastY = y
}
@RequiresApi(Build.VERSION_CODES.N)
private fun doDispatchGesture(x: Int, y: Int, willContinue: Boolean) {
touchPath.lineTo(x.toFloat(), y.toFloat())
var duration = System.currentTimeMillis() - lastTouchGestureStartTime
if (duration <= 0) {
duration = 1
}
try {
if (stroke == null) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
stroke = GestureDescription.StrokeDescription(
touchPath,
0,
duration,
willContinue
)
} else {
stroke = GestureDescription.StrokeDescription(
touchPath,
0,
duration
)
}
} else {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
stroke = stroke?.continueStroke(touchPath, 0, duration, willContinue)
} else {
stroke = null
stroke = GestureDescription.StrokeDescription(
touchPath,
0,
duration
)
}
}
stroke?.let {
val builder = GestureDescription.Builder()
builder.addStroke(it)
Log.d(logTag, "doDispatchGesture x:$x y:$y time:$duration")
dispatchGesture(builder.build(), null, null)
}
} catch (e: Exception) {
Log.e(logTag, "doDispatchGesture, willContinue:$willContinue, error:$e")
}
}
@RequiresApi(Build.VERSION_CODES.N)
private fun continueGesture(x: Int, y: Int) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
doDispatchGesture(x, y, true)
touchPath.reset()
touchPath.moveTo(x.toFloat(), y.toFloat())
lastTouchGestureStartTime = System.currentTimeMillis()
lastX = x
lastY = y
} else {
touchPath.lineTo(x.toFloat(), y.toFloat())
}
}
@RequiresApi(Build.VERSION_CODES.N)
private fun endGestureBelowO(x: Int, y: Int) {
try { try {
touchPath.lineTo(x.toFloat(), y.toFloat()) touchPath.lineTo(x.toFloat(), y.toFloat())
var duration = System.currentTimeMillis() - lastTouchGestureStartTime var duration = System.currentTimeMillis() - lastTouchGestureStartTime
@@ -221,9 +371,364 @@ class InputService : AccessibilityService() {
} }
} }
@RequiresApi(Build.VERSION_CODES.N)
private fun endGesture(x: Int, y: Int) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
doDispatchGesture(x, y, false)
touchPath.reset()
stroke = null
} else {
endGestureBelowO(x, y)
}
}
@RequiresApi(Build.VERSION_CODES.N)
fun onKeyEvent(data: ByteArray) {
val keyEvent = KeyEvent.parseFrom(data)
val keyboardMode = keyEvent.getMode()
var textToCommit: String? = null
// [down] indicates the key's state(down or up).
// [press] indicates a click event(down and up).
// https://github.com/rustdesk/rustdesk/blob/3a7594755341f023f56fa4b6a43b60d6b47df88d/flutter/lib/models/input_model.dart#L688
if (keyEvent.hasSeq()) {
textToCommit = keyEvent.getSeq()
} else if (keyboardMode == KeyboardMode.Legacy) {
if (keyEvent.hasChr() && (keyEvent.getDown() || keyEvent.getPress())) {
val chr = keyEvent.getChr()
if (chr != null) {
textToCommit = String(Character.toChars(chr))
}
}
} else if (keyboardMode == KeyboardMode.Translate) {
} else {
}
Log.d(logTag, "onKeyEvent $keyEvent textToCommit:$textToCommit")
var ke: KeyEventAndroid? = null
if (Build.VERSION.SDK_INT < 33 || textToCommit == null) {
ke = KeyEventConverter.toAndroidKeyEvent(keyEvent)
}
ke?.let { event ->
if (tryHandleVolumeKeyEvent(event)) {
return
} else if (tryHandlePowerKeyEvent(event)) {
return
}
}
if (Build.VERSION.SDK_INT >= 33) {
getInputMethod()?.let { inputMethod ->
inputMethod.getCurrentInputConnection()?.let { inputConnection ->
if (textToCommit != null) {
textToCommit?.let { text ->
inputConnection.commitText(text, 1, null)
}
} else {
ke?.let { event ->
inputConnection.sendKeyEvent(event)
if (keyEvent.getPress()) {
val actionUpEvent = KeyEventAndroid(KeyEventAndroid.ACTION_UP, event.keyCode)
inputConnection.sendKeyEvent(actionUpEvent)
}
}
}
}
}
} else {
val handler = Handler(Looper.getMainLooper())
handler.post {
ke?.let { event ->
val possibleNodes = possibleAccessibiltyNodes()
Log.d(logTag, "possibleNodes:$possibleNodes")
for (item in possibleNodes) {
val success = trySendKeyEvent(event, item, textToCommit)
if (success) {
if (keyEvent.getPress()) {
val actionUpEvent = KeyEventAndroid(KeyEventAndroid.ACTION_UP, event.keyCode)
trySendKeyEvent(actionUpEvent, item, textToCommit)
}
break
}
}
}
}
}
}
private fun tryHandleVolumeKeyEvent(event: KeyEventAndroid): Boolean {
when (event.keyCode) {
KeyEventAndroid.KEYCODE_VOLUME_UP -> {
if (event.action == KeyEventAndroid.ACTION_DOWN) {
volumeController.raiseVolume(null, true, AudioManager.STREAM_SYSTEM)
}
return true
}
KeyEventAndroid.KEYCODE_VOLUME_DOWN -> {
if (event.action == KeyEventAndroid.ACTION_DOWN) {
volumeController.lowerVolume(null, true, AudioManager.STREAM_SYSTEM)
}
return true
}
KeyEventAndroid.KEYCODE_VOLUME_MUTE -> {
if (event.action == KeyEventAndroid.ACTION_DOWN) {
volumeController.toggleMute(true, AudioManager.STREAM_SYSTEM)
}
return true
}
else -> {
return false
}
}
}
private fun tryHandlePowerKeyEvent(event: KeyEventAndroid): Boolean {
if (event.keyCode == KeyEventAndroid.KEYCODE_POWER) {
// Perform power dialog action when action is up
if (event.action == KeyEventAndroid.ACTION_UP) {
performGlobalAction(GLOBAL_ACTION_POWER_DIALOG);
}
return true
}
return false
}
private fun insertAccessibilityNode(list: LinkedList<AccessibilityNodeInfo>, node: AccessibilityNodeInfo) {
if (node == null) {
return
}
if (list.contains(node)) {
return
}
list.add(node)
}
private fun findChildNode(node: AccessibilityNodeInfo?): AccessibilityNodeInfo? {
if (node == null) {
return null
}
if (node.isEditable() && node.isFocusable()) {
return node
}
val childCount = node.getChildCount()
for (i in 0 until childCount) {
val child = node.getChild(i)
if (child != null) {
if (child.isEditable() && child.isFocusable()) {
return child
}
if (Build.VERSION.SDK_INT < 33) {
child.recycle()
}
}
}
for (i in 0 until childCount) {
val child = node.getChild(i)
if (child != null) {
val result = findChildNode(child)
if (Build.VERSION.SDK_INT < 33) {
if (child != result) {
child.recycle()
}
}
if (result != null) {
return result
}
}
}
return null
}
private fun possibleAccessibiltyNodes(): LinkedList<AccessibilityNodeInfo> {
val linkedList = LinkedList<AccessibilityNodeInfo>()
val latestList = LinkedList<AccessibilityNodeInfo>()
val focusInput = findFocus(AccessibilityNodeInfo.FOCUS_INPUT)
var focusAccessibilityInput = findFocus(AccessibilityNodeInfo.FOCUS_ACCESSIBILITY)
val rootInActiveWindow = getRootInActiveWindow()
Log.d(logTag, "focusInput:$focusInput focusAccessibilityInput:$focusAccessibilityInput rootInActiveWindow:$rootInActiveWindow")
if (focusInput != null) {
if (focusInput.isFocusable() && focusInput.isEditable()) {
insertAccessibilityNode(linkedList, focusInput)
} else {
insertAccessibilityNode(latestList, focusInput)
}
}
if (focusAccessibilityInput != null) {
if (focusAccessibilityInput.isFocusable() && focusAccessibilityInput.isEditable()) {
insertAccessibilityNode(linkedList, focusAccessibilityInput)
} else {
insertAccessibilityNode(latestList, focusAccessibilityInput)
}
}
val childFromFocusInput = findChildNode(focusInput)
Log.d(logTag, "childFromFocusInput:$childFromFocusInput")
if (childFromFocusInput != null) {
insertAccessibilityNode(linkedList, childFromFocusInput)
}
val childFromFocusAccessibilityInput = findChildNode(focusAccessibilityInput)
if (childFromFocusAccessibilityInput != null) {
insertAccessibilityNode(linkedList, childFromFocusAccessibilityInput)
}
Log.d(logTag, "childFromFocusAccessibilityInput:$childFromFocusAccessibilityInput")
if (rootInActiveWindow != null) {
insertAccessibilityNode(linkedList, rootInActiveWindow)
}
for (item in latestList) {
insertAccessibilityNode(linkedList, item)
}
return linkedList
}
private fun trySendKeyEvent(event: KeyEventAndroid, node: AccessibilityNodeInfo, textToCommit: String?): Boolean {
node.refresh()
this.fakeEditTextForTextStateCalculation?.setSelection(0,0)
this.fakeEditTextForTextStateCalculation?.setText(null)
val text = node.getText()
var isShowingHint = false
if (Build.VERSION.SDK_INT >= 26) {
isShowingHint = node.isShowingHintText()
}
var textSelectionStart = node.textSelectionStart
var textSelectionEnd = node.textSelectionEnd
if (text != null) {
if (textSelectionStart > text.length) {
textSelectionStart = text.length
}
if (textSelectionEnd > text.length) {
textSelectionEnd = text.length
}
if (textSelectionStart > textSelectionEnd) {
textSelectionStart = textSelectionEnd
}
}
var success = false
Log.d(logTag, "existing text:$text textToCommit:$textToCommit textSelectionStart:$textSelectionStart textSelectionEnd:$textSelectionEnd")
if (textToCommit != null) {
if ((textSelectionStart == -1) || (textSelectionEnd == -1)) {
val newText = textToCommit
this.fakeEditTextForTextStateCalculation?.setText(newText)
success = updateTextForAccessibilityNode(node)
} else if (text != null) {
this.fakeEditTextForTextStateCalculation?.setText(text)
this.fakeEditTextForTextStateCalculation?.setSelection(
textSelectionStart,
textSelectionEnd
)
this.fakeEditTextForTextStateCalculation?.text?.insert(textSelectionStart, textToCommit)
success = updateTextAndSelectionForAccessibiltyNode(node)
}
} else {
if (isShowingHint) {
this.fakeEditTextForTextStateCalculation?.setText(null)
} else {
this.fakeEditTextForTextStateCalculation?.setText(text)
}
if (textSelectionStart != -1 && textSelectionEnd != -1) {
Log.d(logTag, "setting selection $textSelectionStart $textSelectionEnd")
this.fakeEditTextForTextStateCalculation?.setSelection(
textSelectionStart,
textSelectionEnd
)
}
this.fakeEditTextForTextStateCalculation?.let {
// This is essiential to make sure layout object is created. OnKeyDown may not work if layout is not created.
val rect = Rect()
node.getBoundsInScreen(rect)
it.layout(rect.left, rect.top, rect.right, rect.bottom)
it.onPreDraw()
if (event.action == KeyEventAndroid.ACTION_DOWN) {
val succ = it.onKeyDown(event.getKeyCode(), event)
Log.d(logTag, "onKeyDown $succ")
} else if (event.action == KeyEventAndroid.ACTION_UP) {
val success = it.onKeyUp(event.getKeyCode(), event)
Log.d(logTag, "keyup $success")
} else {}
}
success = updateTextAndSelectionForAccessibiltyNode(node)
}
return success
}
fun updateTextForAccessibilityNode(node: AccessibilityNodeInfo): Boolean {
var success = false
this.fakeEditTextForTextStateCalculation?.text?.let {
val arguments = Bundle()
arguments.putCharSequence(
AccessibilityNodeInfo.ACTION_ARGUMENT_SET_TEXT_CHARSEQUENCE,
it.toString()
)
success = node.performAction(AccessibilityNodeInfo.ACTION_SET_TEXT, arguments)
}
return success
}
fun updateTextAndSelectionForAccessibiltyNode(node: AccessibilityNodeInfo): Boolean {
var success = updateTextForAccessibilityNode(node)
if (success) {
val selectionStart = this.fakeEditTextForTextStateCalculation?.selectionStart
val selectionEnd = this.fakeEditTextForTextStateCalculation?.selectionEnd
if (selectionStart != null && selectionEnd != null) {
val arguments = Bundle()
arguments.putInt(
AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_START_INT,
selectionStart
)
arguments.putInt(
AccessibilityNodeInfo.ACTION_ARGUMENT_SELECTION_END_INT,
selectionEnd
)
success = node.performAction(AccessibilityNodeInfo.ACTION_SET_SELECTION, arguments)
Log.d(logTag, "Update selection to $selectionStart $selectionEnd success:$success")
}
}
return success
}
override fun onAccessibilityEvent(event: AccessibilityEvent) {
}
override fun onServiceConnected() { override fun onServiceConnected() {
super.onServiceConnected() super.onServiceConnected()
ctx = this ctx = this
val info = AccessibilityServiceInfo()
if (Build.VERSION.SDK_INT >= 33) {
info.flags = FLAG_INPUT_METHOD_EDITOR or FLAG_RETRIEVE_INTERACTIVE_WINDOWS
} else {
info.flags = FLAG_RETRIEVE_INTERACTIVE_WINDOWS
}
setServiceInfo(info)
fakeEditTextForTextStateCalculation = EditText(this)
// Size here doesn't matter, we won't show this view.
fakeEditTextForTextStateCalculation?.layoutParams = LayoutParams(100, 100)
fakeEditTextForTextStateCalculation?.onPreDraw()
val layout = fakeEditTextForTextStateCalculation?.getLayout()
Log.d(logTag, "fakeEditTextForTextStateCalculation layout:$layout")
Log.d(logTag, "onServiceConnected!") Log.d(logTag, "onServiceConnected!")
} }
@@ -232,7 +737,5 @@ class InputService : AccessibilityService() {
super.onDestroy() super.onDestroy()
} }
override fun onAccessibilityEvent(event: AccessibilityEvent?) {}
override fun onInterrupt() {} override fun onInterrupt() {}
} }

View File

@@ -0,0 +1,122 @@
package hbb;
import android.view.KeyEvent
import android.view.KeyCharacterMap
import hbb.MessageOuterClass.KeyboardMode
import hbb.MessageOuterClass.ControlKey
object KeyEventConverter {
fun toAndroidKeyEvent(keyEventProto: hbb.MessageOuterClass.KeyEvent): KeyEvent {
var chrValue = 0
var modifiers = 0
val keyboardMode = keyEventProto.getMode()
if (keyEventProto.hasChr()) {
if (keyboardMode == KeyboardMode.Map || keyboardMode == KeyboardMode.Translate) {
chrValue = keyEventProto.getChr()
} else {
chrValue = convertUnicodeToKeyCode(keyEventProto.getChr() as Int)
}
} else if (keyEventProto.hasControlKey()) {
chrValue = convertControlKeyToKeyCode(keyEventProto.getControlKey())
}
var modifiersList = keyEventProto.getModifiersList()
if (modifiersList != null) {
for (modifier in keyEventProto.getModifiersList()) {
val modifierValue = convertModifier(modifier)
modifiers = modifiers or modifierValue
}
}
var action = 0
if (keyEventProto.getDown() || keyEventProto.getPress()) {
action = KeyEvent.ACTION_DOWN
} else {
action = KeyEvent.ACTION_UP
}
return KeyEvent(0, 0, action, chrValue, 0, modifiers)
}
private fun convertModifier(controlKey: hbb.MessageOuterClass.ControlKey): Int {
// Add logic to map ControlKey values to Android KeyEvent key codes.
// You'll need to provide the mapping for each key.
return when (controlKey) {
ControlKey.Alt -> KeyEvent.META_ALT_ON
ControlKey.Control -> KeyEvent.META_CTRL_ON
ControlKey.CapsLock -> KeyEvent.META_CAPS_LOCK_ON
ControlKey.Meta -> KeyEvent.META_META_ON
ControlKey.NumLock -> KeyEvent.META_NUM_LOCK_ON
ControlKey.RShift -> KeyEvent.META_SHIFT_RIGHT_ON
ControlKey.Shift -> KeyEvent.META_SHIFT_ON
ControlKey.RAlt -> KeyEvent.META_ALT_RIGHT_ON
ControlKey.RControl -> KeyEvent.META_CTRL_RIGHT_ON
else -> 0 // Default to unknown.
}
}
private val tag = "KeyEventConverter"
private fun convertUnicodeToKeyCode(unicode: Int): Int {
val charMap = KeyCharacterMap.load(KeyCharacterMap.VIRTUAL_KEYBOARD)
android.util.Log.d(tag, "unicode: $unicode")
val events = charMap.getEvents(charArrayOf(unicode.toChar()))
if (events != null && events.size > 0) {
android.util.Log.d(tag, "keycode ${events[0].keyCode}")
return events[0].keyCode
}
return 0
}
private fun convertControlKeyToKeyCode(controlKey: hbb.MessageOuterClass.ControlKey): Int {
// Add logic to map ControlKey values to Android KeyEvent key codes.
// You'll need to provide the mapping for each key.
return when (controlKey) {
ControlKey.Alt -> KeyEvent.KEYCODE_ALT_LEFT
ControlKey.Backspace -> KeyEvent.KEYCODE_DEL
ControlKey.Control -> KeyEvent.KEYCODE_CTRL_LEFT
ControlKey.CapsLock -> KeyEvent.KEYCODE_CAPS_LOCK
ControlKey.Meta -> KeyEvent.KEYCODE_META_LEFT
ControlKey.NumLock -> KeyEvent.KEYCODE_NUM_LOCK
ControlKey.RShift -> KeyEvent.KEYCODE_SHIFT_RIGHT
ControlKey.Shift -> KeyEvent.KEYCODE_SHIFT_LEFT
ControlKey.RAlt -> KeyEvent.KEYCODE_ALT_RIGHT
ControlKey.RControl -> KeyEvent.KEYCODE_CTRL_RIGHT
ControlKey.DownArrow -> KeyEvent.KEYCODE_DPAD_DOWN
ControlKey.LeftArrow -> KeyEvent.KEYCODE_DPAD_LEFT
ControlKey.RightArrow -> KeyEvent.KEYCODE_DPAD_RIGHT
ControlKey.UpArrow -> KeyEvent.KEYCODE_DPAD_UP
ControlKey.End -> KeyEvent.KEYCODE_MOVE_END
ControlKey.Home -> KeyEvent.KEYCODE_MOVE_HOME
ControlKey.PageUp -> KeyEvent.KEYCODE_PAGE_UP
ControlKey.PageDown -> KeyEvent.KEYCODE_PAGE_DOWN
ControlKey.Insert -> KeyEvent.KEYCODE_INSERT
ControlKey.Escape -> KeyEvent.KEYCODE_ESCAPE
ControlKey.F1 -> KeyEvent.KEYCODE_F1
ControlKey.F2 -> KeyEvent.KEYCODE_F2
ControlKey.F3 -> KeyEvent.KEYCODE_F3
ControlKey.F4 -> KeyEvent.KEYCODE_F4
ControlKey.F5 -> KeyEvent.KEYCODE_F5
ControlKey.F6 -> KeyEvent.KEYCODE_F6
ControlKey.F7 -> KeyEvent.KEYCODE_F7
ControlKey.F8 -> KeyEvent.KEYCODE_F8
ControlKey.F9 -> KeyEvent.KEYCODE_F9
ControlKey.F10 -> KeyEvent.KEYCODE_F10
ControlKey.F11 -> KeyEvent.KEYCODE_F11
ControlKey.F12 -> KeyEvent.KEYCODE_F12
ControlKey.Space -> KeyEvent.KEYCODE_SPACE
ControlKey.Tab -> KeyEvent.KEYCODE_TAB
ControlKey.Return -> KeyEvent.KEYCODE_ENTER
ControlKey.Delete -> KeyEvent.KEYCODE_FORWARD_DEL
ControlKey.Clear -> KeyEvent.KEYCODE_CLEAR
ControlKey.Pause -> KeyEvent.KEYCODE_BREAK
ControlKey.VolumeMute -> KeyEvent.KEYCODE_VOLUME_MUTE
ControlKey.VolumeUp -> KeyEvent.KEYCODE_VOLUME_UP
ControlKey.VolumeDown -> KeyEvent.KEYCODE_VOLUME_DOWN
ControlKey.Power -> KeyEvent.KEYCODE_POWER
else -> 0 // Default to unknown.
}
}
}

View File

@@ -7,29 +7,49 @@ package com.carriez.flutter_hbb
* Inspired by [droidVNC-NG] https://github.com/bk138/droidVNC-NG * Inspired by [droidVNC-NG] https://github.com/bk138/droidVNC-NG
*/ */
import ffi.FFI
import android.content.ComponentName import android.content.ComponentName
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.ServiceConnection import android.content.ServiceConnection
import android.content.ClipboardManager
import android.os.Bundle
import android.os.Build import android.os.Build
import android.os.IBinder import android.os.IBinder
import android.util.Log import android.util.Log
import android.view.WindowManager import android.view.WindowManager
import android.media.MediaCodecInfo
import android.media.MediaCodecInfo.CodecCapabilities.COLOR_FormatSurface
import android.media.MediaCodecInfo.CodecCapabilities.COLOR_FormatYUV420SemiPlanar
import android.media.MediaCodecList
import android.media.MediaFormat
import android.util.DisplayMetrics
import androidx.annotation.RequiresApi
import org.json.JSONArray
import org.json.JSONObject
import com.hjq.permissions.XXPermissions import com.hjq.permissions.XXPermissions
import io.flutter.embedding.android.FlutterActivity import io.flutter.embedding.android.FlutterActivity
import io.flutter.embedding.engine.FlutterEngine import io.flutter.embedding.engine.FlutterEngine
import io.flutter.plugin.common.MethodChannel import io.flutter.plugin.common.MethodChannel
import kotlin.concurrent.thread
class MainActivity : FlutterActivity() { class MainActivity : FlutterActivity() {
companion object { companion object {
var flutterMethodChannel: MethodChannel? = null var flutterMethodChannel: MethodChannel? = null
private var _rdClipboardManager: RdClipboardManager? = null
val rdClipboardManager: RdClipboardManager?
get() = _rdClipboardManager;
} }
private val channelTag = "mChannel" private val channelTag = "mChannel"
private val logTag = "mMainActivity" private val logTag = "mMainActivity"
private var mainService: MainService? = null private var mainService: MainService? = null
private var isAudioStart = false
private val audioRecordHandle = AudioRecordHandle(this, { false }, { isAudioStart })
override fun configureFlutterEngine(flutterEngine: FlutterEngine) { override fun configureFlutterEngine(flutterEngine: FlutterEngine) {
super.configureFlutterEngine(flutterEngine) super.configureFlutterEngine(flutterEngine)
if (MainService.isReady) { if (MainService.isReady) {
@@ -42,6 +62,7 @@ class MainActivity : FlutterActivity() {
channelTag channelTag
) )
initFlutterChannel(flutterMethodChannel!!) initFlutterChannel(flutterMethodChannel!!)
thread { setCodecInfo() }
} }
override fun onResume() { override fun onResume() {
@@ -69,6 +90,14 @@ class MainActivity : FlutterActivity() {
} }
} }
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
if (_rdClipboardManager == null) {
_rdClipboardManager = RdClipboardManager(getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager)
FFI.setClipboardManager(_rdClipboardManager!!)
}
}
override fun onDestroy() { override fun onDestroy() {
Log.e(logTag, "onDestroy") Log.e(logTag, "onDestroy")
mainService?.let { mainService?.let {
@@ -191,6 +220,10 @@ class MainActivity : FlutterActivity() {
result.success(true) result.success(true)
} }
"try_sync_clipboard" -> {
rdClipboardManager?.syncClipboard(true)
result.success(true)
}
GET_START_ON_BOOT_OPT -> { GET_START_ON_BOOT_OPT -> {
val prefs = getSharedPreferences(KEY_SHARED_PREFERENCES, MODE_PRIVATE) val prefs = getSharedPreferences(KEY_SHARED_PREFERENCES, MODE_PRIVATE)
result.success(prefs.getBoolean(KEY_START_ON_BOOT_OPT, false)) result.success(prefs.getBoolean(KEY_START_ON_BOOT_OPT, false))
@@ -217,10 +250,159 @@ class MainActivity : FlutterActivity() {
result.success(false) result.success(false)
} }
} }
GET_VALUE -> {
if (call.arguments is String) {
if (call.arguments == KEY_IS_SUPPORT_VOICE_CALL) {
result.success(isSupportVoiceCall())
} else {
result.error("-1", "No such key", null)
}
} else {
result.success(null)
}
}
"on_voice_call_started" -> {
onVoiceCallStarted()
}
"on_voice_call_closed" -> {
onVoiceCallClosed()
}
else -> { else -> {
result.error("-1", "No such method", null) result.error("-1", "No such method", null)
} }
} }
} }
} }
private fun setCodecInfo() {
val codecList = MediaCodecList(MediaCodecList.REGULAR_CODECS)
val codecs = codecList.codecInfos
val codecArray = JSONArray()
val windowManager = getSystemService(Context.WINDOW_SERVICE) as WindowManager
val wh = getScreenSize(windowManager)
var w = wh.first
var h = wh.second
val align = 64
w = (w + align - 1) / align * align
h = (h + align - 1) / align * align
codecs.forEach { codec ->
val codecObject = JSONObject()
codecObject.put("name", codec.name)
codecObject.put("is_encoder", codec.isEncoder)
var hw: Boolean? = null;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
hw = codec.isHardwareAccelerated
} else {
// https://chromium.googlesource.com/external/webrtc/+/HEAD/sdk/android/src/java/org/webrtc/MediaCodecUtils.java#29
// https://chromium.googlesource.com/external/webrtc/+/master/sdk/android/api/org/webrtc/HardwareVideoEncoderFactory.java#229
if (listOf("OMX.google.", "OMX.SEC.", "c2.android").any { codec.name.startsWith(it, true) }) {
hw = false
} else if (listOf("c2.qti", "OMX.qcom.video", "OMX.Exynos", "OMX.hisi", "OMX.MTK", "OMX.Intel", "OMX.Nvidia").any { codec.name.startsWith(it, true) }) {
hw = true
}
}
if (hw != true) {
return@forEach
}
codecObject.put("hw", hw)
var mime_type = ""
codec.supportedTypes.forEach { type ->
if (listOf("video/avc", "video/hevc").contains(type)) { // "video/x-vnd.on2.vp8", "video/x-vnd.on2.vp9", "video/av01"
mime_type = type;
}
}
if (mime_type.isNotEmpty()) {
codecObject.put("mime_type", mime_type)
val caps = codec.getCapabilitiesForType(mime_type)
if (codec.isEncoder) {
// Encoder's max_height and max_width are interchangeable
if (!caps.videoCapabilities.isSizeSupported(w,h) && !caps.videoCapabilities.isSizeSupported(h,w)) {
return@forEach
}
}
codecObject.put("min_width", caps.videoCapabilities.supportedWidths.lower)
codecObject.put("max_width", caps.videoCapabilities.supportedWidths.upper)
codecObject.put("min_height", caps.videoCapabilities.supportedHeights.lower)
codecObject.put("max_height", caps.videoCapabilities.supportedHeights.upper)
val surface = caps.colorFormats.contains(COLOR_FormatSurface);
codecObject.put("surface", surface)
val nv12 = caps.colorFormats.contains(COLOR_FormatYUV420SemiPlanar)
codecObject.put("nv12", nv12)
if (!(nv12 || surface)) {
return@forEach
}
codecObject.put("min_bitrate", caps.videoCapabilities.bitrateRange.lower / 1000)
codecObject.put("max_bitrate", caps.videoCapabilities.bitrateRange.upper / 1000)
if (!codec.isEncoder) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
codecObject.put("low_latency", caps.isFeatureSupported(MediaCodecInfo.CodecCapabilities.FEATURE_LowLatency))
}
}
if (!codec.isEncoder) {
return@forEach
}
codecArray.put(codecObject)
}
}
val result = JSONObject()
result.put("version", Build.VERSION.SDK_INT)
result.put("w", w)
result.put("h", h)
result.put("codecs", codecArray)
FFI.setCodecInfo(result.toString())
}
private fun onVoiceCallStarted() {
var ok = false
mainService?.let {
ok = it.onVoiceCallStarted()
} ?: let {
isAudioStart = true
ok = audioRecordHandle.onVoiceCallStarted(null)
}
if (!ok) {
// Rarely happens, So we just add log and msgbox here.
Log.e(logTag, "onVoiceCallStarted fail")
flutterMethodChannel?.invokeMethod("msgbox", mapOf(
"type" to "custom-nook-nocancel-hasclose-error",
"title" to "Voice call",
"text" to "Failed to start voice call."))
} else {
Log.d(logTag, "onVoiceCallStarted success")
}
}
private fun onVoiceCallClosed() {
var ok = false
mainService?.let {
ok = it.onVoiceCallClosed()
} ?: let {
isAudioStart = false
ok = audioRecordHandle.onVoiceCallClosed(null)
}
if (!ok) {
// Rarely happens, So we just add log and msgbox here.
Log.e(logTag, "onVoiceCallClosed fail")
flutterMethodChannel?.invokeMethod("msgbox", mapOf(
"type" to "custom-nook-nocancel-hasclose-error",
"title" to "Voice call",
"text" to "Failed to stop voice call."))
} else {
Log.d(logTag, "onVoiceCallClosed success")
}
}
override fun onStop() {
super.onStop()
val disableFloatingWindow = FFI.getLocalOption("disable-floating-window") == "Y"
if (!disableFloatingWindow && MainService.isReady) {
startService(Intent(this, FloatingWindowService::class.java))
}
}
override fun onStart() {
super.onStart()
stopService(Intent(this, FloatingWindowService::class.java))
}
} }

View File

@@ -1,5 +1,7 @@
package com.carriez.flutter_hbb package com.carriez.flutter_hbb
import ffi.FFI
/** /**
* Capture screen,get video and audio,send to rust. * Capture screen,get video and audio,send to rust.
* Dispatch notifications * Dispatch notifications
@@ -44,7 +46,6 @@ import java.nio.ByteBuffer
import kotlin.math.max import kotlin.math.max
import kotlin.math.min import kotlin.math.min
const val DEFAULT_NOTIFY_TITLE = "RustDesk" const val DEFAULT_NOTIFY_TITLE = "RustDesk"
const val DEFAULT_NOTIFY_TEXT = "Service is running" const val DEFAULT_NOTIFY_TEXT = "Service is running"
const val DEFAULT_NOTIFY_ID = 1 const val DEFAULT_NOTIFY_ID = 1
@@ -53,38 +54,45 @@ const val NOTIFY_ID_OFFSET = 100
const val MIME_TYPE = MediaFormat.MIMETYPE_VIDEO_VP9 const val MIME_TYPE = MediaFormat.MIMETYPE_VIDEO_VP9
// video const // video const
const val MAX_SCREEN_SIZE = 1200 const val MAX_SCREEN_SIZE = 1200
const val VIDEO_KEY_BIT_RATE = 1024_000 const val VIDEO_KEY_BIT_RATE = 1024_000
const val VIDEO_KEY_FRAME_RATE = 30 const val VIDEO_KEY_FRAME_RATE = 30
// audio const
const val AUDIO_ENCODING = AudioFormat.ENCODING_PCM_FLOAT // ENCODING_OPUS need API 30
const val AUDIO_SAMPLE_RATE = 48000
const val AUDIO_CHANNEL_MASK = AudioFormat.CHANNEL_IN_STEREO
class MainService : Service() { class MainService : Service() {
init {
System.loadLibrary("rustdesk")
}
@Keep @Keep
@RequiresApi(Build.VERSION_CODES.N) @RequiresApi(Build.VERSION_CODES.N)
fun rustMouseInput(mask: Int, x: Int, y: Int) { fun rustPointerInput(kind: Int, mask: Int, x: Int, y: Int) {
// turn on screen with LIFT_DOWN when screen off // turn on screen with LEFT_DOWN when screen off
if (!powerManager.isInteractive && mask == LIFT_DOWN) { if (!powerManager.isInteractive && (kind == 0 || mask == LEFT_DOWN)) {
if (wakeLock.isHeld) { if (wakeLock.isHeld) {
Log.d(logTag,"Turn on Screen, WakeLock release") Log.d(logTag, "Turn on Screen, WakeLock release")
wakeLock.release() wakeLock.release()
} }
Log.d(logTag,"Turn on Screen") Log.d(logTag,"Turn on Screen")
wakeLock.acquire(5000) wakeLock.acquire(5000)
} else { } else {
InputService.ctx?.onMouseInput(mask,x,y) when (kind) {
0 -> { // touch
InputService.ctx?.onTouchInput(mask, x, y)
}
1 -> { // mouse
InputService.ctx?.onMouseInput(mask, x, y)
}
else -> {
}
}
} }
} }
@Keep
@RequiresApi(Build.VERSION_CODES.N)
fun rustKeyEventInput(input: ByteArray) {
InputService.ctx?.onKeyEvent(input)
}
@Keep @Keep
fun rustGetByName(name: String): String { fun rustGetByName(name: String): String {
return when (name) { return when (name) {
@@ -95,6 +103,9 @@ class MainService : Service() {
put("scale",SCREEN_INFO.scale) put("scale",SCREEN_INFO.scale)
}.toString() }.toString()
} }
"is_start" -> {
isStart.toString()
}
else -> "" else -> ""
} }
} }
@@ -111,9 +122,9 @@ class MainService : Service() {
val authorized = jsonObject["authorized"] as Boolean val authorized = jsonObject["authorized"] as Boolean
val isFileTransfer = jsonObject["is_file_transfer"] as Boolean val isFileTransfer = jsonObject["is_file_transfer"] as Boolean
val type = if (isFileTransfer) { val type = if (isFileTransfer) {
translate("File Connection") translate("Transfer file")
} else { } else {
translate("Screen Connection") translate("Share screen")
} }
if (authorized) { if (authorized) {
if (!isFileTransfer && !isStart) { if (!isFileTransfer && !isStart) {
@@ -127,10 +138,51 @@ class MainService : Service() {
e.printStackTrace() e.printStackTrace()
} }
} }
"update_voice_call_state" -> {
try {
val jsonObject = JSONObject(arg1)
val id = jsonObject["id"] as Int
val username = jsonObject["name"] as String
val peerId = jsonObject["peer_id"] as String
val inVoiceCall = jsonObject["in_voice_call"] as Boolean
val incomingVoiceCall = jsonObject["incoming_voice_call"] as Boolean
if (!inVoiceCall) {
if (incomingVoiceCall) {
voiceCallRequestNotification(id, "Voice Call Request", username, peerId)
} else {
if (!audioRecordHandle.switchOutVoiceCall(mediaProjection)) {
Log.e(logTag, "switchOutVoiceCall fail")
MainActivity.flutterMethodChannel?.invokeMethod("msgbox", mapOf(
"type" to "custom-nook-nocancel-hasclose-error",
"title" to "Voice call",
"text" to "Failed to switch out voice call."))
}
}
} else {
if (!audioRecordHandle.switchToVoiceCall(mediaProjection)) {
Log.e(logTag, "switchToVoiceCall fail")
MainActivity.flutterMethodChannel?.invokeMethod("msgbox", mapOf(
"type" to "custom-nook-nocancel-hasclose-error",
"title" to "Voice call",
"text" to "Failed to switch to voice call."))
}
}
} catch (e: JSONException) {
e.printStackTrace()
}
}
"stop_capture" -> { "stop_capture" -> {
Log.d(logTag, "from rust:stop_capture") Log.d(logTag, "from rust:stop_capture")
stopCapture() stopCapture()
} }
"half_scale" -> {
val halfScale = arg1.toBoolean()
if (isHalfScale != halfScale) {
isHalfScale = halfScale
updateScreenInfo(resources.configuration.orientation)
}
}
else -> { else -> {
} }
} }
@@ -142,38 +194,23 @@ class MainService : Service() {
private val powerManager: PowerManager by lazy { applicationContext.getSystemService(Context.POWER_SERVICE) as PowerManager } private val powerManager: PowerManager by lazy { applicationContext.getSystemService(Context.POWER_SERVICE) as PowerManager }
private val wakeLock: PowerManager.WakeLock by lazy { powerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP or PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "rustdesk:wakelock")} private val wakeLock: PowerManager.WakeLock by lazy { powerManager.newWakeLock(PowerManager.ACQUIRE_CAUSES_WAKEUP or PowerManager.SCREEN_BRIGHT_WAKE_LOCK, "rustdesk:wakelock")}
// jvm call rust
private external fun init(ctx: Context)
/// When app start on boot, app_dir will not be passed from flutter
/// so pass a app_dir here to rust server
private external fun startServer(app_dir: String)
private external fun startService()
private external fun onVideoFrameUpdate(buf: ByteBuffer)
private external fun onAudioFrameUpdate(buf: ByteBuffer)
private external fun translateLocale(localeName: String, input: String): String
private external fun refreshScreen()
private external fun setFrameRawEnable(name: String, value: Boolean)
// private external fun sendVp9(data: ByteArray)
private fun translate(input: String): String {
Log.d(logTag, "translate:$LOCAL_NAME")
return translateLocale(LOCAL_NAME, input)
}
companion object { companion object {
private var _isReady = false // media permission ready status private var _isReady = false // media permission ready status
private var _isStart = false // screen capture start status private var _isStart = false // screen capture start status
private var _isAudioStart = false // audio capture start status
val isReady: Boolean val isReady: Boolean
get() = _isReady get() = _isReady
val isStart: Boolean val isStart: Boolean
get() = _isStart get() = _isStart
val isAudioStart: Boolean
get() = _isAudioStart
} }
private val logTag = "LOG_SERVICE" private val logTag = "LOG_SERVICE"
private val useVP9 = false private val useVP9 = false
private val binder = LocalBinder() private val binder = LocalBinder()
private var reuseVirtualDisplay = Build.VERSION.SDK_INT > 33
// video // video
private var mediaProjection: MediaProjection? = null private var mediaProjection: MediaProjection? = null
@@ -184,10 +221,7 @@ class MainService : Service() {
private var virtualDisplay: VirtualDisplay? = null private var virtualDisplay: VirtualDisplay? = null
// audio // audio
private var audioRecorder: AudioRecord? = null private val audioRecordHandle = AudioRecordHandle(this, { isStart }, { isAudioStart })
private var audioReader: AudioReader? = null
private var minBufferSize = 0
private var audioRecordStat = false
// notification // notification
private lateinit var notificationManager: NotificationManager private lateinit var notificationManager: NotificationManager
@@ -196,7 +230,8 @@ class MainService : Service() {
override fun onCreate() { override fun onCreate() {
super.onCreate() super.onCreate()
Log.d(logTag,"MainService onCreate") Log.d(logTag,"MainService onCreate, sdk int:${Build.VERSION.SDK_INT} reuseVirtualDisplay:$reuseVirtualDisplay")
FFI.init(this)
HandlerThread("Service", Process.THREAD_PRIORITY_BACKGROUND).apply { HandlerThread("Service", Process.THREAD_PRIORITY_BACKGROUND).apply {
start() start()
serviceLooper = looper serviceLooper = looper
@@ -208,16 +243,18 @@ class MainService : Service() {
// keep the config dir same with flutter // keep the config dir same with flutter
val prefs = applicationContext.getSharedPreferences(KEY_SHARED_PREFERENCES, FlutterActivity.MODE_PRIVATE) val prefs = applicationContext.getSharedPreferences(KEY_SHARED_PREFERENCES, FlutterActivity.MODE_PRIVATE)
val configPath = prefs.getString(KEY_APP_DIR_CONFIG_PATH, "") ?: "" val configPath = prefs.getString(KEY_APP_DIR_CONFIG_PATH, "") ?: ""
startServer(configPath) FFI.startServer(configPath, "")
createForegroundNotification() createForegroundNotification()
} }
override fun onDestroy() { override fun onDestroy() {
checkMediaPermission() checkMediaPermission()
stopService(Intent(this, FloatingWindowService::class.java))
super.onDestroy() super.onDestroy()
} }
private var isHalfScale: Boolean? = null;
private fun updateScreenInfo(orientation: Int) { private fun updateScreenInfo(orientation: Int) {
var w: Int var w: Int
var h: Int var h: Int
@@ -250,7 +287,7 @@ class MainService : Service() {
Log.d(logTag,"updateScreenInfo:w:$w,h:$h") Log.d(logTag,"updateScreenInfo:w:$w,h:$h")
var scale = 1 var scale = 1
if (w != 0 && h != 0) { if (w != 0 && h != 0) {
if (w > MAX_SCREEN_SIZE || h > MAX_SCREEN_SIZE) { if (isHalfScale == true && (w > MAX_SCREEN_SIZE || h > MAX_SCREEN_SIZE)) {
scale = 2 scale = 2
w /= scale w /= scale
h /= scale h /= scale
@@ -263,8 +300,10 @@ class MainService : Service() {
SCREEN_INFO.dpi = dpi SCREEN_INFO.dpi = dpi
if (isStart) { if (isStart) {
stopCapture() stopCapture()
refreshScreen() FFI.refreshScreen()
startCapture() startCapture()
} else {
FFI.refreshScreen()
} }
} }
@@ -291,7 +330,7 @@ class MainService : Service() {
createForegroundNotification() createForegroundNotification()
if (intent.getBooleanExtra(EXT_INIT_FROM_BOOT, false)) { if (intent.getBooleanExtra(EXT_INIT_FROM_BOOT, false)) {
startService() FFI.startService()
} }
Log.d(logTag, "service starting: ${startId}:${Thread.currentThread()}") Log.d(logTag, "service starting: ${startId}:${Thread.currentThread()}")
val mediaProjectionManager = val mediaProjectionManager =
@@ -301,7 +340,6 @@ class MainService : Service() {
mediaProjection = mediaProjection =
mediaProjectionManager.getMediaProjection(Activity.RESULT_OK, it) mediaProjectionManager.getMediaProjection(Activity.RESULT_OK, it)
checkMediaPermission() checkMediaPermission()
init(this)
_isReady = true _isReady = true
} ?: let { } ?: let {
Log.d(logTag, "getParcelableExtra intent null, invoke requestMediaProjection") Log.d(logTag, "getParcelableExtra intent null, invoke requestMediaProjection")
@@ -340,12 +378,13 @@ class MainService : Service() {
).apply { ).apply {
setOnImageAvailableListener({ imageReader: ImageReader -> setOnImageAvailableListener({ imageReader: ImageReader ->
try { try {
// If not call acquireLatestImage, listener will not be called again
imageReader.acquireLatestImage().use { image -> imageReader.acquireLatestImage().use { image ->
if (image == null) return@setOnImageAvailableListener if (image == null || !isStart) return@setOnImageAvailableListener
val planes = image.planes val planes = image.planes
val buffer = planes[0].buffer val buffer = planes[0].buffer
buffer.rewind() buffer.rewind()
onVideoFrameUpdate(buffer) FFI.onVideoFrameUpdate(buffer)
} }
} catch (ignored: java.lang.Exception) { } catch (ignored: java.lang.Exception) {
} }
@@ -356,6 +395,14 @@ class MainService : Service() {
} }
} }
fun onVoiceCallStarted(): Boolean {
return audioRecordHandle.onVoiceCallStarted(mediaProjection)
}
fun onVoiceCallClosed(): Boolean {
return audioRecordHandle.onVoiceCallClosed(mediaProjection)
}
fun startCapture(): Boolean { fun startCapture(): Boolean {
if (isStart) { if (isStart) {
return true return true
@@ -364,6 +411,7 @@ class MainService : Service() {
Log.w(logTag, "startCapture fail,mediaProjection is null") Log.w(logTag, "startCapture fail,mediaProjection is null")
return false return false
} }
updateScreenInfo(resources.configuration.orientation) updateScreenInfo(resources.configuration.orientation)
Log.d(logTag, "Start Capture") Log.d(logTag, "Start Capture")
surface = createSurface() surface = createSurface()
@@ -375,51 +423,73 @@ class MainService : Service() {
} }
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) { if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
startAudioRecorder() if (!audioRecordHandle.createAudioRecorder(false, mediaProjection)) {
Log.d(logTag, "createAudioRecorder fail")
} else {
Log.d(logTag, "audio recorder start")
audioRecordHandle.startAudioRecorder()
}
} }
checkMediaPermission() checkMediaPermission()
_isStart = true _isStart = true
setFrameRawEnable("video",true) FFI.setFrameRawEnable("video",true)
setFrameRawEnable("audio",true) MainActivity.rdClipboardManager?.setCaptureStarted(_isStart)
return true return true
} }
@Synchronized @Synchronized
fun stopCapture() { fun stopCapture() {
Log.d(logTag, "Stop Capture") Log.d(logTag, "Stop Capture")
setFrameRawEnable("video",false) FFI.setFrameRawEnable("video",false)
setFrameRawEnable("audio",false)
_isStart = false _isStart = false
MainActivity.rdClipboardManager?.setCaptureStarted(_isStart)
// release video // release video
virtualDisplay?.release() if (reuseVirtualDisplay) {
surface?.release() // The virtual display video projection can be paused by calling `setSurface(null)`.
// https://developer.android.com/reference/android/hardware/display/VirtualDisplay.Callback
// https://learn.microsoft.com/en-us/dotnet/api/android.hardware.display.virtualdisplay.callback.onpaused?view=net-android-34.0
virtualDisplay?.setSurface(null)
} else {
virtualDisplay?.release()
}
// suface needs to be release after `imageReader.close()` to imageReader access released surface
// https://github.com/rustdesk/rustdesk/issues/4118#issuecomment-1515666629
imageReader?.close() imageReader?.close()
imageReader = null
videoEncoder?.let { videoEncoder?.let {
it.signalEndOfInputStream() it.signalEndOfInputStream()
it.stop() it.stop()
it.release() it.release()
} }
virtualDisplay = null if (!reuseVirtualDisplay) {
virtualDisplay = null
}
videoEncoder = null videoEncoder = null
// suface needs to be release after `imageReader.close()` to imageReader access released surface
// https://github.com/rustdesk/rustdesk/issues/4118#issuecomment-1515666629
surface?.release()
// release audio // release audio
audioRecordStat = false _isAudioStart = false
audioRecorder?.release() audioRecordHandle.tryReleaseAudio()
audioRecorder = null
minBufferSize = 0
} }
fun destroy() { fun destroy() {
Log.d(logTag, "destroy service") Log.d(logTag, "destroy service")
_isReady = false _isReady = false
_isAudioStart = false
stopCapture() stopCapture()
imageReader?.close()
imageReader = null if (reuseVirtualDisplay) {
virtualDisplay?.release()
virtualDisplay = null
}
mediaProjection = null mediaProjection = null
checkMediaPermission() checkMediaPermission()
stopForeground(true) stopForeground(true)
stopService(Intent(this, FloatingWindowService::class.java))
stopSelf() stopSelf()
} }
@@ -445,11 +515,7 @@ class MainService : Service() {
Log.d(logTag, "startRawVideoRecorder failed,surface is null") Log.d(logTag, "startRawVideoRecorder failed,surface is null")
return return
} }
virtualDisplay = mp.createVirtualDisplay( createOrSetVirtualDisplay(mp, surface!!)
"RustDeskVD",
SCREEN_INFO.width, SCREEN_INFO.height, SCREEN_INFO.dpi, VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
surface, null, null
)
} }
private fun startVP9VideoRecorder(mp: MediaProjection) { private fun startVP9VideoRecorder(mp: MediaProjection) {
@@ -461,11 +527,28 @@ class MainService : Service() {
} }
it.setCallback(cb) it.setCallback(cb)
it.start() it.start()
virtualDisplay = mp.createVirtualDisplay( createOrSetVirtualDisplay(mp, surface!!)
"RustDeskVD", }
SCREEN_INFO.width, SCREEN_INFO.height, SCREEN_INFO.dpi, VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR, }
surface, null, null
) // https://github.com/bk138/droidVNC-NG/blob/b79af62db5a1c08ed94e6a91464859ffed6f4e97/app/src/main/java/net/christianbeier/droidvnc_ng/MediaProjectionService.java#L250
// Reuse virtualDisplay if it exists, to avoid media projection confirmation dialog every connection.
private fun createOrSetVirtualDisplay(mp: MediaProjection, s: Surface) {
try {
virtualDisplay?.let {
it.resize(SCREEN_INFO.width, SCREEN_INFO.height, SCREEN_INFO.dpi)
it.setSurface(s)
} ?: let {
virtualDisplay = mp.createVirtualDisplay(
"RustDeskVD",
SCREEN_INFO.width, SCREEN_INFO.height, SCREEN_INFO.dpi, VIRTUAL_DISPLAY_FLAG_AUTO_MIRROR,
s, null, null
)
}
} catch (e: SecurityException) {
Log.w(logTag, "createOrSetVirtualDisplay: got SecurityException, re-requesting confirmation");
// This initiates a prompt dialog for the user to confirm screen projection.
requestMediaProjection()
} }
} }
@@ -493,7 +576,6 @@ class MainService : Service() {
} }
} }
private fun createMediaCodec() { private fun createMediaCodec() {
Log.d(logTag, "MediaFormat.MIMETYPE_VIDEO_VP9 :$MIME_TYPE") Log.d(logTag, "MediaFormat.MIMETYPE_VIDEO_VP9 :$MIME_TYPE")
videoEncoder = MediaCodec.createEncoderByType(MIME_TYPE) videoEncoder = MediaCodec.createEncoderByType(MIME_TYPE)
@@ -513,76 +595,6 @@ class MainService : Service() {
} }
} }
@RequiresApi(Build.VERSION_CODES.M)
private fun startAudioRecorder() {
checkAudioRecorder()
if (audioReader != null && audioRecorder != null && minBufferSize != 0) {
try {
audioRecorder!!.startRecording()
audioRecordStat = true
thread {
while (audioRecordStat) {
audioReader!!.readSync(audioRecorder!!)?.let {
onAudioFrameUpdate(it)
}
}
Log.d(logTag, "Exit audio thread")
}
} catch (e: Exception) {
Log.d(logTag, "startAudioRecorder fail:$e")
}
} else {
Log.d(logTag, "startAudioRecorder fail")
}
}
@RequiresApi(Build.VERSION_CODES.M)
private fun checkAudioRecorder() {
if (audioRecorder != null && audioRecorder != null && minBufferSize != 0) {
return
}
// read f32 to byte , length * 4
minBufferSize = 2 * 4 * AudioRecord.getMinBufferSize(
AUDIO_SAMPLE_RATE,
AUDIO_CHANNEL_MASK,
AUDIO_ENCODING
)
if (minBufferSize == 0) {
Log.d(logTag, "get min buffer size fail!")
return
}
audioReader = AudioReader(minBufferSize, 4)
Log.d(logTag, "init audioData len:$minBufferSize")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.Q) {
mediaProjection?.let {
val apcc = AudioPlaybackCaptureConfiguration.Builder(it)
.addMatchingUsage(AudioAttributes.USAGE_MEDIA)
.addMatchingUsage(AudioAttributes.USAGE_ALARM)
.addMatchingUsage(AudioAttributes.USAGE_GAME)
.addMatchingUsage(AudioAttributes.USAGE_UNKNOWN).build()
if (ActivityCompat.checkSelfPermission(
this,
Manifest.permission.RECORD_AUDIO
) != PackageManager.PERMISSION_GRANTED
) {
return
}
audioRecorder = AudioRecord.Builder()
.setAudioFormat(
AudioFormat.Builder()
.setEncoding(AUDIO_ENCODING)
.setSampleRate(AUDIO_SAMPLE_RATE)
.setChannelMask(AUDIO_CHANNEL_MASK).build()
)
.setAudioPlaybackCaptureConfig(apcc)
.setBufferSizeInBytes(minBufferSize).build()
Log.d(logTag, "createAudioRecorder done,minBufferSize:$minBufferSize")
return
}
}
Log.d(logTag, "createAudioRecorder fail")
}
private fun initNotification() { private fun initNotification() {
notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager notificationManager = getSystemService(Context.NOTIFICATION_SERVICE) as NotificationManager
notificationChannel = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { notificationChannel = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
@@ -667,6 +679,21 @@ class MainService : Service() {
notificationManager.notify(getClientNotifyID(clientID), notification) notificationManager.notify(getClientNotifyID(clientID), notification)
} }
private fun voiceCallRequestNotification(
clientID: Int,
type: String,
username: String,
peerId: String
) {
val notification = notificationBuilder
.setOngoing(false)
.setPriority(NotificationCompat.PRIORITY_MAX)
.setContentTitle(translate("Do you accept?"))
.setContentText("$type:$username-$peerId")
.build()
notificationManager.notify(getClientNotifyID(clientID), notification)
}
private fun getClientNotifyID(clientID: Int): Int { private fun getClientNotifyID(clientID: Int): Int {
return clientID + NOTIFY_ID_OFFSET return clientID + NOTIFY_ID_OFFSET
} }

View File

@@ -0,0 +1,197 @@
package com.carriez.flutter_hbb
import java.nio.ByteBuffer
import java.util.Timer
import java.util.TimerTask
import android.content.ClipData
import android.content.ClipDescription
import android.content.ClipboardManager
import android.util.Log
import androidx.annotation.Keep
import hbb.MessageOuterClass.ClipboardFormat
import hbb.MessageOuterClass.Clipboard
import hbb.MessageOuterClass.MultiClipboards
import ffi.FFI
class RdClipboardManager(private val clipboardManager: ClipboardManager) {
private val logTag = "RdClipboardManager"
private val supportedMimeTypes = arrayOf(
ClipDescription.MIMETYPE_TEXT_PLAIN,
ClipDescription.MIMETYPE_TEXT_HTML
)
// 1. Avoid listening to the same clipboard data updated by `rustUpdateClipboard`.
// 2. Avoid sending the clipboard data before enabling client clipboard.
// 1) Disable clipboard
// 2) Copy text "a"
// 3) Enable clipboard
// 4) Switch to another app
// 5) Switch back to the app
// 6) "a" should not be sent to the client, because it's copied before enabling clipboard
//
// It's okay to that `rustEnableClientClipboard(false)` is called after `rustUpdateClipboard`,
// though the `lastUpdatedClipData` will be set to null once.
private var lastUpdatedClipData: ClipData? = null
private var isClientEnabled = true;
private var _isCaptureStarted = false;
val isCaptureStarted: Boolean
get() = _isCaptureStarted
fun checkPrimaryClip(isClient: Boolean) {
val clipData = clipboardManager.primaryClip
if (clipData != null && clipData.itemCount > 0) {
// Only handle the first item in the clipboard for now.
val clip = clipData.getItemAt(0)
// Ignore the `isClipboardDataEqual()` check if it's a host operation.
// Because it's an action manually triggered by the user.
if (isClient) {
if (lastUpdatedClipData != null && isClipboardDataEqual(clipData, lastUpdatedClipData!!)) {
Log.d(logTag, "Clipboard data is the same as last update, ignore")
return
}
}
val mimeTypeCount = clipData.description.getMimeTypeCount()
val mimeTypes = mutableListOf<String>()
for (i in 0 until mimeTypeCount) {
mimeTypes.add(clipData.description.getMimeType(i))
}
var text: CharSequence? = null;
var html: String? = null;
if (isSupportedMimeType(ClipDescription.MIMETYPE_TEXT_PLAIN)) {
text = clip?.text
}
if (isSupportedMimeType(ClipDescription.MIMETYPE_TEXT_HTML)) {
text = clip?.text
html = clip?.htmlText
}
var count = 0
val clips = MultiClipboards.newBuilder()
if (text != null) {
val content = com.google.protobuf.ByteString.copyFromUtf8(text.toString())
clips.addClipboards(Clipboard.newBuilder().setFormat(ClipboardFormat.Text).setContent(content).build())
count++
}
if (html != null) {
val content = com.google.protobuf.ByteString.copyFromUtf8(html)
clips.addClipboards(Clipboard.newBuilder().setFormat(ClipboardFormat.Html).setContent(content).build())
count++
}
if (count > 0) {
val clipsBytes = clips.build().toByteArray()
val isClientFlag = if (isClient) 1 else 0
val clipsBuf = ByteBuffer.allocateDirect(clipsBytes.size + 1).apply {
put(isClientFlag.toByte())
put(clipsBytes)
}
clipsBuf.flip()
lastUpdatedClipData = clipData
Log.d(logTag, "${if (isClient) "client" else "host"}, send clipboard data to the remote")
FFI.onClipboardUpdate(clipsBuf)
}
}
}
private fun isSupportedMimeType(mimeType: String): Boolean {
return supportedMimeTypes.contains(mimeType)
}
private fun isClipboardDataEqual(left: ClipData, right: ClipData): Boolean {
if (left.description.getMimeTypeCount() != right.description.getMimeTypeCount()) {
return false
}
val mimeTypeCount = left.description.getMimeTypeCount()
for (i in 0 until mimeTypeCount) {
if (left.description.getMimeType(i) != right.description.getMimeType(i)) {
return false
}
}
if (left.itemCount != right.itemCount) {
return false
}
for (i in 0 until left.itemCount) {
val mimeType = left.description.getMimeType(i)
if (!isSupportedMimeType(mimeType)) {
continue
}
val leftItem = left.getItemAt(i)
val rightItem = right.getItemAt(i)
if (mimeType == ClipDescription.MIMETYPE_TEXT_PLAIN || mimeType == ClipDescription.MIMETYPE_TEXT_HTML) {
if (leftItem.text != rightItem.text || leftItem.htmlText != rightItem.htmlText) {
return false
}
}
}
return true
}
fun setCaptureStarted(started: Boolean) {
_isCaptureStarted = started
}
@Keep
fun rustEnableClientClipboard(enable: Boolean) {
Log.d(logTag, "rustEnableClientClipboard: enable: $enable")
isClientEnabled = enable
lastUpdatedClipData = null
}
fun syncClipboard(isClient: Boolean) {
Log.d(logTag, "syncClipboard: isClient: $isClient, isClientEnabled: $isClientEnabled")
if (isClient && !isClientEnabled) {
return
}
checkPrimaryClip(isClient)
}
@Keep
fun rustUpdateClipboard(clips: ByteArray) {
val clips = MultiClipboards.parseFrom(clips)
var mimeTypes = mutableListOf<String>()
var text: String? = null
var html: String? = null
for (clip in clips.getClipboardsList()) {
when (clip.format) {
ClipboardFormat.Text -> {
mimeTypes.add(ClipDescription.MIMETYPE_TEXT_PLAIN)
text = String(clip.content.toByteArray(), Charsets.UTF_8)
}
ClipboardFormat.Html -> {
mimeTypes.add(ClipDescription.MIMETYPE_TEXT_HTML)
html = String(clip.content.toByteArray(), Charsets.UTF_8)
}
ClipboardFormat.ImageRgba -> {
}
ClipboardFormat.ImagePng -> {
}
else -> {
Log.e(logTag, "Unsupported clipboard format: ${clip.format}")
}
}
}
val clipDescription = ClipDescription("clipboard", mimeTypes.toTypedArray())
var item: ClipData.Item? = null
if (text == null) {
Log.e(logTag, "No text content in clipboard")
return
} else {
if (html == null) {
item = ClipData.Item(text)
} else {
item = ClipData.Item(text, html)
}
}
if (item == null) {
Log.e(logTag, "No item in clipboard")
return
}
val clipData = ClipData(clipDescription, item)
lastUpdatedClipData = clipData
clipboardManager.setPrimaryClip(clipData)
}
}

View File

@@ -0,0 +1,78 @@
package com.carriez.flutter_hbb
// Inspired by https://github.com/yosemiteyss/flutter_volume_controller/blob/main/android/src/main/kotlin/com/yosemiteyss/flutter_volume_controller/VolumeController.kt
import android.media.AudioManager
import android.os.Build
import android.util.Log
class VolumeController(private val audioManager: AudioManager) {
private val logTag = "volume controller"
fun getVolume(streamType: Int): Double {
val current = audioManager.getStreamVolume(streamType)
val max = audioManager.getStreamMaxVolume(streamType)
return current.toDouble() / max
}
fun setVolume(volume: Double, showSystemUI: Boolean, streamType: Int) {
val max = audioManager.getStreamMaxVolume(streamType)
audioManager.setStreamVolume(
streamType,
(max * volume).toInt(),
if (showSystemUI) AudioManager.FLAG_SHOW_UI else 0
)
}
fun raiseVolume(step: Double?, showSystemUI: Boolean, streamType: Int) {
if (step == null) {
audioManager.adjustStreamVolume(
streamType,
AudioManager.ADJUST_RAISE,
if (showSystemUI) AudioManager.FLAG_SHOW_UI else 0
)
} else {
val target = getVolume(streamType) + step
setVolume(target, showSystemUI, streamType)
}
}
fun lowerVolume(step: Double?, showSystemUI: Boolean, streamType: Int) {
if (step == null) {
audioManager.adjustStreamVolume(
streamType,
AudioManager.ADJUST_LOWER,
if (showSystemUI) AudioManager.FLAG_SHOW_UI else 0
)
} else {
val target = getVolume(streamType) - step
setVolume(target, showSystemUI, streamType)
}
}
fun getMute(streamType: Int): Boolean {
return if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
audioManager.isStreamMute(streamType)
} else {
audioManager.getStreamVolume(streamType) == 0
}
}
private fun setMute(isMuted: Boolean, showSystemUI: Boolean, streamType: Int) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
audioManager.adjustStreamVolume(
streamType,
if (isMuted) AudioManager.ADJUST_MUTE else AudioManager.ADJUST_UNMUTE,
if (showSystemUI) AudioManager.FLAG_SHOW_UI else 0
)
} else {
audioManager.setStreamMute(streamType, isMuted)
}
}
fun toggleMute(showSystemUI: Boolean, streamType: Int) {
val isMuted = getMute(streamType)
setMute(!isMuted, showSystemUI, streamType)
}
}

View File

@@ -15,10 +15,14 @@ import android.os.Looper
import android.os.PowerManager import android.os.PowerManager
import android.provider.Settings import android.provider.Settings
import android.provider.Settings.* import android.provider.Settings.*
import android.util.DisplayMetrics
import android.util.Log
import android.view.WindowManager
import androidx.annotation.RequiresApi import androidx.annotation.RequiresApi
import androidx.core.content.ContextCompat.getSystemService import androidx.core.content.ContextCompat.getSystemService
import com.hjq.permissions.Permission import com.hjq.permissions.Permission
import com.hjq.permissions.XXPermissions import com.hjq.permissions.XXPermissions
import ffi.FFI
import java.nio.ByteBuffer import java.nio.ByteBuffer
import java.util.* import java.util.*
@@ -43,6 +47,9 @@ const val START_ACTION = "start_action"
const val GET_START_ON_BOOT_OPT = "get_start_on_boot_opt" const val GET_START_ON_BOOT_OPT = "get_start_on_boot_opt"
const val SET_START_ON_BOOT_OPT = "set_start_on_boot_opt" const val SET_START_ON_BOOT_OPT = "set_start_on_boot_opt"
const val SYNC_APP_DIR_CONFIG_PATH = "sync_app_dir" const val SYNC_APP_DIR_CONFIG_PATH = "sync_app_dir"
const val GET_VALUE = "get_value"
const val KEY_IS_SUPPORT_VOICE_CALL = "KEY_IS_SUPPORT_VOICE_CALL"
const val KEY_SHARED_PREFERENCES = "KEY_SHARED_PREFERENCES" const val KEY_SHARED_PREFERENCES = "KEY_SHARED_PREFERENCES"
const val KEY_START_ON_BOOT_OPT = "KEY_START_ON_BOOT_OPT" const val KEY_START_ON_BOOT_OPT = "KEY_START_ON_BOOT_OPT"
@@ -56,6 +63,11 @@ data class Info(
var width: Int, var height: Int, var scale: Int, var dpi: Int var width: Int, var height: Int, var scale: Int, var dpi: Int
) )
fun isSupportVoiceCall(): Boolean {
// https://developer.android.com/reference/android/media/MediaRecorder.AudioSource#VOICE_COMMUNICATION
return Build.VERSION.SDK_INT >= Build.VERSION_CODES.R
}
fun requestPermission(context: Context, type: String) { fun requestPermission(context: Context, type: String) {
XXPermissions.with(context) XXPermissions.with(context)
.permission(type) .permission(type)
@@ -120,3 +132,26 @@ class AudioReader(val bufSize: Int, private val maxFrames: Int) {
} }
} }
} }
fun getScreenSize(windowManager: WindowManager) : Pair<Int, Int>{
var w = 0
var h = 0
@Suppress("DEPRECATION")
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
val m = windowManager.maximumWindowMetrics
w = m.bounds.width()
h = m.bounds.height()
} else {
val dm = DisplayMetrics()
windowManager.defaultDisplay.getRealMetrics(dm)
w = dm.widthPixels
h = dm.heightPixels
}
return Pair(w, h)
}
fun translate(input: String): String {
Log.d("common", "translate:$LOCAL_NAME")
return FFI.translateLocale(LOCAL_NAME, input)
}

View File

@@ -0,0 +1,28 @@
// ffi.kt
package ffi
import android.content.Context
import java.nio.ByteBuffer
import com.carriez.flutter_hbb.RdClipboardManager
object FFI {
init {
System.loadLibrary("rustdesk")
}
external fun init(ctx: Context)
external fun setClipboardManager(clipboardManager: RdClipboardManager)
external fun startServer(app_dir: String, custom_client_config: String)
external fun startService()
external fun onVideoFrameUpdate(buf: ByteBuffer)
external fun onAudioFrameUpdate(buf: ByteBuffer)
external fun translateLocale(localeName: String, input: String): String
external fun refreshScreen()
external fun setFrameRawEnable(name: String, value: Boolean)
external fun setCodecInfo(info: String)
external fun getLocalOption(key: String): String
external fun onClipboardUpdate(clips: ByteBuffer)
external fun isServiceClipboardEnabled(): Boolean
}

Some files were not shown because too many files have changed in this diff Show More