From 5f61057b38dc0053c396b2633c6ef28ee9d21aff Mon Sep 17 00:00:00 2001 From: Jaylyn Barbee <51131738+Jaylyn-Barbee@users.noreply.github.com> Date: Fri, 9 Jan 2026 10:28:54 -0500 Subject: [PATCH] Adding a quick access button for Light Switch (#44640) Adds a button for Light Switch in the Quick Access section of the Dashboard page. Clicking the button will toggle the theme. image --- .../QuickAccess/QuickAccessLauncher.cs | 7 +++++++ .../QuickAccess/QuickAccessViewModel.cs | 2 ++ src/settings-ui/Settings.UI.Library/LightSwitchSettings.cs | 2 +- .../Settings.UI.Library/SettingsSerializationContext.cs | 2 +- .../SerializationContext/SourceGenerationContextContext.cs | 2 +- 5 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/settings-ui/Settings.UI.Controls/QuickAccess/QuickAccessLauncher.cs b/src/settings-ui/Settings.UI.Controls/QuickAccess/QuickAccessLauncher.cs index 4799ff624f..b81c9638f3 100644 --- a/src/settings-ui/Settings.UI.Controls/QuickAccess/QuickAccessLauncher.cs +++ b/src/settings-ui/Settings.UI.Controls/QuickAccess/QuickAccessLauncher.cs @@ -112,6 +112,13 @@ namespace Microsoft.PowerToys.Settings.UI.Controls eventHandle.Set(); } + return true; + case ModuleType.LightSwitch: + using (var eventHandle = new EventWaitHandle(false, EventResetMode.AutoReset, Constants.LightSwitchToggleEvent())) + { + eventHandle.Set(); + } + return true; default: return false; diff --git a/src/settings-ui/Settings.UI.Controls/QuickAccess/QuickAccessViewModel.cs b/src/settings-ui/Settings.UI.Controls/QuickAccess/QuickAccessViewModel.cs index 5531df1ee5..50fc46af09 100644 --- a/src/settings-ui/Settings.UI.Controls/QuickAccess/QuickAccessViewModel.cs +++ b/src/settings-ui/Settings.UI.Controls/QuickAccess/QuickAccessViewModel.cs @@ -64,6 +64,7 @@ namespace Microsoft.PowerToys.Settings.UI.Controls AddFlyoutMenuItem(ModuleType.EnvironmentVariables); AddFlyoutMenuItem(ModuleType.FancyZones); AddFlyoutMenuItem(ModuleType.Hosts); + AddFlyoutMenuItem(ModuleType.LightSwitch); AddFlyoutMenuItem(ModuleType.PowerLauncher); AddFlyoutMenuItem(ModuleType.PowerOCR); AddFlyoutMenuItem(ModuleType.RegistryPreview); @@ -120,6 +121,7 @@ namespace Microsoft.PowerToys.Settings.UI.Controls { ModuleType.ColorPicker => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ActivationShortcut.ToString(), ModuleType.FancyZones => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.FancyzonesEditorHotkey.Value.ToString(), + ModuleType.LightSwitch => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ToggleThemeHotkey.Value.ToString(), ModuleType.PowerLauncher => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.OpenPowerLauncher.ToString(), ModuleType.PowerOCR => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.ActivationShortcut.ToString(), ModuleType.Workspaces => SettingsRepository.GetInstance(SettingsUtils.Default).SettingsConfig.Properties.Hotkey.Value.ToString(), diff --git a/src/settings-ui/Settings.UI.Library/LightSwitchSettings.cs b/src/settings-ui/Settings.UI.Library/LightSwitchSettings.cs index b4eae2d1ba..ce76ec72bf 100644 --- a/src/settings-ui/Settings.UI.Library/LightSwitchSettings.cs +++ b/src/settings-ui/Settings.UI.Library/LightSwitchSettings.cs @@ -11,7 +11,7 @@ using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Helpers; using Microsoft.PowerToys.Settings.UI.Library.Interfaces; -namespace Settings.UI.Library +namespace Microsoft.PowerToys.Settings.UI.Library { public class LightSwitchSettings : BasePTModuleSettings, ISettingsConfig, ICloneable, IHotkeyConfig { diff --git a/src/settings-ui/Settings.UI.Library/SettingsSerializationContext.cs b/src/settings-ui/Settings.UI.Library/SettingsSerializationContext.cs index f0d14b84c9..2fab97c538 100644 --- a/src/settings-ui/Settings.UI.Library/SettingsSerializationContext.cs +++ b/src/settings-ui/Settings.UI.Library/SettingsSerializationContext.cs @@ -56,7 +56,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library [JsonSerializable(typeof(HostsSettings))] [JsonSerializable(typeof(ImageResizerSettings))] [JsonSerializable(typeof(KeyboardManagerSettings))] - [JsonSerializable(typeof(SettingsUILibrary.LightSwitchSettings))] + [JsonSerializable(typeof(LightSwitchSettings))] [JsonSerializable(typeof(MeasureToolSettings))] [JsonSerializable(typeof(MouseHighlighterSettings))] [JsonSerializable(typeof(MouseJumpSettings))] diff --git a/src/settings-ui/Settings.UI/SerializationContext/SourceGenerationContextContext.cs b/src/settings-ui/Settings.UI/SerializationContext/SourceGenerationContextContext.cs index dafd6d828b..d8c53aac76 100644 --- a/src/settings-ui/Settings.UI/SerializationContext/SourceGenerationContextContext.cs +++ b/src/settings-ui/Settings.UI/SerializationContext/SourceGenerationContextContext.cs @@ -23,7 +23,7 @@ namespace Microsoft.PowerToys.Settings.UI.SerializationContext; [JsonSerializable(typeof(FileLocksmithSettings))] [JsonSerializable(typeof(FindMyMouseSettings))] [JsonSerializable(typeof(IList))] -[JsonSerializable(typeof(SettingsUILibrary.LightSwitchSettings))] +[JsonSerializable(typeof(LightSwitchSettings))] [JsonSerializable(typeof(MeasureToolSettings))] [JsonSerializable(typeof(MouseHighlighterSettings))] [JsonSerializable(typeof(MouseJumpSettings))]