Commit Graph

801 Commits

Author SHA1 Message Date
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
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
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
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
rustdesk
07eca00bd5 feat: allow-only-conn-window-open https://github.com/rustdesk/rustdesk/discussions/7033 2024-04-09 18:34:44 +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
crazeteam
4f3de4cf54
chore: fix some typos (#7518)
Signed-off-by: crazeteam <lilujing@outlook.com>
2024-03-27 01:08:56 +08:00
rustdesk
21e4679b6c improve tfa 2024-03-20 20:00:29 +08:00
shuangcui
228582296c
chore: remove repetitive word (#7386)
Signed-off-by: shuangcui <fliter@qq.com>
2024-03-14 21:36:55 +08:00
fufesou
befac94473
Fix. macos, workaround fn (#7319)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-03-05 11:31:41 +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
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
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
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
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
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
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
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
fufesou
0cf4711515
Refact, remove avoidable clone (#7040)
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2024-02-03 00:09:39 +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
21pages
2e16a2be56
fix port forward 2fa (#6956)
Signed-off-by: 21pages <pages21@163.com>
2024-01-22 19:57:23 +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
rustdesk
68afb89b99 a quick fix for 2fa 2024-01-21 15:19:18 +08:00
rustdesk
44e6b7dbb0 2fa for unattended access 2024-01-19 15:35:58 +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
ca1ca21cf8 change TEST_DELAY_TIMEOUT from 1 to 3 2024-01-01 17:53:20 +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
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
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
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
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
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
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
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
21pages
e17378c6b3 fix macos and linux vm reboot
Signed-off-by: 21pages <pages21@163.com>
2023-11-29 22:41:31 +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
b8f7259fbd
Merge pull request #6520 from 21pages/wakelock
wake lock for all connection type
2023-11-25 20:34:14 +08:00