Skip to content

feat: remove Windows tray icon functionality - #1

Open
hashbk wants to merge 1 commit into
masterfrom
feat/remove-windows-tray-icon
Open

feat: remove Windows tray icon functionality#1
hashbk wants to merge 1 commit into
masterfrom
feat/remove-windows-tray-icon

Conversation

@hashbk

@hashbk hashbk commented Jun 19, 2026

Copy link
Copy Markdown
Owner

Summary

Remove all tray icon related code, dependencies, and MSI installer configuration for the Windows client. The tray icon is no longer needed on Windows.

Changes

Rust code

  • Cargo.toml: Exclude tray-icon, tao, image dependencies from Windows build target
  • src/lib.rs: Gate tray module with cfg(not(target_os = "windows"))
  • src/tray.rs: Remove Windows-specific code (IPC session count query, click handler, start_query_session_count function, Windows icon path)
  • src/core_main.rs: Remove --tray argument handling on Windows; remove auto-start tray logic on Windows
  • src/server/connection.rs: Remove tray process spawn on Windows
  • src/platform/windows.rs: Remove get_tray_shortcut(), tray_shortcuts variable, tray process tracking in update_me(), tray startup in run_after_run_cmds() and install_service()

MSI installer

  • RustDesk.wxs: Remove LaunchAppTray custom action, TryDeleteStartupShortcut action, App.StartupFolder.ShortcutTray component
  • AddRemoveProperties.wxs: Remove LAUNCH_TRAY_APP property
  • CustomActions.wxs: Remove TryDeleteStartupShortcut action declaration
  • CustomActions.cpp: Remove TryDeleteStartupShortcut function implementation
  • CustomActions.def: Remove TryDeleteStartupShortcut export
  • ShortcutProperties.wxs: Remove STARTUPSHORTCUTS property
  • Package.en-us.wxl: Remove SC_Client_Tray and SC_Client_Tray_Desc strings

Cleanup

  • Uninstall scripts still remove stale Tray.lnk files for backward compatibility
  • Linux and macOS tray functionality remains unchanged

Test plan

  • Build and run on Windows to verify no tray icon appears
  • Verify service install/uninstall works without tray
  • Verify MSI installer works without tray shortcuts
  • Verify Linux/macOS tray still works

Remove all tray icon related code, dependencies, and MSI installer
configuration for the Windows client. The tray icon is no longer
needed on Windows.

Changes:
- Exclude tray-icon, tao, image dependencies from Windows build
- Remove tray module from Windows compilation (cfg gate)
- Remove Windows-specific tray code from tray.rs (IPC session count,
  click handler, start_query_session_count)
- Remove --tray argument handling on Windows in core_main.rs
- Remove auto-start tray logic on Windows in core_main.rs
- Remove tray process spawn in connection.rs
- Remove get_tray_shortcut() and tray_shortcuts from windows.rs
- Remove tray process tracking in update_me()
- Remove tray startup in run_after_run_cmds() and install_service()
- Remove LAUNCH_TRAY_APP property and LaunchAppTray action from MSI
- Remove StartupFolder.ShortcutTray component from MSI
- Remove TryDeleteStartupShortcut custom action from MSI
- Remove SC_Client_Tray strings from MSI localization
- Remove STARTUPSHORTCUTS property from MSI
- Clean up uninstall scripts to remove stale Tray.lnk files

Linux and macOS tray functionality remains unchanged.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant