From 5a06bcb47306a7deefd69ad8f816c1bff9081803 Mon Sep 17 00:00:00 2001 From: Davide Giacometti Date: Tue, 24 Oct 2023 15:32:35 +0200 Subject: [PATCH 01/68] [Peek]Add wrap and formatting options for Monaco previewer (#29378) * add options for monaco previewer * fix formatting --- .../Extensions/ApplicationExtensions.cs | 19 ++++ src/modules/peek/Peek.Common/IApp.cs | 12 +++ .../Models/IPreviewSettings.cs | 13 +++ .../Models/PreviewSettings.cs | 89 +++++++++++++++++++ .../Previewers/PreviewerFactory.cs | 12 ++- .../Helpers/MonacoHelper.cs | 32 +++++-- .../WebBrowserPreviewer.cs | 10 ++- src/modules/peek/Peek.UI/PeekXAML/App.xaml.cs | 7 +- .../peek/Peek.UI/PeekXAML/MainWindow.xaml.cs | 10 ++- .../peek/Peek.UI/Services/UserSettings.cs | 2 +- .../PeekPreviewSettings.cs | 40 +++++++++ .../SettingsXAML/Views/PeekPage.xaml | 19 ++++ .../Settings.UI/Strings/en-us/Resources.resw | 18 ++++ .../Settings.UI/ViewModels/PeekViewModel.cs | 54 +++++++++-- 14 files changed, 313 insertions(+), 24 deletions(-) create mode 100644 src/modules/peek/Peek.Common/Extensions/ApplicationExtensions.cs create mode 100644 src/modules/peek/Peek.Common/IApp.cs create mode 100644 src/modules/peek/Peek.FilePreviewer/Models/IPreviewSettings.cs create mode 100644 src/modules/peek/Peek.FilePreviewer/Models/PreviewSettings.cs create mode 100644 src/settings-ui/Settings.UI.Library/PeekPreviewSettings.cs diff --git a/src/modules/peek/Peek.Common/Extensions/ApplicationExtensions.cs b/src/modules/peek/Peek.Common/Extensions/ApplicationExtensions.cs new file mode 100644 index 0000000000..ab3ae3f79b --- /dev/null +++ b/src/modules/peek/Peek.Common/Extensions/ApplicationExtensions.cs @@ -0,0 +1,19 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using Microsoft.UI.Xaml; + +namespace Peek.Common.Extensions +{ + public static class ApplicationExtensions + { + /// + /// Get registered services at the application level from anywhere + public static T GetService(this Application application) + where T : class + { + return (application as IApp)!.GetService(); + } + } +} diff --git a/src/modules/peek/Peek.Common/IApp.cs b/src/modules/peek/Peek.Common/IApp.cs new file mode 100644 index 0000000000..8f6c9e3441 --- /dev/null +++ b/src/modules/peek/Peek.Common/IApp.cs @@ -0,0 +1,12 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace Peek.Common +{ + public interface IApp + { + public T GetService() + where T : class; + } +} diff --git a/src/modules/peek/Peek.FilePreviewer/Models/IPreviewSettings.cs b/src/modules/peek/Peek.FilePreviewer/Models/IPreviewSettings.cs new file mode 100644 index 0000000000..1f26f1f3ef --- /dev/null +++ b/src/modules/peek/Peek.FilePreviewer/Models/IPreviewSettings.cs @@ -0,0 +1,13 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +namespace Peek.FilePreviewer.Models +{ + public interface IPreviewSettings + { + public bool SourceCodeWrapText { get; } + + public bool SourceCodeTryFormat { get; } + } +} diff --git a/src/modules/peek/Peek.FilePreviewer/Models/PreviewSettings.cs b/src/modules/peek/Peek.FilePreviewer/Models/PreviewSettings.cs new file mode 100644 index 0000000000..37358c8ac3 --- /dev/null +++ b/src/modules/peek/Peek.FilePreviewer/Models/PreviewSettings.cs @@ -0,0 +1,89 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.IO; +using System.IO.Abstractions; +using System.Threading; +using ManagedCommon; +using Microsoft.PowerToys.Settings.UI.Library; +using Microsoft.PowerToys.Settings.UI.Library.Utilities; +using Settings.UI.Library; + +namespace Peek.FilePreviewer.Models +{ + public class PreviewSettings : IPreviewSettings + { + private const int MaxNumberOfRetry = 5; + + private readonly ISettingsUtils _settingsUtils; + private readonly IFileSystemWatcher _watcher; + private readonly object _loadingSettingsLock = new(); + + public bool SourceCodeWrapText { get; private set; } + + public bool SourceCodeTryFormat { get; private set; } + + public PreviewSettings() + { + _settingsUtils = new SettingsUtils(); + SourceCodeWrapText = false; + SourceCodeTryFormat = false; + + LoadSettingsFromJson(); + + _watcher = Helper.GetFileWatcher(PeekSettings.ModuleName, PeekPreviewSettings.FileName, () => LoadSettingsFromJson()); + } + + private void LoadSettingsFromJson() + { + lock (_loadingSettingsLock) + { + var retry = true; + var retryCount = 0; + + while (retry) + { + try + { + retryCount++; + + if (!_settingsUtils.SettingsExists(PeekSettings.ModuleName, PeekPreviewSettings.FileName)) + { + Logger.LogInfo("Peek preview-settings.json was missing, creating a new one"); + var defaultSettings = new PeekPreviewSettings(); + _settingsUtils.SaveSettings(defaultSettings.ToJsonString(), PeekSettings.ModuleName, PeekPreviewSettings.FileName); + } + + var settings = _settingsUtils.GetSettingsOrDefault(PeekSettings.ModuleName, PeekPreviewSettings.FileName); + if (settings != null) + { + SourceCodeWrapText = settings.SourceCodeWrapText.Value; + SourceCodeTryFormat = settings.SourceCodeTryFormat.Value; + } + + retry = false; + } + catch (IOException e) + { + if (retryCount > MaxNumberOfRetry) + { + retry = false; + Logger.LogError($"Failed to deserialize preview settings, Retrying {e.Message}", e); + } + else + { + Thread.Sleep(500); + } + } + catch (Exception ex) + { + retry = false; + Logger.LogError("Failed to read changed preview settings", ex); + } + } + } + } + } +} diff --git a/src/modules/peek/Peek.FilePreviewer/Previewers/PreviewerFactory.cs b/src/modules/peek/Peek.FilePreviewer/Previewers/PreviewerFactory.cs index 8a505d9f9c..661fbb4360 100644 --- a/src/modules/peek/Peek.FilePreviewer/Previewers/PreviewerFactory.cs +++ b/src/modules/peek/Peek.FilePreviewer/Previewers/PreviewerFactory.cs @@ -3,7 +3,10 @@ // See the LICENSE file in the project root for more information. using Microsoft.PowerToys.Telemetry; +using Microsoft.UI.Xaml; +using Peek.Common.Extensions; using Peek.Common.Models; +using Peek.FilePreviewer.Models; using Peek.FilePreviewer.Previewers.Archives; using Peek.UI.Telemetry.Events; @@ -11,6 +14,13 @@ namespace Peek.FilePreviewer.Previewers { public class PreviewerFactory { + private readonly IPreviewSettings _previewSettings; + + public PreviewerFactory() + { + _previewSettings = Application.Current.GetService(); + } + public IPreviewer Create(IFileSystemItem file) { if (ImagePreviewer.IsFileTypeSupported(file.Extension)) @@ -23,7 +33,7 @@ namespace Peek.FilePreviewer.Previewers } else if (WebBrowserPreviewer.IsFileTypeSupported(file.Extension)) { - return new WebBrowserPreviewer(file); + return new WebBrowserPreviewer(file, _previewSettings); } else if (ArchivePreviewer.IsFileTypeSupported(file.Extension)) { diff --git a/src/modules/peek/Peek.FilePreviewer/Previewers/WebBrowserPreviewer/Helpers/MonacoHelper.cs b/src/modules/peek/Peek.FilePreviewer/Previewers/WebBrowserPreviewer/Helpers/MonacoHelper.cs index 57c72517d4..deff795baf 100644 --- a/src/modules/peek/Peek.FilePreviewer/Previewers/WebBrowserPreviewer/Helpers/MonacoHelper.cs +++ b/src/modules/peek/Peek.FilePreviewer/Previewers/WebBrowserPreviewer/Helpers/MonacoHelper.cs @@ -5,6 +5,7 @@ using System; using System.Collections.Generic; using System.IO; +using System.Linq; using System.Text.Json; using Common.UI; using ManagedCommon; @@ -23,11 +24,11 @@ namespace Peek.FilePreviewer.Previewers JsonDocument languageListDocument = Microsoft.PowerToys.FilePreviewCommon.MonacoHelper.GetLanguages(); JsonElement languageList = languageListDocument.RootElement.GetProperty("list"); foreach (JsonElement e in languageList.EnumerateArray()) - { - if (e.TryGetProperty("extensions", out var extensions)) { - for (int j = 0; j < extensions.GetArrayLength(); j++) + if (e.TryGetProperty("extensions", out var extensions)) { + for (int j = 0; j < extensions.GetArrayLength(); j++) + { set.Add(extensions[j].ToString()); } } @@ -44,15 +45,32 @@ namespace Peek.FilePreviewer.Previewers /// /// Prepares temp html for the previewing /// - public static string PreviewTempFile(string fileText, string extension, string tempFolder) + public static string PreviewTempFile(string fileText, string extension, string tempFolder, bool tryFormat, bool wrapText) { // TODO: check if file is too big, add MaxFileSize to settings - return InitializeIndexFileAndSelectedFile(fileText, extension, tempFolder); + return InitializeIndexFileAndSelectedFile(fileText, extension, tempFolder, tryFormat, wrapText); } - private static string InitializeIndexFileAndSelectedFile(string fileContent, string extension, string tempFolder) + private static string InitializeIndexFileAndSelectedFile(string fileContent, string extension, string tempFolder, bool tryFormat, bool wrapText) { string vsCodeLangSet = Microsoft.PowerToys.FilePreviewCommon.MonacoHelper.GetLanguage(extension); + + if (tryFormat) + { + var formatter = Microsoft.PowerToys.FilePreviewCommon.MonacoHelper.Formatters.SingleOrDefault(f => f.LangSet == vsCodeLangSet); + if (formatter != null) + { + try + { + fileContent = formatter.Format(fileContent); + } + catch (Exception ex) + { + Logger.LogError($"Failed to apply formatting", ex); + } + } + } + string base64FileCode = Convert.ToBase64String(System.Text.Encoding.UTF8.GetBytes(fileContent)); string theme = ThemeManager.GetWindowsBaseColor().ToLowerInvariant(); @@ -60,7 +78,7 @@ namespace Peek.FilePreviewer.Previewers string html = Microsoft.PowerToys.FilePreviewCommon.MonacoHelper.ReadIndexHtml(); html = html.Replace("[[PT_LANG]]", vsCodeLangSet, StringComparison.InvariantCulture); - html = html.Replace("[[PT_WRAP]]", "1", StringComparison.InvariantCulture); // TODO: add to settings + html = html.Replace("[[PT_WRAP]]", wrapText ? "1" : "0", StringComparison.InvariantCulture); html = html.Replace("[[PT_THEME]]", theme, StringComparison.InvariantCulture); html = html.Replace("[[PT_CODE]]", base64FileCode, StringComparison.InvariantCulture); html = html.Replace("[[PT_URL]]", Microsoft.PowerToys.FilePreviewCommon.MonacoHelper.VirtualHostName, StringComparison.InvariantCulture); diff --git a/src/modules/peek/Peek.FilePreviewer/Previewers/WebBrowserPreviewer/WebBrowserPreviewer.cs b/src/modules/peek/Peek.FilePreviewer/Previewers/WebBrowserPreviewer/WebBrowserPreviewer.cs index f13bad1d39..adbcd8eb4c 100644 --- a/src/modules/peek/Peek.FilePreviewer/Previewers/WebBrowserPreviewer/WebBrowserPreviewer.cs +++ b/src/modules/peek/Peek.FilePreviewer/Previewers/WebBrowserPreviewer/WebBrowserPreviewer.cs @@ -13,13 +13,14 @@ using Peek.Common.Extensions; using Peek.Common.Helpers; using Peek.Common.Models; using Peek.FilePreviewer.Models; -using Windows.Foundation; namespace Peek.FilePreviewer.Previewers { public partial class WebBrowserPreviewer : ObservableObject, IBrowserPreviewer, IDisposable { - private static readonly HashSet _supportedFileTypes = new HashSet + private readonly IPreviewSettings _previewSettings; + + private static readonly HashSet _supportedFileTypes = new() { // Web ".html", @@ -43,8 +44,9 @@ namespace Peek.FilePreviewer.Previewers private bool disposed; - public WebBrowserPreviewer(IFileSystemItem file) + public WebBrowserPreviewer(IFileSystemItem file, IPreviewSettings previewSettings) { + _previewSettings = previewSettings; File = file; Dispatcher = DispatcherQueue.GetForCurrentThread(); } @@ -109,7 +111,7 @@ namespace Peek.FilePreviewer.Previewers if (IsDevFilePreview && !isHtml && !isMarkdown) { var raw = await ReadHelper.Read(File.Path.ToString()); - Preview = new Uri(MonacoHelper.PreviewTempFile(raw, File.Extension, TempFolderPath.Path)); + Preview = new Uri(MonacoHelper.PreviewTempFile(raw, File.Extension, TempFolderPath.Path, _previewSettings.SourceCodeTryFormat, _previewSettings.SourceCodeWrapText)); } else if (isMarkdown) { diff --git a/src/modules/peek/Peek.UI/PeekXAML/App.xaml.cs b/src/modules/peek/Peek.UI/PeekXAML/App.xaml.cs index 8e99c57977..c88badde43 100644 --- a/src/modules/peek/Peek.UI/PeekXAML/App.xaml.cs +++ b/src/modules/peek/Peek.UI/PeekXAML/App.xaml.cs @@ -8,7 +8,9 @@ using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Hosting; using Microsoft.PowerToys.Telemetry; using Microsoft.UI.Xaml; +using Peek.Common; using Peek.FilePreviewer; +using Peek.FilePreviewer.Models; using Peek.UI.Telemetry.Events; using Peek.UI.Views; @@ -17,7 +19,7 @@ namespace Peek.UI /// /// Provides application-specific behavior to supplement the default Application class. /// - public partial class App : Application + public partial class App : Application, IApp { public static int PowerToysPID { get; set; } @@ -46,6 +48,7 @@ namespace Peek.UI // Core Services services.AddTransient(); services.AddSingleton(); + services.AddSingleton(); // Views and ViewModels services.AddTransient(); @@ -57,7 +60,7 @@ namespace Peek.UI UnhandledException += App_UnhandledException; } - public static T GetService() + public T GetService() where T : class { if ((App.Current as App)!.Host.Services.GetService(typeof(T)) is not T service) diff --git a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs index 5254e54513..a7dd22440a 100644 --- a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs +++ b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs @@ -8,8 +8,10 @@ using ManagedCommon; using Microsoft.PowerToys.Telemetry; using Microsoft.UI; using Microsoft.UI.Windowing; +using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Input; using Peek.Common.Constants; +using Peek.Common.Extensions; using Peek.FilePreviewer.Models; using Peek.UI.Extensions; using Peek.UI.Helpers; @@ -45,7 +47,7 @@ namespace Peek.UI Logger.LogError($"HandleThemeChange exception. Please install .NET 4.", e); } - ViewModel = App.GetService(); + ViewModel = Application.Current.GetService(); NativeEventWaiter.WaitForEventLoop(Constants.ShowPeekEvent(), OnPeekHotkey); @@ -68,11 +70,11 @@ namespace Peek.UI } } - private void PeekWindow_Activated(object sender, Microsoft.UI.Xaml.WindowActivatedEventArgs args) + private void PeekWindow_Activated(object sender, WindowActivatedEventArgs args) { - if (args.WindowActivationState == Microsoft.UI.Xaml.WindowActivationState.Deactivated) + if (args.WindowActivationState == WindowActivationState.Deactivated) { - var userSettings = App.GetService(); + var userSettings = Application.Current.GetService(); if (userSettings.CloseAfterLosingFocus) { Uninitialize(); diff --git a/src/modules/peek/Peek.UI/Services/UserSettings.cs b/src/modules/peek/Peek.UI/Services/UserSettings.cs index d15ed3570e..6e5607c6e9 100644 --- a/src/modules/peek/Peek.UI/Services/UserSettings.cs +++ b/src/modules/peek/Peek.UI/Services/UserSettings.cs @@ -48,7 +48,7 @@ namespace Peek.UI if (!_settingsUtils.SettingsExists(PeekModuleName)) { - Logger.LogInfo("Hosts settings.json was missing, creating a new one"); + Logger.LogInfo("Peek settings.json was missing, creating a new one"); var defaultSettings = new PeekSettings(); defaultSettings.Save(_settingsUtils); } diff --git a/src/settings-ui/Settings.UI.Library/PeekPreviewSettings.cs b/src/settings-ui/Settings.UI.Library/PeekPreviewSettings.cs new file mode 100644 index 0000000000..33fc4e270f --- /dev/null +++ b/src/settings-ui/Settings.UI.Library/PeekPreviewSettings.cs @@ -0,0 +1,40 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System.Text.Json; +using Microsoft.PowerToys.Settings.UI.Library; +using Microsoft.PowerToys.Settings.UI.Library.Interfaces; + +namespace Settings.UI.Library +{ + public class PeekPreviewSettings : ISettingsConfig + { + public const string FileName = "preview-settings.json"; + + public BoolProperty SourceCodeWrapText { get; set; } + + public BoolProperty SourceCodeTryFormat { get; set; } + + public PeekPreviewSettings() + { + SourceCodeWrapText = new BoolProperty(false); + SourceCodeTryFormat = new BoolProperty(false); + } + + public string ToJsonString() + { + return JsonSerializer.Serialize(this); + } + + public string GetModuleName() + { + return PeekSettings.ModuleName; + } + + public bool UpgradeSettingsConfiguration() + { + return false; + } + } +} diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/PeekPage.xaml b/src/settings-ui/Settings.UI/SettingsXAML/Views/PeekPage.xaml index 3b1b9eca1a..74b330682e 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/PeekPage.xaml +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/PeekPage.xaml @@ -40,6 +40,25 @@ + + + + + + + + + + + + + diff --git a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw index 5be16768b9..196a55815f 100644 --- a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw +++ b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw @@ -3838,4 +3838,22 @@ Activate by holding the key for the character you want to add an accent to, then Enabled modules + + Preview + + + .cpp, .py, .json, .xml, .csproj, ... + + + Source code files (Monaco) + + + Applies to json and xml. Files remain unchanged. + + + Try to format the source for preview + + + Wrap text + \ No newline at end of file diff --git a/src/settings-ui/Settings.UI/ViewModels/PeekViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/PeekViewModel.cs index 3e84331da3..64ef0d0186 100644 --- a/src/settings-ui/Settings.UI/ViewModels/PeekViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/PeekViewModel.cs @@ -9,6 +9,7 @@ using global::PowerToys.GPOWrapper; using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Helpers; using Microsoft.PowerToys.Settings.UI.Library.Interfaces; +using Settings.UI.Library; namespace Microsoft.PowerToys.Settings.UI.ViewModels { @@ -20,6 +21,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private readonly ISettingsUtils _settingsUtils; private readonly PeekSettings _peekSettings; + private readonly PeekPreviewSettings _peekPreviewSettings; private GpoRuleConfigured _enabledGpoRuleConfiguration; private bool _enabledStateIsGPOConfigured; @@ -46,6 +48,15 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels _peekSettings = new PeekSettings(); } + if (_settingsUtils.SettingsExists(PeekSettings.ModuleName, PeekPreviewSettings.FileName)) + { + _peekPreviewSettings = _settingsUtils.GetSettingsOrDefault(PeekSettings.ModuleName, PeekPreviewSettings.FileName); + } + else + { + _peekPreviewSettings = new PeekPreviewSettings(); + } + InitializeEnabledValue(); SendConfigMSG = ipcMSGCallBackFunc; @@ -137,15 +148,48 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels } } + public bool SourceCodeWrapText + { + get => _peekPreviewSettings.SourceCodeWrapText.Value; + set + { + if (_peekPreviewSettings.SourceCodeWrapText.Value != value) + { + _peekPreviewSettings.SourceCodeWrapText.Value = value; + OnPropertyChanged(nameof(SourceCodeWrapText)); + SavePreviewSettings(); + } + } + } + + public bool SourceCodeTryFormat + { + get => _peekPreviewSettings.SourceCodeTryFormat.Value; + set + { + if (_peekPreviewSettings.SourceCodeTryFormat.Value != value) + { + _peekPreviewSettings.SourceCodeTryFormat.Value = value; + OnPropertyChanged(nameof(SourceCodeTryFormat)); + SavePreviewSettings(); + } + } + } + private void NotifySettingsChanged() { // Using InvariantCulture as this is an IPC message SendConfigMSG( - string.Format( - CultureInfo.InvariantCulture, - "{{ \"powertoys\": {{ \"{0}\": {1} }} }}", - PeekSettings.ModuleName, - JsonSerializer.Serialize(_peekSettings))); + string.Format( + CultureInfo.InvariantCulture, + "{{ \"powertoys\": {{ \"{0}\": {1} }} }}", + PeekSettings.ModuleName, + JsonSerializer.Serialize(_peekSettings))); + } + + private void SavePreviewSettings() + { + _settingsUtils.SaveSettings(_peekPreviewSettings.ToJsonString(), PeekSettings.ModuleName, PeekPreviewSettings.FileName); } public void RefreshEnabledState() From d1e5a57b37beda832a1662bde33bea59a47e6649 Mon Sep 17 00:00:00 2001 From: "I am the .batMan" <46932745+Ares9323@users.noreply.github.com> Date: Tue, 24 Oct 2023 15:42:27 +0200 Subject: [PATCH 02/68] [KBMEditor]Corrected typo in "Subtract" (#29392) --- src/common/interop/keyboard_layout.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/interop/keyboard_layout.cpp b/src/common/interop/keyboard_layout.cpp index 7e0a13e848..2b74757e66 100644 --- a/src/common/interop/keyboard_layout.cpp +++ b/src/common/interop/keyboard_layout.cpp @@ -145,7 +145,7 @@ void LayoutMap::LayoutMapImpl::UpdateLayout() keyboardLayoutMap[VK_RETURN | numpadOriginBit] = L"Enter (Numpad)"; keyboardLayoutMap[VK_DIVIDE | numpadOriginBit] = L"/ (Numpad)"; - keyboardLayoutMap[VK_SUBTRACT] = L"- (Substract)"; + keyboardLayoutMap[VK_SUBTRACT] = L"- (Subtract)"; keyboardLayoutMap[VK_SELECT] = L"Select"; keyboardLayoutMap[VK_PRINT] = L"Print"; keyboardLayoutMap[VK_EXECUTE] = L"Execute"; From cd7a9cc696d6521f27c97abd054a38a245cc16da Mon Sep 17 00:00:00 2001 From: Zuo Zongyuan Date: Wed, 25 Oct 2023 00:03:02 +0800 Subject: [PATCH 03/68] [PTRun][VSCode]Fix support for VSCodium and add support for Remote - Tunnels (#28742) * feat: fix support for VSCodium stable & insider * feat: add support for Remote Tunnels --- .../VSCodeHelper/VSCodeInstances.cs | 11 ++- .../WorkspacesHelper/ParseVSCodeAuthority.cs | 47 ++++++++++++ .../WorkspacesHelper/ParseVSCodeUri.cs | 72 ------------------ .../WorkspacesHelper/Rfc3986Uri.cs | 42 +++++++++++ .../WorkspacesHelper/VSCodeWorkspace.cs | 6 +- .../WorkspacesHelper/VSCodeWorkspacesApi.cs | 75 +++++++++++-------- 6 files changed, 145 insertions(+), 108 deletions(-) create mode 100644 src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/ParseVSCodeAuthority.cs delete mode 100644 src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/ParseVSCodeUri.cs create mode 100644 src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/Rfc3986Uri.cs diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/VSCodeHelper/VSCodeInstances.cs b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/VSCodeHelper/VSCodeInstances.cs index 98b2d69169..86837628a3 100644 --- a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/VSCodeHelper/VSCodeInstances.cs +++ b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/VSCodeHelper/VSCodeInstances.cs @@ -74,7 +74,7 @@ namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.VSCodeHelper if (Directory.Exists(path)) { var files = Directory.GetFiles(path) - .Where(x => (x.Contains("code", StringComparison.OrdinalIgnoreCase) || x.Contains("VSCodium", StringComparison.OrdinalIgnoreCase)) + .Where(x => (x.Contains("code", StringComparison.OrdinalIgnoreCase) || x.Contains("codium", StringComparison.OrdinalIgnoreCase)) && !x.EndsWith(".cmd", StringComparison.OrdinalIgnoreCase)).ToArray(); var iconPath = Path.GetDirectoryName(path); @@ -104,10 +104,15 @@ namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.VSCodeHelper version = "Code - Exploration"; instance.VSCodeVersion = VSCodeVersion.Exploration; } - else if (file.EndsWith("VSCodium", StringComparison.OrdinalIgnoreCase)) + else if (file.EndsWith("codium", StringComparison.OrdinalIgnoreCase)) { version = "VSCodium"; - instance.VSCodeVersion = VSCodeVersion.Stable; // ? + instance.VSCodeVersion = VSCodeVersion.Stable; + } + else if (file.EndsWith("codium-insiders", StringComparison.OrdinalIgnoreCase)) + { + version = "VSCodium - Insiders"; + instance.VSCodeVersion = VSCodeVersion.Insiders; } if (version != string.Empty) diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/ParseVSCodeAuthority.cs b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/ParseVSCodeAuthority.cs new file mode 100644 index 0000000000..c59a113f1a --- /dev/null +++ b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/ParseVSCodeAuthority.cs @@ -0,0 +1,47 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Collections.Generic; + +namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.WorkspacesHelper +{ + public class ParseVSCodeAuthority + { + private static readonly Dictionary EnvironmentTypes = new() + { + { string.Empty, WorkspaceEnvironment.Local }, + { "ssh-remote", WorkspaceEnvironment.RemoteSSH }, + { "wsl", WorkspaceEnvironment.RemoteWSL }, + { "vsonline", WorkspaceEnvironment.Codespaces }, + { "dev-container", WorkspaceEnvironment.DevContainer }, + { "tunnel", WorkspaceEnvironment.RemoteTunnel }, + }; + + private static string GetRemoteName(string authority) + { + if (authority is null) + { + return null; + } + + var pos = authority.IndexOf('+'); + if (pos < 0) + { + return authority; + } + + return authority[..pos]; + } + + public static (WorkspaceEnvironment? WorkspaceEnvironment, string MachineName) GetWorkspaceEnvironment(string authority) + { + var remoteName = GetRemoteName(authority); + var machineName = remoteName.Length < authority.Length ? authority[(remoteName.Length + 1)..] : null; + return EnvironmentTypes.TryGetValue(remoteName, out WorkspaceEnvironment workspace) ? + (workspace, machineName) : + (null, null); + } + } +} diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/ParseVSCodeUri.cs b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/ParseVSCodeUri.cs deleted file mode 100644 index db224d1633..0000000000 --- a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/ParseVSCodeUri.cs +++ /dev/null @@ -1,72 +0,0 @@ -// Copyright (c) Microsoft Corporation -// The Microsoft Corporation licenses this file to you under the MIT license. -// See the LICENSE file in the project root for more information. - -using System.Text.RegularExpressions; - -namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.WorkspacesHelper -{ - public class ParseVSCodeUri - { - private static readonly Regex LocalWorkspace = new Regex("^file:///(.+)$", RegexOptions.Compiled); - - private static readonly Regex RemoteSSHWorkspace = new Regex(@"^vscode-remote://ssh-remote\+(.+?(?=\/))(.+)$", RegexOptions.Compiled); - - private static readonly Regex RemoteWSLWorkspace = new Regex(@"^vscode-remote://wsl\+(.+?(?=\/))(.+)$", RegexOptions.Compiled); - - private static readonly Regex CodespacesWorkspace = new Regex(@"^vscode-remote://vsonline\+(.+?(?=\/))(.+)$", RegexOptions.Compiled); - - private static readonly Regex DevContainerWorkspace = new Regex(@"^vscode-remote://dev-container\+(.+?(?=\/))(.+)$", RegexOptions.Compiled); - - public static (WorkspaceEnvironment? WorkspaceEnvironment, string MachineName, string Path) GetWorkspaceEnvironment(string uri) - { - if (LocalWorkspace.IsMatch(uri)) - { - var match = LocalWorkspace.Match(uri); - - if (match.Groups.Count > 1) - { - return (WorkspaceEnvironment.Local, null, match.Groups[1].Value); - } - } - else if (RemoteSSHWorkspace.IsMatch(uri)) - { - var match = RemoteSSHWorkspace.Match(uri); - - if (match.Groups.Count > 1) - { - return (WorkspaceEnvironment.RemoteSSH, match.Groups[1].Value, match.Groups[2].Value); - } - } - else if (RemoteWSLWorkspace.IsMatch(uri)) - { - var match = RemoteWSLWorkspace.Match(uri); - - if (match.Groups.Count > 1) - { - return (WorkspaceEnvironment.RemoteWSL, match.Groups[1].Value, match.Groups[2].Value); - } - } - else if (CodespacesWorkspace.IsMatch(uri)) - { - var match = CodespacesWorkspace.Match(uri); - - if (match.Groups.Count > 1) - { - return (WorkspaceEnvironment.Codespaces, null, match.Groups[2].Value); - } - } - else if (DevContainerWorkspace.IsMatch(uri)) - { - var match = DevContainerWorkspace.Match(uri); - - if (match.Groups.Count > 1) - { - return (WorkspaceEnvironment.DevContainer, null, match.Groups[2].Value); - } - } - - return (null, null, null); - } - } -} diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/Rfc3986Uri.cs b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/Rfc3986Uri.cs new file mode 100644 index 0000000000..804253d132 --- /dev/null +++ b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/Rfc3986Uri.cs @@ -0,0 +1,42 @@ +// Copyright (c) Microsoft Corporation +// The Microsoft Corporation licenses this file to you under the MIT license. +// See the LICENSE file in the project root for more information. + +using System; +using System.Diagnostics.CodeAnalysis; +using System.Text.RegularExpressions; + +namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.WorkspacesHelper +{ + // Use regex to parse URI since System.Uri is not compliant with RFC 3986, see https://github.com/dotnet/runtime/issues/64707 + public partial class Rfc3986Uri + { + // The following regex is referenced from https://www.rfc-editor.org/rfc/rfc3986.html#appendix-B + [GeneratedRegex(@"^((?[^:/?#]+):)?(//(?[^/?#]*))?(?[^?#]*)(\?(?[^#]*))?(#(?.*))?$")] + private static partial Regex Rfc3986(); + + public string Scheme { get; private set; } + + public string Authority { get; private set; } + + public string Path { get; private set; } + + public string Query { get; private set; } + + public string Fragment { get; private set; } + + public static Rfc3986Uri Parse([StringSyntax("Uri")] string uriString) + { + return uriString is not null && Rfc3986().Match(uriString) is { Success: true } match + ? new Rfc3986Uri() + { + Scheme = match.Groups["scheme"].Value, + Authority = match.Groups["authority"].Value, + Path = match.Groups["path"].Value, + Query = match.Groups["query"].Value, + Fragment = match.Groups["fragment"].Value, + } + : null; + } + } +} diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/VSCodeWorkspace.cs b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/VSCodeWorkspace.cs index fb5a78d118..dc0f479532 100644 --- a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/VSCodeWorkspace.cs +++ b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/VSCodeWorkspace.cs @@ -29,10 +29,10 @@ namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.WorkspacesHelper { case WorkspaceEnvironment.Local: return Resources.TypeWorkspaceLocal; case WorkspaceEnvironment.Codespaces: return "Codespaces"; - case WorkspaceEnvironment.RemoteContainers: return Resources.TypeWorkspaceContainer; case WorkspaceEnvironment.RemoteSSH: return "SSH"; case WorkspaceEnvironment.RemoteWSL: return "WSL"; case WorkspaceEnvironment.DevContainer: return Resources.TypeWorkspaceDevContainer; + case WorkspaceEnvironment.RemoteTunnel: return "Tunnel"; } return string.Empty; @@ -45,8 +45,8 @@ namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.WorkspacesHelper Codespaces = 2, RemoteWSL = 3, RemoteSSH = 4, - RemoteContainers = 5, - DevContainer = 6, + DevContainer = 5, + RemoteTunnel = 6, } public enum WorkspaceType diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/VSCodeWorkspacesApi.cs b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/VSCodeWorkspacesApi.cs index 13e744e603..bd318f0896 100644 --- a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/VSCodeWorkspacesApi.cs +++ b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/WorkspacesHelper/VSCodeWorkspacesApi.cs @@ -19,37 +19,52 @@ namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.WorkspacesHelper { } - private VSCodeWorkspace ParseVSCodeUri(string uri, VSCodeInstance vscodeInstance, bool isWorkspace = false) + private VSCodeWorkspace ParseVSCodeUriAndAuthority(string uri, string authority, VSCodeInstance vscodeInstance, bool isWorkspace = false) { - if (uri != null && uri is string) + if (uri is null) { - string unescapeUri = Uri.UnescapeDataString(uri); - var typeWorkspace = WorkspacesHelper.ParseVSCodeUri.GetWorkspaceEnvironment(unescapeUri); - if (typeWorkspace.WorkspaceEnvironment.HasValue) - { - var folderName = Path.GetFileName(unescapeUri); - - // Check we haven't returned '' if we have a path like C:\ - if (string.IsNullOrEmpty(folderName)) - { - DirectoryInfo dirInfo = new DirectoryInfo(unescapeUri); - folderName = dirInfo.Name.TrimEnd(':'); - } - - return new VSCodeWorkspace() - { - Path = uri, - WorkspaceType = isWorkspace ? WorkspaceType.WorkspaceFile : WorkspaceType.ProjectFolder, - RelativePath = typeWorkspace.Path, - FolderName = folderName, - ExtraInfo = typeWorkspace.MachineName, - WorkspaceEnvironment = typeWorkspace.WorkspaceEnvironment.Value, - VSCodeInstance = vscodeInstance, - }; - } + return null; } - return null; + var rfc3986Uri = Rfc3986Uri.Parse(Uri.UnescapeDataString(uri)); + if (rfc3986Uri is null) + { + return null; + } + + var (workspaceEnv, machineName) = ParseVSCodeAuthority.GetWorkspaceEnvironment(authority ?? rfc3986Uri.Authority); + if (workspaceEnv is null) + { + return null; + } + + var path = rfc3986Uri.Path; + + // Remove preceding '/' from local (Windows) path + if (workspaceEnv == WorkspaceEnvironment.Local) + { + path = path[1..]; + } + + var folderName = Path.GetFileName(path); + + // Check we haven't returned '' if we have a path like C:\ + if (string.IsNullOrEmpty(folderName)) + { + DirectoryInfo dirInfo = new(path); + folderName = dirInfo.Name.TrimEnd(':'); + } + + return new VSCodeWorkspace() + { + Path = uri, + WorkspaceType = isWorkspace ? WorkspaceType.WorkspaceFile : WorkspaceType.ProjectFolder, + RelativePath = path, + FolderName = folderName, + ExtraInfo = machineName, + WorkspaceEnvironment = workspaceEnv ?? default, + VSCodeInstance = vscodeInstance, + }; } public List Workspaces @@ -100,7 +115,7 @@ namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.WorkspacesHelper { foreach (var workspaceUri in vscodeStorageFile.OpenedPathsList.Workspaces3) { - var workspace = ParseVSCodeUri(workspaceUri, vscodeInstance); + var workspace = ParseVSCodeUriAndAuthority(workspaceUri, null, vscodeInstance); if (workspace != null) { storageFileResults.Add(workspace); @@ -121,7 +136,7 @@ namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.WorkspacesHelper uri = entry.Workspace.ConfigPath; } - var workspace = ParseVSCodeUri(uri, vscodeInstance, isWorkspaceFile); + var workspace = ParseVSCodeUriAndAuthority(uri, entry.RemoteAuthority, vscodeInstance, isWorkspaceFile); if (workspace != null) { storageFileResults.Add(workspace); @@ -174,7 +189,7 @@ namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.WorkspacesHelper uri = entry.Workspace.ConfigPath; } - var workspace = ParseVSCodeUri(uri, vscodeInstance, isWorkspaceFile); + var workspace = ParseVSCodeUriAndAuthority(uri, entry.RemoteAuthority, vscodeInstance, isWorkspaceFile); if (workspace != null) { dbFileResults.Add(workspace); From b5bd19f3f5407352a8a8078567f19e0c54dc1e29 Mon Sep 17 00:00:00 2001 From: Manuel Meitinger Date: Tue, 24 Oct 2023 22:24:02 +0200 Subject: [PATCH 04/68] [ImageResizer]Fix wrong .bmp registry key in installer (#29396) --- installer/PowerToysSetup/ImageResizer.wxs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/installer/PowerToysSetup/ImageResizer.wxs b/installer/PowerToysSetup/ImageResizer.wxs index 20ded78434..9f4602939a 100644 --- a/installer/PowerToysSetup/ImageResizer.wxs +++ b/installer/PowerToysSetup/ImageResizer.wxs @@ -28,7 +28,7 @@ Type="string" /> Date: Tue, 24 Oct 2023 22:49:09 +0200 Subject: [PATCH 05/68] [PowerRename]Save data from the last run outside of the settings file (#28861) * [PowerRename] Sync settings before saving last window size * address review comments --- src/common/utils/json.h | 36 +++++++ .../PowerRenameXAML/MainWindow.xaml.cpp | 17 ++-- .../PowerRenameXAML/MainWindow.xaml.h | 2 + src/modules/powerrename/lib/Settings.cpp | 54 +++++++---- src/modules/powerrename/lib/Settings.h | 97 +++++++++++-------- 5 files changed, 142 insertions(+), 64 deletions(-) diff --git a/src/common/utils/json.h b/src/common/utils/json.h index 43e3b858f1..32dab7061a 100644 --- a/src/common/utils/json.h +++ b/src/common/utils/json.h @@ -70,4 +70,40 @@ namespace json { return value; // identity function overload for convenience } + + template> + requires std::constructible_from, D> + void get(const json::JsonObject& o, const wchar_t* name, T& destination, D default_value = std::nullopt) + { + try + { + if constexpr (std::is_same_v) + { + destination = o.GetNamedBoolean(name); + } + else if constexpr (std::is_arithmetic_v) + { + destination = static_cast(o.GetNamedNumber(name)); + } + else if constexpr (std::is_same_v) + { + destination = o.GetNamedString(name); + } + else if constexpr (std::is_same_v) + { + destination = o.GetNamedObject(name); + } + else + { + static_assert(std::bool_constant>::value, "Unsupported type"); + } + } + catch (...) + { + std::optional maybe_default{ std::move(default_value) }; + if (maybe_default.has_value()) + destination = std::move(*maybe_default); + } + } + } diff --git a/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.cpp b/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.cpp index 15d542bb52..1ce714a13f 100644 --- a/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.cpp +++ b/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.cpp @@ -134,7 +134,7 @@ namespace winrt::PowerRenameUI::implementation GetDpiForMonitor(hMonitor, MONITOR_DPI_TYPE::MDT_EFFECTIVE_DPI, &x_dpi, &x_dpi); UINT window_dpi = GetDpiForWindow(m_window); - const auto& [width, height] = CSettingsInstance().GetLastWindowSize(); + const auto& [width, height] = LastRunSettingsInstance().GetLastWindowSize(); winrt::Windows::Graphics::RectInt32 rect; // Scale window size @@ -297,12 +297,15 @@ namespace winrt::PowerRenameUI::implementation Microsoft::UI::Windowing::AppWindow::GetFromWindowId(Microsoft::UI::GetWindowIdFromWindow(m_window)); const auto [width, height] = appWindow.Size(); - CSettingsInstance().UpdateLastWindowSize(static_cast(width), static_cast(height)); + m_updatedWindowSize.emplace(std::make_pair(width, height)); } void MainWindow::OnClosed(winrt::Windows::Foundation::IInspectable const&, winrt::Microsoft::UI::Xaml::WindowEventArgs const&) { - CSettingsInstance().Save(); + if (m_updatedWindowSize) + { + LastRunSettingsInstance().UpdateLastWindowSize(m_updatedWindowSize->first, m_updatedWindowSize->second); + } } void MainWindow::InvalidateItemListViewState() @@ -820,8 +823,8 @@ namespace winrt::PowerRenameUI::implementation { flags = CSettingsInstance().GetFlags(); - textBox_search().Text(CSettingsInstance().GetSearchText().c_str()); - textBox_replace().Text(CSettingsInstance().GetReplaceText().c_str()); + textBox_search().Text(LastRunSettingsInstance().GetSearchText().c_str()); + textBox_replace().Text(LastRunSettingsInstance().GetReplaceText().c_str()); } else { @@ -846,7 +849,7 @@ namespace winrt::PowerRenameUI::implementation CSettingsInstance().SetFlags(flags); winrt::hstring searchTerm = textBox_search().Text(); - CSettingsInstance().SetSearchText(std::wstring{ searchTerm }); + LastRunSettingsInstance().SetSearchText(std::wstring{ searchTerm }); if (CSettingsInstance().GetMRUEnabled() && m_searchMRU) { @@ -858,7 +861,7 @@ namespace winrt::PowerRenameUI::implementation } winrt::hstring replaceTerm = textBox_replace().Text(); - CSettingsInstance().SetReplaceText(std::wstring{ replaceTerm }); + LastRunSettingsInstance().SetReplaceText(std::wstring{ replaceTerm }); if (CSettingsInstance().GetMRUEnabled() && m_replaceMRU) { diff --git a/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.h b/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.h index ed9d6a6c2b..dc35a6b022 100644 --- a/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.h +++ b/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.h @@ -153,6 +153,8 @@ namespace winrt::PowerRenameUI::implementation UINT m_selectedCount = 0; UINT m_renamingCount = 0; winrt::event m_propertyChanged; + std::optional> m_updatedWindowSize; + bool m_flagValidationInProgress = false; diff --git a/src/modules/powerrename/lib/Settings.cpp b/src/modules/powerrename/lib/Settings.cpp index 1ebee29e5e..6f90de9d4c 100644 --- a/src/modules/powerrename/lib/Settings.cpp +++ b/src/modules/powerrename/lib/Settings.cpp @@ -13,6 +13,7 @@ namespace { const wchar_t c_powerRenameDataFilePath[] = L"\\power-rename-settings.json"; + const wchar_t c_powerRenameLastRunFilePath[] = L"\\power-rename-last-run-data.json"; const wchar_t c_powerRenameUIFlagsFilePath[] = L"\\power-rename-ui-flags"; const wchar_t c_enabled[] = L"Enabled"; @@ -48,11 +49,7 @@ void CSettings::Save() jsonData.SetNamedValue(c_persistState, json::value(settings.persistState)); jsonData.SetNamedValue(c_mruEnabled, json::value(settings.MRUEnabled)); jsonData.SetNamedValue(c_maxMRUSize, json::value(settings.maxMRUSize)); - jsonData.SetNamedValue(c_searchText, json::value(settings.searchText)); - jsonData.SetNamedValue(c_replaceText, json::value(settings.replaceText)); jsonData.SetNamedValue(c_useBoostLib, json::value(settings.useBoostLib)); - jsonData.SetNamedValue(c_lastWindowWidth, json::value(settings.lastWindowWidth)); - jsonData.SetNamedValue(c_lastWindowHeight, json::value(settings.lastWindowHeight)); json::to_file(jsonFilePath, jsonData); GetSystemTimeAsFileTime(&lastLoadedTime); @@ -94,8 +91,10 @@ void CSettings::MigrateFromRegistry() settings.MRUEnabled = GetRegBoolean(c_mruEnabled, true); settings.maxMRUSize = GetRegNumber(c_maxMRUSize, 10); settings.flags = GetRegNumber(c_flags, 0); - settings.searchText = GetRegString(c_searchText, L""); - settings.replaceText = GetRegString(c_replaceText, L""); + + LastRunSettingsInstance().SetSearchText(GetRegString(c_searchText, L"")); + LastRunSettingsInstance().SetReplaceText(GetRegString(c_replaceText, L"")); + settings.useBoostLib = false; // Never existed in registry, disabled by default. } @@ -131,21 +130,10 @@ void CSettings::ParseJson() { settings.maxMRUSize = static_cast(jsonSettings.GetNamedNumber(c_maxMRUSize)); } - if (json::has(jsonSettings, c_searchText, json::JsonValueType::String)) - { - settings.searchText = jsonSettings.GetNamedString(c_searchText); - } - if (json::has(jsonSettings, c_replaceText, json::JsonValueType::String)) - { - settings.replaceText = jsonSettings.GetNamedString(c_replaceText); - } if (json::has(jsonSettings, c_useBoostLib, json::JsonValueType::Boolean)) { settings.useBoostLib = jsonSettings.GetNamedBoolean(c_useBoostLib); } - - settings.lastWindowWidth = static_cast(jsonSettings.GetNamedNumber(c_lastWindowWidth, DEFAULT_WINDOW_WIDTH)); - settings.lastWindowHeight = static_cast(jsonSettings.GetNamedNumber(c_lastWindowHeight, DEFAULT_WINDOW_HEIGHT)); } catch (const winrt::hresult_error&) { @@ -177,3 +165,35 @@ CSettings& CSettingsInstance() static CSettings instance; return instance; } + +LastRunSettings& LastRunSettingsInstance() +{ + static LastRunSettings instance; + return instance; +} + +void LastRunSettings::Load() +{ + const auto lastRunSettingsFilePath = PTSettingsHelper::get_module_save_folder_location(PowerRenameConstants::ModuleKey) + c_powerRenameLastRunFilePath; + auto json = json::from_file(lastRunSettingsFilePath); + if (!json) + return; + + json::get(*json, c_searchText, searchText, L""); + json::get(*json, c_replaceText, replaceText, L""); + json::get(*json, c_lastWindowWidth, lastWindowWidth, DEFAULT_WINDOW_WIDTH); + json::get(*json, c_lastWindowHeight, lastWindowHeight, DEFAULT_WINDOW_HEIGHT); +} + +void LastRunSettings::Save() +{ + json::JsonObject json; + + json.SetNamedValue(c_searchText, json::value(searchText)); + json.SetNamedValue(c_replaceText, json::value(replaceText)); + json.SetNamedValue(c_lastWindowWidth, json::value(lastWindowWidth)); + json.SetNamedValue(c_lastWindowHeight, json::value(lastWindowHeight)); + + const auto lastRunSettingsFilePath = PTSettingsHelper::get_module_save_folder_location(PowerRenameConstants::ModuleKey) + c_powerRenameLastRunFilePath; + json::to_file(lastRunSettingsFilePath, json); +} diff --git a/src/modules/powerrename/lib/Settings.h b/src/modules/powerrename/lib/Settings.h index 00e5f2df1e..633b1fca24 100644 --- a/src/modules/powerrename/lib/Settings.h +++ b/src/modules/powerrename/lib/Settings.h @@ -6,9 +6,6 @@ class CSettings { public: - static constexpr inline int DEFAULT_WINDOW_WIDTH = 1400; - static constexpr inline int DEFAULT_WINDOW_HEIGHT = 800; - CSettings(); inline bool GetEnabled() @@ -28,17 +25,6 @@ public: Save(); } - inline std::tuple GetLastWindowSize() const - { - return std::make_tuple(settings.lastWindowWidth, settings.lastWindowHeight); - } - - inline void UpdateLastWindowSize(const int width, const int height) - { - settings.lastWindowWidth = std::max(width, DEFAULT_WINDOW_WIDTH); - settings.lastWindowHeight = std::max(height, DEFAULT_WINDOW_HEIGHT); - } - inline bool GetShowIconOnMenu() const { return settings.showIconOnMenu; @@ -110,28 +96,6 @@ public: WriteFlags(); } - inline const std::wstring& GetSearchText() const - { - return settings.searchText; - } - - inline void SetSearchText(const std::wstring& text) - { - settings.searchText = text; - Save(); - } - - inline const std::wstring& GetReplaceText() const - { - return settings.replaceText; - } - - inline void SetReplaceText(const std::wstring& text) - { - settings.replaceText = text; - Save(); - } - void Save(); void Load(); @@ -146,10 +110,6 @@ private: bool MRUEnabled{ true }; unsigned int maxMRUSize{ 10 }; unsigned int flags{ 0 }; - std::wstring searchText{}; - std::wstring replaceText{}; - int lastWindowWidth{ DEFAULT_WINDOW_WIDTH }; - int lastWindowHeight{ DEFAULT_WINDOW_HEIGHT }; }; void Reload(); @@ -166,3 +126,60 @@ private: }; CSettings& CSettingsInstance(); + +class LastRunSettings +{ + static constexpr inline int DEFAULT_WINDOW_WIDTH = 1400; + static constexpr inline int DEFAULT_WINDOW_HEIGHT = 800; + + int lastWindowWidth{ DEFAULT_WINDOW_WIDTH }; + int lastWindowHeight{ DEFAULT_WINDOW_HEIGHT }; + + std::wstring searchText{}; + std::wstring replaceText{}; + +public: + inline LastRunSettings() + { + Load(); + } + + inline std::tuple GetLastWindowSize() const + { + return std::make_tuple(lastWindowWidth, lastWindowHeight); + } + + inline void UpdateLastWindowSize(const int width, const int height) + { + lastWindowWidth = std::max(width, DEFAULT_WINDOW_WIDTH); + lastWindowHeight = std::max(height, DEFAULT_WINDOW_HEIGHT); + Save(); + } + + inline const std::wstring& GetSearchText() const + { + return searchText; + } + + inline void SetSearchText(const std::wstring& text) + { + searchText = text; + Save(); + } + + inline const std::wstring& GetReplaceText() const + { + return replaceText; + } + + inline void SetReplaceText(const std::wstring& text) + { + replaceText = text; + Save(); + } + + void Load(); + void Save(); +}; + +LastRunSettings& LastRunSettingsInstance(); From 04a7adf6a4ac96874b0b61400883126ac24d39dc Mon Sep 17 00:00:00 2001 From: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com> Date: Wed, 25 Oct 2023 20:03:15 +0200 Subject: [PATCH 06/68] [EnvVar]Fix how expanded variables are processed (#29418) * Read variables from registry (without expanding), not by using Environment API Fix seting variables to registry * Expand in Applied variables list * Remove using * Add comments --- .../Helpers/EnvironmentVariablesHelper.cs | 42 ++++++++++++++----- .../ViewModels/MainViewModel.cs | 7 +++- 2 files changed, 36 insertions(+), 13 deletions(-) diff --git a/src/modules/EnvironmentVariables/EnvironmentVariables/Helpers/EnvironmentVariablesHelper.cs b/src/modules/EnvironmentVariables/EnvironmentVariables/Helpers/EnvironmentVariablesHelper.cs index 4933050e82..1979e9b14f 100644 --- a/src/modules/EnvironmentVariables/EnvironmentVariables/Helpers/EnvironmentVariablesHelper.cs +++ b/src/modules/EnvironmentVariables/EnvironmentVariables/Helpers/EnvironmentVariablesHelper.cs @@ -65,6 +65,9 @@ namespace EnvironmentVariables.Helpers return baseKey.OpenSubKey(keyName, writable: writable); } + // Code taken from https://github.com/dotnet/runtime/blob/main/src/libraries/System.Private.CoreLib/src/System/Environment.Win32.cs + // Set variables directly to registry instead of using Environment API - Environment.SetEnvironmentVariable() has 1 second timeout for SendNotifyMessage(WM_SETTINGSCHANGED). + // When applying profile, this would take num_of_variables * 1s to propagate the changes. We do manually SendNotifyMessage with no timeout where needed. private static void SetEnvironmentVariableFromRegistryWithoutNotify(string variable, string value, bool fromMachine) { const int MaxUserEnvVariableLength = 255; // User-wide env vars stored in the registry have names limited to 255 chars @@ -84,7 +87,15 @@ namespace EnvironmentVariables.Helpers } else { - environmentKey.SetValue(variable, value); + // If a variable contains %, we save it as a REG_EXPAND_SZ, which is the same behavior as the Windows default environment variables editor. + if (value.Contains('%')) + { + environmentKey.SetValue(variable, value, RegistryValueKind.ExpandString); + } + else + { + environmentKey.SetValue(variable, value, RegistryValueKind.String); + } } } } @@ -102,23 +113,32 @@ namespace EnvironmentVariables.Helpers } } + // Code taken from https://github.com/dotnet/runtime/blob/main/src/libraries/System.Private.CoreLib/src/System/Environment.Win32.cs + // Reading variables from registry instead of using Environment API, because Environment API expands variables by default. internal static void GetVariables(EnvironmentVariableTarget target, VariablesSet set) { - var variables = Environment.GetEnvironmentVariables(target); var sortedList = new SortedList(); - foreach (DictionaryEntry variable in variables) + bool fromMachine = target == EnvironmentVariableTarget.Machine ? true : false; + + using (RegistryKey environmentKey = OpenEnvironmentKeyIfExists(fromMachine, writable: false)) { - string key = variable.Key as string; - string value = variable.Value as string; - - if (string.IsNullOrEmpty(key)) + if (environmentKey != null) { - continue; + foreach (string name in environmentKey.GetValueNames()) + { + string value = environmentKey.GetValue(name, string.Empty, RegistryValueOptions.DoNotExpandEnvironmentNames).ToString(); + try + { + Variable entry = new Variable(name, value, set.Type); + sortedList.Add(name, entry); + } + catch (ArgumentException) + { + // Throw and catch intentionally to provide non-fatal notification about corrupted environment block + } + } } - - Variable entry = new Variable(key, value, set.Type); - sortedList.Add(key, entry); } set.Variables = new System.Collections.ObjectModel.ObservableCollection(sortedList.Values); diff --git a/src/modules/EnvironmentVariables/EnvironmentVariables/ViewModels/MainViewModel.cs b/src/modules/EnvironmentVariables/EnvironmentVariables/ViewModels/MainViewModel.cs index 164325b4bb..428d3db517 100644 --- a/src/modules/EnvironmentVariables/EnvironmentVariables/ViewModels/MainViewModel.cs +++ b/src/modules/EnvironmentVariables/EnvironmentVariables/ViewModels/MainViewModel.cs @@ -132,10 +132,13 @@ namespace EnvironmentVariables.ViewModels var variables = new List(); if (AppliedProfile != null) { - variables = variables.Concat(AppliedProfile.Variables.OrderBy(x => x.Name)).ToList(); + variables = variables.Concat(AppliedProfile.Variables.Select(x => new Variable(x.Name, Environment.ExpandEnvironmentVariables(x.Values), VariablesSetType.Profile)).OrderBy(x => x.Name)).ToList(); } - variables = variables.Concat(UserDefaultSet.Variables.OrderBy(x => x.Name)).Concat(SystemDefaultSet.Variables.OrderBy(x => x.Name)).ToList(); + // Variables are expanded to be shown in the applied variables section, so the user sees their actual values. + variables = variables.Concat(UserDefaultSet.Variables.Select(x => new Variable(x.Name, Environment.ExpandEnvironmentVariables(x.Values), VariablesSetType.User)).OrderBy(x => x.Name)) + .Concat(SystemDefaultSet.Variables.Select(x => new Variable(x.Name, Environment.ExpandEnvironmentVariables(x.Values), VariablesSetType.System)).OrderBy(x => x.Name)) + .ToList(); // Handle PATH variable - add USER value to the end of the SYSTEM value var profilePath = variables.Where(x => x.Name.Equals("PATH", StringComparison.OrdinalIgnoreCase) && x.ParentType == VariablesSetType.Profile).FirstOrDefault(); From 1dde69968875fc4f235e6238dfe9d819c015febd Mon Sep 17 00:00:00 2001 From: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com> Date: Thu, 26 Oct 2023 12:01:26 +0200 Subject: [PATCH 07/68] [EnvVar]Do not expand variables when looking for backup variables (#29431) * [EnvVar] Do not expand when looking for backup variable * Revert unneeded change --- .../Helpers/EnvironmentVariablesHelper.cs | 20 +++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/modules/EnvironmentVariables/EnvironmentVariables/Helpers/EnvironmentVariablesHelper.cs b/src/modules/EnvironmentVariables/EnvironmentVariables/Helpers/EnvironmentVariablesHelper.cs index 1979e9b14f..9503f9fb1b 100644 --- a/src/modules/EnvironmentVariables/EnvironmentVariables/Helpers/EnvironmentVariablesHelper.cs +++ b/src/modules/EnvironmentVariables/EnvironmentVariables/Helpers/EnvironmentVariablesHelper.cs @@ -21,25 +21,25 @@ namespace EnvironmentVariables.Helpers internal static Variable GetExisting(string variableName) { - var userVariables = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.User); + DefaultVariablesSet userSet = new DefaultVariablesSet(Guid.NewGuid(), "tmpUser", VariablesSetType.User); + GetVariables(EnvironmentVariableTarget.User, userSet); - foreach (DictionaryEntry variable in userVariables) + foreach (var variable in userSet.Variables) { - var key = variable.Key as string; - if (key.Equals(variableName, StringComparison.OrdinalIgnoreCase)) + if (variable.Name.Equals(variableName, StringComparison.OrdinalIgnoreCase)) { - return new Variable(key, userVariables[key] as string, VariablesSetType.User); + return new Variable(variable.Name, variable.Values, VariablesSetType.User); } } - var systemVariables = Environment.GetEnvironmentVariables(EnvironmentVariableTarget.Machine); + DefaultVariablesSet systemSet = new DefaultVariablesSet(Guid.NewGuid(), "tmpSystem", VariablesSetType.System); + GetVariables(EnvironmentVariableTarget.Machine, systemSet); - foreach (DictionaryEntry variable in systemVariables) + foreach (var variable in systemSet.Variables) { - var key = variable.Key as string; - if (key.Equals(variableName, StringComparison.OrdinalIgnoreCase)) + if (variable.Name.Equals(variableName, StringComparison.OrdinalIgnoreCase)) { - return new Variable(key, systemVariables[key] as string, VariablesSetType.System); + return new Variable(variable.Name, variable.Values, VariablesSetType.System); } } From 66f4f69841612ad5971a13e208f035ea98364847 Mon Sep 17 00:00:00 2001 From: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com> Date: Fri, 27 Oct 2023 12:59:52 +0200 Subject: [PATCH 08/68] [EnvVar]Mark and disable editing of user variables that are applied by a profile (#29451) * [EnvVar] Mark profile variable in user variables * Mark backup variables * Add tooltip to icon, put in header and disable editing of applied var * Use completed icon instead * Better var name and comments --------- Co-authored-by: Jaime Bernardo --- .../Views/MainPage.xaml | 17 +++++++++++++++-- .../EnvironmentVariables/Models/Variable.cs | 7 ++++++- .../Strings/en-us/Resources.resw | 3 +++ .../ViewModels/MainViewModel.cs | 10 ++++++++++ 4 files changed, 34 insertions(+), 3 deletions(-) diff --git a/src/modules/EnvironmentVariables/EnvironmentVariables/EnvironmentVariablesXAML/Views/MainPage.xaml b/src/modules/EnvironmentVariables/EnvironmentVariables/EnvironmentVariablesXAML/Views/MainPage.xaml index af137c9057..312929be4a 100644 --- a/src/modules/EnvironmentVariables/EnvironmentVariables/EnvironmentVariablesXAML/Views/MainPage.xaml +++ b/src/modules/EnvironmentVariables/EnvironmentVariables/EnvironmentVariablesXAML/Views/MainPage.xaml @@ -24,10 +24,24 @@ + + + + + + + + + + - diff --git a/src/modules/PowerOCR/PowerOCR/OCROverlay.xaml.cs b/src/modules/PowerOCR/PowerOCR/OCROverlay.xaml.cs index e79d0d3ea4..60ec8b3a3a 100644 --- a/src/modules/PowerOCR/PowerOCR/OCROverlay.xaml.cs +++ b/src/modules/PowerOCR/PowerOCR/OCROverlay.xaml.cs @@ -49,7 +49,7 @@ public partial class OCROverlay : Window Top = screenRectangle.Top >= 0 ? screenRectangle.Top : screenRectangle.Top + (screenRectangle.Height / 2); InitializeComponent(); - + Wpf.Ui.Appearance.SystemThemeWatcher.Watch(this, Wpf.Ui.Controls.WindowBackdropType.None); PopulateLanguageMenu(); } diff --git a/src/modules/PowerOCR/PowerOCR/PowerOCR.csproj b/src/modules/PowerOCR/PowerOCR/PowerOCR.csproj index 5b59ab9ef8..4116b0889c 100644 --- a/src/modules/PowerOCR/PowerOCR/PowerOCR.csproj +++ b/src/modules/PowerOCR/PowerOCR/PowerOCR.csproj @@ -61,4 +61,20 @@ + + + + True + True + Resources.resx + + + + + + PublicResXFileCodeGenerator + Resources.Designer.cs + Designer + + diff --git a/src/modules/PowerOCR/PowerOCR/Properties/Resources.Designer.cs b/src/modules/PowerOCR/PowerOCR/Properties/Resources.Designer.cs new file mode 100644 index 0000000000..f50fd9ff68 --- /dev/null +++ b/src/modules/PowerOCR/PowerOCR/Properties/Resources.Designer.cs @@ -0,0 +1,135 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace PowerOCR.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + public class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PowerOCR.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + public static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to Cancel. + /// + public static string Cancel { + get { + return ResourceManager.GetString("Cancel", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Cancel (Esc). + /// + public static string CancelShortcut { + get { + return ResourceManager.GetString("CancelShortcut", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Format result as a single line. + /// + public static string ResultTextSingleLine { + get { + return ResourceManager.GetString("ResultTextSingleLine", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Format result as a single line (S). + /// + public static string ResultTextSingleLineShortcut { + get { + return ResourceManager.GetString("ResultTextSingleLineShortcut", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Format result as a table. + /// + public static string ResultTextTable { + get { + return ResourceManager.GetString("ResultTextTable", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Format result as a table (T). + /// + public static string ResultTextTableShortcut { + get { + return ResourceManager.GetString("ResultTextTableShortcut", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Selected language. + /// + public static string SelectedLang { + get { + return ResourceManager.GetString("SelectedLang", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Settings. + /// + public static string Settings { + get { + return ResourceManager.GetString("Settings", resourceCulture); + } + } + } +} diff --git a/src/modules/PowerOCR/PowerOCR/Properties/Resources.resx b/src/modules/PowerOCR/PowerOCR/Properties/Resources.resx new file mode 100644 index 0000000000..df6947f018 --- /dev/null +++ b/src/modules/PowerOCR/PowerOCR/Properties/Resources.resx @@ -0,0 +1,147 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cancel + + + Cancel (Esc) + (Esc) indicates the keyboard shortcut + + + Format result as a single line + + + Format result as a single line (S) + (S) indicates the keyboard shortcut + + + Format result as a table + + + Format result as a table (T) + (T) indicates the keyboard shortcut + + + Selected language + + + Settings + + \ No newline at end of file diff --git a/src/modules/PowerOCR/PowerOCR/Styles/ButtonStyles.xaml b/src/modules/PowerOCR/PowerOCR/Styles/ButtonStyles.xaml deleted file mode 100644 index fab21fb3ee..0000000000 --- a/src/modules/PowerOCR/PowerOCR/Styles/ButtonStyles.xaml +++ /dev/null @@ -1,695 +0,0 @@ - - - - - - - - - - - - - - M 0,0 L 3.5,4 L 7,0 Z - M 0,4 L 3.5,0 L 7,4 Z - M 0,0 L 4,3.5 L 0,7 Z - F1 M 10.0,1.2 L 4.7,9.1 L 4.5,9.1 L 0,5.2 L 1.3,3.5 L 4.3,6.1L 8.3,0 L 10.0,1.2 Z - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/PowerOCR/PowerOCR/Styles/Colors.xaml b/src/modules/PowerOCR/PowerOCR/Styles/Colors.xaml deleted file mode 100644 index 97fa005753..0000000000 --- a/src/modules/PowerOCR/PowerOCR/Styles/Colors.xaml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 7d9681ecd2533e63a13ac3a88257e698b9c7b5a9 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Thu, 16 Nov 2023 18:40:04 +0100 Subject: [PATCH 59/68] [QuickAccent]Move from ModernWPF to WpfUi (#29863) * Updating to WpfUI * XAML styler * Removing unused namespaces * Updating ImageResizer watcher --- .../poweraccent/PowerAccent.UI/App.xaml | 7 +- .../poweraccent/PowerAccent.UI/App.xaml.cs | 5 - .../PowerAccent.UI/PowerAccent.UI.csproj | 2 +- .../poweraccent/PowerAccent.UI/Program.cs | 1 - .../poweraccent/PowerAccent.UI/Selector.xaml | 180 ++++++++---------- .../PowerAccent.UI/Selector.xaml.cs | 17 +- .../PowerAccent.UI/Themes/Dark.xaml | 32 ---- .../PowerAccent.UI/Themes/HighContrast1.xaml | 26 --- .../PowerAccent.UI/Themes/HighContrast2.xaml | 26 --- .../Themes/HighContrastBlack.xaml | 26 --- .../Themes/HighContrastWhite.xaml | 26 --- .../PowerAccent.UI/Themes/Light.xaml | 35 ---- 12 files changed, 91 insertions(+), 292 deletions(-) delete mode 100644 src/modules/poweraccent/PowerAccent.UI/Themes/Dark.xaml delete mode 100644 src/modules/poweraccent/PowerAccent.UI/Themes/HighContrast1.xaml delete mode 100644 src/modules/poweraccent/PowerAccent.UI/Themes/HighContrast2.xaml delete mode 100644 src/modules/poweraccent/PowerAccent.UI/Themes/HighContrastBlack.xaml delete mode 100644 src/modules/poweraccent/PowerAccent.UI/Themes/HighContrastWhite.xaml delete mode 100644 src/modules/poweraccent/PowerAccent.UI/Themes/Light.xaml diff --git a/src/modules/poweraccent/PowerAccent.UI/App.xaml b/src/modules/poweraccent/PowerAccent.UI/App.xaml index abc58f7b3e..aabf3459af 100644 --- a/src/modules/poweraccent/PowerAccent.UI/App.xaml +++ b/src/modules/poweraccent/PowerAccent.UI/App.xaml @@ -2,15 +2,14 @@ x:Class="PowerAccent.UI.App" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:local="clr-namespace:PowerAccent" - xmlns:ui="http://schemas.modernwpf.com/2019" + xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" StartupUri="Selector.xaml"> - - + + diff --git a/src/modules/poweraccent/PowerAccent.UI/App.xaml.cs b/src/modules/poweraccent/PowerAccent.UI/App.xaml.cs index af3ff38db9..1ae590ce88 100644 --- a/src/modules/poweraccent/PowerAccent.UI/App.xaml.cs +++ b/src/modules/poweraccent/PowerAccent.UI/App.xaml.cs @@ -5,9 +5,7 @@ using System; using System.Threading; using System.Windows; -using Common.UI; using ManagedCommon; -using PowerAccent.Core.Tools; namespace PowerAccent.UI { @@ -18,7 +16,6 @@ namespace PowerAccent.UI { private static Mutex _mutex; private bool _disposed; - private ThemeManager _themeManager; protected override void OnStartup(StartupEventArgs e) { @@ -30,7 +27,6 @@ namespace PowerAccent.UI Application.Current.Shutdown(); } - _themeManager = new ThemeManager(this); base.OnStartup(e); } @@ -50,7 +46,6 @@ namespace PowerAccent.UI if (disposing) { _mutex?.Dispose(); - _themeManager?.Dispose(); } _disposed = true; diff --git a/src/modules/poweraccent/PowerAccent.UI/PowerAccent.UI.csproj b/src/modules/poweraccent/PowerAccent.UI/PowerAccent.UI.csproj index b459272213..be88b83789 100644 --- a/src/modules/poweraccent/PowerAccent.UI/PowerAccent.UI.csproj +++ b/src/modules/poweraccent/PowerAccent.UI/PowerAccent.UI.csproj @@ -35,7 +35,7 @@ - + diff --git a/src/modules/poweraccent/PowerAccent.UI/Program.cs b/src/modules/poweraccent/PowerAccent.UI/Program.cs index 9ca3de95be..d45b7c601c 100644 --- a/src/modules/poweraccent/PowerAccent.UI/Program.cs +++ b/src/modules/poweraccent/PowerAccent.UI/Program.cs @@ -9,7 +9,6 @@ using System.Threading.Tasks; using System.Windows; using interop; using ManagedCommon; -using PowerAccent.Core.Tools; namespace PowerAccent.UI; diff --git a/src/modules/poweraccent/PowerAccent.UI/Selector.xaml b/src/modules/poweraccent/PowerAccent.UI/Selector.xaml index 1f30d628e2..1396528383 100644 --- a/src/modules/poweraccent/PowerAccent.UI/Selector.xaml +++ b/src/modules/poweraccent/PowerAccent.UI/Selector.xaml @@ -1,30 +1,30 @@ - - + @@ -33,101 +33,89 @@ - + - + + + + - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + - - - - - - + + + + - + \ No newline at end of file diff --git a/src/modules/poweraccent/PowerAccent.UI/Selector.xaml.cs b/src/modules/poweraccent/PowerAccent.UI/Selector.xaml.cs index f83e20c037..14df70a72f 100644 --- a/src/modules/poweraccent/PowerAccent.UI/Selector.xaml.cs +++ b/src/modules/poweraccent/PowerAccent.UI/Selector.xaml.cs @@ -5,13 +5,13 @@ using System; using System.ComponentModel; using System.Windows; -using PowerAccent.Core.Services; +using Wpf.Ui.Controls; using Point = PowerAccent.Core.Point; using Size = PowerAccent.Core.Size; namespace PowerAccent.UI; -public partial class Selector : Window, IDisposable, INotifyPropertyChanged +public partial class Selector : FluentWindow, IDisposable, INotifyPropertyChanged { private readonly Core.PowerAccent _powerAccent = new(); @@ -38,6 +38,7 @@ public partial class Selector : Window, IDisposable, INotifyPropertyChanged public Selector() { InitializeComponent(); + Wpf.Ui.Appearance.SystemThemeWatcher.Watch(this); Application.Current.MainWindow.ShowActivated = false; Application.Current.MainWindow.Topmost = true; } @@ -67,7 +68,6 @@ public partial class Selector : Window, IDisposable, INotifyPropertyChanged characters.SelectedIndex = _selectedIndex; this.UpdateLayout(); // Required for filling the actual width/height before positioning. SetWindowPosition(); - SetWindowAlignment(); Show(); Microsoft.PowerToys.Telemetry.PowerToysTelemetry.Log.WriteEvent(new PowerAccent.Core.Telemetry.PowerAccentShowAccentMenuEvent()); } @@ -90,17 +90,6 @@ public partial class Selector : Window, IDisposable, INotifyPropertyChanged this.Top = position.Y; } - private void SetWindowAlignment() - { - gridBorder.HorizontalAlignment = _powerAccent.GetToolbarPosition() switch - { - Position.Left or Position.TopLeft or Position.BottomLeft => HorizontalAlignment.Left, - Position.Right or Position.TopRight or Position.BottomRight => HorizontalAlignment.Right, - Position.Center or Position.Top or Position.Bottom => HorizontalAlignment.Center, - _ => HorizontalAlignment.Center, - }; - } - protected override void OnClosed(EventArgs e) { _powerAccent.Dispose(); diff --git a/src/modules/poweraccent/PowerAccent.UI/Themes/Dark.xaml b/src/modules/poweraccent/PowerAccent.UI/Themes/Dark.xaml deleted file mode 100644 index 07ed9f95ce..0000000000 --- a/src/modules/poweraccent/PowerAccent.UI/Themes/Dark.xaml +++ /dev/null @@ -1,32 +0,0 @@ - - - - Dark.Accent1 - PowerToysRun - Accent1 (Dark) - Dark - Accent1 - Black - - - - - - - - \ No newline at end of file diff --git a/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrast1.xaml b/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrast1.xaml deleted file mode 100644 index 42d269d7fe..0000000000 --- a/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrast1.xaml +++ /dev/null @@ -1,26 +0,0 @@ - - - - HighContrast.Accent2 - PowerToysRun - Accent2 (HighContrast) - HighContrast - Accent2 - White - - - - - - - - \ No newline at end of file diff --git a/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrast2.xaml b/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrast2.xaml deleted file mode 100644 index 825f0267bf..0000000000 --- a/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrast2.xaml +++ /dev/null @@ -1,26 +0,0 @@ - - - - HighContrast.Accent3 - PowerToysRun - Accent3 (HighContrast) - HighContrast - Accent3 - White - - - - - - - - \ No newline at end of file diff --git a/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrastBlack.xaml b/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrastBlack.xaml deleted file mode 100644 index eee95d5823..0000000000 --- a/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrastBlack.xaml +++ /dev/null @@ -1,26 +0,0 @@ - - - - HighContrast.Accent4 - PowerToysRun - Accent4 (HighContrast) - HighContrast - Accent4 - White - - - - - - - - \ No newline at end of file diff --git a/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrastWhite.xaml b/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrastWhite.xaml deleted file mode 100644 index 5a9f6df8ab..0000000000 --- a/src/modules/poweraccent/PowerAccent.UI/Themes/HighContrastWhite.xaml +++ /dev/null @@ -1,26 +0,0 @@ - - - - HighContrast.Accent5 - PowerToysRun - Accent5 (HighContrast) - HighContrast - Accent5 - White - - - - - - - - \ No newline at end of file diff --git a/src/modules/poweraccent/PowerAccent.UI/Themes/Light.xaml b/src/modules/poweraccent/PowerAccent.UI/Themes/Light.xaml deleted file mode 100644 index 22f8213eee..0000000000 --- a/src/modules/poweraccent/PowerAccent.UI/Themes/Light.xaml +++ /dev/null @@ -1,35 +0,0 @@ - - - - Light.Accent1 - PowerToysRun - Accent1 (Light) - Light - Accent1 - White - - - - - - - - \ No newline at end of file From 67b18d0e987cf0be9dec6d2bb260c066036e4b2d Mon Sep 17 00:00:00 2001 From: Physalis <143352299+Physalis2@users.noreply.github.com> Date: Sun, 19 Nov 2023 16:36:12 +0100 Subject: [PATCH 60/68] implemented ctrl + w to close peek. (#29895) * ctrl + w to close peek * Update MainWindow.xaml * Update MainWindow.xaml.cs * Update MainWindow.xaml * Update MainWindow.xaml CloseInvoked * Update MainWindow.xaml.cs EscInvoked -> CloseInvoked * Update MainWindow.xaml.cs XAML Styler extension --- src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml | 6 +++++- src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs | 2 +- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml index b066bc00a1..e3c8c7d4ec 100644 --- a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml +++ b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml @@ -22,7 +22,11 @@ - + + diff --git a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs index fcfaf220b0..7fc54a5520 100644 --- a/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs +++ b/src/modules/peek/Peek.UI/PeekXAML/MainWindow.xaml.cs @@ -116,7 +116,7 @@ namespace Peek.UI ViewModel.AttemptNextNavigation(); } - private void EscKeyInvoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args) + private void CloseInvoked(KeyboardAccelerator sender, KeyboardAcceleratorInvokedEventArgs args) { Uninitialize(); } From c095cdde4ed1c10a8cc753a2a2d32b44d50668b9 Mon Sep 17 00:00:00 2001 From: Niels Laute Date: Mon, 20 Nov 2023 11:23:26 +0100 Subject: [PATCH 61/68] [PTRun]Fluent UX and switch to WpfUI (#28538) * New design * Updating icons * Adding keywords * Only show plugins when search query is empty * Update App.xaml * Update App.xaml * Filter plugins * Fix image name * refresh plugins overview * fix context menu icons in win10 * Remove unused animations * Resolving crashing * Fix focus visual and a11y * Remove unused styles * Revert "Remove unused styles" This reverts commit 65f29ae6ed8e62bd75112ee835f8c107a90c49aa. * Fix value generator light vs dark icon * Fix tab characters * Fix CI * Update SettingsReader.cs * Adding common OS check helper * Update MainWindow.xaml.cs * Fix background * More tweaks * XAML styler and updating legacy brushes * Updates + xaml styling * Fix CI * Fix CI2 * fix font family and overview refresh * Delete shutdown.light-1.png * Updating icons * Set DPI --------- Co-authored-by: Davide Giacometti --- src/modules/imageresizer/ui/App.xaml | 2 +- .../Images/unitconverter.dark.png | Bin 360 -> 364 bytes .../Images/unitconverter.light.png | Bin 357 -> 328 bytes .../Main.cs | 2 +- ...werToys.Run.Plugin.VSCodeWorkspaces.csproj | 4 +- .../Images/code-dark.png | Bin 353 -> 0 bytes .../Images/code-light.png | Bin 353 -> 0 bytes .../Images/code.dark.png | Bin 0 -> 437 bytes .../Images/code.light.png | Bin 0 -> 405 bytes .../Images/folder.png | Bin 1563 -> 1372 bytes .../Images/monitor.png | Bin 4972 -> 1867 bytes .../VSCodeHelper/VSCodeInstances.cs | 4 +- .../plugin.json | 4 +- .../Images/ValueGenerator.dark.png | Bin 882 -> 492 bytes .../Images/ValueGenerator.light.png | Bin 1282 -> 468 bytes .../Images/Warning.dark.png | Bin 300 -> 966 bytes .../Images/Warning.light.png | Bin 300 -> 1036 bytes .../Main.cs | 2 +- .../Images/WebSearch.dark.png | Bin 1053 -> 871 bytes .../Images/WebSearch.light.png | Bin 1037 -> 840 bytes .../ContextMenuLoader.cs | 6 +- .../Images/Warning.dark.png | Bin 300 -> 959 bytes .../Images/Warning.light.png | Bin 300 -> 1023 bytes .../Images/copy.dark.png | Bin 422 -> 391 bytes .../Images/copy.light.png | Bin 374 -> 372 bytes .../Images/delete.dark.png | Bin 422 -> 660 bytes .../Images/delete.light.png | Bin 360 -> 626 bytes .../Images/file.dark.png | Bin 296 -> 387 bytes .../Images/file.light.png | Bin 271 -> 337 bytes .../Images/folder.dark.png | Bin 288 -> 407 bytes .../Images/folder.light.png | Bin 248 -> 398 bytes .../Images/user.dark.png | Bin 776 -> 640 bytes .../Images/user.light.png | Bin 655 -> 598 bytes .../ContextMenuLoader.cs | 10 +- .../Images/Warning.dark.png | Bin 300 -> 959 bytes .../Images/Warning.light.png | Bin 300 -> 1023 bytes .../Images/indexer.dark.png | Bin 592 -> 622 bytes .../Images/indexer.light.png | Bin 503 -> 583 bytes .../Images/app.dark.png | Bin 166 -> 349 bytes .../Images/app.light.png | Bin 154 -> 331 bytes .../Images/disable.dark.png | Bin 803 -> 765 bytes .../Images/disable.light.png | Bin 673 -> 685 bytes .../Images/folder.dark.png | Bin 288 -> 407 bytes .../Images/folder.light.png | Bin 248 -> 398 bytes .../Images/shell.dark.png | Bin 450 -> 503 bytes .../Images/shell.light.png | Bin 384 -> 484 bytes .../Images/user.dark.png | Bin 776 -> 640 bytes .../Images/user.light.png | Bin 655 -> 598 bytes .../Programs/UWPApplication.cs | 6 +- .../Programs/Win32Program.cs | 8 +- .../Images/shell.dark.png | Bin 450 -> 746 bytes .../Images/shell.light.png | Bin 384 -> 685 bytes .../Images/user.dark.png | Bin 776 -> 640 bytes .../Images/user.light.png | Bin 655 -> 598 bytes .../Plugins/Microsoft.Plugin.Shell/Main.cs | 4 +- .../Microsoft.Plugin.Uri/Images/uri.dark.png | Bin 814 -> 411 bytes .../Microsoft.Plugin.Uri/Images/uri.light.png | Bin 1746 -> 394 bytes .../Components/ContextMenuHelper.cs | 4 +- .../Images/info.dark.png | Bin 722 -> 761 bytes .../Images/info.light.png | Bin 702 -> 710 bytes .../Images/windowwalker.dark.png | Bin 474 -> 564 bytes .../Images/windowwalker.light.png | Bin 417 -> 536 bytes .../Images/calculator.dark.png | Bin 315 -> 523 bytes .../Images/calculator.light.png | Bin 284 -> 480 bytes .../Images/history.dark.png | Bin 414 -> 692 bytes .../Images/history.light.png | Bin 414 -> 660 bytes .../Main.cs | 2 +- .../Images/oneNote.dark.png | Bin 572 -> 550 bytes .../Images/oneNote.light.png | Bin 554 -> 525 bytes .../Components/Utility.cs | 6 +- .../Images/PowerToys.dark.png | Bin 166 -> 550 bytes .../Images/PowerToys.light.png | Bin 154 -> 490 bytes .../Helper/ContextMenuHelper.cs | 8 +- .../Images/reg.dark.png | Bin 270 -> 554 bytes .../Images/reg.light.png | Bin 278 -> 528 bytes .../Images/service.dark.png | Bin 454 -> 830 bytes .../Images/service.light.png | Bin 454 -> 771 bytes .../Main.cs | 8 +- .../Components/ResultHelper.cs | 4 +- .../Images/firmwareSettings.dark.png | Bin 639 -> 579 bytes .../Images/firmwareSettings.light.png | Bin 690 -> 566 bytes .../Images/lock.dark.png | Bin 225 -> 496 bytes .../Images/lock.light.png | Bin 227 -> 472 bytes .../Images/logoff.dark.png | Bin 211 -> 597 bytes .../Images/logoff.light.png | Bin 221 -> 563 bytes .../Images/networkAdapter.dark.png | Bin 329 -> 634 bytes .../Images/networkAdapter.light.png | Bin 315 -> 573 bytes .../Images/recyclebin.dark.png | Bin 193 -> 660 bytes .../Images/recyclebin.light.png | Bin 194 -> 626 bytes .../Images/restart.dark.png | Bin 344 -> 662 bytes .../Images/restart.light.png | Bin 345 -> 640 bytes .../Images/shutdown.dark.png | Bin 370 -> 746 bytes .../Images/shutdown.light.png | Bin 374 -> 681 bytes .../Images/sleep.dark.png | Bin 389 -> 726 bytes .../Images/sleep.light.png | Bin 394 -> 679 bytes .../Images/Warning.dark.png | Bin 300 -> 959 bytes .../Images/Warning.light.png | Bin 300 -> 1023 bytes .../Images/calendar.dark.png | Bin 625 -> 456 bytes .../Images/calendar.light.png | Bin 631 -> 452 bytes .../Images/time.dark.png | Bin 879 -> 737 bytes .../Images/time.light.png | Bin 906 -> 701 bytes .../Images/timeDate.dark.png | Bin 1172 -> 767 bytes .../Images/timeDate.light.png | Bin 1186 -> 689 bytes .../Main.cs | 2 +- .../Helper/ContextMenuHelper.cs | 2 +- .../Images/WindowsSettings.dark.png | Bin 398 -> 941 bytes .../Images/WindowsSettings.light.png | Bin 412 -> 861 bytes .../Images/WindowsTerminal.dark.png | Bin 329 -> 503 bytes .../Images/WindowsTerminal.light.png | Bin 320 -> 484 bytes .../Main.cs | 2 +- src/modules/launcher/PowerLauncher/App.xaml | 21 +- .../launcher/PowerLauncher/App.xaml.cs | 3 + .../PowerLauncher/LauncherControl.xaml | 140 +++--- .../launcher/PowerLauncher/MainWindow.xaml | 232 ++++----- .../launcher/PowerLauncher/MainWindow.xaml.cs | 18 +- .../PowerLauncher/PowerLauncher.csproj | 1 + .../Properties/Resources.Designer.cs | 13 +- .../PowerLauncher/Properties/Resources.resx | 3 + .../launcher/PowerLauncher/ReportWindow.xaml | 132 ++--- .../launcher/PowerLauncher/ResultList.xaml | 467 +++++++----------- .../launcher/PowerLauncher/SettingsReader.cs | 9 +- .../launcher/PowerLauncher/Styles/Styles.xaml | 154 ++++++ .../launcher/PowerLauncher/Themes/Dark.xaml | 29 +- .../PowerLauncher/Themes/HighContrast1.xaml | 29 +- .../PowerLauncher/Themes/HighContrast2.xaml | 29 +- .../Themes/HighContrastBlack.xaml | 29 +- .../Themes/HighContrastWhite.xaml | 29 +- .../launcher/PowerLauncher/Themes/Light.xaml | 29 +- .../PowerLauncher/ViewModel/MainViewModel.cs | 45 +- src/modules/launcher/Wox.Plugin/PluginPair.cs | 14 +- .../ViewModels/FancyZonesViewModel.cs | 1 - 131 files changed, 772 insertions(+), 745 deletions(-) delete mode 100644 src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code-dark.png delete mode 100644 src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code-light.png create mode 100644 src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code.dark.png create mode 100644 src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code.light.png create mode 100644 src/modules/launcher/PowerLauncher/Styles/Styles.xaml diff --git a/src/modules/imageresizer/ui/App.xaml b/src/modules/imageresizer/ui/App.xaml index b11e65520b..b43baa5b60 100644 --- a/src/modules/imageresizer/ui/App.xaml +++ b/src/modules/imageresizer/ui/App.xaml @@ -38,4 +38,4 @@ - + \ No newline at end of file diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/Images/unitconverter.dark.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/Images/unitconverter.dark.png index 81f628699a8b4891e0e4fd43dc5b1d0dede0bdcf..d49fdeff4a325b4a0ca30dff890df36196a57ff0 100644 GIT binary patch delta 338 zcmV-Y0j>V%0_*~iBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yP@VBjVlj12(&!RR@7b6`en+zb*$N*y4womHaSMfbTHem zcys8W@`2Meg@+Zk86NYW&-6!o0R!uU=auj6&fnAPVSjLV{$^(eyBenk28EhGwJI#k z42SMNx;06VgCSz}Z=2aJ9~l0hbpIi|F{_3DK$+dTT)}hVct zhQ&+fTxDi(^W6E6u^})hu7V+9$`tu|>;kGs>zB58cd>6!J<5Dw(j&$M&yNfnmQ*mr z2iYXZueW>_xnk0yFb{=>5AFgEN(~=G9F&m>77$lQ0Z1q)C@%P5qo7#zczNB@KbL|V cm_!~h7Ejz?9(g<6g#idWUHx3vIVCg!082uT4gdfE diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/Images/unitconverter.light.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/Images/unitconverter.light.png index bc47b1bd80039cb9c945e1ca7e05ee7f3448bb41..68a6196c085fef49235f5c3d1dbb6708f404cfca 100644 GIT binary patch delta 302 zcmV+}0nz^D0>}c8BYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPVtNje7(L zqk|o_jVqkf%K@{P?iE5(+ouhofJxlY2hEpM!JpWgQCVnORvMXwei_TnLKZLxW+7|b zJJ2hH>MXM*J#ccqZ5LZ@h+qh1LUq4k65NqlLkBV}=D=c32a7o=bRffnE%0DV2eXhA zjRW`MTH4_FWG8DHWrxLOi^+YH4{+XQCFCD?0!rqlZs4D{KmY&$07*qoM6N<$f>Y>s AMgRZ+ delta 331 zcmX@X^pt6Way_Gtr;B4q1>@VBjVlj12(&!RRn%S5`en+zb*$N*x|t7o3JwUeNs8A6 z-fV9D&Qh|kI8|Wr_kWjz8<_rRFJO?jdOORuXEO7LhregYGJSZ+%EZL*@c8}Xyo?Mp zKJD?pY01xHmr$L`f1bHv(xd%Bhg6R;KbZ80F~jpC!-gdl3=u(@V! z8~pX_Vm33Vwlb+OariTtxPVC%g3$!XWi)BxIM2++#KF&OvWT_*Rro3WxlAGp82mdA W9JCc?I5v|32s~Z=T-G@yGywo8&wxJw diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/Main.cs b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/Main.cs index a8845cff30..3e4b9285ea 100644 --- a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/Main.cs +++ b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.UnitConverter/Main.cs @@ -98,7 +98,7 @@ namespace Community.PowerToys.Run.Plugin.UnitConverter PluginName = Name, Title = Properties.Resources.context_menu_copy, Glyph = "\xE8C8", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.Enter, Action = _ => { diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Community.PowerToys.Run.Plugin.VSCodeWorkspaces.csproj b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Community.PowerToys.Run.Plugin.VSCodeWorkspaces.csproj index 857a171e25..a7cfc70a95 100644 --- a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Community.PowerToys.Run.Plugin.VSCodeWorkspaces.csproj +++ b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Community.PowerToys.Run.Plugin.VSCodeWorkspaces.csproj @@ -65,10 +65,10 @@ PreserveNewest - + PreserveNewest - + PreserveNewest diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code-dark.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code-dark.png deleted file mode 100644 index 11fbf764a07a60bee0ae9634bb494c248f386c25..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-s#sNMduK)l42Qq;q@nFKI5Obg& z!IB`qU)#*N#`7}Xy}SL#nd#?a z?J9CvRh%>1kDrM4IA62(@zLwMPYB)FI(72@=EC0}?{1a9syk&dx1@wGqa@H@44$rj JF6*2UngGEUu!H~r diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code-light.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code-light.png deleted file mode 100644 index 41256324ed700aa466d8a82836d366b17006740c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 353 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-s#sNMduK)l42Qo-p)&%Foq>{PJY5_^Dj45hJ=%EKK!o99$A6By^_x#S z9yChVJC@#dck6jy+oipC`>kFduB%}?!og@@J&AA=VhEIkmM%2aZ6mEOuD228q6ysP|~J-;7d za_r4&c;9$Z!1e1+u8qCt5~b%mtL^IF=~aI8VXeXXeV4C)e^?vO%Xs(h_8(`apO3Yx z$YoV=&TKz^BHH78&ECgHukSt~bZ6_-$^V-Re}BBYRsO2(l*QbV626R*piuI3^>bP0 Hl+XkKzr=%W diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code.dark.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code.dark.png new file mode 100644 index 0000000000000000000000000000000000000000..208b6ed6b1a5a773e0baa5a209b09caccdd9b29c GIT binary patch literal 437 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC&H|6fVg?3oVGw3ym^DWND9BhG zZ%FkUOy+wKo?+Z1_ zMnQ>2K_j7@33(H87HAzg$;sT_tXjiZTW7p34CD=+~?nA+E zGWi+jl`Sq<6?N`1`@ZX)-laA2Maw2OTJH?7X{^h!;9GgCSnkm~$@9#=xA)n9D$VN& z_{OB>xIIWxabkh?B-sQX6T9dqLTN=z$6U()zti~Hv@4n*-X1Wa_>(!GiW-u zUHAV2R^D``$y=ZPXf!f;(`|O?h$DB@uWwZXt1?!y%Q)r4D4Vd!W*lB|OUBT$@9~Te Y{1^RVx^g$>fZ~C{)78&qol`;+01Z2-AOHXW literal 0 HcmV?d00001 diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code.light.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/code.light.png new file mode 100644 index 0000000000000000000000000000000000000000..65abbf44c96a450513e7d178aa80eb1f29840abf GIT binary patch literal 405 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC&H|6fVg?3oVGw3ym^DWND9BhG zbK*wY~>_Js(BZ=tV5M z{bBCfu&cY23NAI|L(uY!2W<6gwoW&3C~p(Jv-;naIN!uQov$Ax%(hP6Wqr5CZH0Pg zmds(D*+rReP4x@Alkc%_v*OzC-SLXT)g^_N?pSlym2nwpm@|3Ex>Ppkd`55*6!OO+iD)EDrG*e#ZIJ8Q}K l`9a#sP5(bRaXdUH{dZZNZPdD}{=iUV@O1TaS?83{1OOayqsjmP literal 0 HcmV?d00001 diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/folder.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/folder.png index a739d16fee10d6d4df35c29e55dea8b2f233aa80..cb98e2f43c5e6a3d95230860a59ef0a46a2199a1 100644 GIT binary patch literal 1372 zcmV-i1*7_jP)V&P6{yiXw03yvs)6DA=kJ`(ei|g8Nj){II-nMu zLgfIn(~Kw9Of>zfRU7O%sc#>n-aYcf*-Ov(3&eJ?7oTY-zae=maUfIQ#_VO<)M?Y0;^%izM_>8yier(zn z4T$#V0FvrJq3sLG%KWGs>*odYeLlVO{=+}c^x?hJ*-Rv0)8+NHs`fuI{@V_$;6sif zQ#JN-r=Xg?g{|HDxOMwJj2aYHF9Kj_@)khX&YjgmaO-mDnXpcnZtvsZ!xK~fM)ttm z7;pc<*O>0?+W;AFkZ$CDc8vM)KTfF8#t~4G%N&B#NM+R#3cZ0V6eV=<@CT!#XTbH# zvV}MSQnD5v9;Q9bh< zK;NHP-}f(p%{*XplB{0<-;D{3AdV}|3qXp}YdyN?AzMCfko}R7zz=~7B}9S;N%ou=_1auRN_iONY5=gU zd$%h_+1-LikPwMvMi@N!iiZdQxN#Xvv;*#u-7ViUQgmzUAi;{3NCvAX;d zT})=bcz63iKG*9!0;<>JIT;s@k83TBj52t!RZ<)wLTUu1`EWdi3i##x$le ejcH8(XZjDA#(q~BTz+8y0000X;ji#6bC7$QYsv$NJUPX)hSF-!wS>JBqB>IO(fGuY|&gR2QwEKJDOpZRF;`F z4b5rF4IR`>gn#8SsG(H2q=KSp;)05hX5jp7&U~2s4u@7#NT%Y7eS#zAiqVww3e z2n2#4@AW(ko)Zgu2^@@WM}|2N$YLeg^Jl+!=vX)G#@WDC%)Yp{I%4%)XL1P+f0f?# z;8jOOB-h!0cvXExc-@o#6*Gg%JuyU8zI^P3KI1Z%Y4FTGU*%|1G~pELwd76OnG?W^$7&_ow&Nd|)GU#l4!M_*^3>RYn& zoNH8&S*)ZUvq5$xezZhx?qh5c^X}^N+b6=$`sihW%8M*$R8%ruy0W}-5AwR6=({@; zx+SE3W!$c7@uMyBY0(NCejK*V51qs=_TZZD>%Sybh3t0SKy}Oe_C#6hHTEYW~Y1m)HjIc z8v~XlS`0IUbI&$fZ#ARVW?h-tWutV`x+b5Oz3z|UEfsmsG`@%5Ez;bnt?e|H_PCf8 zmei~E6}I`bX;h^_+M6V|8<=eq17bqrP<(^QMCI}9w-Bd`lEeFNNv&p|_Rp5;Me&`w zykr#)jRO=37x%#;;y1L6UGDq%N&YY;>_T}$(P$dxc&xD=EfB zfrLrfYQe<3uoT<+}RzrCS*aTJn*BPX>Q~|Dlcz9k;N|(yT5))BAn1k8F}A z-0jweFjL$Gf$L8jnGUQ8i%4{o6-3Lx6%nKjW1O?kkXT(VJ zf9njIn7~^{Is?FSB4}U;g~8w`&LHEFt;iVhycPtdB1}MrbC=-}G%*}6T57BK0dD!o zwyM@>ApvGVBL^qrXisalF9WOcM5IU%W<`V!coUU$mcQ^ zcK{rO3ICoK79j8j(5RRUTaeZQ6>~WUgfA2Y#hT6HZ~mN2TOG4nIX2ETm{%DKss_Mm z$)F|z+X)QA{=)4L7wMn|plW z4K1$iLGF6zPoc0Y5HZ0`=Tj2!4{x>mPgNi$o`xq;AO{Nk&x*pjAQYcL%#z>2%6+w; zDxc(OyKAq00v0!pT&>S0Nh4A zU~p<~#SU4)=8NSyYHW0#f->FUo6Lwd8~*Oc3l^CQqY=O0YX{MXoEBQiL~qYx58AK) E0Ek`dqW}N^ diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/monitor.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/Images/monitor.png index 8204ca9e794558527fad0a464e7dbd5d601da957..06b902e373d9bff720e14a5fd0d98f0959ff9293 100644 GIT binary patch literal 1867 zcmV-R2ekN!P)Xs`u{0wK{*P`W`%=LQKX5;`h(NHi#-L86J=1ks@U2SEZ+K!HIK z5|tAH5eWsZBB*?p3|x$NhPU&z^WL3(r&BC}a+}ES-oAaa^Y#19>;qVg#aN90^+?@` z>)&iIKLY=(^dK$6e{5V>du6LTH)g|J4Z|%yLfQw^wyi} zudT)DmH{7L`FQ2-FSmc&fBHNSi4eZ3ygDbp6U&w7{K%f`pYn{?peeztd08q?qg;I! zUY6&{Z{hJjhw$R_FRfmF@0}gfc_|uj=hiLw`^mHL$Hhx5j}VgxZ!Sm)kX(5dTJBLd zC@)}`C)O}E&&6&emPH~9n!l+m11#&yKIM0LsD|?X_MYhS!WUQJ<`3USmD>i4)ObW9 z-Ziri8^N{#h%gF*GbJ}jj1}dZ`Jx*eU5q!wzzkrqN(!PY$DR^HWo-!nphXe*Pk1gyBWq_7iN>0Pk{dbA0Ddc@xKR~T zWyQYCN|SlD*_$jKG&TG^PdDBiEd^6~19_g*SjAP0l%*7CqoDLaymU zHCNdnNiUWyhKZqAfo@8PVv5ybOs2SoW${&UP}2*O;|!)oVAQ<$Sla^xT>z_>L=i;L z#Fn(6?ChcnL0d-Q6_bS_l7SdFrj|M&U{n&G$jYGVnOeXVFErnoX-CxstQa4suuFBKy8FX=A)`S)XFx+fRe<*B(<8N z0@hi?(;!4an73Pv<9eM-Cf5p@gSwNhkx~J0G7XIxfFjtuYXDU~j(}>FdMOA-7EXs& z#Z@U;=d`G`hP>*sgG-tzQRsdeDWVC@XWM`R@PTl8?PoL>QHoXS=CxB?vxEy^0{5+7E$cf)GIJf;f7ejE+g@cWMN{XjDqNfS0|MsPcEn?~t#c!1Ua9DvfeFibkH# z0UKg0I}j8H<=<$U0W30G>O_waw859G74YZMCP1vFK?byoqZu8W!RQRMo=M4JRvJ}S zm;gx4Y2)TB-iyrCija6)iYc!_i3C|!OC5zN)|FHv4FTLUq>$5S=mtT;oV=*0C#{35 zz_m6(pu?O`Rv)~}tc{|woTgBqYXfz}LXvcv#Q@9-`Wy-wMQ>NWC-m^r1Q4d!&`~W& zMw2ENgsusylTtl*==>xe9Y4?j80Tt#9y?HIGZWQ_S?gQb2?I;17g0+&R)>VBM(_fJ zF4n951RS&sXc!d!(g=92o3~nC4b+Ks(^kPD?P=n@d0*KHCH&L@uCkNJK|aNaLyRf~{1PEB8nx(-jx|8TXEaL2IL01!I00*m0m9)M z45a9u^nPDFZLDL*QIQ`T$K>s^)-hS@YoqmP$b?*E|>dDt_Q8lHU^YHh3_cr0Eu1rPsdL|Ob z<{MLXzW(y_YsVV!AjStDZSFLeXFAh6@4vgT3J-WJ!3m7P;1ngvkYralp>aY6l%_Auz6wa)g72)%pHNNpL}{H_4{w>ttg~rbu_x~_vO+=A@v$ie}7}^lGP$6 zdJYf4?%wVb&D7g4$C%rIpML%^ojG$hMv!@06F+kHQBgJ{X@7qY<{fhz@MwQ~!AA|q^002ovPDHLk FV1gSGU)cZv literal 4972 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 diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/VSCodeHelper/VSCodeInstances.cs b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/VSCodeHelper/VSCodeInstances.cs index 213dbed511..7e74990df4 100644 --- a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/VSCodeHelper/VSCodeInstances.cs +++ b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/VSCodeHelper/VSCodeInstances.cs @@ -1,4 +1,4 @@ -// Copyright (c) Microsoft Corporation +// Copyright (c) Microsoft Corporation // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. @@ -41,7 +41,7 @@ namespace Community.PowerToys.Run.Plugin.VSCodeWorkspaces.VSCodeHelper { int bitmap1Width = bitmap1.Width; int bitmap1Height = bitmap1.Height; - + bitmap1.SetResolution(144, 144); using Bitmap overlayBitmapResized = new Bitmap(overlayBitmap, new System.Drawing.Size(bitmap1Width / 2, bitmap1Height / 2)); float marginLeft = (float)((bitmap1Width * 0.7) - (overlayBitmapResized.Width * 0.5)); diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/plugin.json b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/plugin.json index 9645f81afe..2c6d9cb70d 100644 --- a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/plugin.json +++ b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.VSCodeWorkspaces/plugin.json @@ -9,6 +9,6 @@ "Website": "https://github.com/ricardosantos9521/PowerToys/", "ExecuteFileName": "Community.PowerToys.Run.Plugin.VSCodeWorkspaces.dll", "IsGlobal": false, - "IcoPathDark": "Images\\code-dark.png", - "IcoPathLight": "Images\\code-light.png" + "IcoPathDark": "Images\\code.dark.png", + "IcoPathLight": "Images\\code.light.png" } \ No newline at end of file diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Images/ValueGenerator.dark.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Images/ValueGenerator.dark.png index b94d83c3002a096873b90e0f40497abb6b145a40..2c351b98d9324247e56dc519c5460de845f0373f 100644 GIT binary patch delta 452 zcmV;#0XzQk2J8bNiBL{Q4GJ0x0000DNk~Le0000m0000m2nGNE09OL}hmj#Pe*u9> zL_t(|0qvQKaf2`nhSg4x4ax?|2Cz}P0c?;F7$GaLLE8ddL_A0>wTIh)BID!v}ogdK!f#?{AHJSy=$5K?Eeg#fMjTaB=`kNcH-X zx3$J@>Bxj&&TehqJ-fySYX$bK|D~{tu?~PAw?7KI9WL^*eDvsyf3d;Zr*8f)6ZMm0!e;D`(b@5?9 zeT=RxD#hiP4snb&U_%2TaFLIV<)5GLQoD~2Rz+N}e)<9)5GuggN$oy9SSiqqPpY+F zgq3M&6T`dX|aOfCmR zZEtERz_(N4dOVZv(2_Lzh&akl8>XYKf$ciF2k_Y-Oni56%Q+p^Xke2ljJ7Pm!_)pJ2blnE;LPf7n)aC}CMz zbh%720ThLB6e+v1wJ}G4PJs4Rcm+S&V}$Y<{qRHUm_ZIXC`HP9^e60C%O}hC1u1JJ zpakEuuF?14Q_03+pGGWi7~~v*kjq6(auiF(_@?0@W&)H$_v=Nb=2*)YhMsrvI6i=) z;WqdI%}Tt!e0zr`vuiODp(A3lrlAa!j?h@l{nUvdH ziWDMP!R~wtgh3tC#-U3uGYVm3mNweUn-!N2NcFP9jq64)Blb1I$dK3(o3l%2H1r5? zS9Lwoj=^>W4jB1vu|nVtt3z(-&=3`v+t$Gjfj8HfD3Ce67vy(Ee{{}{PSMDaTXesn z34yb+f`12O=tqmGq`)wA2Y7c;%zJ>%Ip&z}eQ@pgjrPs!5IGaD@E9?;uD7XiWty6l zb9mtR0Oc`aFoS=C{`TB@$}Og&Yhq(>(KFv&De!MnP7)I7TVBPiMHiEcqxA_#(u?cEd6Whho-WF!jbyQZ2y*fBkYqP2!bF8f*=TjaF_fA XUbtbJ^*?f(00000NkvXXu0mjfj1P}7 diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Images/ValueGenerator.light.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Images/ValueGenerator.light.png index e63953a560ed818c41e72fe42be0c3f063e4dc07..c581f1f1a9e606de03f65218d289750f99cc5e1c 100644 GIT binary patch delta 428 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 RX8;|};OXk;vd$@?2>=Z^akl^f diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Images/Warning.light.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Images/Warning.light.png index 37dd08c87e648f0cb435db97195ea016bb7328bb..466519ba58602119c1292ea7362edc6054609e1c 100644 GIT binary patch delta 1026 zcmV+d1pWK00*nZd7=H)`000120{Mpk000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj8p-DtRRCodHnN4mJF%-w2?MbBu7FqHUAlap< z5FfjyNF*od5ta7L4R4anlbjIo;aRK#xr9G zNb{4T+L>|e_n!U!whNGxlk;DL;16(AE5Gyz*c9L?>!8HG>SGt|#_7ddFpO~n-q#*( zy2R^6JtHn|ubrOnfkBKKa8SEbDPVE{2vughGP=I}S#3F^5f}o4LD=B8#o!Sjr|1rteDg}Fuz!4O8w_GB0>1Z&btdWr*mU_ko-Rj^*_!a6A9U)umGzVFU%&vyBH(-f z21H?B44%{Y=r7*Bs8dXOU6P8(8ULfjG? za80lFMR}HJ>0(0M5*d(0w6q7Hh})okZzECrBrhisEnQS`qky_e(yF!rviEgGOP4I- zre%PiHYM-tik2>1+@_+CK-{zpD3HR|Jkc`2`hW4ojx27vQHV9b_dd|hq(NA;Od*RK zkAjZ4#TqazT6C!Eee79#+@nd>iz03%rr_PUHgnI!>N%Gm(oN3&DAe;ayH9G)yHA=M z0XF#8qMTKahhsGATiU9d-9N!7VqjM)*8MJt8(`3>E>)$$L% zoqy)#ByGpyHtFBPlQVaCm=T0TD~0!6?ArdlDEl3D)fl@NRa9|1S}8}S)sO+IXd#bw zQ_X#Z10h0_y^c1jxOp?q&mjYXgUGmJr*U$z3n?IgI=(O=G{SB=?ch;}6Sq(r<#SdT zAYTtIib4Is21Rt7l_+&y9Dl3I&%|yqMn7Bfq`ME&XX-bN+rN2#1%*%V_`VKz;J{GgpRT@9AgG?j{*@Z!$ly; z%y5(a+8&@fo{}KHUB!tPv8d;yqKwM2qAi^T zF=_`Vc^1rOiB>DL<5@IMv`EN%wIBymhZ4sg5yuG}EREaMIC8X_4lLkcTHU2!pxLA_ z@$>oDWqp$>rm22B({#XMyQ-swy~@V?O2!cDT^ncE1aCG`nIP4)fl2g$ZsN>NHZz{R cK4Sa~t-_X;4-NLu06Lt()78&qol`;+0A-kA(EtDd diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Main.cs b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Main.cs index 17004a9c2d..96864d1de7 100644 --- a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Main.cs +++ b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.ValueGenerator/Main.cs @@ -118,7 +118,7 @@ namespace Community.PowerToys.Run.Plugin.ValueGenerator { ContextData = request.Result, Title = request.ResultToString(), - IcoPath = _isLightTheme ? "Images/ValueGenerator.dark.png" : "Images/ValueGenerator.light.png", + IcoPath = _isLightTheme ? "Images/ValueGenerator.light.png" : "Images/ValueGenerator.dark.png", Score = 300, SubTitle = request.Description, Action = c => diff --git a/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.WebSearch/Images/WebSearch.dark.png b/src/modules/launcher/Plugins/Community.PowerToys.Run.Plugin.WebSearch/Images/WebSearch.dark.png index ac826e446004153aee7bb39b2a404af573710d3c..76a1dba93f47c3853de92a393fa0f7960fc57b21 100644 GIT binary patch delta 849 zcmV-X1Frm?2=>R&gJK#DX9Z-Txpaf4UU{ZlE z6+kKw9dI4INMrf3Ua$2rGPz86GdqB_+TFKWeJqrE;)(woD}R*<07~<*HB!0H!by*d zk#{3+R#vOkPxZH9f-a2IMs7%lHqsbbt4D(bo(s*xh!{sZ#AUp8M6Dbm`q=h^S`x;= zQE=S43{vccz8gm3B=m#xQK;MyoM|JKYt!U;?XhuS8MmWTvHlk4tR#fso8E!VHYF8d ztCh%NJi2*EV1GPWYu2tw+djfx$w$HCt5NrWWmgJ*I~7d8E}aV{Ypa>hc@x`o{K~T1 z2s%e!yT^8&VAqmOUt%$=do3A3SEoI83ARfb;DipfeNriK*{9e~=-Co_1)0EF5jw%)|@Q)1ze|FOohJW+o?6O~yzI^WFLfj&Ot}N*K z9CHi+$UH$u_>BArml1~Ra)Wdn2nmh6NGc<~Gulz8(QW;oKq5egJv?c~_%&f`7EID<60W@cMdinr7$rOD z$BgHK?4(?DRZdctfhsTM8%tic?E`K=H@Vs$hcwI6e4f!r<4$@vLAzvM~ z?)lz{4Nf|0+h-dUmmoc%qlwPE+X>uv|2atlfy)4l=hFOpQ*?*4Q$(=VX^G*8h$Jw~ z?#>guMV|XoN5s~8gRYcLE|cFddoqZshs0e{jr2fJFaC$K(GiOMyV5R{t6t35~>e?I)gi bVj8~zpb}m~$?3*800000NkvXXu0mjfb~k@+ delta 1033 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 @@ -65,7 +65,7 @@ namespace Microsoft.Plugin.Folder PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.Microsoft_plugin_folder_open_in_console, Glyph = "\xE756", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.C, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, @@ -104,7 +104,7 @@ namespace Microsoft.Plugin.Folder PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.Microsoft_plugin_folder_open_containing_folder, Glyph = "\xE838", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.E, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/Warning.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/Warning.dark.png index f033c78fdab6e3203c1bcda767c6207fd8f9797e..1236ba2cc76080bedf54e5718dbbbfcf4937f2d3 100644 GIT binary patch delta 949 zcmV;m14{g?0>1~47=H)`000120{Mpk000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj8R7pfZRCodHSxr*gFcf~zAsN`^1~n&WZ%}%I zF1ji((=fw8yJ~JwaRXSDw4F(qAxxLtp!5dZfb;}qTcB1Y*?*Q~%dutqF)1_tW|AoS zfA5ptC)ofUI&^r_KzIc3FBdN%ikRsAh4?!J4p$Ha3=g({0x`%9;FI%r;%By`c!Y<$ zXFv#21Ni4@2togcNQO(Q+``~~6ZiIRfd~Om0{fpJojk_{^fp3>dYhtPk<=K%A618L zNFYMu{Tq`Lh=1j>t(J@06Fj=oMLi60f9DqvfQ|vQJ&Tv=CVg8ScMvmPgD2ntC$K5}>sKN!Sc^#@aetUO6}d z8Hpq$3vt_4pkRQRB(fs!>(UQz7vlR^XK-MAIvqj_w0|;yPv*I>xjw6GG`Kqf!$Jsm zgOAVxjSWy?6ZlAHV7d2oH7R1EuGQ1H4GYZ~$cdI6HdU4|P^|GAekwlS=Fc)s4|Yy6 z;?{zNMg}PF+hH@~(X{75yt(Bv`D@iRZLB=b@<#fi83VRxAzbCX@6`p7xYag*pMHOy z@qVx|f`6tU5V!ga;KQX(FA**8t_Z}fmI1Xy%e&K@xYcB#E(6RY{laDy9C3@RV~Gd6 z4aj)kSG0VQ6SqVlz2Id)ELxWLk;ePFJ9R^|Sg0XxehdVCDKuf+w<}r{z{8!RCgN6U zK;nIKzAq9jDrCiN>?3Z~3}kLvaP95=C^%Cdt$(p!a^f}=;>If5lodMnTyaUKT>FJ% z=I_rKY?VDvDrW%uQ`2)h(ej0J#HbLrr3R?5DTGC5P>7Z$FY8jp>XMaSN6W4z_4D^F9N)5#@0@YH-rbi`(hEFswQTIHCn`+;Ht1 zA%Egn`%$7JZpaJo&n^S$MI;`0f$!z*sR@E{B22e(aA*R>LbluCe4h%1o({{f8N!x#`QkOYc+1d%ra{+a{T@stGl z1v4y7{&4>Pp3aH~?i$1K{71LBd zo@qK@v0c^C!d_)#ekEgw^{$OGY=SqNs7#P*+Q1}wKsRw_Cz~11ULP@jhE`!q%ZCR0 RX8;|};OXk;vd$@?2>=Ccaj*aY diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/Warning.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/Warning.light.png index 37dd08c87e648f0cb435db97195ea016bb7328bb..863c941f118f1654255095135e8cf442d6c69a4e 100644 GIT binary patch delta 1013 zcmVPx#1ZP1_K>z@;j|==^1poj8lu1NERCodHnN3a`F%-w2Ju^t8U1Zsos7-c( zsOra#P^rlYdIZuFkQ*@E08Y^12Hb#D)2w*qL$c_n!U!wgD(8D7e=kxCM^tmA9bL`!63#W5P9FS&w1SfI$gdEr_0fEx+X&CjXMp4>e}hg?_dC95s17$ z0uk8bgJ(3qM2ok_>jYaK7{Z7F%)@l*ba;J{I9;V946aaZu}lR9Fk(O$5RaGXeD_|T zo-5OXMS(pVx3Q)S%1mwp4(dzmV%AvYS6jw#(AH! zdgl9xkZrN;ezjbNT;1p3aHTSpHtF2==C!$Auy@8$plugQ4>uqOnGIlRlK|;Veh4Lc zpVRL91B{T%>jXhJPZTm6Ad8lmHW|#ogO#Oo_BmXB{7ih-{Ccq?id&v2WHNvaPE4E3 z`|>*r*nb`_?&xE6hNOw;eO=MgMHaV6 zAT`l4AWEBp_jN@}7bb3E6w-*BmI03CY$S=634hj3F1NCX+gt-8?*r*h8mOXW3Q63$ zI^s6hfN9YpeO>S4(B5SpO|xDkaVryq-Fa;i&&2XMmmShg&iy##^E16qY9-w#B}RY_ z{sS-P6)j!lEyg@?n`yx4wAA8t6QZRHy^47+R1?K*b_7Jx%HVx=L-(ms`4w%aSDw5} z(|>j-Zj=6##4XkUMYJ+_Kfr+--HX!Sp^MRjl*riIr&i&pQ~#?*e>7o;FU4N+-`cuEMnsGQkq@iZ6S_9m`-DC`3ppl#}3)7 z%>EuUDlXh1WU8X3QzZh!^aXwR&!CI7U;1M!2}Lo0rLP;uZqp{)aUuKnkVw=@S9bfA j?;HEiPC-FIff@b+1gUV7vLBWU00000NkvXXu0mjfn#|g; delta 285 zcmey*zJ_UnL_G^L0|UcSohMs>luCe4h%1mj#=>xdf#C=X2pwf*IK~X(9t9#+hKoRw znc*h;wLL&}JS9PX!3^%=M{55k=_$|U4k=sh#Sau;?djqeQo)!cv5Udsx{M4X%Mk{V zR;fGRmo)FqXK&c8Ch~Au%0GrlEFC|E>-G8lG$sqLy2n{q(vi7oVo}dYMH!W4MO!)x zV$=>!@+_Fm60KHf$FpdjXpxZjYC#UB4keB~B90R{SQ@vhapY(<9azA@w7N^dK(k3< z;^*_P%lal&OjG@Mrs;sic2!3UdzFp(m5d?QyEe|S3Epg?GC`_o1C!_h-Nc!lY-T)r ceZ=?~T7@kw9~$hR0dzQnr>mdKI;Vst0OW&WLjV8( diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/copy.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/copy.dark.png index 6cfb27b80d8170f932cc900cf3a20bab30e6f2f4..f5ac73432f758548ee85f197fe26cb5451ad5229 100644 GIT binary patch delta 365 zcmZ3++|E2fxt@Wuz$3Dlfq`2Xgc%uT&5>YWU|=i`a(7}_cTVOdki(Mh=dECUp%(1zp~VO;tnUd&=}PhL6@qZ9K642 zrK5n>{Ec&_&D-z5Hvdd=69>m;wfZ2=z_Z=&zT|yqOWi0Kkl_1oitvraiC-V^o=$4F zY&^;~Cws-t87hx_Yf@qkNQrMa#=54EF&mw!=K8?&Pr~-2w%wigdpGU3%~4fL%eiTK zwzh)v-QjO%XV&C+Z#;a4J&2{t^HG=Qm5Me_U!QAdJm;|8dTTH-<8jr3XFA?Of2IXF z*nWA=Un0bNO8N2zZ5J+~%*Rzpc8puySM_~g#a>g!}vpaV@I zh$UQ~L&>&)5`X61!JK7*MS3<8s6!W8yryhWKo4_P;Kc=8zy(~u1zaF=0dmImd;+WR zXkLKYg-!wiL{s`sAXXxl; zxR<>tp=pWnK6y@smN!p@7WWG#o#_&swntoI(j@;2^|>{&!aS~D8ZtjyR!Io*be}lQ z8Erp*Lw}@VyVpPCS0~zXg)(pS)GQZU@oakjr6mrGSN~kvpvKA-@_fBv!pVTMGkD${d{l~e>kJ>FZ&*)tgkZ!KL&v@2qjZ0@rqRg!I(tY0sv+oLh zv|C`}5mtw-9~qi?&wg-rFz;{F$j$83*dr>V()ncuxDal6NMTZUI>XX}0OD*3@7 jnQT*Na9HS*{~pE&BktTy1&gwQ!NlO{>gTe~DWM4fXM&6B delta 348 zcmV-i0i*u(0`>xsBYy!sNkl z9iHG4BRHI46&|V@0_u1`Ab7uKgqA0@Wf0ydi*- z&q;5<4VsALbJ81diwX|$A)J%ifF3%r5H8k2RegZq5zCqb*07VnM;~3()CLG^;5~}~ z3$OqSumB6NfK@B3B-q4D5d!+?B?vLn8ZeI*x`HPRwFXRM2{l1O*9i&B{)sKX030g-PHk-|6%Vyv1I6j0#)G3kx0000;{JuXeUVFdDeg+;Urf+-0wY}@e%%n5Q6|PF)>jTL~KlHO@Ha|!p@YfDNj%{W`b)| z4j9MQy+e)Ii6Ngg)P$Lk@>aexWo5ThU;l>gmO7m4s-WNBbn;C=r}2zvp%(feJ@a}) zZ%GY>S|F3cgkHndKBzc|d0a^|FCn&<)TR z5C+{q-=*~Dkbg!KdF-RWF{QvUfOaxQ@>vjBr<8L&pg^9d$k;)0J)l6ICNg#qjsZWB z&K>ZQKiYeAz+EH__rm>EpxNe5oiC!cf&?57?1?-^5Gx`l&r7qE0-jEme@6g66B0cf zONWy5fa${q(vb`x<^`|sWB^+@TgdP10pw6b)|>`h1AjD;7a#{+oT47kM3y{G(8Uqk zLXy8kSy|XJ!~+WC5DQ{fHZFi7vgS148qh@sDGgnmJ*NTJ0NR-XIY!9?Rc)bUsy^c# zz#jVy9jqUEOvpV(ShyarXd)NS#%As+GS*FU44^A6k&Ux+fMuu$LfLrZeL|*Ab^vFA z?geh~J9U0^ujfCw?Q%TuO=Jb-QA8H;z>=&`@%w#ruijT60lJSEY&SFdZArg!*Y0@z zjPz+e0|UU*Rr}KW6K|1ye)593G{wA{GNQ%uj5B#+gniiCqI-LtOJ^r;$}>z%{13lX WvDSYHf=*cg0000Og-LYl(`Y||SRE&vOggnRdc=y|716n`ox!>LDMG8f-xfEi*|W z4#b(we1e$6Rj7u3j4BXeaA0PKlqe93HuKufD}VW6-8Zv1;6G=`_0w{n2D1ZVefC4Ch0w{n2j6)L=ThtiG$8ZW$*0Tc%%oQ#Gm-@L@ zqt?HkL)rdz;PYHxDHWgl!Y~Ym|F#1(8(=1AH-HV=4H%&#gbg|ZBXk6= z6VMG3CZL^w+81&txg?g1<+^wI?sVu5`5{ZTi~(k5W@1xVDSxe0R?ZhWSlL-wAagcW zPPk6IFYdcHWQv>EnJF7&hCz4bUHYuiq?6+n-IO|!@3O$@u5I6{GOr^*alOAzZp|Y*`Ms)fCFkP6N%28A4ZJU$dj#=PY9tK^cniB(5>K; z+`~^z^aaxL?SC`iI6yl|QGAv}uYJbS2pH(I7#VvIX#@=PDMrQ~gyX=^Nauar8ST3w zaBK|GYeay1DsU<+$7WA#*6_fIz>(-FHnAakg$Qu(FDY%r(7S$d!@xcpx>zSL;G~d) zo(7N5!w|jZG~hZ=6MYFi=;C;fP)CRZn%4=sI8hx)b$^`@RbfX+1Pt^LRbdC$0d6(E z6+`rz(}3$hH8MzS=;9nX4Y&@_&J6Srr;wy$UxA5H$T$Tvn6szz7!HW95!@7V)I`^) z#%5%!NhA)?oYbhs;u_!xjlfVf-u6Brv{Bo@EjwKEQ{#=FKF_~%8%ZMYMRbGs7^160 zU@W6j4sT9GRHr@dbcib1uvrutA`VZ2Zuwz!U;YCYAy^G zN(>F53hWF_TTZYpVh~xt(AX+;VE=o;1?m;s*S-DzwAuav`#kd{zx0-d$nv%q@+_Xj zdgGvJQM>jVMYpH3jw-(qpFhL#Y19F2o@hREgPf4shSlHVc_r!(TSe(v9JJ=qZMT*< zci`=oHjaB)3hiG#+NAbOUC=2aD^av$Ud(|HO(L^99&8mb>`Sn4dvj8YXM2a>qAh%h z9uHTGN)!oX9#G&d*u(s}!dd+EyK)C+6IApo;eg4l69Fcz!E=)NTz{X~5OS1J*(2ch zL%slaldkvC@m{`; diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/file.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/file.dark.png index 8ec0c0336403729b1dc06882adb9b55f8af7babf..fd6c213f08cdbb41808f12ed9f7ad918b1fb2efc 100644 GIT binary patch delta 360 zcmZ3%)XY3VrJl3EBeIx*fm;}a85w5Hkzin8U@Q)DcVbv~PUa<$!;&U>cv7h@- zA}df%!qdeuq=ND7%)7iz1_BNIj~Vh9lwYvrJ<{lV#IcJpuR-|%%PvRTNtXrWUflnC zm@FmdKI;Vst0J-jp Ar2qf` delta 269 zcmZo>Ucod$rT)FAi(^Oy$l-4#hj_eUG{39H?aTOEkXDknF=;Uu7cM zV9URweXbLefq%iz#p$~rpXEDWCCIp1WciMNKe+rQ9;UyRXI84OcsgHLlcA-8|KZ$X zzd!m0$37UQe{i!`cWbyCeXQESUOlYgZmiNgVMPVTYCmop=5ppq%4QOw;>=ka{vMqu z%&5s!%@xqVB(i{kRl|W1#zopr01sGZ5C8xG diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/file.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/file.light.png index 8e3544f44e842197e1679ce5bf56599696679b1c..9905769b8d0fd9c1619a687fd829347cca3c5825 100644 GIT binary patch delta 310 zcmV-60m=T40?`7HB!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj5=1D|BRCodH*})BiFc3u1NgA;`qm-1A5-7nXq?Dus;=Nfp5U_VW zLYgP7!~tY~iGu}zh#ZmYlsfM^TgSZWEFj6~-}vu5K(NAR^MAC6cJYMs=n?J0qt8Wp?|7|Dl_i%X4J1$NEYzkmg0Gk5X6u_ncHU+RLfK35xM*=?0 zbwa!hXZC4hBQMPg2N`}p`Ob{3ncyVD|7YLc#tY`Wt|FKB1;w~35V#&`0RR9107*qo IM6N<$g5_R%#{d8T delta 243 zcmV&-9K0OM1r0e0}|ZYy_5TZMa<&O=AGOJET9@IcxrP3Q&Lo6rg~B1Fo^3 tkuwJYPM8POVH}H&45J#FrfFKX`vn8*04kDR+>HPL002ovPDHLkV1g+3YG(id diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/folder.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/folder.dark.png index 5ce5327cff545caaf4245f09c3e2d85a112bf428..b5f32137f4e7fe40cccbcb041ec7266c0be16a9e 100644 GIT binary patch delta 380 zcmV-?0fYXa0+$1jB!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj6EJ;K`RCodHnSl+0Knz8zaR4{a4Riz9#1V7@M_>d-a0K1JQE-EA z36h*>@OmD$n!cn73D>3%4iXBH<2a640Bksp95sfyaBRsE+<#CBIR~;pV)Hg6&~BTM zMrJv%e%>@~Mgr}g@2CWMHYD))z^;Y42jru^U(Ai92MQ}t0-Sb2eo9FL$pXlG2ht=` z1(5j};QTd5)vNh_J4pr5zJR;@Hth z3<=DJ5+@89XLU+Hjtgkx0@}EMHZGuz3uxm4+PHu=e<^V74)_CTLCWB9xOVNIe^`Z|+b-%`019-t6$N298W&+q;MEH%L4$K9({3t*H z3Q&Lo@}K|(C_n)UP=Es1e0Za$^Z+9y1+bxD-@uTi6G8|fgfVU*qNuh?ky`iw0000< KMNUMnLSTZeA8_da diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/folder.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/folder.light.png index 20f198cd813f79fad59e75b6501114f941d0af0b..2c66c417a116d2b62507643df8488548f8652061 100644 GIT binary patch delta 371 zcmV-(0gV3m0geNZB!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj6BS}O-RCodHnSl+0Fc3w*#sSVgpyDIMNt&V7@N}OY15A6VRL~n?td6BJ(L_mm{VSigh9WM zlR1u@zsI|@7>SY;DI&&+k)R9qj5vIWl(-)5&oqdHPBMoI%Sq7NIG7ZH96-BLf+gk( z_~ldAfV+JQZ%z|3Fjl}lh5W~EYIzEsy9^nSda0Kz?>M5ruqTmJeyCH_$)Txiu2_$c z0=tQU8wh8MA8bbjxKROaRDc^5;6??wQ2}mLfSbP*Xvpya{Lsy{#{Y3hpeDyR@Izl! z>yQBk{dds9=7jI#uD-urlZ6gW*<7X6Ry6;&5PaIjq1Sc*`rwl_i5)nT2VF zC<_M@tD?dJpU1Ct9`?Pv+W!CH_J+^TEtXCR^77r_Dw)u1`0wE&#=eXM#(NbBtm02s zB(7kZ^P%ZsgJl;-5zob4Ol&MykIV7uERst13Fbdj(5kxWcUtIzUhZixl-yK#LSHpX zUz2D&anV6+K|9}x`wqWM7BKQ=I52l!YG8vhzspx0lPFm5*P*RdnH6ZS=F?UDp||86 TwKSp*FaUw4tDnm{r-UW|n8Q}o diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/user.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/user.dark.png index bc7aefc65421e6c9cef13c94eda6c7da3c46baf8..aacf8861c7a5cd5928eb0e0021cafc56b038455b 100644 GIT binary patch delta 616 zcmV-u0+;=W27m>SBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPhU6}}T<(x45{Y;Nz>H%z`0$$=MObuJ0QJ4IqtKv;?Im-vgr7;OD@cyKkRy83YbOjj;G>UM z`sWNWATKX?B7fh=62t9sa%6}B-<9i6vM0UKR~S&7tWL39!l)WMjGD3B<{-;_M4-W- znM!1^PbJ39Oj{IEVpv*f^M>N!GSlsGlerSOrPI?;zC>nS^-%mgy4&1C4B4UXE=um{ z$Q3^Gj6|Lt6bH}-{i4iJ6gmz>7v+x#&#{jYeX`Lti+^>+<$<}3Jq*;{=HV}+P_LCc z6TQwdPWN(c>{#~MVl(Dbl$4k90s+zhV~k5z`#uI#%e@du*z(5MZlGB@S{LvZVy>mVSFrj#XTjS@~i~ zjGuCr17Q`LPD{?=`^R`zyPb|O`h;DutmM1d&x)Tt(W4Mw-NHZq5;#jk6x=EQj&cqP zUQz>AU_r&JLj9>{F`;%h(+5-OW+!%)14SZ{LHq)$;yY3bGvVO?00009c1t`dCcqUUXm8^%FL%-I#C}}F8~Oeeit{p(U4NF#Zb|Gi`pRdq|C8XW zXh_FrHL(+ZJVb3ik7!x)3?7dpHb9A6DEzxw<-7lpjNi?cf*&Kjm9yU%E<8i=fBf$( z_^=O6YxL(9Rn}+DidOM0do+L!(s%L zeH6!QTt#NH3xBvGgICb745RV?r+9+mW*6`TFHpwXe$)?q1237yavHWkL@D4YN|;^1 zGWgJtME+OVM-IHi4dgJpfVOf7T#V={`)Gp?ID$B4p9f;e3G4;(s7O8m_Q)hmu}p~Ni=B%xBY8EK<^T_~R= zMlLkv{eKc#7v5o~G6_~BKl-bC;Q2`XH_Jk~a#c=zsEYgY|I^51R^m}5c@LhUi`u6Q zviuH95o?jsi~?#f-YeM|8*4obDkm|l{pv6r-RJ`L$za22BI?vH{dY0=AaNOwkU-B%hWOYe1vEDJ^5mEtjS}lQE3q*ZJCViUEzlP` j|K=LW2`8Lz!U-qBUl)b&$^DwZ00000NkvXXu0mjfusUYl diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/user.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Folder/Images/user.light.png index 1d983c1fdfc167e82ec37646b3f8ec7fd2f4341b..9ed8a89d8efcff6a6a9bc684ae793335d4dff60c 100644 GIT binary patch delta 574 zcmV-E0>S-{1=a+RBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yP*`oz#AkRq#I-ex*OObOVYGa}^Fguo0ME{O)w&h+}^X%a#I=NF*fLHFj#OXn#yMRvRnLy&M~cgje_z z?J}C!<|cB%xNzIf*a#$q3#-gM#o8Pi`#^tLkzEj(9DPAov~l2qzO$d!2@&BQ_3`Ev z{U^3V1i1ILrwD4x13pSn7c&L$*eMW!k_kA#ABFxC4B`dh)B^p??&B5zoH-M?v+E50 z92|XlF=qldc7Od2fA)^PR)bE~(7l}6@-rmLHfrzXJ_i{;je~a}3G7sYg!!ftQM}Kw z1$F5%U*i-pz19pzF2bnSfUhd^so|9wjVC>Q{!*VDrP-@!sD_t)!2{kZ|7<&v?T~ZwJSgq|L zOpeEc=Fcr5wb!<7 z+xs|k`qjovE{gjnUwnL)%gV~i%K9g^EoX5%cXAPju_FKI_M;>7Sw{2s8d<~`&ZnGz zRIBq4jRYprlMb|}E5lhtU;ukkM(S-#M*<_co^7e;hpO0sqkm~n8`C+KQc`OLJ|fQq zcBPCzs)RLomcUFlB(+YZkvZ&1Aw5GYU8yJWY8Xl*$5UtSMpLP_}o-AZEo04dwSja&XTNSgJ#hxVEEatIa{PV=qIOcNz#a7BJX0sQG z_6Dt-ObNxb6@T*?$5tfT`2=32nqoSSW%QzfM5|*C^Vp6;TZv8t9wL=)pp~I)L?PWo zBNJGQRN9E41U_a}{!SOr$Wo3X)sAEgfzR2WH7Moh)v*oF(ZW)0r-Ibmo=<3HDZP1> zySbAm`IHIdn8jt(@{eg}h7!J)qlISL2;W=Eqm+?)Wq<6<6D%b#hf#E;{r5W2p9wS( z7{iIIKx$pVWb#blX7*uYs`#NYR%IJb=QSExLVI>5@$RLOz>BO)8GltfsyUpg1O~DR ziB!qGG&6_GD5scqrYC{-S)159iUlm?R4OPst;PEUKBt;k>q6j8N{OPa8BLzEiLDz6 zd_o;jRdC7!w9ubbiM-Vr%RCOFB!>A%u!O^iypveMFxHFtg&(1UNPC<%-X^X#rY-U> zs%kzYa2atnk{PT-WUWXC0;dvZeaN#akyX#*v}ZHo?0VX>0)JXoR#sM4*4I=`w`)ZV R)%5@X002ovPDHLkV1l;EF3SJ_ diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/ContextMenuLoader.cs b/src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/ContextMenuLoader.cs index 11a7d90a27..6bce65bded 100644 --- a/src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/ContextMenuLoader.cs +++ b/src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/ContextMenuLoader.cs @@ -60,7 +60,7 @@ namespace Microsoft.Plugin.Indexer PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.Microsoft_plugin_indexer_copy_path, Glyph = "\xE8C8", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.C, AcceleratorModifiers = ModifierKeys.Control, @@ -86,7 +86,7 @@ namespace Microsoft.Plugin.Indexer PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.Microsoft_plugin_indexer_open_in_console, Glyph = "\xE756", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.C, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, @@ -125,7 +125,7 @@ namespace Microsoft.Plugin.Indexer PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.Microsoft_plugin_indexer_run_as_administrator, Glyph = "\xE7EF", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.Enter, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => @@ -152,7 +152,7 @@ namespace Microsoft.Plugin.Indexer PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.Microsoft_plugin_indexer_run_as_user, Glyph = "\xE7EE", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.U, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => @@ -194,7 +194,7 @@ namespace Microsoft.Plugin.Indexer PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.Microsoft_plugin_indexer_open_containing_folder, Glyph = "\xE838", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.E, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/Images/Warning.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/Images/Warning.dark.png index f033c78fdab6e3203c1bcda767c6207fd8f9797e..1236ba2cc76080bedf54e5718dbbbfcf4937f2d3 100644 GIT binary patch delta 949 zcmV;m14{g?0>1~47=H)`000120{Mpk000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj8R7pfZRCodHSxr*gFcf~zAsN`^1~n&WZ%}%I zF1ji((=fw8yJ~JwaRXSDw4F(qAxxLtp!5dZfb;}qTcB1Y*?*Q~%dutqF)1_tW|AoS zfA5ptC)ofUI&^r_KzIc3FBdN%ikRsAh4?!J4p$Ha3=g({0x`%9;FI%r;%By`c!Y<$ zXFv#21Ni4@2togcNQO(Q+``~~6ZiIRfd~Om0{fpJojk_{^fp3>dYhtPk<=K%A618L zNFYMu{Tq`Lh=1j>t(J@06Fj=oMLi60f9DqvfQ|vQJ&Tv=CVg8ScMvmPgD2ntC$K5}>sKN!Sc^#@aetUO6}d z8Hpq$3vt_4pkRQRB(fs!>(UQz7vlR^XK-MAIvqj_w0|;yPv*I>xjw6GG`Kqf!$Jsm zgOAVxjSWy?6ZlAHV7d2oH7R1EuGQ1H4GYZ~$cdI6HdU4|P^|GAekwlS=Fc)s4|Yy6 z;?{zNMg}PF+hH@~(X{75yt(Bv`D@iRZLB=b@<#fi83VRxAzbCX@6`p7xYag*pMHOy z@qVx|f`6tU5V!ga;KQX(FA**8t_Z}fmI1Xy%e&K@xYcB#E(6RY{laDy9C3@RV~Gd6 z4aj)kSG0VQ6SqVlz2Id)ELxWLk;ePFJ9R^|Sg0XxehdVCDKuf+w<}r{z{8!RCgN6U zK;nIKzAq9jDrCiN>?3Z~3}kLvaP95=C^%Cdt$(p!a^f}=;>If5lodMnTyaUKT>FJ% z=I_rKY?VDvDrW%uQ`2)h(ej0J#HbLrr3R?5DTGC5P>7Z$FY8jp>XMaSN6W4z_4D^F9N)5#@0@YH-rbi`(hEFswQTIHCn`+;Ht1 zA%Egn`%$7JZpaJo&n^S$MI;`0f$!z*sR@E{B22e(aA*R>LbluCe4h%1o({{f8N!x#`QkOYc+1d%ra{+a{T@stGl z1v4y7{&4>Pp3aH~?i$1K{71LBd zo@qK@v0c^C!d_)#ekEgw^{$OGY=SqNs7#P*+Q1}wKsRw_Cz~11ULP@jhE`!q%ZCR0 RX8;|};OXk;vd$@?2>=Ccaj*aY diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/Images/Warning.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/Images/Warning.light.png index 37dd08c87e648f0cb435db97195ea016bb7328bb..863c941f118f1654255095135e8cf442d6c69a4e 100644 GIT binary patch delta 1013 zcmVPx#1ZP1_K>z@;j|==^1poj8lu1NERCodHnN3a`F%-w2Ju^t8U1Zsos7-c( zsOra#P^rlYdIZuFkQ*@E08Y^12Hb#D)2w*qL$c_n!U!wgD(8D7e=kxCM^tmA9bL`!63#W5P9FS&w1SfI$gdEr_0fEx+X&CjXMp4>e}hg?_dC95s17$ z0uk8bgJ(3qM2ok_>jYaK7{Z7F%)@l*ba;J{I9;V946aaZu}lR9Fk(O$5RaGXeD_|T zo-5OXMS(pVx3Q)S%1mwp4(dzmV%AvYS6jw#(AH! zdgl9xkZrN;ezjbNT;1p3aHTSpHtF2==C!$Auy@8$plugQ4>uqOnGIlRlK|;Veh4Lc zpVRL91B{T%>jXhJPZTm6Ad8lmHW|#ogO#Oo_BmXB{7ih-{Ccq?id&v2WHNvaPE4E3 z`|>*r*nb`_?&xE6hNOw;eO=MgMHaV6 zAT`l4AWEBp_jN@}7bb3E6w-*BmI03CY$S=634hj3F1NCX+gt-8?*r*h8mOXW3Q63$ zI^s6hfN9YpeO>S4(B5SpO|xDkaVryq-Fa;i&&2XMmmShg&iy##^E16qY9-w#B}RY_ z{sS-P6)j!lEyg@?n`yx4wAA8t6QZRHy^47+R1?K*b_7Jx%HVx=L-(ms`4w%aSDw5} z(|>j-Zj=6##4XkUMYJ+_Kfr+--HX!Sp^MRjl*riIr&i&pQ~#?*e>7o;FU4N+-`cuEMnsGQkq@iZ6S_9m`-DC`3ppl#}3)7 z%>EuUDlXh1WU8X3QzZh!^aXwR&!CI7U;1M!2}Lo0rLP;uZqp{)aUuKnkVw=@S9bfA j?;HEiPC-FIff@b+1gUV7vLBWU00000NkvXXu0mjfn#|g; delta 285 zcmey*zJ_UnL_G^L0|UcSohMs>luCe4h%1mj#=>xdf#C=X2pwf*IK~X(9t9#+hKoRw znc*h;wLL&}JS9PX!3^%=M{55k=_$|U4k=sh#Sau;?djqeQo)!cv5Udsx{M4X%Mk{V zR;fGRmo)FqXK&c8Ch~Au%0GrlEFC|E>-G8lG$sqLy2n{q(vi7oVo}dYMH!W4MO!)x zV$=>!@+_Fm60KHf$FpdjXpxZjYC#UB4keB~B90R{SQ@vhapY(<9azA@w7N^dK(k3< z;^*_P%lal&OjG@Mrs;sic2!3UdzFp(m5d?QyEe|S3Epg?GC`_o1C!_h-Nc!lY-T)r ceZ=?~T7@kw9~$hR0dzQnr>mdKI;Vst0OW&WLjV8( diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/Images/indexer.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Indexer/Images/indexer.dark.png index 4493ca3e35226128a3b8daa1ee5580d5b9efffaf..18229e05458893ed810ecf130620a579eaca0732 100644 GIT binary patch delta 598 zcmV-c0;&Db1nvZoBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPYz*<0C|wOeXX209eXU%70MFa77%1vazI4sEQwv zmU9ph@*^wNDpOF>7|^u5&^}tpa6rf|?%FJwEkR>If7rZI0=PlC7c@gBdF6wlwSGl& zLyh$tdqe)sr3$1$z{kC!>*tq-%AYX}M)$ffXlM%+Me(iW)$?IP)38zY?QqG4Ji)TZ z`D#Zn;9d*E3x93JWe*gtc`>osUC_+Q0;Xp60-h{+x(ofCKyp5{w+GhnJNMRQ*Ax+F0jlM%TIEU^ zcC5?>%@EQ>MC%D30RoQ01N}2|w6lYg0GYSfT6M5R4Szkhr3lyr@P+Ka;_uSsf6)N4 z%tb!lSkenk1-b_n=RH3fSKAIdih!*L3SOv9^xP_sd3Wsh|J7#ha*Oy(Ms2u#QewD( z4;J5%JN%rQTtJI98J!j;^e@4p?2l}dST9&{j{?7iES3i@2;6(XLi0c1gzhRWRNBr`(Il5%LCGQ> k1ziNq5hh}OJ&^I_2TLkV6;r-w4gdfE07*qoM6N<$f&gR@rT_o{ delta 568 zcmV-80>}OC1kePKBYy%HNklbsN>TZQHhO z>%8RE?a$fmY%@1GS!U+m(IVvJ<`w@_$JGHh>G@0=NJ!0ChBg zLDZ2rs67w^;>tEK0Vp>u6ot}I3i3lL>jO|;I_L#^-~os}z)jdrJ+0X$vNC{-amt$k zufupBdJgT_jcxjarj~)$?*s3Z<&;?hVnITVtHBQV0I#9BRRJ)R7anOV_k|>Xs6RR9 z$NliSoinll;(z?%3+jQP0K?SSDlr;{huqwAUhnN>V$$6+6yTVe>LSA?i~us6R_nbB zj0Ir3D=J@LVK;==pPdH2$Yj~nat`Wo&#+b)U8&aTy>mhgD?<=|Fj)|4dM-&4Pb+GlaAmKGD1e7nIPSO zZjf$3v0|jN0p|?1i7P(o1j4WT{Wu!{Ha0dka-ir;c2;+G>wm0`V2y60KtNPwC&Y1h z%B~0`Lg3yj?FuHbkYdF7y0Z@i9%6!oIh__^Pn%Dqfwnmtfpwe@2JQVC8KRu-1sq4x z`;cm{kyzHiGrZC`UyL|^MHyG1h_)`fIYb{J3GUS|5yF&h;(=fPzac3 zBG)-(kN9{Ac!%G6?@gD930r`G>3qK)Dw5}b`xLT8#2g8>06NznO%Gw^uMrQHfTNX> z)1w0Bh?R%~O8}h~XYi3T%lW_(Kwnf2;8VhJ+zrH}fPbBpY3w<-fw^TD)&H*!b3f$X zXED<0_Kn0)0bk_40w4O_D7gR%U5wm~Nx)oSvCc>AjjYD}jVx9Kl0Iz+49`I-w$rmt zsVlYfohBL$X%Y;44|7uugcjlT-#~!(>9EG|OLk}x4Hmp$ss90In7eeNpH&V=SwsD7 xtRmtS;V8K1Yh_(8$P9ZVvZNQ0HrL8F`z-nNq;TN0ZYtfB$ojv$*MRY z4u}KdfPXvS3^%BjbwCe&^pt79ZVqvT3C7r2h5;j7;~gs`th3A;F0!qt1FFo>BBc1q zB`Tc`0J=C}inR^TIZQ7DoM4`HTAVA|fc-QHOtYQ88{!Uu27B35Td4uC(xm}63CuD? zTKo7+;4&T5-G4W*NZ<;+q&2_`0#CX*;4SsdO1X$!znu+22S#Z3fxuNNq*di5fk$-Q zQ|3Bwkap7q<{2fealR6mq%e*0g}`jeh&{{`SYnt$^@>2kBFCsuWs+qQRyj^#8s#B@ zA2bOmzHypf3ef>xvrd!qOmLS^{N@+$xy3kr6rw>ENLL6Px#1ZP1_ zK>z@;j|==^1poj5@<~KNRCodH+1(9-Fcbygqj3-2KsJDlbQ4Bk1Xf@p*x-5zVhRf3 zM|w**U(%!xP1{2+4-|liD0m_gYssw4L?Kp>d~?3FI?K!N8O~oUwD4DTCZ6 z5t`kfz%fcFgqL^-OUN1nSYrTd3}B4`tTBK!2C&8e))>IrSb(bS=$G9Up7k!%s-baX z0Sc%8gntjGUpru~AD6qCwmUXfpSFD8iYHh?_I$k_NQiZtcS0oM{})pNBBJ2E03c+f U5O_yz_y7O^07*qoM6N<$f`dheVE_OC delta 138 zcmcc1w2X0rN`0=Ui(^Oyc@HayuqDp=l6gb@^QBa#HqYsb@4gFc`(m(f@;^qq z&g&P>oH?^i=cGC}>zU_F4RJf(XF7ZgmJ7F87-;(7IWNQJg8F=i1_nkZ77hUgDC0x+ o$G8UZ3*nKI%8fVQHQLPV^LjmJ(R`r{1|aZs^>bOr?3B<10GW(9wEzGB diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/app.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/app.light.png index ccf947383126208cca15455f16b5b15d9b30ee59..5f04be724d9a35461cd36a69972efbd1630bdd2c 100644 GIT binary patch delta 304 zcmV-00nh%L0m}lAB!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj5;7LS5RCodH+2IX?AP@!M*QR^a4eAEEQM-vFID#v~X61k?=w;KFN2SnfWUVn86q`CRv5RGM_3h~vZ z`pvh!uG1hE=#id0{Q(~2gRPNXh0lj=b#g4Q9Gn-^*FBt3xXZzL3o=#w3H;3!%Ha`P z@d{~U0BsDQjRCYVfHnru#sJzFKpO*Sa|M{i_=@yoGi~0R;2ob#bw-)JtF|{Bf%H9(mD%_-yIDmHm0000dV9N?D?(i(^Oyc^eFPTo0OjF}c}ZdD+mhZDBI!2Z4z)hiqT+7qm)G z51p*?vcpz*?SH8N;qpF)lxuDbQIFQmkbcp*`z`|tXt@4pJ45suzb$*$OjGgHf5#QF TD3$B=Nst;(S3j3^P6@ge-Nkwu65tx(#a%v*GBe@$H@+o93bQJ>3XsBuI7&5HUp zD8tyqereXA0e`D(4Ed;4kZ;8ATbKfD*Layy^|E0N==RSa6UZxffPS9R1&PLIRv4FUBVw0S(NA@d^|XN}hG(GM<5lf^?FD5~h%6y-etAeSZ{cp`h|QpGux}*FhD5$8EzK zC?JNsu+gxtdrsnU(nRk?G|01^n)TfiSvY%!2xyUKTUBSoXRv?0joVNo&-R`}9w4fO zw8^v0I;4ae^qnxLy6WWFuK&U!(}e-cXhQOG8Fg2MMa2E)gLLHCb|&n)_d}L~a~qqI zJln5??SI@?$!i0Znmqex*tY+iw1^cRV^WbXgnj>I9UUJubC730jqnlnJ&q%vlrxeq zCq-WvFw0l(qkcy6y$Zmoryak?Lqsl8@RA+s5tl zQ3JKJB20O>YdQLx$Lp5UEeX+1)~O#BYy(wNklQ^u!^0Dk{C z=W#9r^n~qj3Le5o3sKs71ZQC<^n;v#%C8;Vb8Es$ zS^t<~0A=uB6+mftF2*lVr1`PqUI)V3#BfCRc?H$&ez%=Z4%d`?en3&tQ^Tx}2Fqoy zTaeSuypM%}y?Lb_mL~V)!*Q^mK1|PTZ8e zhPshD(cz#Nm<~auKPGI3k51A_?o^}TJ)DF1x&z1yuOxuf>X_VBmN-o(x%EDVH&9;d z6PpeDi-RX9{CzvFBc1GhS+`mC7(o$4X8?<3rN-zX$y(H z2s#5eEE|_q`*o)i({jk%lN4ce1~6GR9;No{PAA5DN(Rl-`gY1@wUk%iu*#6ObYdtp z{TF0TYk!IWIs-^4?<%%xC_~!PiFR>#F8@*vH;#_0!PahwEJIq-3BuA|Bm3{te$*7> zCEz){fsV>C&~Z9J6M5INRne{2=>Qn%r=);9m9?bPOR107llxv6R{rYeP#%JM_>abi zv&xfqGerFrXX1pg2W&lqA@*s_mwQB%gZv{2;D0!zr0VxqeSwP)+m-J;m!U4rVBV|^ zBLCWnFW-@*p4bcLT}`K+a2q};2lGkL1d7O~#X`^sMt$=^;2sRr`pV$pQ81&V!$}{0 znL7)^AghK$i@rc00!~$h!PE~ZDe@kUz$mB=k;HK$BO@atBcspPsL`Mejz6OS0000< LMFvhpu0mjf95#Rf diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/disable.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/disable.light.png index 1d6bb4d6c3469fe76a0270414cf5787bf018b7a9..c1d8e1799c96b90b8663c39434148a1fcdfed40e 100644 GIT binary patch delta 662 zcmV;H0%`rB1+4{;BYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPi4+xDrxAN{Ci) zT0!jK>_FKO<`$A6{46;g^UdsdDuD;Q=E)%o!puugy6Oz@uiZ@odpp) zwYZOXo)^zZq0e1pVgy@LORW()Cv{X%m@B;0#EdA1VI+ld-|11(?fOZ`^jE7%T* z9(@BpR)2BNLraREB-`Ou+FHEWIVnF{q?ssnw8+Kh?uISg^HDdkb8&NPgy7*W=g%Im zb6PB4PEfAYSij(?waBGQl2W-fqk{j6iR?x;7<4)MJbB7fhl*HcjS9=xMIk{W-XT-C w3bq)V6Kgw(X#{ZM#8j+qP}ny|#^m z`Rb49oC79Fd3}qbqQXpB^68uJy zdL^1ukq-%OVBIep0p z`tSfJu@hUd11E3?JqUsUT+e(=vSwg?uH$#24gTg9HfAO!i)LUx4(3L_ql%!KpSXiV kS%8_y%gf8l%gdVpz3}rmayt4!00000NkvXXt^-0~g26E}CIA2c diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/folder.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/folder.dark.png index 5ce5327cff545caaf4245f09c3e2d85a112bf428..b5f32137f4e7fe40cccbcb041ec7266c0be16a9e 100644 GIT binary patch delta 380 zcmV-?0fYXa0+$1jB!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj6EJ;K`RCodHnSl+0Knz8zaR4{a4Riz9#1V7@M_>d-a0K1JQE-EA z36h*>@OmD$n!cn73D>3%4iXBH<2a640Bksp95sfyaBRsE+<#CBIR~;pV)Hg6&~BTM zMrJv%e%>@~Mgr}g@2CWMHYD))z^;Y42jru^U(Ai92MQ}t0-Sb2eo9FL$pXlG2ht=` z1(5j};QTd5)vNh_J4pr5zJR;@Hth z3<=DJ5+@89XLU+Hjtgkx0@}EMHZGuz3uxm4+PHu=e<^V74)_CTLCWB9xOVNIe^`Z|+b-%`019-t6$N298W&+q;MEH%L4$K9({3t*H z3Q&Lo@}K|(C_n)UP=Es1e0Za$^Z+9y1+bxD-@uTi6G8|fgfVU*qNuh?ky`iw0000< KMNUMnLSTZeA8_da diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/folder.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/folder.light.png index 20f198cd813f79fad59e75b6501114f941d0af0b..2c66c417a116d2b62507643df8488548f8652061 100644 GIT binary patch delta 371 zcmV-(0gV3m0geNZB!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj6BS}O-RCodHnSl+0Fc3w*#sSVgpyDIMNt&V7@N}OY15A6VRL~n?td6BJ(L_mm{VSigh9WM zlR1u@zsI|@7>SY;DI&&+k)R9qj5vIWl(-)5&oqdHPBMoI%Sq7NIG7ZH96-BLf+gk( z_~ldAfV+JQZ%z|3Fjl}lh5W~EYIzEsy9^nSda0Kz?>M5ruqTmJeyCH_$)Txiu2_$c z0=tQU8wh8MA8bbjxKROaRDc^5;6??wQ2}mLfSbP*Xvpya{Lsy{#{Y3hpeDyR@Izl! z>yQBk{dds9=7jI#uD-urlZ6gW*<7X6Ry6;&5PaIjq1Sc*`rwl_i5)nT2VF zC<_M@tD?dJpU1Ct9`?Pv+W!CH_J+^TEtXCR^77r_Dw)u1`0wE&#=eXM#(NbBtm02s zB(7kZ^P%ZsgJl;-5zob4Ol&MykIV7uERst13Fbdj(5kxWcUtIzUhZixl-yK#LSHpX zUz2D&anV6+K|9}x`wqWM7BKQ=I52l!YG8vhzspx0lPFm5*P*RdnH6ZS=F?UDp||86 TwKSp*FaUw4tDnm{r-UW|n8Q}o diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/shell.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/shell.dark.png index 23a69c631483cc9537ebf7bef08073167a5f3c05..0581d14ecfad27310e830cfbd953e10bc47a3280 100644 GIT binary patch delta 478 zcmV<40U`dv1NQ@vBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yP(3 zOh+p-r|GFe2J^A=>;3#sDUr?qOi}B-ryu@e+E9}?SW~=IlQ>vgyhM{YI95DNQ!JJ? zMpLYTW9Vj&{wszUO`)4s-Zl5!4|dCtXa)u+zMi;VL07R?gz>ERl7!Yt7?4+ED_kUP zlHXcXZE#r)HSSxBvUe?*&U9`p>QLv>UT%wwjI>A8>epEI1{U3ZN#YCXd2Y^ zB3j$F;_L>4?;Om~EBN7!G6uB9F{DGrfCPwg011HkLCS7&egjY741f0{eAPn(HTz;3fLH4< z{t4yq0q(+U%ltjlPv`=81VdvIz_QF|!xLEU(sl$4u+*)zE=n%#b$EUU_4PdDohWTRH zVPP}OckK>-0*rxUupyy0bFO1acB2v?_5orl`D@X#03yW)+Tz$xBoc{4qGXd9a_2{d T=tO4s00000NkvXXu0mjfVx-4J diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/shell.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/shell.light.png index 9be4725facce45fb204406e70437e3eeb08bad52..9991b330006f1b3bf50864efa7eaa266c6f2c9c1 100644 GIT binary patch delta 459 zcmV;+0W|)A1LOmcBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPzhgD?<;H<=Vb2dD#=Ksq2DP=ZUK6iP`6lt2kC z!O;y5kuZXjMmov1zL|YOhj;aZ#s^d?l}aTcjn=5OXx)W1Yky5zEdm*|Zh*M)t;oX_ zo?HRsHonyWCJOetTXzUfQ@x13SdXDVmLf9{K5DPv|M;zAFJ* z1*fNvor3$x^Bg!meSu$CB%gS4o<6|Y7Ao-!SiId9qEFf{*1Mubp&Z=qs>xNde155;B8Aq z;s3kO>6T?#fyEfy?L2QF+bc3xedZLHvqoV`YHUs1qC{7F+HM2818L zR0`@)m(pGz5QxIM?`A;U_=5F3<~)OyN~QAZ`~j)9wcXdE4Uqr<002ovPDHLkV1liW B$MygK delta 358 zcmV-s0h#{f1AqgNBYy!$NklZ;&ag76% zunQj?qj7bgHL=D*=o->1cY)A~~!7VDV&@2x@ zD4K&KJYdlDfC;>yggC9^6?xMGCfhV1g9c7uo4x~=I75HTbBd_LGd&=W269NnIA;XU zD8Mo~z{VkNuwRO34(!NxF7RdBs9?bK57{twP{S3fI7JnsXtfo*VP4`X(T6E4gyt{~ z3#~SUWz7Ed$6QKZqdFjI0|e<`i#FT@aiD3MrfHqk2N*_*Re6k%bN~PV07*qoM6N<$ Eg2*VDAOHXW diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/user.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/user.dark.png index bc7aefc65421e6c9cef13c94eda6c7da3c46baf8..aacf8861c7a5cd5928eb0e0021cafc56b038455b 100644 GIT binary patch delta 616 zcmV-u0+;=W27m>SBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPhU6}}T<(x45{Y;Nz>H%z`0$$=MObuJ0QJ4IqtKv;?Im-vgr7;OD@cyKkRy83YbOjj;G>UM z`sWNWATKX?B7fh=62t9sa%6}B-<9i6vM0UKR~S&7tWL39!l)WMjGD3B<{-;_M4-W- znM!1^PbJ39Oj{IEVpv*f^M>N!GSlsGlerSOrPI?;zC>nS^-%mgy4&1C4B4UXE=um{ z$Q3^Gj6|Lt6bH}-{i4iJ6gmz>7v+x#&#{jYeX`Lti+^>+<$<}3Jq*;{=HV}+P_LCc z6TQwdPWN(c>{#~MVl(Dbl$4k90s+zhV~k5z`#uI#%e@du*z(5MZlGB@S{LvZVy>mVSFrj#XTjS@~i~ zjGuCr17Q`LPD{?=`^R`zyPb|O`h;DutmM1d&x)Tt(W4Mw-NHZq5;#jk6x=EQj&cqP zUQz>AU_r&JLj9>{F`;%h(+5-OW+!%)14SZ{LHq)$;yY3bGvVO?00009c1t`dCcqUUXm8^%FL%-I#C}}F8~Oeeit{p(U4NF#Zb|Gi`pRdq|C8XW zXh_FrHL(+ZJVb3ik7!x)3?7dpHb9A6DEzxw<-7lpjNi?cf*&Kjm9yU%E<8i=fBf$( z_^=O6YxL(9Rn}+DidOM0do+L!(s%L zeH6!QTt#NH3xBvGgICb745RV?r+9+mW*6`TFHpwXe$)?q1237yavHWkL@D4YN|;^1 zGWgJtME+OVM-IHi4dgJpfVOf7T#V={`)Gp?ID$B4p9f;e3G4;(s7O8m_Q)hmu}p~Ni=B%xBY8EK<^T_~R= zMlLkv{eKc#7v5o~G6_~BKl-bC;Q2`XH_Jk~a#c=zsEYgY|I^51R^m}5c@LhUi`u6Q zviuH95o?jsi~?#f-YeM|8*4obDkm|l{pv6r-RJ`L$za22BI?vH{dY0=AaNOwkU-B%hWOYe1vEDJ^5mEtjS}lQE3q*ZJCViUEzlP` j|K=LW2`8Lz!U-qBUl)b&$^DwZ00000NkvXXu0mjfusUYl diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/user.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Images/user.light.png index 1d983c1fdfc167e82ec37646b3f8ec7fd2f4341b..9ed8a89d8efcff6a6a9bc684ae793335d4dff60c 100644 GIT binary patch delta 574 zcmV-E0>S-{1=a+RBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yP*`oz#AkRq#I-ex*OObOVYGa}^Fguo0ME{O)w&h+}^X%a#I=NF*fLHFj#OXn#yMRvRnLy&M~cgje_z z?J}C!<|cB%xNzIf*a#$q3#-gM#o8Pi`#^tLkzEj(9DPAov~l2qzO$d!2@&BQ_3`Ev z{U^3V1i1ILrwD4x13pSn7c&L$*eMW!k_kA#ABFxC4B`dh)B^p??&B5zoH-M?v+E50 z92|XlF=qldc7Od2fA)^PR)bE~(7l}6@-rmLHfrzXJ_i{;je~a}3G7sYg!!ftQM}Kw z1$F5%U*i-pz19pzF2bnSfUhd^so|9wjVC>Q{!*VDrP-@!sD_t)!2{kZ|7<&v?T~ZwJSgq|L zOpeEc=Fcr5wb!<7 z+xs|k`qjovE{gjnUwnL)%gV~i%K9g^EoX5%cXAPju_FKI_M;>7Sw{2s8d<~`&ZnGz zRIBq4jRYprlMb|}E5lhtU;ukkM(S-#M*<_co^7e;hpO0sqkm~n8`C+KQc`OLJ|fQq zcBPCzs)RLomcUFlB(+YZkvZ&1Aw5GYU8yJWY8Xl*$5UtSMpLP_}o-AZEo04dwSja&XTNSgJ#hxVEEatIa{PV=qIOcNz#a7BJX0sQG z_6Dt-ObNxb6@T*?$5tfT`2=32nqoSSW%QzfM5|*C^Vp6;TZv8t9wL=)pp~I)L?PWo zBNJGQRN9E41U_a}{!SOr$Wo3X)sAEgfzR2WH7Moh)v*oF(ZW)0r-Ibmo=<3HDZP1> zySbAm`IHIdn8jt(@{eg}h7!J)qlISL2;W=Eqm+?)Wq<6<6D%b#hf#E;{r5W2p9wS( z7{iIIKx$pVWb#blX7*uYs`#NYR%IJb=QSExLVI>5@$RLOz>BO)8GltfsyUpg1O~DR ziB!qGG&6_GD5scqrYC{-S)159iUlm?R4OPst;PEUKBt;k>q6j8N{OPa8BLzEiLDz6 zd_o;jRdC7!w9ubbiM-Vr%RCOFB!>A%u!O^iypveMFxHFtg&(1UNPC<%-X^X#rY-U> zs%kzYa2atnk{PT-WUWXC0;dvZeaN#akyX#*v}ZHo?0VX>0)JXoR#sM4*4I=`w`)ZV R)%5@X002ovPDHLkV1l;EF3SJ_ diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/UWPApplication.cs b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/UWPApplication.cs index 7543e2af10..572511290f 100644 --- a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/UWPApplication.cs +++ b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/UWPApplication.cs @@ -145,7 +145,7 @@ namespace Microsoft.Plugin.Program.Programs PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.wox_plugin_program_run_as_administrator, Glyph = "\xE7EF", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.Enter, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => @@ -170,7 +170,7 @@ namespace Microsoft.Plugin.Program.Programs PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.wox_plugin_program_open_containing_folder, Glyph = "\xE838", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.E, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => @@ -186,7 +186,7 @@ namespace Microsoft.Plugin.Program.Programs PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.wox_plugin_program_open_in_console, Glyph = "\xE756", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.C, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = (context) => diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/Win32Program.cs b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/Win32Program.cs index 9f22fd0382..c55a73000d 100644 --- a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/Win32Program.cs +++ b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/Win32Program.cs @@ -288,7 +288,7 @@ namespace Microsoft.Plugin.Program.Programs PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.wox_plugin_program_run_as_administrator, Glyph = "\xE7EF", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.Enter, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => @@ -305,7 +305,7 @@ namespace Microsoft.Plugin.Program.Programs PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.wox_plugin_program_run_as_user, Glyph = "\xE7EE", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.U, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => @@ -324,7 +324,7 @@ namespace Microsoft.Plugin.Program.Programs PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.wox_plugin_program_open_containing_folder, Glyph = "\xE838", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.E, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => @@ -340,7 +340,7 @@ namespace Microsoft.Plugin.Program.Programs PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.wox_plugin_program_open_in_console, Glyph = "\xE756", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.C, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = (context) => diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Images/shell.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Images/shell.dark.png index 23a69c631483cc9537ebf7bef08073167a5f3c05..79a904d14303ceb42b45c22fc5f1a441d0373223 100644 GIT binary patch delta 723 zcmV;^0xbQ)1L_5kBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPo5#f-Z4NnXx{{{8?+nrZ4fpn8>CE7m;l&- z4cZOT4FVIiOdurU9IE0t4!B7Q`R;V-*_JI?KUQsk5hH##qJO3Vh#1o+A^J}=BZ}d? zI1=rN9*K5Q6urV%LBcPI4%i=ZqQoU*7ILsFH^-ma{S11Bv3`kFTZRSn43c3kUD=1B%sK}c2wXB< zS;ohLu{Zy(L4PF%DruC}gaL!n>50sL;KFg`=;H(H4u*jn@GW6P#OE*&$a6{eUAzm8 z3iOTNrvSy#KcWrSNhY|qrhaPmN5}B-91{o$R~Eu*nJtm~3e&c}K}Qy{4Yn$PMVYMy z&hhjgTXV5h%oQuXIdq`FgXl|@Vp*LqShyQwrP@Nu*#;Olv$+=s@2<|rLs&rzQi%c6UZzU+*@@~)1fR}ArH^NhHJ!15 zfzs$o_J0|n=cZjQzEFI8PNdjyN~0qq1yR8CZPASld=VBa%+8?zFY*vtcrkw}=9~B^ z;JTG~p#b|^v(OYyuiBqYFn${}H(%o)X}+Ck(ZUDIA69(2J7zs%qON2 zSe&*w_6K%l=hKqUGwYN->^|4f?KA5$(Nn1NWyFY|ig(0B%z#E}by5HT002ovPDHLk FV1jvjO1J<3 delta 425 zcmV;a0apI%1;PW6BYy#jNkl%wwjI>A8>epEI1{U3ZN#YCXd2Y^ zB3j$F;_L>4?;Om~EBN7!G6uB9F{DGrfCPwg011HkLCS7&egjY741f0{eAPn(HTz;3fLH4< z{t4yq0q(+U%ltjlPv`=81VdvIz_QF|!xLEU(sl$4u+*)zE=n%#b$EUU_4PdDohWTRH zVPP}OckK>-0*rxUupyy0bFO1acB2v?_5orl`D@X#03yW)+Tz$xBoc{4qGXd9a_2{d T=tO4s00000NkvXXu0mjfP+!M6 diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Images/shell.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Images/shell.light.png index 9be4725facce45fb204406e70437e3eeb08bad52..c88790739a7321715982ee4d19318bf9e25188ab 100644 GIT binary patch delta 662 zcmV;H0%`q#1FZ#+BYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPlgD?z+|MW6IHh@mhZV)y|H(-Qx1JVg-C&&uj zfNqd%kZwRbL24cLRXBdpI6xY{J6&=HVabw(ZGef12_Fj~Ykwh?kXp#`!cxn=av=%M zWQBf=w#h*{VrAyIRtVW>ZC_F@$wCTeBjg1gAg}pIP)IZMM}}tfxecpOzj{IW4f+ytX0T_&4CoB29wksjUg7A-qLe_6bH62?-5cosbDjvgn21kAl&gN z4%D!x7Eg(l<$3zvqDvIcc7PjLTJ&<5SFhBzgL!iv8h?eT4&;bOXcR`fl+YK98+0Vp zfp7M|YrUuYUHScn-=mrg{)*(qltL+M-&*vjV^eym@Vj!{Hy6&H1B5D-l(UI;Er-1d zsT_BmaQNmz6bIHgJ@Q-1cHViW>7{5!IDs2i6rwl)w2xd&QsVFEQFvt6qB%gFY!Tmh z1&;!cn19s)*Qvy(kb9U((TtF)NbiVu==&s}^}*T>vQJ{>d%#s4Y?Ps)##?k+`pO_TnHLt;a w3#D@KrzIPybfiMRpINDxbY1yQOxzqltV@dlj1O&|g8%>k07*qoM6N<$f;YS^&j0`b delta 358 zcmV-s0h#`-1%LyPBYy!$NklZ;&ag76% zunQj?qj7bgHL=D*=o->1cY)A~~!7VDV&@2x@ zD4K&KJYdlDfC;>yggC9^6?xMGCfhV1g9c7uo4x~=I75HTbBd_LGd&=W269NnIA;XU zD8Mo~z{VkNuwRO34(!NxF7RdBs9?bK57{twP{S3fI7JnsXtfo*VP4`X(T6E4gyt{~ z3#~SUWz7Ed$6QKZqdFjI0|e<`i#FT@aiD3MrfHqk2N*_*Re6k%bN~PV07*qoM6N<$ Ef_?~?>i_@% diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Images/user.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Images/user.dark.png index bc7aefc65421e6c9cef13c94eda6c7da3c46baf8..aacf8861c7a5cd5928eb0e0021cafc56b038455b 100644 GIT binary patch delta 616 zcmV-u0+;=W27m>SBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPhU6}}T<(x45{Y;Nz>H%z`0$$=MObuJ0QJ4IqtKv;?Im-vgr7;OD@cyKkRy83YbOjj;G>UM z`sWNWATKX?B7fh=62t9sa%6}B-<9i6vM0UKR~S&7tWL39!l)WMjGD3B<{-;_M4-W- znM!1^PbJ39Oj{IEVpv*f^M>N!GSlsGlerSOrPI?;zC>nS^-%mgy4&1C4B4UXE=um{ z$Q3^Gj6|Lt6bH}-{i4iJ6gmz>7v+x#&#{jYeX`Lti+^>+<$<}3Jq*;{=HV}+P_LCc z6TQwdPWN(c>{#~MVl(Dbl$4k90s+zhV~k5z`#uI#%e@du*z(5MZlGB@S{LvZVy>mVSFrj#XTjS@~i~ zjGuCr17Q`LPD{?=`^R`zyPb|O`h;DutmM1d&x)Tt(W4Mw-NHZq5;#jk6x=EQj&cqP zUQz>AU_r&JLj9>{F`;%h(+5-OW+!%)14SZ{LHq)$;yY3bGvVO?00009c1t`dCcqUUXm8^%FL%-I#C}}F8~Oeeit{p(U4NF#Zb|Gi`pRdq|C8XW zXh_FrHL(+ZJVb3ik7!x)3?7dpHb9A6DEzxw<-7lpjNi?cf*&Kjm9yU%E<8i=fBf$( z_^=O6YxL(9Rn}+DidOM0do+L!(s%L zeH6!QTt#NH3xBvGgICb745RV?r+9+mW*6`TFHpwXe$)?q1237yavHWkL@D4YN|;^1 zGWgJtME+OVM-IHi4dgJpfVOf7T#V={`)Gp?ID$B4p9f;e3G4;(s7O8m_Q)hmu}p~Ni=B%xBY8EK<^T_~R= zMlLkv{eKc#7v5o~G6_~BKl-bC;Q2`XH_Jk~a#c=zsEYgY|I^51R^m}5c@LhUi`u6Q zviuH95o?jsi~?#f-YeM|8*4obDkm|l{pv6r-RJ`L$za22BI?vH{dY0=AaNOwkU-B%hWOYe1vEDJ^5mEtjS}lQE3q*ZJCViUEzlP` j|K=LW2`8Lz!U-qBUl)b&$^DwZ00000NkvXXu0mjfusUYl diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Images/user.light.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Images/user.light.png index 1d983c1fdfc167e82ec37646b3f8ec7fd2f4341b..9ed8a89d8efcff6a6a9bc684ae793335d4dff60c 100644 GIT binary patch delta 574 zcmV-E0>S-{1=a+RBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yP*`oz#AkRq#I-ex*OObOVYGa}^Fguo0ME{O)w&h+}^X%a#I=NF*fLHFj#OXn#yMRvRnLy&M~cgje_z z?J}C!<|cB%xNzIf*a#$q3#-gM#o8Pi`#^tLkzEj(9DPAov~l2qzO$d!2@&BQ_3`Ev z{U^3V1i1ILrwD4x13pSn7c&L$*eMW!k_kA#ABFxC4B`dh)B^p??&B5zoH-M?v+E50 z92|XlF=qldc7Od2fA)^PR)bE~(7l}6@-rmLHfrzXJ_i{;je~a}3G7sYg!!ftQM}Kw z1$F5%U*i-pz19pzF2bnSfUhd^so|9wjVC>Q{!*VDrP-@!sD_t)!2{kZ|7<&v?T~ZwJSgq|L zOpeEc=Fcr5wb!<7 z+xs|k`qjovE{gjnUwnL)%gV~i%K9g^EoX5%cXAPju_FKI_M;>7Sw{2s8d<~`&ZnGz zRIBq4jRYprlMb|}E5lhtU;ukkM(S-#M*<_co^7e;hpO0sqkm~n8`C+KQc`OLJ|fQq zcBPCzs)RLomcUFlB(+YZkvZ&1Aw5GYU8yJWY8Xl*$5UtSMpLP_}o-AZEo04dwSja&XTNSgJ#hxVEEatIa{PV=qIOcNz#a7BJX0sQG z_6Dt-ObNxb6@T*?$5tfT`2=32nqoSSW%QzfM5|*C^Vp6;TZv8t9wL=)pp~I)L?PWo zBNJGQRN9E41U_a}{!SOr$Wo3X)sAEgfzR2WH7Moh)v*oF(ZW)0r-Ibmo=<3HDZP1> zySbAm`IHIdn8jt(@{eg}h7!J)qlISL2;W=Eqm+?)Wq<6<6D%b#hf#E;{r5W2p9wS( z7{iIIKx$pVWb#blX7*uYs`#NYR%IJb=QSExLVI>5@$RLOz>BO)8GltfsyUpg1O~DR ziB!qGG&6_GD5scqrYC{-S)159iUlm?R4OPst;PEUKBt;k>q6j8N{OPa8BLzEiLDz6 zd_o;jRdC7!w9ubbiM-Vr%RCOFB!>A%u!O^iypveMFxHFtg&(1UNPC<%-X^X#rY-U> zs%kzYa2atnk{PT-WUWXC0;dvZeaN#akyX#*v}ZHo?0VX>0)JXoR#sM4*4I=`w`)ZV R)%5@X002ovPDHLkV1l;EF3SJ_ diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Main.cs b/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Main.cs index 34118b04d0..d9057a57be 100644 --- a/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Main.cs +++ b/src/modules/launcher/Plugins/Microsoft.Plugin.Shell/Main.cs @@ -450,7 +450,7 @@ namespace Microsoft.Plugin.Shell PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.wox_plugin_cmd_run_as_administrator, Glyph = "\xE7EF", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.Enter, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = c => @@ -464,7 +464,7 @@ namespace Microsoft.Plugin.Shell PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Properties.Resources.wox_plugin_cmd_run_as_user, Glyph = "\xE7EE", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.U, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.Uri/Images/uri.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.Uri/Images/uri.dark.png index 7d69b0ee501f57f2b11ecdd12b404acddeb5a834..5ce4d8386686e72c323317f7c97a8fa8545a3d52 100644 GIT binary patch delta 385 zcmZ3-Hk)~Zay45gJI>?=F*1xPg(4z88m_9YKE0SvYSDua_iv>j7xy*W(Fmonui=J|D~31iFA>w zKPt}XQ#D03t&d&f>=NcPb%M(+eu!xGvTHz)ug-zL!JPLei@LS#pPl)A-}5BKb-h*R z*w#<0U0l~Hvdz5w{KA}sGsRnO-n+DZ0<-aXHnwLhygJfO>i0PU1IvyqdHC(!>ZZpQ c=bltD=xN`&rvD_q6&RWfp00i_>zopr0P&5UJ^%m! delta 792 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 diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/ContextMenuHelper.cs b/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/ContextMenuHelper.cs index 07c9afce46..c2ffebddf3 100644 --- a/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/ContextMenuHelper.cs +++ b/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Components/ContextMenuHelper.cs @@ -31,7 +31,7 @@ namespace Microsoft.Plugin.WindowWalker.Components { AcceleratorKey = Key.F4, AcceleratorModifiers = ModifierKeys.Control, - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", Glyph = "\xE8BB", // E8B8 => Symbol: ChromeClose Title = $"{Resources.wox_plugin_windowwalker_Close} (Ctrl+F4)", Action = _ => @@ -58,7 +58,7 @@ namespace Microsoft.Plugin.WindowWalker.Components { AcceleratorKey = Key.Delete, AcceleratorModifiers = ModifierKeys.Control, - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", Glyph = "\xE74D", // E74D => Symbol: Delete Title = $"{Resources.wox_plugin_windowwalker_Kill} (Ctrl+Delete)", Action = _ => KillProcessCommand(windowData), diff --git a/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Images/info.dark.png b/src/modules/launcher/Plugins/Microsoft.Plugin.WindowWalker/Images/info.dark.png index 583f8c4d7402fda2290d3769ea418b55af9607c7..bbfd91a171b8ff9d7aef088f86d48e492bc1ae7d 100644 GIT binary patch delta 738 zcmV<80v-L*1^ES#BYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPlvoH*Rm4AY4P&OzVzy|3CWP^;5ZjgV2bcAjI zognE1q!W-0RQXU_Axw*ngRfVxv-o` zs?}=s0Lp1Ij+ioBR&#*Ra0E+B#B!Jj)v>{TMouz=ld%|o2-yJI`&0=buvEN<8-eYJ z7VdMR3W~Xm7k_PPCwAZi6-?B(8NPE3w=J{Yczv$e4tF2au9aZhIUDpC9=T8W2alsK z*?=R;fCe0)GMTbr{6wds?=>1=ce1O&1MH4|wSUZLa9f@B z$tJgT8D~MR#hv!0QxANp6NG{rIH?9| z^xW{Px-;w_?v{9qK?8@6*L{ZB4CgvtR}B|9d|N?r#CH6?$NmM!9hWsh7`h zH2r77Fm&J|gFK4xP!ms|<+YCs=YJUd3OQ8JLLUPxu?qFl`+udr>ucYNYOl^d_-3=Y zPn|~|6183j0o`X~IBC*vQx zpv(YW^RJ*L6}+fP8%bl22mF)=V{KBIfo7<{u{3bef{zJGmUUh|Ztz8JEVa5%l$7mj z7S|G@h$Q-=%1+k21Hef&uc@ z@Ff;_gn#*lqUG?9)c2@QD0`t(@OfWKls06hR!HNy&?CA@~{HO4*S z=RSZaQ`uw9Qv27Q8JGY7fAo-(Y^uR zM)@G)2KXT3D8UVIl;AMO4RDxyh|_i6y01oYIy7pb$zLf0mip*e#b7HSS_}wxjn{_` h9G;lQk9l!Y~Ym|1v=~z#Ehek_})3*nknj26O`$p&KNf z06IbF1h7GC9nMuT4#bbd<(ltKhpwq@S(4wt$jJZZ1>s1g%zvb0>NinBT%??o9Ho>} zKJW)119K^7Dc_b-N!dx6A_8Ri7WPKB$)Fus!|d_1>eLFqDO8iFzb%xp70eM?qGwEA zFL2F!TQXHvuWySUNDPfta5G$Ij@yVF(2Srry7Ak<4VcDMfk5aL=je|dfzxS;;f$}* zJF$i%0?pj)Wq)wBz@tvHn^U^(&>XO~mCRM+F4JQIPv;3V!#IaM+<-IeNi`d$HifzO z3%J1-y9#db+0SbHaqqc!pIEAT&TwC0c@#QFkr#6HTu68%Q~l$_P#|M^iTLc9p6MS= z9hfow9r5{O`m9R<+K1F3>r|ixfolqqSj`}YdaP2K=YO2fekVtm6+FS6fjns`P;)_i zxD7WBo#4qab>MD~BXBn(9(6zgU6|)UZHyT(thk*Tw{#~)PD?L*h~DBOT!ntrk-n!!A-L| zv@lVTAqp_bM|=^EjZ#q0wZ_mgUF{qM2r)(7WSv*u;e&9TJnB_f?+^hTBu*K3h;fSw zjFQjibNG`q%WXxyV~wSZ#HnJ85P`M;rn$gp;n*zd86ebHs;14CSfHEogW}_t_$fc2 zU5#OB`hO#M*kFdXHfCui@GQm?P|r4I8jFX-=^(}<8aUqf1k|&kF~sQn^Aq?F9--`C z;%CYDCAMEi?I&QrjM{(5>?dIVA+z5~*iXQID`CHxv!8(dW-j~f^c5CzweRip@Am9~ z1ONblL0JFRk8uXtLIs2dQc7Ox>8w)NqS7J|cOc8_*5CjZQqgCG#cFI^<<1jz=vK{7%&=m>U$bOXDABiIev z4NNDn8(hx^`cC`+j9|#)_a0B49&&#`?hqgni9{li2@o-%Qh!jX(Lc59JAoxo!wcRI zmyn%rF%yAe+4LGxc?Qo=pGPXW;){Mcp;&huFH}3b-+y|?_c;7Rn3^=SP3AZm zdryYzVm?4PTpm-DI2J}I zfIrB_6C9LvwCC_hBMWfb-LW6(Ee?^{FEHIIVO#;3afI71lR4jU9((W*MX>S=y^Sj% zPn*v&BN1~r*vaO(zXla(#7Pqi%t4OKIOygw_vQR|CKgzY1{u@e%^Ehz8tP3fum~kG zW1^eO?3VM(On)pe9)D%VMS1?adyPCYt^haP#abAekb|?Bf}Yrqk1{_O3xX+7i2M*p zuzjjnhw;y5P7R7tfGSvNzzxps9JSxXvXEaKTr0}Zm9Vl|pfU)6w?_PL@!~5ls6CjhxWHK2$m9$n`FMsWt*!tn#6#_W`$%D4p z0iN7b@ZKV-8ApNil+unyEUa{DiNg`=L$jgfIM4-KVtoYkg{`rhakx7EUju7QPuMtF zz}jR1YqKQa8yiKvYa3}VxF6_l?4%%VwRNlA_(BFa57+ichnE0_kk-LnU@2h*;^QUY z6@K-9KlsFiEq_2j4}M$^HR&@~C8~ZgXM!z&=DI6Agwel4JXiwuMn}#Q70_p_LL68E zXj=Gu2Q-0xKClFw5%wKWK~K9FSOx5iPIK3}Hwg9p)A;|Y7WyJ>pT$Vi?GuTi0zOE) z2A_A*PA-5#7bACL63`b|jQXfF;##Cb_(m4%4Mbn>&Uj-LfoUD22B5W$nyF@{pZD>f zg96hN!kXjgTg*{w$T&^l7&h~IKmvMt*sR0!Da8;GJiBlBO(D8VUxsV-LZG)0F&?ki zNW_weXguR~oQB`p_&s4`m@~0SMiEKUD3f_)egG0aY(G5rq-_8I002ovPDHLkV1hPV B;8p+t delta 392 zcmV;30eAkG1fc_vBYy#CNklDuMwr$(qV$2R_+m5zyvEA5PINRZ@ zYumAa|lMU?39JnnVuJ0Xo1C zI$$aWCdeke26TW9&;dFik`|&6mR$#Q#yUJVeZXMc!%yVkA%FJ6Sz8P@bwF3_MFzx+ zr#fE(H7Gt-BDs zHgUj8G(yl9-r4{`gNXwcpcI1f@YYTU%1sHbI>CWvW9rN9O{09i~@Bk?&M>9(B z4>!;gVYNL~lp mY}aLEVJX@|(=@FW)B-C0yA83)=0LZ3j&j-#od|K@1>!MP;tkRF=0Cn9A9vhTHb*f6I~qN1S#MEpZSXE oK~C^)o;aZ}|23-uK@ev12hQEq{NQPb{{R3007*qoM6N<$f=@ivc>n+a delta 289 zcmV++0p9+L1iJ!|BYyz`NklJW5JfQri6Vi^3%aD2QN)~Y1mNth@z-znx5|;ivUXiFrMHdlu`2d z?-l4m)Zh>xOJVvYemSq6+ znq7@Lqh#{Kxd#Y9fVjtKBkzf=qf)cc$R3)tJVrfNppa*=F}K#t8CfeC#sl}jN`M}A np^Um`{=tzy02)P6R1AFpp?H}1?rz%o00000NkvXXu0mjfsbhsS diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Images/calculator.light.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Calculator/Images/calculator.light.png index 7b512914538e855d3d3afa9e2e863282ebbf8dca..351607a5eff711ef295f231bc579ae755d497ab1 100644 GIT binary patch delta 454 zcmV;%0XhDh0^kFXB!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj6bxA})RCodHnTu_NFbszOc9CO)vH@(+QRoJYzzB@M2(ZE3CUgUu zsEwL~n9IYVqUTSt1ccZz@dE)M2to*zl0nI=WMP*1M|XuxbbsJqG$kFFIdbvrPE-!X z1^6kI^ebB|;WStZd*sL7?Ewtf30opR1@03&8GB1z#zw?fCH;gifi{DolojA9r?bO} zLmU_YEKD+b+KhryW?#P`oC0*Ldpq!g$1KGC)b$XOb-&`|q&V5~A%?(e{2U5R2gi;c=o%lE~SwF`g$WKGqj;6wWO!i9Nz>nVD wZe^yWQ-?P*vzw|H3ua#66Yyr<;FEbV zGq2`-g4cM3ffHYqioq4G3;!k0+$AGVbfj59Rs|vCCO*FG5*Tn4T|y7P4(N)sc&mU? z92M5K0r+8sT}}b>8{V@EFnJCG?9TuLHlkCwH4f18?*R{{&h9|rIY^rBDbi61!D7+?<}gggPUv3WLErS72s0000NklIQLxW`m57 z5$pyTAtNN6KsT@(XeTh8;0lHGodgsFw0)2N-o4t$ad#X6j(-3o5{bl`WDp2M+^|1; zCOMOW$+HyBjY%h^W^&E4>=TxPIai{f)Vw<|snDH<>%tOHtK_pClNSAHqX(iGd}eae zIMSoY#F0tP+Yx=PQ^%?8L zD>ytdIPZ);Q%LIPHmlLt6xx#KFIb+AJiG780Y-2PtAEYS#)oW7`L_`R9GME-rcWCm z#-`AXbTsE+^)~aJ&gKnV!QolmeHHKoMa6fgF|`}ZKuw;*9ID))gVvcEjRjz}kwl~* z&o#J$qFTDsW2}00+V-q{=-yG~y7Ywrhljbwr=!EtS&*aO61#rKX{EDpWuDpInb`9$ zXq4rQ6Mw9j*Vs}^$}q(YK3-%6uaYowQO^sECRQdiBi{!9zG=Q(DCg_!ODNP|Q??l6 zc1{}91;PI>U5rY{xlXV2)kJe%F|NDZl?u&d^X>4dAVx{*9%w+ z8A#*q_fICgSF?~mF>TqOR}hD=trYqb6PFsqAt3Rc)h8V!5{bmW=NqHBw;zEY*a!ds N002ovPDHLkV1n!YH>&^u literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sHUT~%uK)l42Qq;q8DQS*QWl_Q zk&+<4U@?v%{gcI@$UuWyVVm31-m7?vH^eRhYbGR?4-eN(Ei-G)O-dz%)wCh5J< ze8#9|U(@udl7H&3J!QQsw7Qcjrb0`~M#_9jDE%-?OwYsVJ+);diUX@?+{+ znrB^t-`21!u`)I-Ptyv}TK~GjF6Gu{IgNiIaq^G5i~on!{$et`!ymCaIA9epAQ(Jd L{an^LB{Ts5I5Wy} diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.History/Images/history.light.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.History/Images/history.light.png index 8b8470b4b6fa0a638b2fcf269d38e5f664562687..af9294f9dac904dc88f80b012b6b4cab8a21665a 100644 GIT binary patch delta 646 zcmV;10(t$O1C#}j8Gi-<00374`G)`i010qNS#tmY3ljhU3ljkVnw%H_0004VQb$4n zuFf3k00004XF*Lt006O%3;baP0006hNklC3F$`#)1?=Kk`>47b@j_6J2H5Mc@s$q(U{!JFbfA2yO^(kiz1m>Bt?8 zCyr>sC}QR5I+OQ4pf}{Cl<|t{dbQ()VdIG`qk543#|XfX`(58!B6P+AM(8?!gg=hx zd)aF^O%22X?tkRyd)FItvWZFobK_J`r0_%ma}SIeHwMpeHCDvd0E+!PE1P2_Yz-i| z$4jh)ivg+^;-Lp$@He5w-xvFT7mck)L|8VzJ z-YYd7Z)1MR$?`eqYK*V@=ZNaaup(rLI>6_sgokYA^Al4d^oHhbCQ|$p6RAS8Nc_ae g3Ugy)W8?qu3zJn#Ja+`^`~Uy|07*qoM6N<$f}Z6eA^-pY literal 414 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sHUT~%uK)l42QtY68rKEFfI3A= zg8YIR7zER1?*6aTQSM@VMk?&xs`P%t$r}ov0OkLBx;TbZFuuK#nsnHJ$05;kW4y$y zyZ_e}TVHUH`~2%~X}sp9CvVb&wyLFe&5;V8`g{v#OxDxPYm7VPw@CcrDN*y6Q1@8- zYLCd~tl0@tsw_&6qx!Z+Xo%?^>onDS@Z;CnFLevHg>r4^^nH@3u*on|;>%M7uAD{O z%o3_xDJ^C^la4g11PR1+H;KIoZA_6`$=N*b%dP~4{dxiwRu%zoPM`cUDdD(oywDN* zU29oC-nTNSEZ8W{{{P~|X5){k07*3~uov0HLI(yqF) zE+tr8pYeJ2v7fU#w_fjl6ID9V@^zzT#8mlhJ&#N4zkQBjnl*t>W{t<$S)d^HboFyt I=akR{0Fbkli2wiq diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.History/Main.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.History/Main.cs index 04f0efc5d8..4ae7b8c13e 100644 --- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.History/Main.cs +++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.History/Main.cs @@ -205,7 +205,7 @@ namespace Microsoft.PowerToys.Run.Plugin.History menuItems.Add(new ContextMenuResult { // https://learn.microsoft.com/windows/apps/design/style/segoe-ui-symbol-font - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", Glyph = "\xF739", // ECC9 => Symbol: RemoveFrom, or F739 => SetHistoryStatus2 Title = $"Remove this from history", Action = _ => diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.OneNote/Images/oneNote.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.OneNote/Images/oneNote.dark.png index e4806bdada9803f03da31006fd73f1a7a2069bef..4228da1e88fa1c76f55e1e31c94f36cd0fec6d85 100644 GIT binary patch delta 526 zcmV+p0`dL41f~R#BYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yP4ia051= zZomfO1h_$b@2*IEgp%e@Q@s4{aw$oh_RCB1UILKGWHKo!;D3lxs-*0m(iMhdQ540O zUf?6(ld=-SvL*pHdV!Asg#?fQ=WqUl+VhOa@H=)dlXVw3bFzTc{67KhgxRVSXpht# zw?&`e2dJ=Y5dhV(3SA;D)?WIAwW?zkg`pv-azkmM{jNp*lG3`poi2^F(P)E?Ni5ql3E)jgu+z5K;k0QEgbLI~6K)vM z9A%JwZ&!ONA8d`7EFd*!f4uHvfi;F_BMW^0Vwz$&*sm-jgzuS5CgZ^mBoVi(>x6Qa Q00000Ne4wvM6N<$f<@%%EC2ui delta 548 zcmV+<0^9wj1iS>0BYy$|Nkl<#6rmCV5TF7D46_iRSRi&s2oQj< zH2_G|Hf?(w8Uz4Pg)V^*h=LLVYyzpQ^~b~KSg6 z!C>Hk255pt1PD+AS--!$E&25$a0aZ2AAuHGFMtyPH$emh5r4=>RD&mB3AhmnG~+Cg z2vlheSRo)QTNv_81U$`sry$EN09?S8K3L)v;BQPj3<4D@&;p!se2gk>(ENuwc%lLV zsQCnkpe#88!_olE|(XfwDZmu5`>z9s%>13Y6seN027}g{fEx$n2$P_#0UPxP$`mf(Z1$ z41)k`5tjf>O(S5~Yd;27c=ex2SXQ!K+9nWbOm z)JA66*J*~wXd)0t0p=R0jx@~ujSLGGp!b-ljBgRsBco`NZ>Y~wI>9Txfd>ysbw7H= mmoz{)868?tN-+#D7zF^~slR=&|3I|>0000IQC5 zoWO2iouJ*Ielc)`lmy5x^zz)jSFXvCe1z{O0Z1egiI~h_&VQWrK)OLV)}&uJ;)iq$ ztZ#V|HY;#M9Bk&?pn57f{FB$lYjA~$lMIN>MH;{zW{>WWR>3rVLOA#tF5~tdZcs*{ zYxreIme#FSrfO(Q3bK_uh!kGIr1nqJw!B_Jlo(xOpvSl>I`1dH1{+BQ)8 z%FuDUeD5EVD1Y=qI=~+c;wjg~RGm!>;FEvDNHEO<@9?_{y%}o2ZTZV5&oBap8gNg# zE3f$~>@Y%fQD}wcrh*$YxhS+CJ(kyBqyiB!&BToK0pSbI_NXNV&L2t!MK(4yfR_k4 z=^5@RAaadN*4EjkoPNS7Dn-L~Kd?q*`n*DOoGQhI)NPhQ)JBI|-=OrVMtzI{&A0{h zPCVq6`Qvq)71$y?JNXaW qPfSaMgXa}~2IabZPb3lv3;qDN%ByZy9YSCL0000h%Y;jSyfc{{*t59Gl3(S-YL~u!jIg%U`e3AtWY{pMK zMt|o?&dn|GXlGGUffulaQQ#k67T;efsemb?zy@a^a~{88g|_(qnnD4Sw-<6L zAT!V`;IP*k?0;LJi62@89439@T0o{(#R5(7_i=o$T7e#p#OHgS*TB%Vz*D>zpBwmw z8_EUJy#1JKfj%s*XC~%NSs>&&@DLUs#ei$zWVH$a_aUM_$hwGyF498^Y;YPf0WV@v zKo~Incr{SOs5jPPM=;7Z4Sc7JNJ1K@&vvM5g~{PGOLFcss55 z7_AFbu7L6y7`bic+%wOfm`b*CJCV6(R`p*guZqFv+gG?p48GWtJLupn>UhmRVJU?H U-#H=j01E&B07*qoM6N<$f>#&n-~a#s diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Components/Utility.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Components/Utility.cs index 876a1dabf2..74db0d004f 100644 --- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Components/Utility.cs +++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Components/Utility.cs @@ -56,7 +56,7 @@ namespace Microsoft.PowerToys.Run.Plugin.PowerToys.Components { Title = Resources.Action_Run_As_Administrator, Glyph = "\xE7EF", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = System.Windows.Input.Key.Enter, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => @@ -73,7 +73,7 @@ namespace Microsoft.PowerToys.Run.Plugin.PowerToys.Components { Title = Resources.Action_Run_As_Administrator, Glyph = "\xE7EF", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = System.Windows.Input.Key.Enter, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => @@ -92,7 +92,7 @@ namespace Microsoft.PowerToys.Run.Plugin.PowerToys.Components { Title = Resources.Action_Open_Settings, Glyph = "\xE713", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = System.Windows.Input.Key.S, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Images/PowerToys.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Images/PowerToys.dark.png index 49a0a39e6dd8e8908c00c092cd7163ddb7344685..318c8854c17b9c6e78512ed9d09aa7061e024cbb 100644 GIT binary patch delta 525 zcmV+o0`mQ)0j30yB!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj6yGcYrRCodHnTv6QFbqJIUI$=A0b zRHztAO>}JZoR}K{aQLw=C>3QFbxic;>LBCwL8E$Zs()jmH&+K4mmD~a{+}InZ1n6I zHEkx{-%3qiYH~oUW1?r$g>(VbQu!QKhJ5ZN{}tGR?RI)kjcKo&Y%dp3}oAZG-r4mjM-1{6Vv(W1cV#1n%W+x%NC=NN`z-1!G3b%Tkh>lBj! P0000c@HayuqDp=l6gb@^QBa#HqYsb@4gFc`(m(f@;^qq z&g&P>oH?^i=cGC}>zU_F4RJf(XF7ZgmJ7F87-;(7IWNQJg8F=i1_nkZ77hUgDC0x+ o$G8UZ3*nKI%8fVQHQLPV^LjmJ(R`r{1|aZs^>bOr?3B<10DSm3fB*mh diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Images/PowerToys.light.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.PowerToys/Images/PowerToys.light.png index ccf947383126208cca15455f16b5b15d9b30ee59..582231e973c88275042ec206cba6c8651f781690 100644 GIT binary patch delta 464 zcmV;>0WbcV0qO&gB!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj6e@R3^RCodHnT>6OFc5`bI{_QuP3Q*c28@sq7=;lSfo?!IUH*DRBlXtjXb)nYT!%dz$ahnRRi4FuNtAHEw)4+Xzr?LCt9;G!R z-QXVZJnK|{aKJ*N8{KZ3SOlhrGbg>WTARkAYm* zD=v;0D2*5>jei&@4aLBh^*hx<#)5AZ9KpAh7y@&MGN5qr&D@WPRGT`J_=w}~$g&s8 ziR^{`Jrn~9kD184H`m0NGjSw*18BnUZ&9H!A#p5&cnv5gBqk(|We|Vt{(ll<&cu%><@Rjj~Gpz4W18o zYY=IXZnH*Jl5Yg1K5(>1gu>PjC-5geV;g@t$DAMt0+DagHq6fJXyc^eFPTo0OjF}c}ZdD+mhZDBI!2Z4z)hiqT+7qm)G z51p*?vcpz*?SH8N;qpF)lxuDbQIFQmkbcp*`z`|tXt@4pJ45suzb$*$OjGgHf5#QF TD3$B=Nst;(S3j3^P6 TryToCopyToClipBoard(entry.GetRegistryKey()), - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", Glyph = "\xE8C8", // E8C8 => Symbol: Copy PluginName = assemblyName, Title = $"{Resources.CopyKeyNamePath} (Ctrl+C)", @@ -54,7 +54,7 @@ namespace Microsoft.PowerToys.Run.Plugin.Registry.Helper AcceleratorKey = Key.C, AcceleratorModifiers = ModifierKeys.Control | ModifierKeys.Shift, Action = _ => TryToCopyToClipBoard(entry.GetValueData()), - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", Glyph = "\xF413", // F413 => Symbol: CopyTo PluginName = assemblyName, Title = $"{Resources.CopyValueData} (Ctrl+Shift+C)", @@ -65,7 +65,7 @@ namespace Microsoft.PowerToys.Run.Plugin.Registry.Helper AcceleratorKey = Key.C, AcceleratorModifiers = ModifierKeys.Control, Action = _ => TryToCopyToClipBoard(entry.GetValueNameWithKey()), - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", Glyph = "\xE8C8", // E8C8 => Symbol: Copy PluginName = assemblyName, Title = $"{Resources.CopyValueName} (Ctrl+C)", @@ -77,7 +77,7 @@ namespace Microsoft.PowerToys.Run.Plugin.Registry.Helper AcceleratorKey = Key.Enter, AcceleratorModifiers = ModifierKeys.Control, Action = _ => TryToOpenInRegistryEditor(entry), - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", Glyph = "\xE8A7", // E8A7 => Symbol: OpenInNewWindow PluginName = assemblyName, Title = $"{Resources.OpenKeyInRegistryEditor} (Ctrl+Enter)", diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Registry/Images/reg.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Registry/Images/reg.dark.png index ad72d4df14861a341cfe134ebcc45da03d70a463..04dc0fbe129c22ff149b1453b0c7ef1828c705b6 100644 GIT binary patch delta 529 zcmV+s0`C2e0;&X%B!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj6zez+vRCodHnSphKAP|Pnz7CKL>ITUMO(sc3=mxq$Mrb=p(g~6c zbc41N(BlAc?os^XQt$ZGbFZ zt4kkZpY^gkn17E?@TWBu%xQo$l67E*l<~--82!IC?0y`hKq+T8vWd z*H~7MxkCVc!8=X~9IKZu&ozcJ! zD8#yn3HhadL!16L=Uj*cws@=kG%jQoYrvIkAT`-QYO;aUWCN-B(+1jZ$8$XpMDLs} zP!W8u*EujYplv!WCs6Wb>ITvxUu5lYayPj;8z90yF@@5ob1(aYUnZ0J=X?R}Ud7ns T4t4YZ015yANkvXXu0mjfV^Zcn delta 242 zcmVPx#1ZP1_ zK>z@;j|==^1poj6rAb6VRCodHnSoJ*FcgM=JqKU|vq9aUbrL#)8_*3LL7jwdU^jpb z)Cn*-;QETB@VY_``kUe5V!lTt1TEl$?G8?vxAkX-m?MCzd0UN=(N{bG*SxLH*0rN_03Y)` zbcubT4Yyd1FMs$`+ZvV(z+K6Dl-3jZd~)qL$0QD2j#=|)u4U9Ugu%Ll3jDkywh#&e<^lNt!*gRH6okwJ^8^^4r)>%z=I`Lf)R-M(XE`?1Xbl?< zorb)kea-ZyS%J(Q$>GTw0`%J2OkVp}f{y(I`0Q{VI&a5L9QHU5v!m7{n9MbaT~WB4 z(4#E*EX1WI$JQ5_H3x7a1&B=w5StVrHYq@C{&awv9Q!=WghH=b!vp#-7F%9lpwtFO ssDd^*LbjMfRdv^1{f1v6k@(Mi16{_h*jN##LjV8(07*qoM6N<$f+7>!<^TWy delta 250 zcmV&;Z!xe(_(!cg8 zU-+PU@qQwd-g@tUy#T(s0Dg4c$M&&C4`_fze4lGBpb!rb0)WSF;7JGo7T?yN*8tmC zFK-=Ba4rDGF+>5dUEK41md67`0dVO$o#pWWVE}kMKo|fX4|5O(;FuxvD&1?hp1}Sg zqMh#{0008UTkk*v2ox^?)qnuHR1sAWq`E+>OZGzXZ?4e zeAWj95I_I{1Q0*~0T>J5F%jN4Apa8w5I_LJUOW`wGC4M9y8r+H07*qoM6N<$f^#)y A;{X5v diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Service/Images/service.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Service/Images/service.dark.png index 5a2ea0ef64368cd3215a6c6acc9f6e1e88e095f1..2061f4f012b6ffccf5ff8e319830712e43a5e515 100644 GIT binary patch delta 818 zcmV-21I_%#1HJ~38Gi-<00374`G)`i010qNS#tmY3ljhU3ljkVnw%H_0004VQb$4n zuFf3k00004XF*Lt006O%3;baP0008hNkl1v9MKrzlXoQn4)=E-M_uP7#_fdkx0*NS(Ikk{x}pFQUX z8lm3`xvewa1ok@N?*%)S!#dUM`6#jqAVF{l>o%TW2vmcwgpBOM-qcXux5y zke@`OCn2vUI-01${rs=nfvem3R~RVrZG%n~0yX z0Q&iHhI<&&j6JY^j`1R3`7<=aleJa!TVE$s-hX>;XlXFc5AABPRCNEA<#+8{fgVQ4 zP7j;jl#Z3Ja?^KjCmh2teHZmy;|I_$o3axpMd#!hA6!-+U4{NXCS0gfT&R6H7eaUv zw-_gJ7tncLCve*dZjR^v>jO8;7)BL=5qF;H*`Rl$27P!?u&h#yKk_>p09v=Q;m2z% wqbokp|EenJUjfewro2R@b1d^U)=js2AT}{r@?4~s#9h<1g$)b;UbdU^GgR@b(c`Dj z`!?O)v1*cH^kY8P-w$f`U*=I-@@>FgAerSo&w9A~EFGn*zdHUma z)1>LaKQ&}Jx5!xEDOBFVlD%vO!#m$-(aj1o(;Dz|Osn@?(-$(w9hpPyl+Amr>eL4x}$={C8zs zSl6kMxIPq?1u7!EZ?NP)JM>KY6V6WCwIbI{LN8yDu5mrXWza4;Au=lKhV6=D)fID1 z*6nLlhzQPpO@I17I8#XE;F+(cd16=MyfT<{OvfnDxPChn+YWPPW$eqWz5QxLfE|Ej z$`wS7b&l5#dxguoDiH~`b8=&*jEm>C=z#MzB15)EE;{CHhh>3hlanp!JF;iz<(d@| zL17t0KIwhiC_5@BEZqTjM5q)08s#5-|2=)O?mvw)$A6e@lj0*3l2ypCPN5T)s}TJ- zal~aK;-%LJ7cui(<|ZrRl-sCA1lR!-9$U$Bhk2D`Tzc#k67>Pjl*y)WT!L#RUGABG zzYH{x@(R=8l26e2o_CH4+6UgbP(1NSy5n@z?E9RN8w(9MIL_pg zWotkDn17&in!_vef;&ST>M$RR4H~*>L;89}UrdgQgPQc*xs7BWHR!914nw7?7 z00k02A7pZ2$lO literal 454 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-s#sNMduK)l42Qoy3hYIf~x1_nk$PZ!6K3dXmS51xChz{4iaGnvKt!Qc61 z7v-~$hG~6$XkW&cYti!~=Z$^*o|g6u`~08r6Q&$iQ7`0@e6)vQQ?P}CW7A=2&cnhl z|9BozE&4e5;tZvV-%-2{q-R^pFZ!~ zbbH6DNs7^r`CNZLsM&v+_kh>d9S6QD=^U|3kp0M0wf*~{B}UUOb8fyI&G_W$kK0X? zrU(Djkm=kaV|}Mkc?(PSvKb8Te4|A}x9G|-e%+4H^)4r#am{%D3 zlr{BEn3(*5BhZseRAmRt#=81tlmmok3do3>FVdQ I&MBb@0F|(-aR2}S diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Service/Main.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Service/Main.cs index 94e117796d..bf77a74e16 100644 --- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Service/Main.cs +++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.Service/Main.cs @@ -51,7 +51,7 @@ namespace Microsoft.PowerToys.Run.Plugin.Service PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Resources.wox_plugin_service_stop, Glyph = "\xE71A", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.Enter, AcceleratorModifiers = ModifierKeys.Control, Action = _ => @@ -67,7 +67,7 @@ namespace Microsoft.PowerToys.Run.Plugin.Service PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Resources.wox_plugin_service_restart, Glyph = "\xE72C", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.R, AcceleratorModifiers = ModifierKeys.Control, Action = _ => @@ -85,7 +85,7 @@ namespace Microsoft.PowerToys.Run.Plugin.Service PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Resources.wox_plugin_service_start, Glyph = "\xEDB5", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.Enter, AcceleratorModifiers = ModifierKeys.Control, Action = _ => @@ -102,7 +102,7 @@ namespace Microsoft.PowerToys.Run.Plugin.Service PluginName = Assembly.GetExecutingAssembly().GetName().Name, Title = Resources.wox_plugin_service_open_services, Glyph = "\xE8A7", - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", AcceleratorKey = Key.O, AcceleratorModifiers = ModifierKeys.Control, Action = _ => diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/ResultHelper.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/ResultHelper.cs index 3886cf7eff..9b864057b7 100644 --- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/ResultHelper.cs +++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Components/ResultHelper.cs @@ -79,7 +79,7 @@ namespace Microsoft.PowerToys.Run.Plugin.System.Components { AcceleratorKey = Key.C, AcceleratorModifiers = ModifierKeys.Control, - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", Glyph = "\xE8C8", // E8C8 => Symbol: Copy Title = Resources.Microsoft_plugin_sys_CopyDetails, Action = _ => CopyToClipBoard(contextData.Data), @@ -92,7 +92,7 @@ namespace Microsoft.PowerToys.Run.Plugin.System.Components { AcceleratorKey = Key.Delete, AcceleratorModifiers = ModifierKeys.Shift, // Shift+Delete is the common key for deleting without recycle bin - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", Glyph = "\xE74D", // E74D => Symbol: Delete Title = Resources.Microsoft_plugin_sys_RecycleBin_contextMenu, Action = _ => diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/firmwareSettings.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/firmwareSettings.dark.png index 2b4aacbcaf32154f81d71483ff79b342ef4dae59..01da9ffd2f9aafc0ab30b6eaae91fb1a375f0b73 100644 GIT binary patch delta 555 zcmV+`0@VHg1j7W7BYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yPlgdh-x_cB+2sUUWc7LrOV;jRNn3D?1OVhN@L zCKV(dY+zh7xS|k*I869vm^%@6S^0S>K&4XI1tJO@5iGyeNq2bjHC}h)ZuEs0OhsqiR&Kv)U<6PfDB=kT8 z*_s$22RLfpZu~PO!q{R#q#qMFAF#={061T{dx(V@S|hnmNlrc%5ANhJ!vB!oEf{)PIY;rRyP)t|i1`_v1zx-x{H|H0;dw=HAno~rNK?gw}(DxU^c>e)1o z`^_(HIOWIdq})z_!2z5dd9UD>kc4gCVU&i!Xq-!=V}E6RNJrisVhQMe!MgiGvT5kQ zcdz5~v5SBJOhXk$=s46z)&QuC@4R5{@%JdoYSQ_n};%uSB6Y^MW? zNr(kYInZo4=qv~29VyAtz=9Ba9E9Ci;h5kVEMwj tRX=d7Q6vL6n*aNOV**S6%vz}w&NtwuI!uUwqhkO7002ovPDHLkV1gp8{u}@R delta 615 zcmV-t0+{{71pfq(BYy%$Nkl*O;B)Yuh6D}U@2_LcH+AoJ(=aV-=7 z%3CxA&-g5y^_Bd>y#Ww1@0$FSK#pZU6K0m=88I6gB9y3Xy{RApB&+ zvryspCV)3%i3e)|nF_q>k!uGA6VUUXpHgq@lN6xwKM9x%Z$>A8IJs~m{06@W^T^hk zjZwhC0niE$F@OKj2p~owY)JYMI>w4o31H4rc%kf)U=t%Bs+Cx%xz~)5lP_uQ+2!aH&9ggLxptnq7t80Uk0Qig6^wGy}99gu53wF(8kj=6bX zAN3ox8Zpf61sMLVa?BPY$sFFAZ6P15!hP_Mt#H3n2a2;fvWTB2LxW?qjU1!p5yzO!H z?t(vfgtXiU9Xr_9t@$UVaehgD?<=|5P1-4dM;5LOY2^Xg4q&p&MiqMxYy5 zogm#H#RAmB7-ReZx$!5R5(wM_{<94M3WY)_qO<$(NnxGI!GF$<=N!VF7)6l%!ttEV zJRx&R0Y{U40U_|t8cZ9~$C|;{Zm`Z;geR_>#C*6-lDq_>C%;<}H2E9)@twgRHu$&^ zzbz8MF-`u0cw8_oB1um)Se{v9ATVw0D2|pag-)46+}VXY863H+Pfkd~=Gdl*tVS3W z`YWYmFzQ-0W`7J_*9d^#$|V@=bA*Ilel9V*ad9r;Hr7`GF}zuG&M|MeYOpt~G^1mT z8PA4&41Rij*S>#}ZS`FhQV-iNoqfQLsmN<*-&ny#1}5n5CW%xVeJsguLd@m#4-UX2 zp;wqCRKv~}dTA(>=5>j1?btPH!@es5SiAi~J4O{jn}674t#jxoq!M-M9|`{$LAXw2 zwjy?!$OQaGAqvNIMsD#pFW6X%I~!Ubb}@HGe3-*AH3Dd0xs?&1(ru6cP6A~4NU5NW zIX={f$mxvvL%l>o7&3pYlCp?)kK`#FnZ8=op~+ALmPf6nb2d|6uOCe*;6E@ntKO&# gnf%RKC>P|+FBY42fjk-U5C8xG07*qoM6N<$f`OFj0{{R3 delta 667 zcmV;M0%ZNR1hNH?BYy&UNklG5m zeT#Rfhl~krvqKX|A)8$S4y`L>6j3k~l6`r-z$Z8!;Rv?$BE$RP1HGqr=R4`1bn>gH zsHmu@sHiQ{y^yK#L~uf%agXstt;w)!G5*M!A>$6???QbdNPh>VE*Os(j~HL5H4gf| zjp4WQz`t-6U7he7pSdfQXo%y`+*6JlsfDAmB=&@Uo$wnoesfyY)nAfK7_q5gy}Mv+ z$PdC%P3##Pzmfzx_1As93Fyb&s6r;nZ?FWaREzyK*|r1>ZGQqiVb;_H5@8^`gE!1Q zRa%`UCh$Y}r+<89%-L#40$t%&D1;Mm%ypZXKwH>R<6W+Js^%8V?Rtr}Uo-)N$b}g} z9tfw{kJY*{bEmBNg-wo+S`s+&;k@3cSE`rFl`JV-ueX!F5ew`Z4M!F^AN6jIQt%R>q6$Sii`;<74|p z7FG%M>x7&@92C!JC33r!s9(C7o2zE-%xLD$ShL{jFY)oBY7>OtPV2f(h2M5N-4LmF zffG)k5Pov5`J%2f`;)TSN+_52Fj#-1Mny&a2NW)Lv-%+$l@tH~002ovPDHLkV1jio BOGf|z diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/lock.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/lock.dark.png index a9a4f9b1a9d1a55496890b0e8a5d26079759bdd0..a619064ca3f5fcb9b02eccbaf5b2ebd988baf13b 100644 GIT binary patch delta 482 zcmV<80UiF~0q_Hm7=H)`000120{Mpk000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj6g-Jv~RCodHnSpVGFbn{dPQV7u2JHs0QM&;n zq#Mu;GD5lmBV+`!fhvMYjDgq&IW`ylo$k1tY)iH**$#jp2!E^~Voq`(Ipdw0q#}8T zR3YOsWw?!2Cxetw#@Fahos<(ep7|3=(Hp70D|00v1;~)SVOaSbC`m4p5% zsa3#X>=zFDxu$=H*y!=#sGs?^dBhG@q8qUzLbaLW4K|LK11f%xB+XO^pd&MF8r650 z%!F=LmJ8nO^nYaId7Z#v+Pij4vIl0U&rcjz>-FJ;U0n893l+n7`f49xEvRkSc9tM8 zI6Rs(HhpUjZhN^Yugux5_>B2lbs$B=f!G9d0K3aeqa@zBU#}`2ZKf)B8FEb4&WzgO zoYR+#DSKdspNZdoAqGoANVPj?o7g%2eaDoeL~O)?*jv1W1DE~-pYXnKT$(O6eHRD* zwC`^S&lgOOy$l>*>MN2DV5VJN9G{^I-~hM$tP;tIFvoA~{%ILJEi%$SEfydMg0LC> Y0Xd)cH;Wys(EtDd07*qoM6N<$f||_E^#A|> literal 225 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDB3?!H8JlO)IR04cLT>t<74`c#KJRtSj+*qI@ zo{}KHUt1 r;xv(AqEJ(T18-*_r_rP22u6m=G#l-$xz|;Ib}@Lm`njxgN@xNAdUaT< diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/lock.light.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/lock.light.png index a4a7536864a48c71c82abc759fc034bfb4cd612a..415be58258431f56a890d0d23134419305a0cd4d 100644 GIT binary patch delta 458 zcmV;*0X6>P0oVhO7=H)`000120{Mpk000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj6ZAnByRCodHn1QXrAP|QC_a<-yyTR)Qu+e)P zbOhf9b%Tze8#sa^)D0@c8fi-_;2|{Lm;6c70LQ^`M*tXxp?^jw?Uc?+U9Xc;t+YkP zY;c=+_e8tCZC2k+$N+O?Ylrp+ zWVQ=t>`RCC!f1a+2ACn?!X}{4EMIt?E?~TnK32Z5a(o@o@!Kf1u!n$a9kBIj`>~^C zCYLHpCGza_&VR|1J0UCs7oexav|5vdQv<(3^(y9WHz2?~uqEPCV0f?>amm4CIoktg zn;%yPvV$E+O-u(W+_H#P(tH2h9cBqz<*q#Xhu9T_^E#6I!wWs|QGsbL3F^AQeQjPEVtQ_k47;^M&3_(T3fe12iK9gM&*FV{*xphxfS z_zopO#HycFQaBOq`YkbiTBOqbX;Fe<7-ltG0W07k(D8sUfdBvi07*qoM6N<$f+~y3 A=>Px# literal 227 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDB3?!H8JlO)IR04cLT>t<74`kv8$JOjofhu@P zg8YIR7+hxF{V&*Y=AE(9H;n_HK=C9`7srqa#$<^+hk$^arbj#i1cH@pML13ws2+)0 zu0Lf}kH?V-0{t->8XBfs1)P(zrzi;M^d6g_Vanpk(VpzFMUTbP!!^O9g{#T&#e@kQ qu1qdo1{_X|%%&=CswX=76ImJ30?nqM(r&K@xzp3t&t;ucLK6UzS32AP diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/logoff.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/logoff.dark.png index ab8b767adc6348cdc850d769552e41143867e68c..23eb2930215e6f0c3dbee1dd40c029f8fc2f5dd2 100644 GIT binary patch delta 572 zcmV-C0>k~&0o4SMB!3BTNLh0L01FcU01FcV0GgZ_00001b5ch_0Itp)=>Px#1ZP1_ zK>z@;j|==^1poj6>PbXFRCodHn2T+~Fc5|>6$8)-$Ofwcm%XueG<9{(Uhz6=gF+US`Hn3o~xSL35U|T0k-DQx8R0bUDlT9R_2ap-~u~OD__OBz4*cNX{6x8D z-yoUXYRc{##g9H39lAqBo3o@=b}>*gF*NcSbZpYV%YSK|AXV^Pjl0rez^WS@Jhh>O z1~x&#QycQpAR4HGf~Pj*qd_$A!o)wd03vxuc5fcufbmoUdwq`?Up(zVET&G_``^$b zbpJpFVj4H`YX)wOX%};;|A7{ABv2<43Y8o|)*YkJ)^&uTU|X!!XQK64X$kEGmbrn% zhr7<=Of~F`xCw5mgzF)&e#g`|16?S_W*`iGV*DSF$z(E_zVZWa*%wQ48?5dC0000< KMNUMnLSTYgv-eK` delta 183 zcmcc0a+z_0O8qQP7srqa#dd6^7&S|3I_a7Qg$Dz+iOKjHwB*eM~t$1$f)OZ}U^ z=lAbTZ#MLHWW+Ln!2^AURK^dg2~)&@+-gG zH#_(~?Di2&5WAXmeAnH^*RMVo?_pRVsn77@csj$cj|RL9{cnCu_B&9)4>adNL%%M= dEhdN!3~>_jD;6||<}Lv7Jzf1=);T3K0RTNDNdy1@ diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/logoff.light.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/logoff.light.png index 1131665426477ffc45a0b8b0b847b0d3b2f28062..a1e8b635852db9cc336d3153dbc2e1c5270ace71 100644 GIT binary patch delta 538 zcmV+#0_FYP0kZ^Px#1ZP1_ zK>z@;j|==^1poj6$Vo&&RCodHn2k}xAQZ>{^*TVEpxGeZpmhRQaD%!*;{-h?(G3zO zs7|1rKsTsxfh$DVLOE8-L|)fOh^cu`mik}J8gV=-=QfR* zr7W7c>=2nmUkUg?PGX38V1qC!?O8sV-ZA@eJ?Q)PmcqI;Qd$iH zJ_)Ezy+i*A{D~>H3#oN^)7~1&8-&68{7NgUK=?uOX@LVSm((E|CKj5u-ojRVoEK>O zC7(e{hsIhl8&Sb`Irqh+LD7v4p6Vz>gQBbd4SEMpb$=A1LD5y$LP5b(9ffF6bnnrA zQ(F+pe`I5G^$ECkCHRoWXV?bkorw=j2vc9=BY|uEEt6@K^P_Tquy4Qw9|`oygkn5# zK7#CF9&u`TjxZElZ$j>gmbly}P3a?w5OKLmdd6@!vS`u{@u1p#-)cg}A^vyRv({J&Brk|3>h>qkK~^Y&L)k4rOH9jRb%klU~4(DR+a=4eHC qzQPY%kkS8UMhheefLII+33sKPZ4RmYl`|{`aXnrAT-G@yGywqMI!2uU diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/networkAdapter.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/networkAdapter.dark.png index b8d449c5da0eeca5336c9bb57737b867048f6e16..398c1d3439c5b1e776f7ddd4a72e9d85b2cd8923 100644 GIT binary patch delta 620 zcmV-y0+ap80{R4y8Gi-<00374`G)`i010qNS#tmY3ljhU3ljkVnw%H_0004VQb$4n zuFf3k00004XF*Lt006O%3;baP0006HNkl1d#5-}lmIzK_#`MnaK2$H!fXC&`%z-R!< z&Yx&>o)7>Uq!hUU&a-^upzAcX*TThstD+VSV_^5z0OWD8=M_+=)Mo=2K{C-P^xXhP z=zbi60a~H~U4Ih|=$dFi*SHuU+UD#!)J|LMw$AyMO*Xo(K2w7k{K6UNsG%)?sKhEX zt6H1I>2Im)o6QV>&H=A#plx)+ zqejxom)kPXyb|4`B|diI6m~w`#5e5XEE0+QSAGEWCGGkIRf~iG0000L&f+azI z!3@ba{{J}d{^7yW&KVVZUT!>Ea_3MwP;!f>i(^OyLuv|Fg%4hc7{;kc^ z8&w;w{i$uA#PFwD{_De;W@1XOD-Ju0ym%CO>CA*FyYuF4+^=x+9Mk`|x(RP|e|#02 zQZ8B}&t+7qt3Gv05+hGO3&;ONfm5z54kT>9B_>#(9+n&?50O)=OPgg&ebxsLQ0AKN@&j0`b diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/networkAdapter.light.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/networkAdapter.light.png index 3e4e24e446bf67527ebc4edbf28b810d0cee9fec..f66e7e5a7985b55ad02b540a780b91f60db8355d 100644 GIT binary patch delta 549 zcmV+=0^0q%0=)!~BYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yP~gT@K$2FV82335)LPT;wL zPGFs&BP32>HmJOVT+&>9K!hf_^4-0IHZQ;f9y|yTi9{lEAb*ikNcoX+@GMm3tCS@I zvIo33ye}nGM>(;u(7BVc()pbhp9m?rPBSSlaKOfZrt!6uTZAEnGGGNqt{rr1Ob{0X z&P@Re$DXnQIh4P#jy+`q2m!T-{K?b}AO!bt4hFD91I8vAFgDSEv2ig#AWY1jpxteq z<1L$Lbl1yQ@P7+Mpvj54yh4Fh=mX7Dug>Q5S8xrp83E!Es^>QtaB4C@)8<{uTjxI! zpq{hR9q|-1f_j~%Qq%ZP(+gJ^hJdsZ&Aq{x<><(y^)Mmo|+UIsy$Dj+enc zjnh}KTO!G!KM-&^b%lD;YAz3D_Mt>51XQnguOhAI^?wv7;qm&A!*(Y&u||9N7M(op zu(kf3>hvCMJVogjMuuBXQ?0XRbP9|}0{+^3+0iQ*-NDm}+XrY%-@uH}=@x1YZ>Shu zf-bC{8QnfK9UtI;>&J`?Zsd;TA5ImrFjQc=?xvyN>O75>fIZ!^X(UXiv0%>r-_K4Z nM&<^*gC26S*Y8InkxS(lLm~9dB(8CJ00000NkvXXu0mjfQ{3`b delta 289 zcmV++0p9+-1iJ!|BYyz`Nklq)^#OupeZa-~fZ_vufDf=S;5Ku>0)IinhVrBhqQdY2+79U~ zAAC|53@f8_lJK=V1PSK4K+q5{ynxcl4mtaLtlWu$>1A9|4~VMYD2RBwM44=Xs0B7U zxf`2>6HiK1RicuL22LEL$$=fyibxOS^C$6iU`Bc%qDy(eA2#`+6;HRKyPx#1ZP1_K>z@;j|==^1poj7DM>^@RCodHneTN1Aq>Ey3-mfcae{UO-JspT z5jw)TK}T?ej?fY828R=9CrIIW)_@@4Bv(G%?>(OJ5&nb_gMR=pF)>jTL~KlHP3iE$ z&XlbwPf#;vf@@O_7{}JVLyg#pA)htWgqe`?R=zW3Ww%pb|Ay|CI-KjOpx@tg@=ZXe z@r-Dp7WyDP^Lj&XNezWsAd|v`Uc=SpG7k*WVkTbuTY3ksZiK6CHwze0WM!n78R++U zKxYH>vVmOC4S&!V5C+{q-=*~DkVX@E?4!UjrNA+Ob}~ltSrA#Llyg0xK%S?_*g9q^Jr+Iw`sT_g?n!u?gC+2&52FQT@B1RM|Si9ALSDB9!nkqjW_1+VX909!a)$bawb0pw6b)|>`h12mBrAO~HX zq8`vhmOM_-#Sz;=lD|Y*S=chf0}A923u0C_E`TDk<}~0M&_xC*4PBf)rvcXh+L;15 zM#%$JZJ}hUKI0w09{UU(tRH$z$UR0_xE`=*A{WobX6`C7)=hE@pertsjk9xrWvB;2 z*?8l9LVu=Cb^vFA?geh~JAQPp=RdgZay;-&WCi6>L>BSDlB`hi`+an;-d7+2x{nxa zH#7QeNxyQ}?s)x-^l3c<1HjW&`_lUpZ;^d|@`AZE#k`s_qQ&xzGkIc!ec0QgdwZQr iXD4pTGfYhU55HBh)_)0tPFVl|002ovPDHLkU;%lth3}i0l9V|A9;(i3Zr#=*R*kI7)*2f*Ban-u*Z3 z5S*X0;v!Hiz|+Msq=GS7BFsU6V@hmHOpgOk38(Oa7GpC`aRIfcL#&bls*Hxt0!d1| zsxb})4k~V{8IoJo8UqTo0@Fh}MJkGlou_ITH+ESsXI5Px#1ZP1_K>z@;j|==^1poj72T4RhRCodHnTv74FbszOwgWU9U?ylcfDPIW z7@;GC4LSlNbOf#w&0L^@W6?{k?1Klu_1be2ypK&DQ(2iyMA%Q zz&;zgSSK*xq>zK229MCg5WVI!;5twfeF;72;&_ixM}LR|n%4=sI8hx)b)67ZVMj;= z4D=9HVF%X%ZZ*CYL-d-{fa^dtGDvLb;v6{*xDL?H4D=AEkfdW@fr(MbI0ZA9v#0YI z4v4Q2+!S)uMAxXsW@M~MBo5G=)TqYd8sG?xz)&^b_C6uBQQN>RJ6!Wqlth3}i0l9V|A9G%7bwb6666=mz>xOtzj24) z{G1gRfntH4E{-7;jL8yt4goih9zE(2AP{_rMdM+Q?;+O!fsW3p1&(YLssctlO#uud z%jdRmbMSQ>S;3;a_?n6~gO=W_9<7N?{&{&Tgi_T43ZH*ToVJ%yWv{71U_ewq$Q_=p KelF{r5}E+Fzc&H^ diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/restart.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/restart.dark.png index dbee7c814b233dcd39576cc30a1e32a1447e15b8..f98f2f8e8985503af7e202543bb9d4c51e1ba091 100644 GIT binary patch delta 650 zcmV;50(Je^0+t1k7=H)`000120{Mpk000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj7D@jB_RCodHnSqspFbqJ$P2dK{2C@NcaBkoT zj=%_x;0SsX$Oha7a1-DLx%B9Hp|(gR1$~eIUY=E2(vXrS6@Or1VPRoTA`k)*-|1sR zl8|I1D=mr(Nv)+IIYm+Q4O2mr%dsW5T-%bI(VtR{g(=`#*>5RHh2yD$8)7J2k?buK zX|VOgjwDh2*myN2)7Op;L-u@3NCQgC#B(3z)Hl{+D!lc^J4l0WMm;rc$RW59j>+#p z2yB;@>1Da)gn#$RVITbg0*FmDnEGWtX-Y@3>dVL1SDha0(`-?TDpd@Dc=J__v8Bzc8^QMQsx1AbEdb1 zN5O8DG>I4V)32D`ap|;iGr2O)t?z(iQV7cpQ|uyE%v*GsC8bO;gSQ7+;#Cp`F6vcc zRfh6}<$uXn;_sW~t<74`c#KVt~)2?d(9+ z{3Stt!3+$7X)|~KSL!HtF+THdm2zRmGoaLIPZ!6K3dUp!KL-JpDY2I?IrSXy5$T*{ zVo=~d{ep-0Tvd%7MmlRbL!Ev_cqw|U-4T7xO{LT1;9dtifrgMfZqp|0`{p6Q^`*#M z$@9e%&O-+`J9`LS=2KKDF`A%q$xKOQ$z?7t=7Ejr1;zlhTFsN(&X1%Nd%DnU#us&-JW1o+N)>5M?!?U)RH>fOV0@x&-l@!-9cLRx58T4h#4b zC2;MCLWlNG24SghEbJl|eNH#32OjE_GM461W?;Bg82Px#1ZP1_K>z@;j|==^1poj76-h)vRCodHncr=LFc8MSwl96m26%&H1K6P1 zfDtkRBV>fA6EvLwHb^%hogjJaTj~==It)1cu}vcRCw;0T41e} zB(;^=NF`D$CE_Y|Rw|^9Qory>CUsMPbyBHZT_2;9y4MSQ;F?&f#Q2HpqGvcagbzqz zvG1731(hdusKRK)?x%L5u6?1~kiB+~RdmimYs z<4@`x)pvs+gFf+O=w68WI= zYf04z_||#u>tr%u(1*k!32PUafIxE_^SKTLn%VB;?@$gmDf2ye`hLO;Quz0RK=ZJl zVkZ1yR*!i-9ANoC6T{tMUPnJt&VKtfdsh!;q;Pnsr`XpES}w~fB^<0bfp#U0;x)o_ zy2_L#9BiiV0^Q}nY~-LTbyQaHqD7kAg{THZ17I_AA5jVbJv z*ApxV8KN)nAg+i-lkCE|6(E)sFK8Q7&6R2AP{&S{sAEvBB4OP`aS>v N002ovPDHLkV1f~F9xwm^ literal 345 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDB3?!H8JlO)IbOU@sT>t<74`dPv4p?no0949f z666=mz#y15bN7Fxj&c{{Gw)U@7iK&IN}cg^aSW+oOqR%V2)Jpgt9!&lzZmnM8RdM8!26-g%m@LDj%^#WcQY2Y7_UVj55MY2T2%Rp27h?5CA=Md{2g zu@+N9g9H`%7O^cX?F_RrEib5eX#^&xH7Bw$EZXn$MPPx#1ZP1_K>z@;j|==^1poj7e@R3^RCodHnSoL3FbqId?hnunem0;RG#kJM zVS}TKS8YXBr5He9(#W+qJ$LYc4-T5%FEq_^-;#e-g#Kgpe2}F#j z?794hKwLpM5-JgwI|xKb14iN38}JW2pxB;687jxwZ1(CnR*eJKaf3kKlX+Y^JV za9eJ}O7+;s60S;9^t$tN7xdsZQp@=QGcMX z<|hP(bg0QciAQ&~{*4BZNm3pz*8pz zEoDb+Q?-6?OkZl{<3lESfsm4CwSB2}msJ z?%yFSvwx-2Ha6yapy@{Jo1xLbO`jvNFWOOj1AW1IGBb)7@MrGb`^u#fD1{A^=Gpb- z=yQZH2wY;FPAO$iU3yCCxB5bG7DRAeN22K%&f8cXtahP1fuXNeSc&OkD@Tt@C|;P% zF!@n$=hXkHi&CDr8gtNO?J(f4Ia0a4Y87uB4p&PV0zBrL+ct)YBU-L0Lm847ywQg} zULfPs4cWQR``Z)VyV+ow7M9mA>Lw$G^N)K~NF2Frp*$qMQ-W2%#KeR*UlEISj1)p5 QjsO4v07*qoM6N<$f)D;krvLx| literal 370 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDB3?!H8JlO)IbOU@sT>t<74`c#KVt~)2?d(9+ z{3Stt!9Yz)X?Nclp9!5Q*su0!aWCQgsCLy!(e>g?KR+hso<`{87SJqK9^~tN*9x$(4to!LhXD?Dk&usRP=0JJWjk+@>Izc zX<^PZRpC^1R9WCMg=JHq*NSO}8|Ub)Dn7_?c;{r0wplA2nb`drGa5PAIviYBtVKLB z7r2Xv=y)CPh*Ds1*G)@eU`j|j;A8jP%xk}+zg@ysFNX!MI%c}4p4Za6JCnn2(P2&o ZhN==r53MbF7l0mS@O1TaS?83{1OW3!l+pkI diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/shutdown.light.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/shutdown.light.png index bc09c5b35dc6396e2d1ed61015f64967fefb7545..d5c0cbeede87be0f182b173834b350a8ef0c5155 100644 GIT binary patch delta 669 zcmV;O0%HC40;vU%7=H)`000120{Mpk000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj7K1oDDRCodHnSphJFc60Sb^iTdrt$;Tr9;)@6Xyxj_UY z64VFZ6}L79NPm{78!>1&>9b_B==vA{s0&+qcMx>NOUvi_8UWNiF~b1x(Ao5O&cy&? z4KE|&L&q;m{^x+3HG{jEYs(pqcS8Xyp#32PtQZZa9LW9=E@!w=D8+f60|yblsj zQr6zW0ReRzi@6R2)U?{=Ap9YRTSn;%&t!9Wz|-kiUJy`g5SKJYfh!xV%rmgTfCUXP zgIh`If`498de6RO9ZE4HSW!<0`ex7Y00000NkvXXu0mjf D4RawO literal 374 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDB3?!H8JlO)IbOU@sT>t<74`dPv4p?no0949f z666=m!0=xw?e06{GodpDJ9fMLpYZn+Q0k?pi(^OyW3oh^LqI@)hoHxW5GM(h#12hG zA+|{#r7q&>`9ZoOK_dK@G#n<+SoVtJlA_R*POWn*w@4-Z)LY7_A(R?r5U%UxJ~1PT zVe*4Z4r1wncYzGPB8N!{p^g<7G#NY>X)q`rT-B#i_=3Ty$(`Nv(Iw^QZZA d*7oRcYz*EPEP1Z4-Z2{#be^t$F6*2UngB!na|HkZ diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/sleep.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.System/Images/sleep.dark.png index 8036ee61d56226142aae76c7cddcb06ff63fe90e..bd0e3d4b5a158b4ace9831d8da79f117b6652f4a 100644 GIT binary patch delta 714 zcmV;*0yX`G1J(tQ7=H)`000120{Mpk000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj7Ye_^wRCodHnTu`PFc5}+cLHq?ZIEsdZP0Xr zWCM2tcY}5Vr4t05K;9tT!0H4_C%7KrOK_w~TjE1j0DS;qLVuvBJMkXA6R@(fQUoIU z!efx}!sD68md6b~0xW1pVT?i#JSr>|7VZaK=3q_*ON0e`bl&(@%xDNGvMkeLfod(F zx?YL-96X9F=QKpncLHm+o)g(&DL8NWCa|XVoW?Sg5Ziy_^O<#(_=n~J*M{s++Du$O z&_jR}y+9N04SCJiF zgQrl;gq*1J2NMue`l&8GhSrw!fm=22F`d1d-(zl^xE>YL9Ut>422dDVUw z706~nbgXanLwdITUr0ln&8u%gP9JDtJ6eNuYBleD3z8L(wEqk{Y<^3KJeo$$d*nuJ z{>8ETY}J&L$QtB?3fHsdzm(c{KrSRQbdKOgk*pmB-mg{rw@4)*IEe|}A|rHK=r@Q# z9CSziW`EQ`g}Mi1clF|uA=w%AL~tt9*Q8v@aBjinnU!NY@qZu4b|NEu@#3278e&vi z<=kfO+b|nubynwDt#jh(QH}g|*&q=SqQS8f wVOk$G>_Ws;Qaz3x1~YzhtNsP(%4K)?-H7}JYCyR!o-U3d6^wT;t2(T86li;R`*w9+e?n@1$Atq&`rWLF~c z`R~*zO6M5N}A@!r@OtP1D$JotH>JIr&|5&?s* z8He&#+Av6@&KH_kX*cQdBle;vUz)y4tnGb!=ZSG;-_rO4yQ(|C&v-1n`+^yRKq_y{ vwu=13`r~pJ6)XFVuDldgQa>iu;uObFPx#1ZP1_K>z@;j|==^1poj7JV``BRCodHnTv6PKoExiqyjteI?xWJgP01m z14}R+BpqlfU{V2gkaQraKvO|-JHliS4iVUe%Y<)cXAb9t-G94%a0@UpGNQ$Ul~X3~ zR$?m~D^vUt5-Z;oLI$m@Ob{^7s5T&%BQCoVBx|@UPKuHno!~blIM*_870e;GS!KT! z4GC&DNKvkw4^p_eBU=OnU*#$nF(~gwFh-E?=St15%%k0k;To|*03`TTC~7#LT&p&) z?-3S{R?=)tyMMB;`$K33oUJU`b!26M0l6iJeQeqP5)4RP8m)rdho{%dUC?wPo^?LZ z405FxcD=5esA<5AjZ-w|z{X1q0MF}fb2^WqUW3`d_5UUT%-NylJxR-j_-Y-je4-sZ zc8qU=mH|&}yhnS!*toaD56|I8bYp>@>w$sn3t6oJl7B8VDLf>#@``S7w>kSJNE$#H z!?5cJ-7##OLJ8lyywuS!R=B5wfqQ6?K27mL7C{*8^Xwe%;YJL~3<+Gt=>gJP%&YJY z0{9fqdpcbx|ht|@ou z4k;1g;y&~SY2Y42=p>cm(qSNZgW}<2WaPi`0~CRYDf>U*s(%0g002ovPDHLkV1hxY BBf9_q literal 394 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDB3?!H8JlO)`1o(uw{{R0U$Rr-<-(64*R4q^v z6!F;uuoFcz2R&giD}6>vQFY1qJ2h%O3=N ztbDzjRlmaB`j&a_@v4Q7CiVn-?l`^o^5NgF>%X2++{~!3XcOxMmRr41kw*;9cPm|r z%Khx6bZX)TL#<8~ajxD%$A-qcp^*yrb-7tS?a*1V%V)Z0xy-0GDrTHv#I08jOL2UeY&!jiiOR>7#o_d@W<`R7f^cn zgp0weBXdjm;eLh%NA?{#^ZJL%eXspbKHpTe3viRR*x>qO$%P-+<>#O6=D+fbCGU$L zgTtDz9X4fm7}1~47=H)`000120{Mpk000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj8R7pfZRCodHSxr*gFcf~zAsN`^1~n&WZ%}%I zF1ji((=fw8yJ~JwaRXSDw4F(qAxxLtp!5dZfb;}qTcB1Y*?*Q~%dutqF)1_tW|AoS zfA5ptC)ofUI&^r_KzIc3FBdN%ikRsAh4?!J4p$Ha3=g({0x`%9;FI%r;%By`c!Y<$ zXFv#21Ni4@2togcNQO(Q+``~~6ZiIRfd~Om0{fpJojk_{^fp3>dYhtPk<=K%A618L zNFYMu{Tq`Lh=1j>t(J@06Fj=oMLi60f9DqvfQ|vQJ&Tv=CVg8ScMvmPgD2ntC$K5}>sKN!Sc^#@aetUO6}d z8Hpq$3vt_4pkRQRB(fs!>(UQz7vlR^XK-MAIvqj_w0|;yPv*I>xjw6GG`Kqf!$Jsm zgOAVxjSWy?6ZlAHV7d2oH7R1EuGQ1H4GYZ~$cdI6HdU4|P^|GAekwlS=Fc)s4|Yy6 z;?{zNMg}PF+hH@~(X{75yt(Bv`D@iRZLB=b@<#fi83VRxAzbCX@6`p7xYag*pMHOy z@qVx|f`6tU5V!ga;KQX(FA**8t_Z}fmI1Xy%e&K@xYcB#E(6RY{laDy9C3@RV~Gd6 z4aj)kSG0VQ6SqVlz2Id)ELxWLk;ePFJ9R^|Sg0XxehdVCDKuf+w<}r{z{8!RCgN6U zK;nIKzAq9jDrCiN>?3Z~3}kLvaP95=C^%Cdt$(p!a^f}=;>If5lodMnTyaUKT>FJ% z=I_rKY?VDvDrW%uQ`2)h(ej0J#HbLrr3R?5DTGC5P>7Z$FY8jp>XMaSN6W4z_4D^F9N)5#@0@YH-rbi`(hEFswQTIHCn`+;Ht1 zA%Egn`%$7JZpaJo&n^S$MI;`0f$!z*sR@E{B22e(aA*R>LbluCe4h%1o({{f8N!x#`QkOYc+1d%ra{+a{T@stGl z1v4y7{&4>Pp3aH~?i$1K{71LBd zo@qK@v0c^C!d_)#ekEgw^{$OGY=SqNs7#P*+Q1}wKsRw_Cz~11ULP@jhE`!q%ZCR0 RX8;|};OXk;vd$@?2>=Ccaj*aY diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Images/Warning.light.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Images/Warning.light.png index 37dd08c87e648f0cb435db97195ea016bb7328bb..863c941f118f1654255095135e8cf442d6c69a4e 100644 GIT binary patch delta 1013 zcmVPx#1ZP1_K>z@;j|==^1poj8lu1NERCodHnN3a`F%-w2Ju^t8U1Zsos7-c( zsOra#P^rlYdIZuFkQ*@E08Y^12Hb#D)2w*qL$c_n!U!wgD(8D7e=kxCM^tmA9bL`!63#W5P9FS&w1SfI$gdEr_0fEx+X&CjXMp4>e}hg?_dC95s17$ z0uk8bgJ(3qM2ok_>jYaK7{Z7F%)@l*ba;J{I9;V946aaZu}lR9Fk(O$5RaGXeD_|T zo-5OXMS(pVx3Q)S%1mwp4(dzmV%AvYS6jw#(AH! zdgl9xkZrN;ezjbNT;1p3aHTSpHtF2==C!$Auy@8$plugQ4>uqOnGIlRlK|;Veh4Lc zpVRL91B{T%>jXhJPZTm6Ad8lmHW|#ogO#Oo_BmXB{7ih-{Ccq?id&v2WHNvaPE4E3 z`|>*r*nb`_?&xE6hNOw;eO=MgMHaV6 zAT`l4AWEBp_jN@}7bb3E6w-*BmI03CY$S=634hj3F1NCX+gt-8?*r*h8mOXW3Q63$ zI^s6hfN9YpeO>S4(B5SpO|xDkaVryq-Fa;i&&2XMmmShg&iy##^E16qY9-w#B}RY_ z{sS-P6)j!lEyg@?n`yx4wAA8t6QZRHy^47+R1?K*b_7Jx%HVx=L-(ms`4w%aSDw5} z(|>j-Zj=6##4XkUMYJ+_Kfr+--HX!Sp^MRjl*riIr&i&pQ~#?*e>7o;FU4N+-`cuEMnsGQkq@iZ6S_9m`-DC`3ppl#}3)7 z%>EuUDlXh1WU8X3QzZh!^aXwR&!CI7U;1M!2}Lo0rLP;uZqp{)aUuKnkVw=@S9bfA j?;HEiPC-FIff@b+1gUV7vLBWU00000NkvXXu0mjfn#|g; delta 285 zcmey*zJ_UnL_G^L0|UcSohMs>luCe4h%1mj#=>xdf#C=X2pwf*IK~X(9t9#+hKoRw znc*h;wLL&}JS9PX!3^%=M{55k=_$|U4k=sh#Sau;?djqeQo)!cv5Udsx{M4X%Mk{V zR;fGRmo)FqXK&c8Ch~Au%0GrlEFC|E>-G8lG$sqLy2n{q(vi7oVo}dYMH!W4MO!)x zV$=>!@+_Fm60KHf$FpdjXpxZjYC#UB4keB~B90R{SQ@vhapY(<9azA@w7N^dK(k3< z;^*_P%lal&OjG@Mrs;sic2!3UdzFp(m5d?QyEe|S3Epg?GC`_o1C!_h-Nc!lY-T)r ceZ=?~T7@kw9~$hR0dzQnr>mdKI;Vst0OW&WLjV8( diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Images/calendar.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Images/calendar.dark.png index 17f88209695876f182e6d11057a3529868046622..7151c0e9491eabe4d1f35fd4a0b2820d90391fcf 100644 GIT binary patch literal 456 zcmV;(0XP1MP)>Wgl3C zlzkvBh};K4eNb>8NX=9LclCg!M_mWdzf8N2=}iStYtKhoAH8mBnhS=PyQP#ricEXj y7~YBt@&Q}EUe6?mFz2-(1lIq>B#2=cCVL*ro+_3+*&%QM0000B`u65gl0Cx{(%59V*^}31faE)0Q4KKTp;vog7&_{ z84j-3XLfeJzI9$6;Hkrlb82RmEEbE!QZdu%bPUS$8l2lxbH^SFumT=InX?Axo~gNy z^B532kbpN(<~O*~&YZZCS!Lcp;_|cZ1uSSP7GMQDfD~l^;X`>7?ah%?W|jFM-a{P) zbV6K$;&tjM;4s89DBfWc1$=re;L~>jo1i7EHCVu!n!D+tfB;fs0i93_sA~z{fL@^7 z%v!(~2t8l+m*9*Ayn=C{yxJA;Uw{>01>kpFfDGgyB3@KD;$9H13r6A%Lnt5vWn$vR z%FCSp8493)9F$3jmnbhMUZlK92n9syIpQ(#jtfWJhTZZ#rq2`iFa8z;@%SP6ugUf&kOMXOfdX2NW2&2ofGd) zdDq0dR^A=)&XxD#vw#B`as+mWw_kX|9`W{+w@*au*csdfKZO?Yww1R< zye;Kz6R)MbU7rO!J1)Udg(Wz0T!PPb2EX&GG4WFIoC**(4gS@b@-~#WPP}#HZG8V% zV|E7Z44#0VY~^3X>xvhFHu2hpBW^c@0-h?I!2$6GKP26fLuy=0w=^9iZ=m$ z;`Iwh+@UQ&E5LsN_JxT4P%;!||4`CCkgx*cMP$ihu~;k?i$&!hn5OrM>GnB500000 LNkvXXu0mjfHy#&~ diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Images/calendar.light.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Images/calendar.light.png index 5e3795cf119149b3ae1efaee3a1766b46c00d828..a147425c1e72c7943ab2b9ea4c0774cf3127e36b 100644 GIT binary patch literal 452 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA1|-9oezpTC&H|6fVg?3oVGw3ym^DWND9BhG z}@lC}^bI!T52S)NteUQF*iRn4n5I_LK`kvu<=v3CO!=)(~`3Zn~7MhNg~Hbd1`HX=)eT zL`sZPiwv%PKlY1Xu6*j%ZnGM@io(A)x4m6zGVSX#S7|$WHz)5E=5_M6uY*haW=MvA zQO#3b5F8&-@zopr00VKdHvj+t literal 631 zcmV--0*L*IP)2LvDrpfV+*|}LYr`T0(oO&@kkHJA*gp_pW^8~9hyXN}5`ccgm4MK%2|D-1 zhwp~hQOBOn_+B31$?)Ku+MRybY&M(i!<=(oU=47>ko)1lhQJAp_s@k7U;%D{6OQH> z;0QS3Hh2Im_n-hzzzKiA8Sz7LCeL!h6DWwU@SkfZ{<8pz8&HBu(7Y;dM!b-e@+>F3 z67MENfL^MHAl3^Jpr7hBi1p_Y;4NZ+x7Y#JKu1`fV}ND#+_eY+(jZiTUcv!_9D)~M zm?#%t4e$vgM zyj*#e?;k@c1gL=%3gQ*YtBIE>Z@&gkUxV0#@{Wmj zrMz?Eoh$E(c*n|nh#6p49cDu zF}nu8|2233hH@(ZCf-2240MUt1(~>m6aw6R;u;(iZ%nR1LR+uF1On6&;SL-SZzA3d zjEFZ9rva1r0qhX80QQE6eo-<30=+0{FGyH`yrp>m!$d2w02aVzv)OF_?H}`4-sp7g R{RRL4002ovPDHLkV1fkT8gT#s diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Images/time.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Images/time.dark.png index a0e54c2ddadb1043a3869c430df575f2a5603b57..58d97f9ae4a311bd5a9e8d29fed30327f62b8304 100644 GIT binary patch literal 737 zcmV<70v`Q|P)F z!!Qg$6(-0AWCOZEvH@&RHeiIZ0V9+RV1twiC=&!GXg3fFaXCeG8(WdnZo50s#3(T^AlEwYpr8=LcpF)NlmSjhDf$pT3c~x*yMcuPPEXBL zg|8eCacQfAk8M=Yy3i z`O;@V!OCB7dA6*)82nnyIn{Z`cn##|7INmP@Y^VbeX5YtLPw~+D@Y8U$NpewJ%xq{ z&~Qz52L__+-GVVzBItpNMS>2*xSTb*@i@6#V~R}!Pp8*4nTryqO0SECmw5VuVvXJYeS^mr95=3R>x5GmB)UAP z!iWO<$*-}Pt|^Tn4aU=Yd^NV?me;HmJq}l`g%f_w+RD!rE6E3iwi}q4nHkMD2v}Bl TM~k8Q00000NkvXXu0mjf7XVBZ literal 879 zcmV-#1CacQP)|d%?@1lqdp?44{1JEl7C?WtZ!o7x}qFW0B+5~zBfpB(Z zulwR2e%5j~vrRigUp|2Ojd|8QvxPk9+O=!fuANRN4KXBn4^y-@<<{E zEl3X@Mg~Q+v4GnaXrqV>!hU{m9a&T{!nqrviY#=$J$wo##(2R;tuTOvIw~mrQ9&IR z23X;vUNDA4+H`xV`jtPoRSxet}LuF+mGyXlK4>8ZAt~y@-2b zhYk|ZF7fbp=-~kA85VNTJzlgqSa^nXKo57&yc|FRJ*X{FL+Zjyw}vIudPsQr&UbKt zWTSxS7wn)Y3a}v^(7~-2+rEJvBpdh89iH_+zT+E42!HaGxQ7jChX!uWIe;=|%EDWs z;Bvc{AUz^-hP_b0Qdx{Ml+XFT4RKT!UJcO@eenR)*P*5?#v_JEonz~o*eIVmOAhwQ z0MtK}rF0~eLMgiEo_zF4poHR z9G1aI`QLtubclR9069O6sq))lgp8a2_==GBFrfut02)l}Ar+xHIV6TQBpXJEd_DlV zhXET>8!;ybB(Z?hMI=B2h@cB;fuxfI@=&Wl56}Q~RG^l3azGQ(N|s1a2B0kQ6{Mz< zi~EoUFakIL0|Q8XCl}8lS%?R40C8B5=1wkNL#iVhzyU;2hqQKbv05cWK^lPcei6DI zK*_@aJmEh?{(#3f$=FPGp0+?4cw30~$in8E`} z4n;2c8T{S89TWi&g)j`&@x`N+m9VEb!y!=tZ3+${062ueDGUIoFnERl;28q%FaW&6 zAP@o2Kmppd1DDH~`e+UXTEI zK_W#aNh(b)Q8HCFSvp-F3?}COV8Tvj-u=l;qp669_yC>dEI59E{UiVY002ovPDHLk FV1oG0Y&!q| diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Images/time.light.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Images/time.light.png index fcd672f0464f53a221d166954902a92d972f50fb..3236370dc178b14a6a423748cc2311c7454ae947 100644 GIT binary patch literal 701 zcmV;u0z&V|62za3n@`ZgRXq6>xz@UG8p9({+vN zg5`A5)qn`@&ifR|6!8)(8C*`S413Kqi&pSTX zK!lcs{MImdTfGfF`mpM6gz#KigtfQZ;(H3+lY6vIAyWj-q#VPI50B5qq& zUZ8*ENubncqgR?Duq9=yZ7VQyQr_D%kgsd@`6D0&Zu+FQjatti4}?x1*10T0x8t-g za-zqY(~xdmeMMoW=`aQp`duo+=QU4r2mOK5iLH{{&~fP0;tn2(P|uIbx#{x3ualsj+|3ba(`ZVsyBLz-f$4RMTvUZ&VENw~ zS7RoqUvNxRTd82v1&MPWluL|i@~f-(UQ^b@XudMKC(`2?Ix6n-nl;7ksx?+ZuUVy( jSF8s-N6u+r;N|%R&4XhW#Exn*00000NkvXXu0mjf8K6D^ literal 906 zcmV;519kj~P)AsCHOstG)Bi?|8Z~NEM-lO1%9v!Dc{bSNj4PtU6=&?R!93GU zlJ)4D`agiisk6uy=R}vz*y3(_n`-_q-6v4F@bU z_9X*of^|-LCX!oDXi}p@-sO=hQKQKTw?y*HDeFvp+5pO^u+1H>1dklE$xLrI(_)VF+wMK(%+cbSNFLbb8(BXGsIW`CaltC-QtCfd zS>=LwW0y)_2G9iCJP=8n1=6MVc~oYBHjzBA%|uTJ&=~975lNfxWw0NUap z7(w`8#7AQQ5RHLw6ad0e5RU^uJdO(z08x;rB2!7Knp{Q6s{h=JgY(bJ^Bl^MvG}cHiSG!78!ep4595>mGC?7BG@OPF=oO5Yk#f&KfEi#e+M zy99}kc22<0f4S}hKl+C1w1D1vZI(Fa%csp8d-)S zN?&&Mueyk3@?5MCkF1fRO9?dv$V8B*O#X-{aZlz#p@xbAWYSTe$**{)k+inxsh6=d z=EzzWSfd&aw{c&Vg-6|0)1uZ=U=AIY?u)?{Ad~)O(4iLGX;@$eJ!*YxD3BtYKP+EM z`37_U)QGzd#t!CQl;w@+iDh4k#6*Q}2craY7P7zR&btiViOhfdN1p;Q?htaroUvR7 z)E7%t+^gn7Vn)3B;Ecipsseh{?q%E7KyE$%MgZj>P(X*=tCkay3SL*;R{I4F&#q~# zuIqIP#_WH84|DXlUaw0AWwn<9GYrSl?%xZl-cS0lu-b|hLz9>`?hp$Zci4FjBoj`Z zwx_bCmQY&o{>Vq>1BWCQeOqh6rhc&6No)aXh7N&;`(JRDk47oQv~pUqN!0j0Mm2xh_RItOCw8Z6nCPi*X>V0?spS z8sy)l$GU(6Ar^4Jv;s;{YRk`Q0gmS~p#TFCegWqiSU^db1>A)p7;2F5I2`Q=MFoUY zz*pFaO$NCS>1Y-(r+}z{r~qzPq>k1uL^U)`wMQc0> z$uhJ;1JuI76KW&K^EAU~oQCJ{2M$5!S8Tw^IC4T1VE;7d;coa%oiNV_B$2Yk)$$lp zN=%K#^_aaZg+5q=-yu1OfAJmOg=PB~KVvJ>(770O5DTM#n_%HH403Fk-iC!QQCp3* z#W%31kD9-XaCSd^%>hA2U#3+$_Lj z&Bd>3wO@>4m)qY3$uO7O)yMtnERlsqCKVuS&fRK*cO_~CaCuzTgf93NlGP~8#Ydnf z>e@;jpUJvPp5q0MgXANO3iA5_jOXKQNPb3*ToiC0B*Q%(3smAXwE?^hr2!WZLreS% z$p}-X!KQf5Uj8puG6K| z!Yxyda-Vkk2BusZTMo&`sO#}{^l^F2VQA_+QpGSxemCjLP+HB;<8pYm_)JKiH}TTg zR-BQe0;=H|NKW(nK$CD6HU(rOUR7(t{iql4n@^xGbUK=JF=L?GSN{V`kO=VcD;yim z$5Ccd0o8CNB=@5|VgWpM3Nx?`lF>++c1deEK7`~t)C%Bn2jP84u19qfziMBI^VLu4 z5H3f3#C-nb2jOXTR>(ph#7+HugF3iNofg}H`_TpYhU?pfCYgr?@;jjxEVj+#dei zeeV>XEWH=~de4HHng5#${KzW3B^^IWfH69+R8;ztSWlI1D=mnGRN6yw!@HE@z{P;^ zJM0M5{HpXw8caXet!JMqeI^k7&ztg!^ayqe>5*6xz?!D<3(m`p>c1d>ooZms`7zV! ziNI0FXzmJAkt;j4rz%}`JZmr7DMr8`s+^swbjffdcf4TU@X8q)fs*M)z?=ym2tXLQ zg+*e6!>Ro0r_k&`Lhi8BsO+mWw1`u2g^jKB{{DE7&I#@-{lGJn5z;K;IJVsaFnrf}ezbR4yv!U5;q zLh-fIyMx|iQ`u8A*1^=lT8b_q{VvZkch;ID8tE0Zp>n2Y5qJEdyMc4Ov z{a%$#heA9yt@fQT|9t2W3;s#WDTPeqXN*yM$BvA_S?k@g#yg~@0uk&MtuIit(Ppk2!=2+P-+SWNh$@%N%$%RU X21B~6QC1;*00000NkvXXu0mjfCiy(Z literal 1186 zcmV;T1YP@yP)Tz``L+y_%Ky56-xDn0ci#%AK&2{L}^#lrYJMr?r00~jRGbqe*_37X(xqy;v*Xc+TR_WLx>Y}(kP6G7CTM)GgrE&ZO zx}s54I={(AqsaMyQz7bkOpNmX14uFUho}$GC5{5FvXfxQbAejyWhTJ0P#JLn0d~Y! z5H;SHWpG>E1;JNXAIE=)Xwm0E)TxQx8q)%PG-I}aUGOUeZ(~>v1&j^x_;PH7sHYOU zHAVtd8u?icgq}iK4h7urT%5fEjM)GgaL#>Jy*t3}wvvJT=Cv#rs0k-M$oH zeS>{sDxeeYfT+E4Enp@t!zB^97!R5~;c7HR{N?j81Y-2asem|;5$0I^Q>;dQgs)%Y zOqw^N%BKQ4;aG^e8r={?@Y;o#k8dGr5(@n&K#_5H4x&y%T?DT?63;-?$>^+OUKLP^ zgUw&+PaKVA1UdfYN8)yKRpML7cJAg2 Symbol: Copy Title = Resources.Microsoft_plugin_timedate_CopyToClipboard, Action = _ => ResultHelper.CopyToClipBoard(data.Value), diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Helper/ContextMenuHelper.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Helper/ContextMenuHelper.cs index e25d331424..fb95faecc2 100644 --- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Helper/ContextMenuHelper.cs +++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Helper/ContextMenuHelper.cs @@ -38,7 +38,7 @@ namespace Microsoft.PowerToys.Run.Plugin.WindowsSettings.Helper AcceleratorKey = Key.C, AcceleratorModifiers = ModifierKeys.Control, Action = _ => TryToCopyToClipBoard(entry.Command), - FontFamily = "Segoe MDL2 Assets", + FontFamily = "Segoe Fluent Icons,Segoe MDL2 Assets", Glyph = "\xE8C8", // E8C8 => Symbol: Copy PluginName = assemblyName, Title = $"{Resources.CopyCommand} (Ctrl+C)", diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Images/WindowsSettings.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsSettings/Images/WindowsSettings.dark.png index 48f11eadb9eeb307dd80ffa9b081d80a7cbaf9c5..888caf3249fe4b56d4d81764453530a75f8baeee 100644 GIT binary patch delta 931 zcmV;U16=%$1FZ*;7=H)`000120{Mpk000SaNLh0L01FcU01FcV0GgZ_00001b5ch_ z0Itp)=>Px#1ZP1_K>z@;j|==^1poj8LP=mgCMVT0TT z+y)te5pD#o6XZ5XI>DtAkWRpL0@bQTBaCeX_|m+0`QFpx$A7Xc2}u?JaK{}V8w*Gb zL|mCeZfMCwcr$b+S}Ybn;TB;O&kQvbeq{I5LYnHX>2n&8FvhN^&ag+@8Y$c<-wW9W&W z<_c1Pm9M*n{p*A<^c@v6_ku6j;!%$Bf#x!$5kUX!WFU& z@K%noxrb+qiVctX)Xp0+!u4#gq+z$m2^z_~8;5u4;i;V`HLs;Wo0!2K#_`zT&WYV{ zDk8FKjeqikFEm`bp2e-)VOfjwBMjpt&a;TD7fsns`9?<2?3lV*uEd}L6yxUbAa0!; z7U`um3?q-oI*Rj0oZF3hlDPKpEW3Hx@ACz(TVYlnS*3kp zwaO@t-^hG@{sHYK)^@I_^=!a-qgsi*b}=#My?cl1BRhm2#1s1{ctd?6BP>{P>&kpeZIC*wV3x= zg?|?f)%XWPIrd*Z%80B=@X?$S?Kjf`NA4A4jmYp4r@3c*BNdCtk%kt5bt<%Blty_i z@IQUrP1#PL#rYS{xHReniIDOK2PxII(-dlS-EKTf=(gI)-U(6~AeG9Y|K=ufhFb&L z&*U`@qe+>d@9~?JLL~zm^YSp~-7F;r51#09k3GxeO z2;FTgSbq2a%y+BOT+S%1_~OOJz`)4p>Eakt!I&&j)(|+e@t_Ao@Ey~=9gU8Aby#BO zEUr2BiQ(F+bD!8uIJaf7pVyoh9I;J(!E24Qgtb2W2?p-h55{tBVa)LU0aWmei{oxy zgVLRAxv^}COY`qdY!pb>)YqTSoH&ogNcMrynybrl*%f@|^*ngX$g$mz@%H{O?wrl) zhmJntRrq}6^yzMgWd$OKRIf~D;9Rzfz2>xN1J8P;9W8;X7jC@emXO%7s!_}@+|5E; zXhp_PW;V8cS_{6dPx#1ZP1_K>z@;j|==^1poj7@<~KNRCodHnSrsJFbszO_BsHaAnpV&8^8wX z26Tgrzz7+Ew?VoA=>#vGAn63WPS9Ex`w)&WHaIDF<-5}bVt*q`Mv@HxD=YsuACR7n zmO@Krgm~9-HS!Y+MQLfZ{27spmKQ9L1ICTFazG+JAsvbxpU{O2L7`M=*$RCZLxXOH z3!#0>+TXB1c>HgKcE#FTJQ=0ssHKK%T!}E_xRbfiPXAGUGy~&ILg7|9coH_oXsRZa zV_5CcRiW>w)qk-=KLl;H%8-B~!mA4n>YKR?_mkn11~b_^3Xe04wBTrjgT&tM(&%_IIx41vuPH4ihEk3G>^>W5@`7<=wL~15xu!BgNg5JfoE$Um zLWya!PlNC~=L)sOIKuNGDi`>LsgiT9z9S-Vt4|C641XxdYXv1^h4>m@;(livU5)mF zlHEYx8hvLAq0bIs3*HWKljlXDKeJLYDTFyml+K{k=6~Ulu$DG)g04xUl3V>EBLF=qv5k(V}Al}NjtFr$vMiC#{8CugLLf8wHI_d zSDPE|tIi!YG;Xq5PAVyD7KRS9bhaXy;Cyk%*KZILIiw zol8ELbGz_l=x?=?JrksKfE!gn&K1iQ3xu`}AtjRHKUso4;xj9Sio(rE{+abRx^HJI cD=Ufk3%p6s2!bF2Q~&?~07*qoM6N<$f^Fe~BLDyZ literal 412 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDB3?!H8JlO)`1o(uw{{R0U$Rr-<-(64*R4q^v z9`-neSGmxtvj&ShX#afq{|R)5S5Qg7NNUMi&-Gkz*ej82(*-XBq3~ zz)&c`WGU3txS?^W#{tG_2H#uP-*quhXW6h*z)7b=Ij4bviGfjuLBQZ$8#}{yhPr$2 z&Q#yeSrg2-!Ls3@9D{bjG)se@sT{GDxtDg-O!8!ydrGY|$o;Lxn;oipo2E?Ou(+K4 z*ukqd4R5O%Dr}+}Uw+QyW4L+!y9EEljy;SA)^|kk7na)mWo)?n(RFs!iz^I!&mXpQ zF#5E?o>58pkbP0l+XkKtuvSi diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsTerminal/Images/WindowsTerminal.dark.png b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.WindowsTerminal/Images/WindowsTerminal.dark.png index 2277ad614683eb58c9512f1777bae9cef837f1bb..0581d14ecfad27310e830cfbd953e10bc47a3280 100644 GIT binary patch delta 478 zcmV<40U`d$0`~)uBYyx1a7bBm000XU000XU0RWnu7ytkO0drDELIAGL9O(c600d`2 zO+f$vv5yP(3 zOh+p-r|GFe2J^A=>;3#sDUr?qOi}B-ryu@e+E9}?SW~=IlQ>vgyhM{YI95DNQ!JJ? zMpLYTW9Vj&{wszUO`)4s-Zl5!4|dCtXa)u+zMi;VL07R?gz>ERl7!Yt7?4+ED_kUP zlHXcXZE#r)HSSxBvUe?*&U9`p>QLv>UTwA)+9|NeDy) zEUCttA?QC88I#1a$-}!&kV3*sG#wl4u>o1JX44H#T>}A^H-C1`rkPih0s;bUu_usW z8wy|orw|~b9s}r8BD?%C{6akQ5dsc_y?^+BNEMk1OrF{!zhgD?<;H<=Vb2dD#=Ksq2DP=ZUK6iP`6lt2kC z!O;y5kuZXjMmov1zL|YOhj;aZ#s^d?l}aTcjn=5OXx)W1Yky5zEdm*|Zh*M)t;oX_ zo?HRsHonyWCJOetTXzUfQ@x13SdXDVmLf9{K5DPv|M;zAFJ* z1*fNvor3$x^Bg!meSu$CB%gS4o<6|Y7Ao-!SiId9qEFf{*1Mubp&Z=qs>xNde155;B8Aq z;s3kO>6T?#fyEfy?L2QF+bc3xedZLHvqoV`YHUs1qC{7F+HM2818L zR0`@)m(pGz5QxIM?`A;U_=5F3<~)OyN~QAZ`~j)9wcXdE4Uqr<002ovPDHLkV1gc$ B$Ta`} delta 294 zcmV+>0onfK1Hb~1BYy!0NklR3DP)p3i^!b%Aq3#hsK~!6hG{4RDa~PPtd0zuy+9PC$Jwb za0-EelkjO$;35962dgVI3yH~`fRsSUh(KGyoB$y4y{C17k2L`~{A^=|8pGQV*gpKo zx&Fx^0+$WLFPz%Q_XvTA!QPxE5X_CtjXtxll*M1_1tfOW-n9zILgJ=$v6aw~wRRH{ ss>#| diff --git a/src/modules/launcher/PowerLauncher/App.xaml b/src/modules/launcher/PowerLauncher/App.xaml index 5930a828b3..efbf8c7053 100644 --- a/src/modules/launcher/PowerLauncher/App.xaml +++ b/src/modules/launcher/PowerLauncher/App.xaml @@ -1,17 +1,18 @@ - + - - - + + + diff --git a/src/modules/launcher/PowerLauncher/App.xaml.cs b/src/modules/launcher/PowerLauncher/App.xaml.cs index 9d98eaaeb4..601002559f 100644 --- a/src/modules/launcher/PowerLauncher/App.xaml.cs +++ b/src/modules/launcher/PowerLauncher/App.xaml.cs @@ -141,6 +141,9 @@ namespace PowerLauncher PluginManager.InitializePlugins(API); + _mainVM.RefreshPluginsOverview(); + _settingsReader.SetRefreshPluginsOverviewCallback(() => _mainVM.RefreshPluginsOverview()); + Current.MainWindow = _mainWindow; Current.MainWindow.Title = Constant.ExeFileName; diff --git a/src/modules/launcher/PowerLauncher/LauncherControl.xaml b/src/modules/launcher/PowerLauncher/LauncherControl.xaml index 8788a2ce28..afdadad5e9 100644 --- a/src/modules/launcher/PowerLauncher/LauncherControl.xaml +++ b/src/modules/launcher/PowerLauncher/LauncherControl.xaml @@ -2,99 +2,93 @@ x:Class="PowerLauncher.LauncherControl" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" - xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:p="clr-namespace:PowerLauncher.Properties" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:local="clr-namespace:PowerLauncher" - xmlns:ui="http://schemas.modernwpf.com/2019" - mc:Ignorable="d" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" + xmlns:p="clr-namespace:PowerLauncher.Properties" + xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" d:DesignHeight="300" - d:DesignWidth="720"> + d:DesignWidth="720" + mc:Ignorable="d"> - - + - + Focusable="false" + HorizontalScrollBarVisibility="Hidden" + VerticalScrollBarVisibility="Hidden"> - - + + - - - - - - - - - - - - - + + - + - - - - + + + Tag="{x:Static p:Resources.startTyping}" /> - + x:FieldModifier="public" + Canvas.ZIndex="-1" + FontSize="18" + Foreground="{DynamicResource TextPlaceholderColorBrush}" /> + diff --git a/src/modules/launcher/PowerLauncher/MainWindow.xaml b/src/modules/launcher/PowerLauncher/MainWindow.xaml index 2c9db3e755..6a9e00ba3f 100644 --- a/src/modules/launcher/PowerLauncher/MainWindow.xaml +++ b/src/modules/launcher/PowerLauncher/MainWindow.xaml @@ -1,119 +1,123 @@ - - - - - - + - - - - - + + + + + - - + + - - - - - - - - - - - - + + + - - - - - - - - - - + VerticalAlignment="Stretch" + PreviewMouseDown="ListBox_PreviewMouseDown" + Visibility="{Binding Results.Visibility}" /> + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - + + + + + + + diff --git a/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs b/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs index 63a4084327..418d8f4883 100644 --- a/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs +++ b/src/modules/launcher/PowerLauncher/MainWindow.xaml.cs @@ -54,9 +54,19 @@ namespace PowerLauncher _viewModel = mainVM; _nativeWaiterCancelToken = nativeWaiterCancelToken; _settings = settings; - InitializeComponent(); + Wpf.Ui.Appearance.SystemThemeWatcher.Watch(this); + + if (OSVersionHelper.IsWindows11()) + { + WindowBackdropType = Wpf.Ui.Controls.WindowBackdropType.Acrylic; + } + else + { + WindowBackdropType = Wpf.Ui.Controls.WindowBackdropType.None; + } + _firstDeleteTimer.Elapsed += CheckForFirstDelete; _firstDeleteTimer.Interval = 1000; NativeEventWaiter.WaitForEventLoop( @@ -395,7 +405,6 @@ namespace PowerLauncher { if (_settings.HideWhenDeactivated) { - // (this.FindResource("OutroStoryboard") as Storyboard).Begin(); _viewModel.Hide(); } } @@ -726,11 +735,6 @@ namespace PowerLauncher } } - private void OutroStoryboard_Completed(object sender, EventArgs e) - { - Hide(); - } - private void SearchBox_UpdateFlowDirection() { SearchBox.QueryTextBox.FlowDirection = MainViewModel.GetLanguageFlowDirection(); diff --git a/src/modules/launcher/PowerLauncher/PowerLauncher.csproj b/src/modules/launcher/PowerLauncher/PowerLauncher.csproj index 5a0d7e780c..6aef6a34c4 100644 --- a/src/modules/launcher/PowerLauncher/PowerLauncher.csproj +++ b/src/modules/launcher/PowerLauncher/PowerLauncher.csproj @@ -86,6 +86,7 @@ + diff --git a/src/modules/launcher/PowerLauncher/Properties/Resources.Designer.cs b/src/modules/launcher/PowerLauncher/Properties/Resources.Designer.cs index 042a1a2b21..b460bfd416 100644 --- a/src/modules/launcher/PowerLauncher/Properties/Resources.Designer.cs +++ b/src/modules/launcher/PowerLauncher/Properties/Resources.Designer.cs @@ -1,4 +1,4 @@ -//------------------------------------------------------------------------------ +//------------------------------------------------------------------------------ // // This code was generated by a tool. // Runtime Version:4.0.30319.42000 @@ -19,7 +19,7 @@ namespace PowerLauncher.Properties { // class via a tool like ResGen or Visual Studio. // To add or remove a member, edit your .ResX file then rerun ResGen // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "16.0.0.0")] + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] public class Resources { @@ -168,6 +168,15 @@ namespace PowerLauncher.Properties { } } + /// + /// Looks up a localized string similar to Plugin keywords. + /// + public static string PluginKeywords { + get { + return ResourceManager.GetString("PluginKeywords", resourceCulture); + } + } + /// /// Looks up a localized string similar to Query. /// diff --git a/src/modules/launcher/PowerLauncher/Properties/Resources.resx b/src/modules/launcher/PowerLauncher/Properties/Resources.resx index 47d152f4d9..c2b859f6e3 100644 --- a/src/modules/launcher/PowerLauncher/Properties/Resources.resx +++ b/src/modules/launcher/PowerLauncher/Properties/Resources.resx @@ -194,4 +194,7 @@ Appended controls available + + Plugin keywords + \ No newline at end of file diff --git a/src/modules/launcher/PowerLauncher/ReportWindow.xaml b/src/modules/launcher/PowerLauncher/ReportWindow.xaml index d5c3a020c4..90c58d47bc 100644 --- a/src/modules/launcher/PowerLauncher/ReportWindow.xaml +++ b/src/modules/launcher/PowerLauncher/ReportWindow.xaml @@ -1,72 +1,74 @@ - + - - - - + + + + - - - - - - - - - - - - + - + + + + + + + + + + + + diff --git a/src/modules/launcher/PowerLauncher/ResultList.xaml b/src/modules/launcher/PowerLauncher/ResultList.xaml index ebb89c649d..614c14d2a3 100644 --- a/src/modules/launcher/PowerLauncher/ResultList.xaml +++ b/src/modules/launcher/PowerLauncher/ResultList.xaml @@ -2,317 +2,206 @@ x:Class="PowerLauncher.ResultList" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" - xmlns:d="http://schemas.microsoft.com/expression/blend/2008" - xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:Behaviors="http://schemas.microsoft.com/xaml/behaviors" + xmlns:converters="clr-namespace:PowerLauncher.Converters" + xmlns:d="http://schemas.microsoft.com/expression/blend/2008" + xmlns:helper="clr-namespace:PowerLauncher.Helper" + xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:p="clr-namespace:PowerLauncher.Properties" - xmlns:helper="clr-namespace:PowerLauncher.Helper" - xmlns:converters="clr-namespace:PowerLauncher.Converters" - xmlns:viewmodel="clr-namespace:PowerLauncher.ViewModel" - mc:Ignorable="d" + xmlns:ui="http://schemas.lepo.co/wpfui/2022/xaml" + xmlns:viewmodel="clr-namespace:PowerLauncher.ViewModel" d:DesignHeight="300" - d:DesignWidth="720"> + d:DesignWidth="720" + mc:Ignorable="d"> - - - + + - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - + AutomationProperties.Name="{x:Static p:Resources.ContextMenuItemAdditionalInformation}" + Foreground="{DynamicResource TextFillColorPrimaryBrush}" + Text="{Binding Title}" /> + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/modules/launcher/PowerLauncher/SettingsReader.cs b/src/modules/launcher/PowerLauncher/SettingsReader.cs index 57a3e9a734..a4fed3d904 100644 --- a/src/modules/launcher/PowerLauncher/SettingsReader.cs +++ b/src/modules/launcher/PowerLauncher/SettingsReader.cs @@ -2,6 +2,7 @@ // The Microsoft Corporation licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. +using System; using System.Collections.Generic; using System.IO; using System.IO.Abstractions; @@ -30,6 +31,7 @@ namespace PowerLauncher private static readonly object _readSyncObject = new object(); private readonly PowerToysRunSettings _settings; private readonly ThemeManager _themeManager; + private Action _refreshPluginsOverviewCallback; private IFileSystemWatcher _watcher; @@ -92,7 +94,7 @@ namespace PowerLauncher foreach (var setting in overloadSettings.Plugins) { var plugin = PluginManager.AllPlugins.FirstOrDefault(x => x.Metadata.ID == setting.Id); - plugin?.Update(setting, App.API); + plugin?.Update(setting, App.API, _refreshPluginsOverviewCallback); } var openPowerlauncher = ConvertHotkey(overloadSettings.Properties.OpenPowerLauncher); @@ -217,6 +219,11 @@ namespace PowerLauncher Monitor.Exit(_readSyncObject); } + public void SetRefreshPluginsOverviewCallback(Action callback) + { + _refreshPluginsOverviewCallback = callback; + } + private static string ConvertHotkey(HotkeySettings hotkey) { Key key = KeyInterop.KeyFromVirtualKey(hotkey.Code); diff --git a/src/modules/launcher/PowerLauncher/Styles/Styles.xaml b/src/modules/launcher/PowerLauncher/Styles/Styles.xaml new file mode 100644 index 0000000000..d1fb1acb3f --- /dev/null +++ b/src/modules/launcher/PowerLauncher/Styles/Styles.xaml @@ -0,0 +1,154 @@ + + + + + + + + + \ No newline at end of file diff --git a/src/modules/launcher/PowerLauncher/Themes/Dark.xaml b/src/modules/launcher/PowerLauncher/Themes/Dark.xaml index 7ee5c17597..9dfe236b0f 100644 --- a/src/modules/launcher/PowerLauncher/Themes/Dark.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/Dark.xaml @@ -1,9 +1,10 @@ - + Dark.Accent1 @@ -13,20 +14,4 @@ Accent1 Black False - - #FF818181 - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/launcher/PowerLauncher/Themes/HighContrast1.xaml b/src/modules/launcher/PowerLauncher/Themes/HighContrast1.xaml index cb1b0a78ea..bbf44dbae6 100644 --- a/src/modules/launcher/PowerLauncher/Themes/HighContrast1.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/HighContrast1.xaml @@ -1,9 +1,10 @@ - + HighContrast.Accent2 @@ -12,20 +13,4 @@ HighContrast Accent2 White - - #ffff00 - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/launcher/PowerLauncher/Themes/HighContrast2.xaml b/src/modules/launcher/PowerLauncher/Themes/HighContrast2.xaml index e5562562f3..617c75e717 100644 --- a/src/modules/launcher/PowerLauncher/Themes/HighContrast2.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/HighContrast2.xaml @@ -1,9 +1,10 @@ - + HighContrast.Accent3 @@ -12,20 +13,4 @@ HighContrast Accent3 White - - #ffff00 - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/launcher/PowerLauncher/Themes/HighContrastBlack.xaml b/src/modules/launcher/PowerLauncher/Themes/HighContrastBlack.xaml index dc8dc608cc..22d86a5da9 100644 --- a/src/modules/launcher/PowerLauncher/Themes/HighContrastBlack.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/HighContrastBlack.xaml @@ -1,9 +1,10 @@ - + HighContrast.Accent4 @@ -12,20 +13,4 @@ HighContrast Accent4 White - - #66FFFFFF - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/launcher/PowerLauncher/Themes/HighContrastWhite.xaml b/src/modules/launcher/PowerLauncher/Themes/HighContrastWhite.xaml index 687eca98d1..98d28be0a7 100644 --- a/src/modules/launcher/PowerLauncher/Themes/HighContrastWhite.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/HighContrastWhite.xaml @@ -1,9 +1,10 @@ - + HighContrast.Accent5 @@ -12,20 +13,4 @@ HighContrast Accent5 White - - #66000000 - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/launcher/PowerLauncher/Themes/Light.xaml b/src/modules/launcher/PowerLauncher/Themes/Light.xaml index 9c063003d6..ad4566b324 100644 --- a/src/modules/launcher/PowerLauncher/Themes/Light.xaml +++ b/src/modules/launcher/PowerLauncher/Themes/Light.xaml @@ -1,9 +1,10 @@ - + Light.Accent1 @@ -13,20 +14,4 @@ Accent1 White False - - #66000000 - - - - - - - - - - - - - - \ No newline at end of file diff --git a/src/modules/launcher/PowerLauncher/ViewModel/MainViewModel.cs b/src/modules/launcher/PowerLauncher/ViewModel/MainViewModel.cs index c8c004d38d..78698733f7 100644 --- a/src/modules/launcher/PowerLauncher/ViewModel/MainViewModel.cs +++ b/src/modules/launcher/PowerLauncher/ViewModel/MainViewModel.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Globalization; using System.Linq; using System.Reflection; @@ -14,6 +15,7 @@ using System.Windows.Input; using System.Windows.Threading; using Common.UI; using interop; +using Mages.Core.Runtime.Converters; using Microsoft.PowerLauncher.Telemetry; using Microsoft.PowerToys.Telemetry; using PowerLauncher.Helper; @@ -79,7 +81,6 @@ namespace PowerLauncher.ViewModel Results = new ResultsViewModel(_settings, this); History = new ResultsViewModel(_settings, this); _selectedResults = Results; - InitializeKeyCommands(); RegisterResultsUpdatedEvent(); } @@ -345,6 +346,15 @@ namespace PowerLauncher.ViewModel if (_queryText != value) { _queryText = value; + if (string.IsNullOrEmpty(_queryText) || string.IsNullOrWhiteSpace(_queryText)) + { + PluginsOverviewVisibility = Visibility.Visible; + } + else + { + PluginsOverviewVisibility = Visibility.Collapsed; + } + OnPropertyChanged(nameof(QueryText)); } } @@ -1199,5 +1209,38 @@ namespace PowerLauncher.ViewModel action.Invoke(); } } + + public ObservableCollection Plugins { get; } = new(); + + private Visibility _pluginsOverviewVisibility = Visibility.Visible; + + public Visibility PluginsOverviewVisibility + { + get => _pluginsOverviewVisibility; + + set + { + if (_pluginsOverviewVisibility != value) + { + _pluginsOverviewVisibility = value; + OnPropertyChanged(nameof(PluginsOverviewVisibility)); + } + } + } + + public void RefreshPluginsOverview() + { + Log.Info("Refresh plugins overview", GetType()); + + Application.Current.Dispatcher.Invoke(() => + { + Plugins.Clear(); + + foreach (var p in PluginManager.AllPlugins.Where(a => a.IsPluginInitialized && !a.Metadata.Disabled && a.Metadata.ActionKeyword != string.Empty)) + { + Plugins.Add(p); + } + }); + } } } diff --git a/src/modules/launcher/Wox.Plugin/PluginPair.cs b/src/modules/launcher/Wox.Plugin/PluginPair.cs index 1e7c452ad6..6fd0834483 100644 --- a/src/modules/launcher/Wox.Plugin/PluginPair.cs +++ b/src/modules/launcher/Wox.Plugin/PluginPair.cs @@ -56,13 +56,20 @@ namespace Wox.Plugin return; } - public void Update(PowerLauncherPluginSettings setting, IPublicAPI api) + public void Update(PowerLauncherPluginSettings setting, IPublicAPI api, Action refreshPluginsOverviewCallback) { if (setting == null || api == null) { return; } + bool refreshOverview = false; + if (Metadata.Disabled != setting.Disabled + || Metadata.ActionKeyword != setting.ActionKeyword) + { + refreshOverview = true; + } + // If the enabled state is policy managed then we skip the update of the disabled state as it must be a manual settings.json manipulation. if (!Metadata.IsEnabledPolicyConfigured) { @@ -94,6 +101,11 @@ namespace Wox.Plugin { (Plugin as IReloadable)?.ReloadData(); } + + if (refreshOverview) + { + refreshPluginsOverviewCallback?.Invoke(); + } } public override string ToString() diff --git a/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs index 2ce6a47b52..ea17d921e1 100644 --- a/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/FancyZonesViewModel.cs @@ -9,7 +9,6 @@ using global::PowerToys.GPOWrapper; using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Helpers; using Microsoft.PowerToys.Settings.UI.Library.Interfaces; -using Microsoft.PowerToys.Settings.UI.Library.Utilities; using Microsoft.PowerToys.Settings.UI.Library.ViewModels.Commands; namespace Microsoft.PowerToys.Settings.UI.ViewModels From d7f0d0e5c14affd52038472f2cb4d9e20e10ad67 Mon Sep 17 00:00:00 2001 From: Pedro Lamas Date: Mon, 20 Nov 2023 12:12:09 +0000 Subject: [PATCH 62/68] [FileExplorer]Adds PerceivedType to SVG and QOI thumbnails (#29848) --- src/common/utils/modulesRegistry.h | 5 ++++- src/common/utils/registry.h | 10 +++++++--- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/common/utils/modulesRegistry.h b/src/common/utils/modulesRegistry.h index f736f43f7a..fce782847d 100644 --- a/src/common/utils/modulesRegistry.h +++ b/src/common/utils/modulesRegistry.h @@ -170,6 +170,7 @@ inline registry::ChangeSet getSvgThumbnailHandlerChangeSet(const std::wstring in L"SvgThumbnailProvider", L"Svg Thumbnail Provider", NonLocalizable::ExtSVG, + L"image", L"Picture"); } @@ -222,7 +223,9 @@ inline registry::ChangeSet getQoiThumbnailHandlerChangeSet(const std::wstring in (fs::path{ installationDir } / LR"d(PowerToys.QoiThumbnailProviderCpp.dll)d").wstring(), L"QoiThumbnailProvider", L"Qoi Thumbnail Provider", - NonLocalizable::ExtQOI); + NonLocalizable::ExtQOI, + L"image", + L"Picture"); } inline registry::ChangeSet getRegistryPreviewSetDefaultAppChangeSet(const std::wstring installationDir, const bool perUser) diff --git a/src/common/utils/registry.h b/src/common/utils/registry.h index 57507e36b1..059589352d 100644 --- a/src/common/utils/registry.h +++ b/src/common/utils/registry.h @@ -395,6 +395,7 @@ namespace registry std::wstring className, std::wstring displayName, std::vector fileTypes, + std::wstring perceivedType = L"", std::wstring fileKindType = L"") { const HKEY scope = perUser ? HKEY_CURRENT_USER : HKEY_LOCAL_MACHINE; @@ -436,9 +437,8 @@ namespace registry for (const auto& fileType : fileTypes) { - std::wstring fileAssociationPath = L"Software\\Classes\\"; - fileAssociationPath += fileType; - fileAssociationPath += L"\\shellex\\"; + std::wstring fileTypePath = L"Software\\Classes\\" + fileType; + std::wstring fileAssociationPath = fileTypePath + L"\\shellex\\"; fileAssociationPath += handlerType == PreviewHandlerType::preview ? IPREVIEW_HANDLER_CLSID : ITHUMBNAIL_PROVIDER_CLSID; changes.push_back({ scope, fileAssociationPath, std::nullopt, handlerClsid }); if (!fileKindType.empty()) @@ -448,6 +448,10 @@ namespace registry std::wstring kindMapPath = L"Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\KindMap"; changes.push_back({ HKEY_LOCAL_MACHINE, kindMapPath, fileType, fileKindType, false}); } + if (!perceivedType.empty()) + { + changes.push_back({ scope, fileTypePath, L"PerceivedType", perceivedType }); + } if (handlerType == PreviewHandlerType::preview && fileType == L".reg") { // this regfile registry key has precedence over Software\Classes\.reg for .reg files From 5e666556f4a21c05d676d8b57334f0e67fb5345b Mon Sep 17 00:00:00 2001 From: Laszlo Nemeth <57342539+donlaci@users.noreply.github.com> Date: Mon, 20 Nov 2023 16:49:24 +0100 Subject: [PATCH 63/68] [TextExtractor]Disable by default and warning to use Snipping Tool on Win11 (#29839) * [TextExtractor] default enabled until Win10 + infobar in Settings page * Fixing severity * Fixing warning text * Use the Windows 11 detection from Common.UI --- src/modules/PowerOCR/PowerOCRModuleInterface/dllmain.cpp | 8 ++++++++ .../Settings.UI/SettingsXAML/Views/PowerOcrPage.xaml | 6 ++++++ src/settings-ui/Settings.UI/Strings/en-us/Resources.resw | 3 +++ .../Settings.UI/ViewModels/PowerOcrViewModel.cs | 6 ++++++ 4 files changed, 23 insertions(+) diff --git a/src/modules/PowerOCR/PowerOCRModuleInterface/dllmain.cpp b/src/modules/PowerOCR/PowerOCRModuleInterface/dllmain.cpp index f89dde5ce1..1eebf010ee 100644 --- a/src/modules/PowerOCR/PowerOCRModuleInterface/dllmain.cpp +++ b/src/modules/PowerOCR/PowerOCRModuleInterface/dllmain.cpp @@ -12,6 +12,7 @@ #include #include #include +#include BOOL APIENTRY DllMain(HMODULE /*hModule*/, DWORD ul_reason_for_call, @@ -293,6 +294,13 @@ public: { return m_enabled; } + + // Returns whether the PowerToys should be enabled by default + virtual bool is_enabled_by_default() const override + { + // disabled by default for Windows 11 and enabled by default on Windows 10 + return !package::IsWin11OrGreater(); + } }; extern "C" __declspec(dllexport) PowertoyModuleIface* __cdecl powertoy_create() diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerOcrPage.xaml b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerOcrPage.xaml index 3bf06722b9..b7941ae2d5 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerOcrPage.xaml +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerOcrPage.xaml @@ -22,6 +22,12 @@ IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabledGpoConfigured, Converter={StaticResource BoolNegationConverter}}"> + Text Extractor can only recognize languages that have the OCR pack installed. + + It is recommended to use the Snipping Tool instead of the TextExtractor module. + Learn more about supported languages diff --git a/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs index 919a819a10..2377a8e346 100644 --- a/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/PowerOcrViewModel.cs @@ -9,6 +9,7 @@ using System.Globalization; using System.Linq; using System.Text.Json; using System.Timers; +using Common.UI; using global::PowerToys.GPOWrapper; using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Helpers; @@ -146,6 +147,11 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels } } + public bool IsWin11OrGreater + { + get => OSVersionHelper.IsWindows11(); + } + public bool IsEnabledGpoConfigured { get => _enabledStateIsGPOConfigured; From 99b014516d6c36ae25a705a2f2cacd5a01049806 Mon Sep 17 00:00:00 2001 From: Jaime Bernardo Date: Mon, 20 Nov 2023 16:11:19 +0000 Subject: [PATCH 64/68] [Build]Don't add source hash to product version of binaries (#29940) --- Directory.Build.props | 1 + 1 file changed, 1 insertion(+) diff --git a/Directory.Build.props b/Directory.Build.props index 3481bdaba7..9f8159a6d9 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -12,6 +12,7 @@ true Recommended <_SkipUpgradeNetAnalyzersNuGetWarning>true + false $(Platform) From 42564e6c10aeb1167f4092e9326721c15ef61f40 Mon Sep 17 00:00:00 2001 From: Heiko <61519853+htcfreek@users.noreply.github.com> Date: Mon, 20 Nov 2023 19:04:23 +0100 Subject: [PATCH 65/68] [PTRun][DateTime]Fix and improvements for Windows File Time and Unix Epoch Time (#29900) * improvements and fixes for unix time and windows file time * spell fix --- .../TimeDateResultTests.cs | 20 +++++++++++++++++-- .../Components/AvailableResultsList.cs | 6 +++--- .../Components/TimeAndDateHelper.cs | 17 ++++++++-------- 3 files changed, 30 insertions(+), 13 deletions(-) diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeDateResultTests.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeDateResultTests.cs index f0f43267ee..8cf602ab6d 100644 --- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeDateResultTests.cs +++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests/TimeDateResultTests.cs @@ -260,7 +260,7 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests } [TestMethod] - public void UnixTimestampFormat() + public void UnixTimestampSecondsFormat() { // Setup string formatLabel = "Unix epoch time"; @@ -275,6 +275,22 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests Assert.AreEqual(expectedResult.ToString(CultureInfo.CurrentCulture), result?.Value); } + [TestMethod] + public void UnixTimestampMillisecondsFormat() + { + // Setup + string formatLabel = "Unix epoch time in milliseconds"; + DateTime timeValue = DateTime.Now.ToUniversalTime(); + var helperResults = AvailableResultsList.GetList(true, false, false, timeValue); + var expectedResult = (long)timeValue.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds; + + // Act + var result = helperResults.FirstOrDefault(x => x.Label.Equals(formatLabel, StringComparison.OrdinalIgnoreCase)); + + // Assert + Assert.AreEqual(expectedResult.ToString(CultureInfo.CurrentCulture), result?.Value); + } + [TestMethod] public void WindowsFileTimeFormat() { @@ -282,7 +298,7 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.UnitTests string formatLabel = "Windows file time (Int64 number)"; DateTime timeValue = DateTime.Now; var helperResults = AvailableResultsList.GetList(true, false, false, timeValue); - var expectedResult = timeValue.Ticks.ToString(CultureInfo.CurrentCulture); + var expectedResult = timeValue.ToFileTime().ToString(CultureInfo.CurrentCulture); // Act var result = helperResults.FirstOrDefault(x => x.Label.Equals(formatLabel, StringComparison.OrdinalIgnoreCase)); diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs index ab6c77f1ea..641fa3530a 100644 --- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs +++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/AvailableResultsList.cs @@ -60,8 +60,8 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.Components if (isKeywordSearch || !TimeDateSettings.Instance.OnlyDateTimeNowGlobal) { // We use long instead of int for unix time stamp because int is too small after 03:14:07 UTC 2038-01-19 - long unixTimestamp = (long)dateTimeNowUtc.Subtract(new DateTime(1970, 1, 1)).TotalSeconds; - long unixTimestampMilliseconds = (long)dateTimeNowUtc.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds; + long unixTimestamp = ((DateTimeOffset)dateTimeNowUtc).ToUnixTimeSeconds(); + long unixTimestampMilliseconds = ((DateTimeOffset)dateTimeNowUtc).ToUnixTimeMilliseconds(); int weekOfYear = calendar.GetWeekOfYear(dateTimeNow, DateTimeFormatInfo.CurrentInfo.CalendarWeekRule, DateTimeFormatInfo.CurrentInfo.FirstDayOfWeek); string era = DateTimeFormatInfo.CurrentInfo.GetEraName(calendar.GetEra(dateTimeNow)); string eraShort = DateTimeFormatInfo.CurrentInfo.GetAbbreviatedEraName(calendar.GetEra(dateTimeNow)); @@ -217,7 +217,7 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.Components }, new AvailableResult() { - Value = dateTimeNow.Ticks.ToString(CultureInfo.CurrentCulture), + Value = dateTimeNow.ToFileTime().ToString(CultureInfo.CurrentCulture), Label = Resources.Microsoft_plugin_timedate_WindowsFileTime, AlternativeSearchTag = ResultHelper.SelectStringFromResources(isSystemDateTime, "Microsoft_plugin_timedate_SearchTagFormat"), IconType = ResultIconType.DateTime, diff --git a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeAndDateHelper.cs b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeAndDateHelper.cs index ed1f5097b8..55668dc8dc 100644 --- a/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeAndDateHelper.cs +++ b/src/modules/launcher/Plugins/Microsoft.PowerToys.Run.Plugin.TimeDate/Components/TimeAndDateHelper.cs @@ -98,22 +98,23 @@ namespace Microsoft.PowerToys.Run.Plugin.TimeDate.Components } else if (Regex.IsMatch(input, @"^u[\+-]?\d{1,10}$") && long.TryParse(input.TrimStart('u'), out long secondsU)) { - // unix time stamp - // we use long instead of int because int is too small after 03:14:07 UTC 2038-01-19 - timestamp = new DateTime(1970, 1, 1).AddSeconds(secondsU).ToLocalTime(); + // Unix time stamp + // We use long instead of int, because int is too small after 03:14:07 UTC 2038-01-19 + timestamp = DateTimeOffset.FromUnixTimeSeconds(secondsU).LocalDateTime; return true; } else if (Regex.IsMatch(input, @"^ums[\+-]?\d{1,13}$") && long.TryParse(input.TrimStart("ums".ToCharArray()), out long millisecondsUms)) { - // unix time stamp in milliseconds - // we use long instead of int because int is too small after 03:14:07 UTC 2038-01-19 - timestamp = new DateTime(1970, 1, 1).AddMilliseconds(millisecondsUms).ToLocalTime(); + // Unix time stamp in milliseconds + // We use long instead of int because int is too small after 03:14:07 UTC 2038-01-19 + timestamp = DateTimeOffset.FromUnixTimeMilliseconds(millisecondsUms).LocalDateTime; return true; } else if (Regex.IsMatch(input, @"^ft\d+$") && long.TryParse(input.TrimStart("ft".ToCharArray()), out long secondsFt)) { - // windows file time - timestamp = new DateTime(secondsFt); + // Windows file time + // DateTime.FromFileTime returns as local time. + timestamp = DateTime.FromFileTime(secondsFt); return true; } else From 106f90dc015de906b4c83da76603e4f57ba00da4 Mon Sep 17 00:00:00 2001 From: Laszlo Nemeth <57342539+donlaci@users.noreply.github.com> Date: Mon, 20 Nov 2023 19:40:54 +0100 Subject: [PATCH 66/68] [Awake]Add localization (#29751) * [Awake] First steps for localization. * Localizing all strings. * Fix Spell Checker * Spell checker * Minor fixes, adding comments to resource strings. * Cleaning up project file. * adding resource comments --- src/modules/awake/Awake/Awake.csproj | 13 +- src/modules/awake/Awake/Core/Manager.cs | 8 +- src/modules/awake/Awake/Core/TrayHelper.cs | 16 +- .../Awake/Properties/Resources.Designer.cs | 171 ++++++++++++++++++ .../awake/Awake/Properties/Resources.resx | 162 +++++++++++++++++ .../SettingsXAML/Views/AwakePage.xaml | 2 +- .../Settings.UI/Strings/en-us/Resources.resw | 4 + 7 files changed, 364 insertions(+), 12 deletions(-) create mode 100644 src/modules/awake/Awake/Properties/Resources.Designer.cs create mode 100644 src/modules/awake/Awake/Properties/Resources.resx diff --git a/src/modules/awake/Awake/Awake.csproj b/src/modules/awake/Awake/Awake.csproj index f31c22e62f..58576db33c 100644 --- a/src/modules/awake/Awake/Awake.csproj +++ b/src/modules/awake/Awake/Awake.csproj @@ -79,6 +79,11 @@ Never + + True + True + Resources.resx + @@ -87,11 +92,17 @@ + + + ResXFileCodeGenerator + Resources.Designer.cs + + + all runtime; build; native; contentfiles; analyzers; buildtransitive - diff --git a/src/modules/awake/Awake/Core/Manager.cs b/src/modules/awake/Awake/Core/Manager.cs index d46843226a..6016a4551e 100644 --- a/src/modules/awake/Awake/Core/Manager.cs +++ b/src/modules/awake/Awake/Core/Manager.cs @@ -6,12 +6,14 @@ using System; using System.Collections.Concurrent; using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; +using System.Globalization; using System.IO; using System.Reactive.Linq; using System.Text; using System.Threading; using Awake.Core.Models; using Awake.Core.Native; +using Awake.Properties; using ManagedCommon; using Microsoft.PowerToys.Telemetry; using Microsoft.Win32; @@ -274,9 +276,9 @@ namespace Awake.Core { Dictionary optionsList = new Dictionary { - { "30 minutes", 1800 }, - { "1 hour", 3600 }, - { "2 hours", 7200 }, + { string.Format(CultureInfo.InvariantCulture, Resources.AWAKE_MINUTES, 30), 1800 }, + { Resources.AWAKE_1_HOUR, 3600 }, + { string.Format(CultureInfo.InvariantCulture, Resources.AWAKE_HOURS, 2), 7200 }, }; return optionsList; } diff --git a/src/modules/awake/Awake/Core/TrayHelper.cs b/src/modules/awake/Awake/Core/TrayHelper.cs index 110d623d75..ef6794ecfb 100644 --- a/src/modules/awake/Awake/Core/TrayHelper.cs +++ b/src/modules/awake/Awake/Core/TrayHelper.cs @@ -6,11 +6,13 @@ using System; using System.Collections.Generic; using System.Drawing; using System.Linq; +using System.Text.RegularExpressions; using System.Threading; using System.Threading.Tasks; using System.Windows.Forms; using Awake.Core.Models; using Awake.Core.Native; +using Awake.Properties; using ManagedCommon; using Microsoft.PowerToys.Settings.UI.Library; @@ -115,11 +117,11 @@ namespace Awake.Core if (!startedFromPowerToys) { // If Awake is started from PowerToys, the correct way to exit it is disabling it from Settings. - Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_STRING, (uint)TrayCommands.TC_EXIT, "Exit"); + Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_STRING, (uint)TrayCommands.TC_EXIT, Resources.AWAKE_EXIT); Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_SEPARATOR, 0, string.Empty); } - Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_STRING | (keepDisplayOn ? Native.Constants.MF_CHECKED : Native.Constants.MF_UNCHECKED) | (mode == AwakeMode.PASSIVE ? Native.Constants.MF_DISABLED : Native.Constants.MF_ENABLED), (uint)TrayCommands.TC_DISPLAY_SETTING, "Keep screen on"); + Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_STRING | (keepDisplayOn ? Native.Constants.MF_CHECKED : Native.Constants.MF_UNCHECKED) | (mode == AwakeMode.PASSIVE ? Native.Constants.MF_DISABLED : Native.Constants.MF_ENABLED), (uint)TrayCommands.TC_DISPLAY_SETTING, Resources.AWAKE_KEEP_SCREEN_ON); } // In case there are no tray shortcuts defined for the application default to a @@ -137,10 +139,10 @@ namespace Awake.Core Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_SEPARATOR, 0, string.Empty); - Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_STRING | (mode == AwakeMode.PASSIVE ? Native.Constants.MF_CHECKED : Native.Constants.MF_UNCHECKED), (uint)TrayCommands.TC_MODE_PASSIVE, "Off (keep using the selected power plan)"); - Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_STRING | (mode == AwakeMode.INDEFINITE ? Native.Constants.MF_CHECKED : Native.Constants.MF_UNCHECKED), (uint)TrayCommands.TC_MODE_INDEFINITE, "Keep awake indefinitely"); - Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_POPUP | (mode == AwakeMode.TIMED ? Native.Constants.MF_CHECKED : Native.Constants.MF_UNCHECKED), (uint)awakeTimeMenu, "Keep awake on interval"); - Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_STRING | Native.Constants.MF_DISABLED | (mode == AwakeMode.EXPIRABLE ? Native.Constants.MF_CHECKED : Native.Constants.MF_UNCHECKED), (uint)TrayCommands.TC_MODE_EXPIRABLE, "Keep awake until expiration date and time"); + Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_STRING | (mode == AwakeMode.PASSIVE ? Native.Constants.MF_CHECKED : Native.Constants.MF_UNCHECKED), (uint)TrayCommands.TC_MODE_PASSIVE, Resources.AWAKE_OFF); + Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_STRING | (mode == AwakeMode.INDEFINITE ? Native.Constants.MF_CHECKED : Native.Constants.MF_UNCHECKED), (uint)TrayCommands.TC_MODE_INDEFINITE, Resources.AWAKE_KEEP_INDEFINITELY); + Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_POPUP | (mode == AwakeMode.TIMED ? Native.Constants.MF_CHECKED : Native.Constants.MF_UNCHECKED), (uint)awakeTimeMenu, Resources.AWAKE_KEEP_ON_INTERVAL); + Bridge.InsertMenu(TrayMenu, 0, Native.Constants.MF_BYPOSITION | Native.Constants.MF_STRING | Native.Constants.MF_DISABLED | (mode == AwakeMode.EXPIRABLE ? Native.Constants.MF_CHECKED : Native.Constants.MF_UNCHECKED), (uint)TrayCommands.TC_MODE_EXPIRABLE, Resources.AWAKE_KEEP_UNTIL_EXPIRATION); TrayIcon.Text = text; } @@ -157,7 +159,7 @@ namespace Awake.Core public override AccessibleRole Role => AccessibleRole.CheckButton; - public override string Name => _menuItem.Text + ", " + Role + ", " + (_menuItem.Checked ? "Checked" : "Unchecked"); + public override string Name => _menuItem.Text + ", " + Role + ", " + (_menuItem.Checked ? Resources.AWAKE_CHECKED : Resources.AWAKE_UNCHECKED); } private sealed class CheckButtonToolStripMenuItem : ToolStripMenuItem diff --git a/src/modules/awake/Awake/Properties/Resources.Designer.cs b/src/modules/awake/Awake/Properties/Resources.Designer.cs new file mode 100644 index 0000000000..dab74f79fa --- /dev/null +++ b/src/modules/awake/Awake/Properties/Resources.Designer.cs @@ -0,0 +1,171 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.42000 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Awake.Properties { + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "17.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Awake.Properties.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to 1 hour. + /// + internal static string AWAKE_1_HOUR { + get { + return ResourceManager.GetString("AWAKE_1_HOUR", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to 1 minute. + /// + internal static string AWAKE_1_MINUTE { + get { + return ResourceManager.GetString("AWAKE_1_MINUTE", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Checked. + /// + internal static string AWAKE_CHECKED { + get { + return ResourceManager.GetString("AWAKE_CHECKED", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Exit. + /// + internal static string AWAKE_EXIT { + get { + return ResourceManager.GetString("AWAKE_EXIT", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} hours. + /// + internal static string AWAKE_HOURS { + get { + return ResourceManager.GetString("AWAKE_HOURS", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keep awake indefinitely. + /// + internal static string AWAKE_KEEP_INDEFINITELY { + get { + return ResourceManager.GetString("AWAKE_KEEP_INDEFINITELY", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keep awake on interval. + /// + internal static string AWAKE_KEEP_ON_INTERVAL { + get { + return ResourceManager.GetString("AWAKE_KEEP_ON_INTERVAL", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keep screen on. + /// + internal static string AWAKE_KEEP_SCREEN_ON { + get { + return ResourceManager.GetString("AWAKE_KEEP_SCREEN_ON", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Keep awake until expiration date and time. + /// + internal static string AWAKE_KEEP_UNTIL_EXPIRATION { + get { + return ResourceManager.GetString("AWAKE_KEEP_UNTIL_EXPIRATION", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to {0} minutes. + /// + internal static string AWAKE_MINUTES { + get { + return ResourceManager.GetString("AWAKE_MINUTES", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Off (keep using the selected power plan). + /// + internal static string AWAKE_OFF { + get { + return ResourceManager.GetString("AWAKE_OFF", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Unchecked. + /// + internal static string AWAKE_UNCHECKED { + get { + return ResourceManager.GetString("AWAKE_UNCHECKED", resourceCulture); + } + } + } +} diff --git a/src/modules/awake/Awake/Properties/Resources.resx b/src/modules/awake/Awake/Properties/Resources.resx new file mode 100644 index 0000000000..7ce0a1652d --- /dev/null +++ b/src/modules/awake/Awake/Properties/Resources.resx @@ -0,0 +1,162 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Checked + + + Exit + + + 1 hour + + + {0} hours + {0} shouldn't be removed. It will be replaced by a number greater than 1 at runtime by the application. Used for defining a period to keep the PC awake. + + + Keep awake indefinitely + Keep the system awake forever + + + Keep awake on interval + Keep the system awake for a given time + + + Keep screen on + + + Keep awake until expiration date and time + Keep the system awake until expiration date and time + + + 1 minute + + + {0} minutes + {0} shouldn't be removed. It will be replaced by a number greater than 1 at runtime by the application. Used for defining a period to keep the PC awake. + + + Off (keep using the selected power plan) + Don't keep the system awake, use the selected system power plan + + + Unchecked + + \ No newline at end of file diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/AwakePage.xaml b/src/settings-ui/Settings.UI/SettingsXAML/Views/AwakePage.xaml index b5ab0ed3b8..b514fb1807 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/AwakePage.xaml +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/AwakePage.xaml @@ -105,7 +105,7 @@ - + diff --git a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw index db02b00553..edd59e13e7 100644 --- a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw +++ b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw @@ -2355,6 +2355,10 @@ From there, simply click on one of the supported files in the File Explorer and Learn more about Awake Awake is a product name, do not loc + + Den Delimarsky's work on creating Awake + Awake is a product name, do not loc + Learn more about Color Picker Color Picker is a product name, do not loc From bde9243d72003a70c256349d70ce263a8d1dad51 Mon Sep 17 00:00:00 2001 From: Laszlo Nemeth <57342539+donlaci@users.noreply.github.com> Date: Mon, 20 Nov 2023 22:27:43 +0100 Subject: [PATCH 67/68] [Settings]Adding AltGr warning info box to Shortcut edit dialog (#29761) * [Settings] Adding warning info box to Shortcut edit dialog * Fixing case opening dialog with shortcut which needs warning * Add comment * spell checker --- .../Controls/ShortcutControl/ShortcutControl.xaml.cs | 6 ++++++ .../ShortcutControl/ShortcutDialogContentControl.xaml | 6 ++++++ .../ShortcutControl/ShortcutDialogContentControl.xaml.cs | 8 ++++++++ src/settings-ui/Settings.UI/Strings/en-us/Resources.resw | 8 ++++++++ 4 files changed, 28 insertions(+) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Controls/ShortcutControl/ShortcutControl.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Controls/ShortcutControl/ShortcutControl.xaml.cs index 1f52573a11..7a31408e5f 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Controls/ShortcutControl/ShortcutControl.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Controls/ShortcutControl/ShortcutControl.xaml.cs @@ -332,6 +332,8 @@ namespace Microsoft.PowerToys.Settings.UI.Controls EnableKeys(); } } + + c.IsWarningAltGr = internalSettings.Ctrl && internalSettings.Alt && !internalSettings.Win && (internalSettings.Code > 0); } private void EnableKeys() @@ -408,6 +410,10 @@ namespace Microsoft.PowerToys.Settings.UI.Controls c.Keys = null; c.Keys = HotkeySettings.GetKeysList(); + // 92 means the Win key. The logic is: warning should be visible if the shortcut contains Alt AND contains Ctrl AND NOT contains Win. + // Additional key must be present, as this is a valid, previously used shortcut shown at dialog open. Check for presence of non-modifier-key is not necessary therefore + c.IsWarningAltGr = c.Keys.Contains("Ctrl") && c.Keys.Contains("Alt") && !c.Keys.Contains(92); + shortcutDialog.XamlRoot = this.XamlRoot; shortcutDialog.RequestedTheme = this.ActualTheme; await shortcutDialog.ShowAsync(); diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Controls/ShortcutControl/ShortcutDialogContentControl.xaml b/src/settings-ui/Settings.UI/SettingsXAML/Controls/ShortcutControl/ShortcutDialogContentControl.xaml index 899f08f746..e017777d37 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Controls/ShortcutControl/ShortcutDialogContentControl.xaml +++ b/src/settings-ui/Settings.UI/SettingsXAML/Controls/ShortcutControl/ShortcutDialogContentControl.xaml @@ -59,6 +59,12 @@ IsTabStop="{Binding ElementName=ShortcutContentControl, Path=IsError, Mode=OneWay}" Severity="Error" /> + (bool)GetValue(IsWarningAltGrProperty); + set => SetValue(IsWarningAltGrProperty, value); + } + + public static readonly DependencyProperty IsWarningAltGrProperty = DependencyProperty.Register("IsWarningAltGr", typeof(bool), typeof(ShortcutDialogContentControl), new PropertyMetadata(false)); } } diff --git a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw index edd59e13e7..6df133fbf0 100644 --- a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw +++ b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw @@ -2535,6 +2535,14 @@ Right-click to remove the key combination, thereby deactivating the shortcut.Only shortcuts that start with **Windows key**, **Ctrl**, **Alt** or **Shift** are valid. The ** sequences are used for text formatting of the key names. Don't remove them on translation. + + Possible shortcut interference with Alt Gr + Alt Gr refers to the right alt key on some international keyboards + + + Shortcuts with **Ctrl** and **Alt** may remove functionality from some international keyboards, because **Ctrl** + **Alt** = **Alt Gr** in those keyboards. + The ** sequences are used for text formatting of the key names. Don't remove them on translation. + All monitors must have the same DPI scaling and will be treated as one large combined rectangle which contains all monitors From afa72846b133d830446ec485cdb09a584ae664c2 Mon Sep 17 00:00:00 2001 From: Moritz Date: Tue, 21 Nov 2023 11:12:49 +0100 Subject: [PATCH 68/68] [QuickAccent]Added Greek (EL) language (ISO 639-1) (#29709) --- .../poweraccent/PowerAccent.Core/Languages.cs | 71 ++++++++++++++----- .../SettingsXAML/Views/PowerAccentPage.xaml | 1 + .../Settings.UI/Strings/en-us/Resources.resw | 3 + .../ViewModels/PowerAccentViewModel.cs | 1 + 4 files changed, 57 insertions(+), 19 deletions(-) diff --git a/src/modules/poweraccent/PowerAccent.Core/Languages.cs b/src/modules/poweraccent/PowerAccent.Core/Languages.cs index eaeed2cb13..87cb2c25b2 100644 --- a/src/modules/poweraccent/PowerAccent.Core/Languages.cs +++ b/src/modules/poweraccent/PowerAccent.Core/Languages.cs @@ -18,6 +18,7 @@ namespace PowerAccent.Core GA, GD, DE, + EL, EST, FI, FR, @@ -58,6 +59,7 @@ namespace PowerAccent.Core Language.GA => GetDefaultLetterKeyGA(letter), // Gaeilge (Irish) Language.GD => GetDefaultLetterKeyGD(letter), // Gàidhlig (Scottish Gaelic) Language.DE => GetDefaultLetterKeyDE(letter), // German + Language.EL => GetDefaultLetterKeyEL(letter), // Greek Language.EST => GetDefaultLetterKeyEST(letter), // Estonian Language.FI => GetDefaultLetterKeyFI(letter), // Finnish Language.FR => GetDefaultLetterKeyFR(letter), // French @@ -101,6 +103,7 @@ namespace PowerAccent.Core .Union(GetDefaultLetterKeyGA(letter)) .Union(GetDefaultLetterKeyGD(letter)) .Union(GetDefaultLetterKeyDE(letter)) + .Union(GetDefaultLetterKeyEL(letter)) .Union(GetDefaultLetterKeyEST(letter)) .Union(GetDefaultLetterKeyFI(letter)) .Union(GetDefaultLetterKeyFR(letter)) @@ -144,32 +147,32 @@ namespace PowerAccent.Core LetterKey.VK_4 => new[] { "⅘" }, LetterKey.VK_5 => new[] { "⅚", "⅝" }, LetterKey.VK_7 => new[] { "⅞" }, - LetterKey.VK_A => new[] { "α", "ά", "ȧ" }, - LetterKey.VK_B => new[] { "ḃ", "β" }, - LetterKey.VK_C => new[] { "ċ", "χ", "°C", "©", "ℂ" }, - LetterKey.VK_D => new[] { "ḍ", "ḋ", "δ" }, - LetterKey.VK_E => new[] { "ε", "έ", "η", "ή", "∈" }, + LetterKey.VK_A => new[] { "ά", "ȧ" }, + LetterKey.VK_B => new[] { "ḃ" }, + LetterKey.VK_C => new[] { "ċ", "°C", "©", "ℂ" }, + LetterKey.VK_D => new[] { "ḍ", "ḋ" }, + LetterKey.VK_E => new[] { "έ", "ή", "∈" }, LetterKey.VK_F => new[] { "ḟ", "°F" }, - LetterKey.VK_G => new[] { "ģ", "ǧ", "ġ", "ĝ", "ǥ", "γ" }, + LetterKey.VK_G => new[] { "ģ", "ǧ", "ġ", "ĝ", "ǥ" }, LetterKey.VK_H => new[] { "ḣ", "ĥ", "ħ" }, - LetterKey.VK_I => new[] { "ι", "ί" }, + LetterKey.VK_I => new[] { "ί" }, LetterKey.VK_J => new[] { "ĵ" }, - LetterKey.VK_K => new[] { "ķ", "ǩ", "κ" }, - LetterKey.VK_L => new[] { "ļ", "₺", "λ" }, // ₺ is in VK_T for other languages, but not VK_L, so we add it here. - LetterKey.VK_M => new[] { "ṁ", "μ" }, - LetterKey.VK_N => new[] { "ņ", "ṅ", "ⁿ", "ν", "ℕ" }, - LetterKey.VK_O => new[] { "ȯ", "ω", "ώ", "ο", "ό" }, - LetterKey.VK_P => new[] { "ṗ", "φ", "ψ", "℗" }, + LetterKey.VK_K => new[] { "ķ", "ǩ" }, + LetterKey.VK_L => new[] { "ļ", "₺" }, // ₺ is in VK_T for other languages, but not VK_L, so we add it here. + LetterKey.VK_M => new[] { "ṁ" }, + LetterKey.VK_N => new[] { "ņ", "ṅ", "ⁿ", "ℕ" }, + LetterKey.VK_O => new[] { "ȯ", "ώ", "ό" }, + LetterKey.VK_P => new[] { "ṗ", "℗" }, LetterKey.VK_Q => new[] { "ℚ" }, - LetterKey.VK_R => new[] { "ṙ", "ρ", "®", "ℝ" }, - LetterKey.VK_S => new[] { "ṡ", "σ", "\u00A7" }, - LetterKey.VK_T => new[] { "ţ", "ṫ", "ŧ", "θ", "τ", "™" }, - LetterKey.VK_U => new[] { "ŭ", "υ", "ύ" }, + LetterKey.VK_R => new[] { "ṙ", "®", "ℝ" }, + LetterKey.VK_S => new[] { "ṡ", "\u00A7" }, + LetterKey.VK_T => new[] { "ţ", "ṫ", "ŧ", "™" }, + LetterKey.VK_U => new[] { "ŭ", "ύ" }, LetterKey.VK_V => new[] { "V̇" }, LetterKey.VK_W => new[] { "ẇ" }, - LetterKey.VK_X => new[] { "ẋ", "ξ", "×" }, + LetterKey.VK_X => new[] { "ẋ", "×" }, LetterKey.VK_Y => new[] { "ẏ", "ꝡ" }, - LetterKey.VK_Z => new[] { "ʒ", "ǯ", "ζ", "ℤ" }, + LetterKey.VK_Z => new[] { "ʒ", "ǯ", "ℤ" }, LetterKey.VK_COMMA => new[] { "∙", "₋", "⁻", "–" }, // – is in VK_MINUS for other languages, but not VK_COMMA, so we add it here. LetterKey.VK_PERIOD => new[] { "\u0300", "\u0301", "\u0302", "\u0303", "\u0304", "\u0308", "\u030C" }, LetterKey.VK_MINUS => new[] { "~", "‐", "‑", "‒", "—", "―", "⁓", "−", "⸺", "⸻" }, @@ -523,6 +526,36 @@ namespace PowerAccent.Core }; } + // Greek + private static string[] GetDefaultLetterKeyEL(LetterKey letter) + { + return letter switch + { + LetterKey.VK_A => new string[] { "α" }, + LetterKey.VK_B => new string[] { "β" }, + LetterKey.VK_C => new string[] { "χ" }, + LetterKey.VK_D => new string[] { "δ" }, + LetterKey.VK_E => new string[] { "ε", "η" }, + LetterKey.VK_F => new string[] { "φ" }, + LetterKey.VK_G => new string[] { "γ" }, + LetterKey.VK_I => new string[] { "ι" }, + LetterKey.VK_K => new string[] { "κ" }, + LetterKey.VK_L => new string[] { "λ" }, + LetterKey.VK_M => new string[] { "μ" }, + LetterKey.VK_N => new string[] { "ν" }, + LetterKey.VK_O => new string[] { "ο", "ω" }, + LetterKey.VK_P => new string[] { "π", "φ", "ψ" }, + LetterKey.VK_R => new string[] { "ρ" }, + LetterKey.VK_S => new string[] { "σ" }, + LetterKey.VK_T => new string[] { "τ", "θ" }, + LetterKey.VK_U => new string[] { "υ" }, + LetterKey.VK_X => new string[] { "ξ" }, + LetterKey.VK_Y => new string[] { "υ" }, + LetterKey.VK_Z => new string[] { "ζ" }, + _ => Array.Empty(), + }; + } + // Hebrew private static string[] GetDefaultLetterKeyHE(LetterKey letter) { diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerAccentPage.xaml b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerAccentPage.xaml index 5262e70faa..535f79b2bb 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerAccentPage.xaml +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/PowerAccentPage.xaml @@ -53,6 +53,7 @@ + diff --git a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw index 6df133fbf0..83b9513657 100644 --- a/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw +++ b/src/settings-ui/Settings.UI/Strings/en-us/Resources.resw @@ -3360,6 +3360,9 @@ Activate by holding the key for the character you want to add an accent to, then German + + Greek + Hebrew diff --git a/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs index df512cc727..d6f867306e 100644 --- a/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/PowerAccentViewModel.cs @@ -32,6 +32,7 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels "GA", "GD", "NL", + "EL", "EST", "FI", "FR",