Commit Graph
74 Commits
Author SHA1 Message Date
RustDeskandClaude Fable 5 85a5fefab8 fix(windows): prevent ghost and duplicate tray icons (#15689) (#15690)
* docs(agents): require minimally invasive, additive-first patches

Codify the review feedback from the tray ghost-icon fix: fixes should
add self-contained code around existing lines instead of restructuring
them, keep platform-specific logic in src/platform/ with fn-local
imports, and leave only thin one-line hooks in shared files.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* fix(windows): stop duplicate tray icons from piling up (#15689)

`check_process("--tray", ..)` is used to decide whether a tray process
needs to be spawned, but it can miss one that is already running: it
cannot read the command line of an elevated process from a non-elevated
one (the installer spawns the tray elevated), and wmic, used by 32-bit
builds since #11638, is gone from newer Windows 11. `connection.rs` runs
that check once per incoming connection, so every miss added another tray
icon and they kept piling up, which is the same blind spot behind #6692.

Hold a named mutex in the session namespace as the authoritative single
instance guard, so a redundant tray process exits before creating an
icon. `ERROR_ACCESS_DENIED` also counts as "already running", since it
means the mutex belongs to a tray we may not touch.

Also remove the icon before the tray menu's "Stop service" calls
uninstall_service(): on success it ends the process with
std::process::exit, which skips the destructor that would call
Shell_NotifyIcon(NIM_DELETE), so every click left a ghost icon behind.
The icon is shown again if stopping the service failed or was cancelled.

Ghost icons from the taskkill in the install/update/service flows are
left alone here.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs(windows): note that update_me's pid lookup can silently find nothing

The pids are matched by command line, which comes back empty for a 32-bit
build reading 64-bit processes (hence the `wmic` fallback of #11638, and
`wmic` is no longer installed by default since Windows 11 24H2) and for a
non-elevated process reading an elevated one. `taskkill` matches by image
name and still works, but the session lists are then empty, so the restore
guard silently restores nothing and the update leaves the user without a
tray icon and main window.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

* docs(windows): record the confirmed cause of the duplicate tray icons

Process Explorer output in #15689 pinned it down: run_after_run_cmds()
spawns the tray in the caller's own context, so installing or toggling
the service from a RustDesk that was itself started elevated leaves a
high integrity tray behind, which a medium integrity main window cannot
inspect afterwards. Record where the detection fails exactly, so the next
reader doesn't have to rediscover that the executable path, not the
command line, is what comes back empty.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>

---------

Co-authored-by: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 12:18:57 +08:00
Daniel Marschall 0cbdb6ffb3 Fix tray icon click (regression due to breaking change in tray-icon 0.17) (#15413) 2026-06-25 09:43:04 +08:00
21pages c457b0e7d3 add option to hide stop-service when service is running (#14563)
* add option to hide stop-service when service is running

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

* update hbb_common to upstream

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

---------

Signed-off-by: 21pages <sunboeasy@gmail.com>
2026-03-19 20:04:10 +08:00
RustDesk ceffcce20e fix hide-tray=Y causing The application “RustDesk.app” is not open anymore. https://github.com/rustdesk/rustdesk/discussions/10210 (#14127) 2026-01-23 19:09:33 +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 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
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
rustdesk 579e0fac36 fix https://github.com/rustdesk/rustdesk/issues/9088 2024-08-16 12:20:40 +08:00
rustdesk 9a194f0850 res/users.py 2024-08-07 23:26:17 +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
rustdesk c02b4f994a fix two tray icon on macos 2024-07-08 14:46:28 +08:00
21pages 25d0ced8ba fix ci (#8543)
Signed-off-by: 21pages <sunboeasy@gmail.com>
2024-06-30 13:54: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
rustdesk 6e78037770 fix linux custom client tray 2024-05-10 15:12:07 +08:00
rustdesk 6186b41e3f modify comment 2024-03-28 11:52:43 +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
rustdesk 85f387bfb9 improve https://github.com/rustdesk/rustdesk/discussions/5631#discussioncomment-8916273 2024-03-27 00:38:13 +08:00
rustdesk 30f84e78e1 fix custom tray of mac 2024-03-24 22:17:40 +08:00
rustdesk ef27cd6c5c custom.txt and tray for mac 2024-03-24 20:09:37 +08:00
rustdesk a9b0bc0409 fix some minors of custom client 2024-03-15 00:26:53 +08:00
rustdesk be301b825f load tray icon from asset 2024-03-12 22:13:28 +08:00
rustdesk a28c9f8f36 remove more "rustdesk" built-in 2024-02-25 13:29:06 +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 2a0c081380 fix windows ci (#7156)
Signed-off-by: 21pages <pages21@163.com>
2024-02-16 15:24:43 +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 5fb026b8d5 fix https://github.com/rustdesk/rustdesk/discussions/7143 2024-02-15 21:12:24 +08:00
rustdesk fc110c4988 Fix icon color on Sonoma 2023-12-09 10:18:13 +08:00
dignow a32e740242 fix build linux
Signed-off-by: dignow <linlong1265@gmail.com>
2023-10-18 08:07:10 +08:00
21pages d3ce8203be win,linux remove desktop wallpaper
Signed-off-by: 21pages <pages21@163.com>
2023-10-13 13:58:11 +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 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
rustdesk 85c149d8e4 mainly for mac, if somehow --server not killed 2023-08-12 15:17:00 +08:00
rustdesk d9f58ed4df workaround of exit tray in windows 2023-07-02 11:22:52 +08:00
rustdesk 8ab2a79fa2 refactoring conn audit, add session_id (both session_id and conn_id on
sever side), use session_id instead of conn_id for client id, and remove
conn_id in protobuf
2023-07-01 16:21:36 +08:00
rustdesk 324447ffc8 fix sciter bundle 2023-06-30 22:13:34 +08:00
RustDesk f635453e80 Revert "linux tray as mac tray" 2023-06-25 00:45:33 +08:00
NicKoehler fac3ec7697 linux tray as mac tray 2023-06-10 18:50:28 +02:00
rustdesk 9677bd1863 exit directly if no --server for --tray 2023-06-10 22:26:30 +08:00
rustdesk 7fba1800ec fix linux uni (url) and tray exit 2023-06-10 18:24:03 +08:00
rustdesk 644da37a4f refactor tray uninstall service 2023-06-09 22:02:25 +08:00
rustdesk 7f51f8d976 refactor linux install/uninstall service as windows 2023-06-07 23:08:50 +08:00
rustdesk 14541fd182 fix tray 2023-06-06 01:47:02 +08:00
rustdesk 77c9341ba5 open uni on tray instead, though double click not work on stupid tauri
tray-icon
2023-06-06 01:22:55 +08:00
rustdesk b07ac438f5 working on windows service install/uninstall 2023-06-05 20:27:48 +08:00
Kingtous 7a82070420 fix: make event loop in tray compatible with main window 2023-05-02 12:52:27 +08:00
rustdesk c5d7e5dfda fix: #3369 2023-03-02 13:32:21 +08:00
rustdesk bb26ba3384 Exit in mac tray 2023-02-23 20:01:50 +08:00
rustdesk fdc04266f6 fix #1947 2023-02-23 19:28:30 +08:00
fufesou 8852d97efc fix build linux
Signed-off-by: fufesou <shuanglongchen@yeah.net>
2023-02-19 12:52:41 +08:00