From 19846787855aaf5031d34e54e0495f20b26083aa Mon Sep 17 00:00:00 2001 From: RustDesk <71636191+rustdesk@users.noreply.github.com> Date: Wed, 19 Aug 2026 10:48:30 +0800 Subject: [PATCH] Hide printer tab when settings disabled (#15901) * fix: hide the printer settings tab when settings are disabled The Security and Network tabs already honour `disable-settings`, but the Printer tab was gated only on `hide-remote-printer-settings`, so custom clients built with settings disabled still exposed it. https://github.com/rustdesk/rustdesk-server-pro/issues/1001 Co-Authored-By: Claude Opus 5 (1M context) * feat: add hide-general-settings builtin option Hides the General tab of the settings page. Unlike the other hide-*-settings options this one is still useful when settings are disabled, since `disable-settings` does not cover the General tab. https://github.com/rustdesk/rustdesk-server-pro/issues/1001 Co-Authored-By: Claude Opus 5 (1M context) --------- Co-authored-by: Claude Opus 5 (1M context) --- flutter/lib/consts.dart | 1 + flutter/lib/desktop/pages/desktop_setting_page.dart | 4 +++- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/flutter/lib/consts.dart b/flutter/lib/consts.dart index 9eb21665a..092873793 100644 --- a/flutter/lib/consts.dart +++ b/flutter/lib/consts.dart @@ -191,6 +191,7 @@ const String kOptionHideProxySetting = "hide-proxy-settings"; const String kOptionHideWebSocketSetting = "hide-websocket-settings"; const String kOptionHideStopService = "hide-stop-service"; const String kOptionHideRemotePrinterSetting = "hide-remote-printer-settings"; +const String kOptionHideGeneralSetting = "hide-general-settings"; const String kOptionHideSecuritySetting = "hide-security-settings"; const String kOptionHideNetworkSetting = "hide-network-settings"; const String kOptionRemovePresetPasswordWarning = diff --git a/flutter/lib/desktop/pages/desktop_setting_page.dart b/flutter/lib/desktop/pages/desktop_setting_page.dart index c696ad510..4f3ea42e2 100644 --- a/flutter/lib/desktop/pages/desktop_setting_page.dart +++ b/flutter/lib/desktop/pages/desktop_setting_page.dart @@ -61,7 +61,8 @@ enum SettingsTabKey { class DesktopSettingPage extends StatefulWidget { final SettingsTabKey initialTabkey; static final List tabKeys = [ - SettingsTabKey.general, + if (bind.mainGetBuildinOption(key: kOptionHideGeneralSetting) != 'Y') + SettingsTabKey.general, if (!isWeb && !bind.isOutgoingOnly() && !bind.isDisableSettings() && @@ -73,6 +74,7 @@ class DesktopSettingPage extends StatefulWidget { if (!bind.isIncomingOnly()) SettingsTabKey.display, if (!bind.isDisableAccount()) SettingsTabKey.account, if (isWindows && + !bind.isDisableSettings() && bind.mainGetBuildinOption(key: kOptionHideRemotePrinterSetting) != 'Y') SettingsTabKey.printer, SettingsTabKey.about,