From a708a3afaa3f207c67d83333cfe0aa5063634455 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 9 Apr 2025 19:16:32 +0800 Subject: [PATCH 01/26] Bump msstore-submissions.yml actions/setup-dotnet from 3 to 4 (#38626) Bumps [actions/setup-dotnet](https://github.com/actions/setup-dotnet) from 3 to 4. - [Release notes](https://github.com/actions/setup-dotnet/releases) - [Commits](https://github.com/actions/setup-dotnet/compare/v3...v4) --- updated-dependencies: - dependency-name: actions/setup-dotnet dependency-version: '4' dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> --- .github/workflows/msstore-submissions.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/msstore-submissions.yml b/.github/workflows/msstore-submissions.yml index d3ace94560..8878780987 100644 --- a/.github/workflows/msstore-submissions.yml +++ b/.github/workflows/msstore-submissions.yml @@ -40,7 +40,7 @@ jobs: echo powerToysInstallerArm64Url=$(jq -n "$powerToysSetup" | jq -r '[.[]|select(.name | contains("arm64"))][0].browser_download_url') >> $GITHUB_OUTPUT - name: Setup .NET 9.0 - uses: actions/setup-dotnet@v3 + uses: actions/setup-dotnet@v4 with: dotnet-version: '9.0.x' From fe53a9c89ae2d913f9ba759741a25f05032c40d4 Mon Sep 17 00:00:00 2001 From: Clint Rutkas Date: Thu, 10 Apr 2025 05:27:17 +0000 Subject: [PATCH 02/26] empowering users to maximize OOBE to their heart desire (#37823) empowering users to maximize to their heart desire --- .../SettingsXAML/OobeWindow.xaml.cs | 19 ------------------- 1 file changed, 19 deletions(-) diff --git a/src/settings-ui/Settings.UI/SettingsXAML/OobeWindow.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/OobeWindow.xaml.cs index 48153c127a..56262fea6a 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/OobeWindow.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/OobeWindow.xaml.cs @@ -31,7 +31,6 @@ namespace Microsoft.PowerToys.Settings.UI private WindowId _windowId; private IntPtr _hWnd; private AppWindow _appWindow; - private WindowMessageMonitor _msgMonitor; private bool disposedValue; public OobeWindow(PowerToysModules initialModule) @@ -46,10 +45,6 @@ namespace Microsoft.PowerToys.Settings.UI _appWindow = AppWindow.GetFromWindowId(_windowId); this.Activated += Window_Activated_SetIcon; - OverlappedPresenter presenter = _appWindow.Presenter as OverlappedPresenter; - presenter.IsMinimizable = false; - presenter.IsMaximizable = false; - var dpi = NativeMethods.GetDpiForWindow(_hWnd); _currentDPI = dpi; float scalingFactor = (float)dpi / DefaultDPI; @@ -63,18 +58,6 @@ namespace Microsoft.PowerToys.Settings.UI this.initialModule = initialModule; - _msgMonitor = new WindowMessageMonitor(this); - _msgMonitor.WindowMessageReceived += (_, e) => - { - const int WM_NCLBUTTONDBLCLK = 0x00A3; - if (e.Message.MessageId == WM_NCLBUTTONDBLCLK) - { - // Disable double click on title bar to maximize window - e.Result = 0; - e.Handled = true; - } - }; - this.SizeChanged += OobeWindow_SizeChanged; var loader = Helpers.ResourceLoaderInstance.ResourceLoader; @@ -154,8 +137,6 @@ namespace Microsoft.PowerToys.Settings.UI { if (!disposedValue) { - _msgMonitor?.Dispose(); - disposedValue = true; } } From 94e85597966ba01ce262f9a60c2cf25609a94fb6 Mon Sep 17 00:00:00 2001 From: Laszlo Nemeth <57342539+donlaci@users.noreply.github.com> Date: Thu, 10 Apr 2025 10:29:06 +0200 Subject: [PATCH 03/26] [Bug report] - Auto fill bug report parameters. (#37991) --- .github/ISSUE_TEMPLATE/bug_report.yml | 31 +++++--- .../SettingsXAML/Views/GeneralPage.xaml | 2 +- .../SettingsXAML/Views/GeneralPage.xaml.cs | 2 + .../ViewModels/GeneralViewModel.cs | 78 +++++++++++++++++++ 4 files changed, 100 insertions(+), 13 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 08bbc04c55..e55d081c91 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,6 +1,5 @@ name: "🕷️ Bug report" description: Report errors or unexpected behavior -type: Bug labels: - Issue-Bug - Needs-Triage @@ -8,7 +7,8 @@ body: - type: markdown attributes: value: Please make sure to [search for existing issues](https://github.com/microsoft/PowerToys/issues) before filing a new one! -- type: input +- id: version + type: input attributes: label: Microsoft PowerToys version placeholder: X.XX.X @@ -16,7 +16,8 @@ body: validations: required: true -- type: dropdown +- id: installed + type: dropdown attributes: label: Installation method description: How / Where was PowerToys installed from? @@ -33,14 +34,6 @@ body: validations: required: true -- type: dropdown - attributes: - label: Running as admin - description: Are you running PowerToys as Admin? - options: - - "Yes" - - "No" - - type: dropdown attributes: label: Area(s) with issue? @@ -67,7 +60,7 @@ body: - Keyboard Manager - Mouse Utilities - Mouse Without Borders - - New+ + - New+ - Peek - PowerRename - PowerToys Run @@ -106,6 +99,19 @@ body: validations: required: false +- id: additionalInfo + type: textarea + attributes: + label: Additional Information + placeholder: | + OS version + .Net version + System Language + User or System Installation + Running as admin + validations: + required: false + - type: textarea attributes: label: Other Software @@ -116,3 +122,4 @@ body: My Cool Application v0.3 (include a code snippet if it would help!) validations: required: false + diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml b/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml index fcd06e8292..079a634e97 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml @@ -458,7 +458,7 @@ - + diff --git a/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs b/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs index a7b0bcf5dc..b40a021252 100644 --- a/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs +++ b/src/settings-ui/Settings.UI/SettingsXAML/Views/GeneralPage.xaml.cs @@ -84,6 +84,8 @@ namespace Microsoft.PowerToys.Settings.UI.Views DataContext = ViewModel; + ViewModel.InitializeReportBugLink(); + doRefreshBackupRestoreStatus(100); } diff --git a/src/settings-ui/Settings.UI/ViewModels/GeneralViewModel.cs b/src/settings-ui/Settings.UI/ViewModels/GeneralViewModel.cs index 3669681bb7..c535ffa579 100644 --- a/src/settings-ui/Settings.UI/ViewModels/GeneralViewModel.cs +++ b/src/settings-ui/Settings.UI/ViewModels/GeneralViewModel.cs @@ -9,6 +9,7 @@ using System.Diagnostics; using System.Globalization; using System.IO; using System.IO.Abstractions; +using System.Linq; using System.Reflection; using System.Runtime.CompilerServices; using System.Text.Json; @@ -25,11 +26,19 @@ using Microsoft.PowerToys.Settings.UI.Library.Utilities; using Microsoft.PowerToys.Settings.UI.Library.ViewModels.Commands; using Microsoft.PowerToys.Settings.UI.SerializationContext; using Microsoft.PowerToys.Telemetry; +using Microsoft.Win32; +using Windows.System.Profile; namespace Microsoft.PowerToys.Settings.UI.ViewModels { public partial class GeneralViewModel : Observable { + public enum InstallScope + { + PerMachine = 0, + PerUser, + } + private GeneralSettings GeneralSettingsConfig { get; set; } private UpdatingSettings UpdatingSettingsConfig { get; set; } @@ -72,6 +81,8 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private SettingsBackupAndRestoreUtils settingsBackupAndRestoreUtils = SettingsBackupAndRestoreUtils.Instance; + private const string InstallScopeRegKey = @"Software\Classes\powertoys\"; + public GeneralViewModel(ISettingsRepository settingsRepository, string runAsAdminText, string runAsUserText, bool isElevated, bool isAdmin, Func ipcMSGCallBackFunc, Func ipcMSGRestartAsAdminMSGCallBackFunc, Func ipcMSGCheckForUpdatesCallBackFunc, string configFileSubfolder = "", Action dispatcherAction = null, Action hideBackupAndRestoreMessageAreaAction = null, Action doBackupAndRestoreDryRun = null, Func> pickSingleFolderDialog = null, Windows.ApplicationModel.Resources.ResourceLoader resourceLoader = null) { CheckForUpdatesEventHandler = new ButtonClickCommand(CheckForUpdatesClick); @@ -256,6 +267,73 @@ namespace Microsoft.PowerToys.Settings.UI.ViewModels private int _initLanguagesIndex; private bool _languageChanged; + private string reportBugLink; + + // Gets or sets a value indicating whether run powertoys on start-up. + public string ReportBugLink + { + get => reportBugLink; + set + { + reportBugLink = value; + OnPropertyChanged(nameof(ReportBugLink)); + } + } + + public void InitializeReportBugLink() + { + var version = GetPowerToysVersion(); + + string isElevatedString = "PowerToys is running " + (IsElevated ? "as admin (elevated)" : "as user (non-elevated)"); + + string installScope = GetCurrentInstallScope() == InstallScope.PerMachine ? "per machine (system)" : "per user"; + + var info = $"OS Version: {GetOSVersion()} \n.NET Version: {GetDotNetVersion()}\n{isElevatedString}\nInstall scope: {installScope}\nOperating System Language: {CultureInfo.InstalledUICulture.DisplayName}\nSystem locale: {CultureInfo.InstalledUICulture.Name}"; + + var gitHubURL = "https://github.com/microsoft/PowerToys/issues/new?template=bug_report.yml&labels=Issue-Bug%2CTriage-Needed" + + "&version=" + version + "&additionalInfo=" + System.Web.HttpUtility.UrlEncode(info); + + ReportBugLink = gitHubURL; + } + + private string GetPowerToysVersion() + { + return Helper.GetProductVersion().TrimStart('v'); + } + + private string GetOSVersion() + { + return Environment.OSVersion.VersionString; + } + + public static string GetDotNetVersion() + { + return $".NET {Environment.Version}"; + } + + public static InstallScope GetCurrentInstallScope() + { + // Check HKLM first + if (Registry.LocalMachine.OpenSubKey(InstallScopeRegKey) != null) + { + return InstallScope.PerMachine; + } + + // If not found, check HKCU + var userKey = Registry.CurrentUser.OpenSubKey(InstallScopeRegKey); + if (userKey != null) + { + var installScope = userKey.GetValue("InstallScope") as string; + userKey.Close(); + if (!string.IsNullOrEmpty(installScope) && installScope.Contains("perUser")) + { + return InstallScope.PerUser; + } + } + + return InstallScope.PerMachine; // Default if no specific registry key found + } + // Gets or sets a value indicating whether run powertoys on start-up. public bool Startup { From 41472a483cf74371295ceca85e2decdcfc863bf1 Mon Sep 17 00:00:00 2001 From: RokyZevon <12629919+RokyZevon@users.noreply.github.com> Date: Thu, 10 Apr 2025 22:00:33 +0800 Subject: [PATCH 04/26] [cmdpal] fix a broken link in README.md (#38714) related issue: #38713 --- src/modules/cmdpal/README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/cmdpal/README.md b/src/modules/cmdpal/README.md index 83f37f0c16..2ca4f2f0cf 100644 --- a/src/modules/cmdpal/README.md +++ b/src/modules/cmdpal/README.md @@ -40,7 +40,7 @@ Projects of interest are: [Initial SDK Spec]: ./doc/initial-sdk-spec/initial-sdk-spec.md [generic samples]: ./Exts/SamplePagesExtension -[real samples]: .Exts/ProcessMonitorExtension +[real samples]: ./Exts/ProcessMonitorExtension [real extensions that we've "shipped" already]: https://github.com/zadjii/CmdPalExtensions/blob/main/src/extensions From a7994402fe9ea7b89abf0702abb9833977367f4d Mon Sep 17 00:00:00 2001 From: Yu Leng <42196638+moooyo@users.noreply.github.com> Date: Thu, 10 Apr 2025 23:34:52 +0800 Subject: [PATCH 05/26] [cmdpal] Add Open URL fallback command for WebSearch ext (#38685) ## Summary of the Pull Request 1. Add new fallback command for websearch https://github.com/user-attachments/assets/39362d66-db59-42d4-b07c-7bfd60b2e420 ## PR Checklist - [x] **Closes:** #38497 --------- Co-authored-by: Yu Leng (from Dev Box) --- .../Commands/OpenURLCommand.cs | 37 ++++++++ .../FallbackOpenURLItem.cs | 88 +++++++++++++++++++ .../Properties/Resources.Designer.cs | 18 ++++ .../Properties/Resources.resx | 6 ++ .../WebSearchCommandsProvider.cs | 4 +- 5 files changed, 152 insertions(+), 1 deletion(-) create mode 100644 src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Commands/OpenURLCommand.cs create mode 100644 src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/FallbackOpenURLItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Commands/OpenURLCommand.cs b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Commands/OpenURLCommand.cs new file mode 100644 index 0000000000..fd3f3a8f18 --- /dev/null +++ b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Commands/OpenURLCommand.cs @@ -0,0 +1,37 @@ +// 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.CmdPal.Ext.WebSearch.Helpers; +using Microsoft.CommandPalette.Extensions.Toolkit; + +using BrowserInfo = Microsoft.CmdPal.Ext.WebSearch.Helpers.DefaultBrowserInfo; + +namespace Microsoft.CmdPal.Ext.WebSearch.Commands; + +internal sealed partial class OpenURLCommand : InvokableCommand +{ + private readonly SettingsManager _settingsManager; + + public string Url { get; internal set; } = string.Empty; + + internal OpenURLCommand(string url, SettingsManager settingsManager) + { + Url = url; + BrowserInfo.UpdateIfTimePassed(); + Icon = IconHelpers.FromRelativePath("Assets\\WebSearch.png"); + Name = string.Empty; + _settingsManager = settingsManager; + } + + public override CommandResult Invoke() + { + if (!ShellHelpers.OpenCommandInShell(BrowserInfo.Path, BrowserInfo.ArgumentsPattern, $"{Url}")) + { + // TODO GH# 138 --> actually display feedback from the extension somewhere. + return CommandResult.KeepOpen(); + } + + return CommandResult.Dismiss(); + } +} diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/FallbackOpenURLItem.cs b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/FallbackOpenURLItem.cs new file mode 100644 index 0000000000..721af2ec8e --- /dev/null +++ b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/FallbackOpenURLItem.cs @@ -0,0 +1,88 @@ +// 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.Globalization; +using System.Text; +using Microsoft.CmdPal.Ext.WebSearch.Commands; +using Microsoft.CmdPal.Ext.WebSearch.Helpers; +using Microsoft.CmdPal.Ext.WebSearch.Properties; +using Microsoft.CommandPalette.Extensions.Toolkit; +using BrowserInfo = Microsoft.CmdPal.Ext.WebSearch.Helpers.DefaultBrowserInfo; + +namespace Microsoft.CmdPal.Ext.WebSearch; + +internal sealed partial class FallbackOpenURLItem : FallbackCommandItem +{ + private readonly OpenURLCommand _executeItem; + private static readonly CompositeFormat PluginOpenURL = System.Text.CompositeFormat.Parse(Properties.Resources.plugin_open_url); + private static readonly CompositeFormat PluginOpenUrlInBrowser = System.Text.CompositeFormat.Parse(Properties.Resources.plugin_open_url_in_browser); + + public FallbackOpenURLItem(SettingsManager settings) + : base(new OpenURLCommand(string.Empty, settings), string.Empty) + { + _executeItem = (OpenURLCommand)this.Command!; + Title = string.Empty; + _executeItem.Name = string.Empty; + Subtitle = string.Empty; + Icon = IconHelpers.FromRelativePath("Assets\\WebSearch.png"); + } + + public override void UpdateQuery(string query) + { + if (!IsValidUrl(query)) + { + Title = string.Empty; + Subtitle = string.Empty; + return; + } + + var success = Uri.TryCreate(query, UriKind.Absolute, out var uri); + + // if url not contain schema, add http:// by default. + if (!success) + { + query = "https://" + query; + } + + _executeItem.Url = query; + _executeItem.Name = string.IsNullOrEmpty(query) ? string.Empty : Properties.Resources.open_in_default_browser; + + Title = string.Format(CultureInfo.CurrentCulture, PluginOpenURL, query); + Subtitle = string.Format(CultureInfo.CurrentCulture, PluginOpenUrlInBrowser, BrowserInfo.Name ?? BrowserInfo.MSEdgeName); + } + + public static bool IsValidUrl(string url) + { + if (string.IsNullOrWhiteSpace(url)) + { + return false; + } + + if (!url.Contains('.', StringComparison.OrdinalIgnoreCase)) + { + // eg: 'com', 'org'. We don't think it's a valid url. + // This can simplify the logic of checking if the url is valid. + return false; + } + + if (Uri.IsWellFormedUriString(url, UriKind.Absolute)) + { + return true; + } + + if (!url.StartsWith("http://", StringComparison.OrdinalIgnoreCase) && + !url.StartsWith("https://", StringComparison.OrdinalIgnoreCase) && + !url.StartsWith("ftp://", StringComparison.OrdinalIgnoreCase) && + !url.StartsWith("file://", StringComparison.OrdinalIgnoreCase)) + { + if (Uri.IsWellFormedUriString("https://" + url, UriKind.Absolute)) + { + return true; + } + } + + return false; + } +} diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.Designer.cs b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.Designer.cs index e138b74ecc..15a8c4631f 100644 --- a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.Designer.cs +++ b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.Designer.cs @@ -195,6 +195,24 @@ namespace Microsoft.CmdPal.Ext.WebSearch.Properties { } } + /// + /// Looks up a localized string similar to Open "{0}". + /// + public static string plugin_open_url { + get { + return ResourceManager.GetString("plugin_open_url", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Open url in {0}. + /// + public static string plugin_open_url_in_browser { + get { + return ResourceManager.GetString("plugin_open_url_in_browser", resourceCulture); + } + } + /// /// Looks up a localized string similar to Failed to open {0}.. /// diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.resx b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.resx index 9caaca6c2f..aec5b771c9 100644 --- a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.resx +++ b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.resx @@ -163,6 +163,12 @@ Search the web in {0} + + Open "{0}" + + + Open url in {0} + Failed to open {0}. diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/WebSearchCommandsProvider.cs b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/WebSearchCommandsProvider.cs index 7772d9b8b3..6768ff8baf 100644 --- a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/WebSearchCommandsProvider.cs +++ b/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/WebSearchCommandsProvider.cs @@ -14,6 +14,7 @@ public partial class WebSearchCommandsProvider : CommandProvider { private readonly SettingsManager _settingsManager = new(); private readonly FallbackExecuteSearchItem _fallbackItem; + private readonly FallbackOpenURLItem _openUrlFallbackItem; public WebSearchCommandsProvider() { @@ -23,6 +24,7 @@ public partial class WebSearchCommandsProvider : CommandProvider Settings = _settingsManager.Settings; _fallbackItem = new FallbackExecuteSearchItem(_settingsManager); + _openUrlFallbackItem = new FallbackOpenURLItem(_settingsManager); } public override ICommandItem[] TopLevelCommands() @@ -36,5 +38,5 @@ public partial class WebSearchCommandsProvider : CommandProvider ]; } - public override IFallbackCommandItem[]? FallbackCommands() => [_fallbackItem]; + public override IFallbackCommandItem[]? FallbackCommands() => [_openUrlFallbackItem, _fallbackItem]; } From 55f8f3a53efcee4868d4c3166b1ba4d80a804eb8 Mon Sep 17 00:00:00 2001 From: Davide Giacometti <25966642+davidegiacometti@users.noreply.github.com> Date: Thu, 10 Apr 2025 23:44:54 +0200 Subject: [PATCH 06/26] [CmdPal] Tray icon settings (#38672) ## Summary of the Pull Request Added a settings to enable/disable the system tray icon (enabled by default). Adopter the term "system tray icon" for consistency with Windows 11 settings. ## PR Checklist - [x] **Closes:** #38407 --- .../SettingsModel.cs | 2 + .../SettingsViewModel.cs | 10 +++ .../Microsoft.CmdPal.UI/MainWindow.xaml.cs | 72 ++++++++++--------- .../Settings/GeneralPage.xaml | 4 ++ .../Strings/en-us/Resources.resw | 6 ++ 5 files changed, 60 insertions(+), 34 deletions(-) diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsModel.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsModel.cs index 785c27c3c9..86612e83aa 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsModel.cs +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsModel.cs @@ -36,6 +36,8 @@ public partial class SettingsModel : ObservableObject public bool HighlightSearchOnActivate { get; set; } = true; + public bool ShowSystemTrayIcon { get; set; } = true; + public Dictionary ProviderSettings { get; set; } = []; public Dictionary Aliases { get; set; } = []; diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsViewModel.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsViewModel.cs index 190d75b0c3..c66c07c47b 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsViewModel.cs +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/SettingsViewModel.cs @@ -87,6 +87,16 @@ public partial class SettingsViewModel : INotifyPropertyChanged } } + public bool ShowSystemTrayIcon + { + get => _settings.ShowSystemTrayIcon; + set + { + _settings.ShowSystemTrayIcon = value; + Save(); + } + } + public ObservableCollection CommandProviders { get; } = []; public SettingsViewModel(SettingsModel settings, IServiceProvider serviceProvider, TaskScheduler scheduler) diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/MainWindow.xaml.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI/MainWindow.xaml.cs index ac1b0e0860..2ec74b37f2 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI/MainWindow.xaml.cs +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/MainWindow.xaml.cs @@ -54,7 +54,6 @@ public sealed partial class MainWindow : Window, // Notification Area ("Tray") icon data private NOTIFYICONDATAW? _trayIconData; - private bool _createdIcon; private DestroyIconSafeHandle? _largeIcon; private DesktopAcrylicController? _acrylicController; @@ -99,7 +98,6 @@ public sealed partial class MainWindow : Window, _hotkeyWndProc = HotKeyPrc; var hotKeyPrcPointer = Marshal.GetFunctionPointerForDelegate(_hotkeyWndProc); _originalWndProc = Marshal.GetDelegateForFunctionPointer(PInvoke.SetWindowLongPtr(_hwnd, WINDOW_LONG_PTR_INDEX.GWL_WNDPROC, hotKeyPrcPointer)); - AddNotificationIcon(); // Load our settings, and then also wire up a settings changed handler HotReloadSettings(); @@ -149,6 +147,7 @@ public sealed partial class MainWindow : Window, var settings = App.Current.Services.GetService()!; SetupHotkey(settings); + SetupTrayIcon(settings.ShowSystemTrayIcon); // This will prevent our window from appearing in alt+tab or the taskbar. // You'll _need_ to use the hotkey to summon it. @@ -299,7 +298,7 @@ public sealed partial class MainWindow : Window, var extensionService = serviceProvider.GetService()!; extensionService.SignalStopExtensionsAsync(); - RemoveNotificationIcon(); + RemoveTrayIcon(); // WinUI bug is causing a crash on shutdown when FailFastOnErrors is set to true (#51773592). // Workaround by turning it off before shutdown. @@ -491,9 +490,9 @@ public sealed partial class MainWindow : Window, // WM_WINDOWPOSCHANGING which is always received on explorer startup sequence. case PInvoke.WM_WINDOWPOSCHANGING: { - if (!_createdIcon) + if (_trayIconData == null) { - AddNotificationIcon(); + SetupTrayIcon(); } } @@ -505,7 +504,7 @@ public sealed partial class MainWindow : Window, { // Handle the case where explorer.exe restarts. // Even if we created it before, do it again - AddNotificationIcon(); + SetupTrayIcon(); } else if (uMsg == WM_TRAY_ICON) { @@ -525,55 +524,60 @@ public sealed partial class MainWindow : Window, return PInvoke.CallWindowProc(_originalWndProc, hwnd, uMsg, wParam, lParam); } - private void AddNotificationIcon() + private void SetupTrayIcon(bool? showSystemTrayIcon = null) { - // We only need to build the tray data once. - if (_trayIconData == null) + if (showSystemTrayIcon ?? App.Current.Services.GetService()!.ShowSystemTrayIcon) { - // We need to stash this handle, so it doesn't clean itself up. If - // explorer restarts, we'll come back through here, and we don't - // really need to re-load the icon in that case. We can just use - // the handle from the first time. - _largeIcon = GetAppIconHandle(); - _trayIconData = new NOTIFYICONDATAW() + // We only need to build the tray data once. + if (_trayIconData == null) { - cbSize = (uint)Marshal.SizeOf(typeof(NOTIFYICONDATAW)), - hWnd = _hwnd, - uID = MY_NOTIFY_ID, - uFlags = NOTIFY_ICON_DATA_FLAGS.NIF_MESSAGE | NOTIFY_ICON_DATA_FLAGS.NIF_ICON | NOTIFY_ICON_DATA_FLAGS.NIF_TIP, - uCallbackMessage = WM_TRAY_ICON, - hIcon = (HICON)_largeIcon.DangerousGetHandle(), - szTip = RS_.GetString("AppStoreName"), - }; + // We need to stash this handle, so it doesn't clean itself up. If + // explorer restarts, we'll come back through here, and we don't + // really need to re-load the icon in that case. We can just use + // the handle from the first time. + _largeIcon = GetAppIconHandle(); + _trayIconData = new NOTIFYICONDATAW() + { + cbSize = (uint)Marshal.SizeOf(typeof(NOTIFYICONDATAW)), + hWnd = _hwnd, + uID = MY_NOTIFY_ID, + uFlags = NOTIFY_ICON_DATA_FLAGS.NIF_MESSAGE | NOTIFY_ICON_DATA_FLAGS.NIF_ICON | NOTIFY_ICON_DATA_FLAGS.NIF_TIP, + uCallbackMessage = WM_TRAY_ICON, + hIcon = (HICON)_largeIcon.DangerousGetHandle(), + szTip = RS_.GetString("AppStoreName"), + }; + } + + var d = (NOTIFYICONDATAW)_trayIconData; + + // Add the notification icon + PInvoke.Shell_NotifyIcon(NOTIFY_ICON_MESSAGE.NIM_ADD, in d); } - - var d = (NOTIFYICONDATAW)_trayIconData; - - // Add the notification icon - if (PInvoke.Shell_NotifyIcon(NOTIFY_ICON_MESSAGE.NIM_ADD, in d)) + else { - _createdIcon = true; + RemoveTrayIcon(); } } - private void RemoveNotificationIcon() + private void RemoveTrayIcon() { - if (_trayIconData != null && _createdIcon) + if (_trayIconData != null) { var d = (NOTIFYICONDATAW)_trayIconData; if (PInvoke.Shell_NotifyIcon(NOTIFY_ICON_MESSAGE.NIM_DELETE, in d)) { - _createdIcon = false; + _trayIconData = null; } } + + _largeIcon?.Close(); } private DestroyIconSafeHandle GetAppIconHandle() { var exePath = System.Reflection.Assembly.GetExecutingAssembly().Location; DestroyIconSafeHandle largeIcon; - DestroyIconSafeHandle smallIcon; - PInvoke.ExtractIconEx(exePath, 0, out largeIcon, out smallIcon, 1); + PInvoke.ExtractIconEx(exePath, 0, out largeIcon, out _, 1); return largeIcon; } } diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml index e8a36e618a..8494bed1e1 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Settings/GeneralPage.xaml @@ -68,6 +68,10 @@ + + + + diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Strings/en-us/Resources.resw b/src/modules/cmdpal/Microsoft.CmdPal.UI/Strings/en-us/Resources.resw index 03e8c40eaa..0a4000997a 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Strings/en-us/Resources.resw +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Strings/en-us/Resources.resw @@ -385,4 +385,10 @@ Right-click to remove the key combination, thereby deactivating the shortcut. Behavior + + Show system tray icon + + + Choose if Command Palette is visible in the system tray + \ No newline at end of file From 4cb72ee126caf1f720c507f6a1dbe658cd515366 Mon Sep 17 00:00:00 2001 From: Gordon Lam <73506701+yeelam-gordon@users.noreply.github.com> Date: Thu, 10 Apr 2025 21:58:10 -0700 Subject: [PATCH 07/26] Add Zhiwei as part of PowerToys! (#38744) * Add Zhiwei as part of PowerToys! * Fix the expect.txt for Zhiwei * Fix the case problem on expect.txt zhiwei => Zhiwei --- .github/actions/spell-check/expect.txt | 1 + COMMUNITY.md | 1 + 2 files changed, 2 insertions(+) diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt index b688d6bae0..e87b37fc78 100644 --- a/.github/actions/spell-check/expect.txt +++ b/.github/actions/spell-check/expect.txt @@ -1988,6 +1988,7 @@ YStr YTM YVIRTUALSCREEN ZEROINIT +Zhiwei zonable zoneset Zoneszonabletester diff --git a/COMMUNITY.md b/COMMUNITY.md index 3e7cd6719e..ccfa61decf 100644 --- a/COMMUNITY.md +++ b/COMMUNITY.md @@ -188,6 +188,7 @@ ZoomIt source code was originally implemented by [Sysinternals](https://sysinter - [@cinnamon-msft](https://github.com/cinnamon-msft) - Kayla Cinnamon - Lead - [@nguyen-dows](https://github.com/nguyen-dows) - Christopher Nguyen - Product Manager - [@craigloewen-msft](https://github.com/craigloewen-msft) - Craig Loewen - Product Manager +- [@zhiwei-ms](https://github.com/zhiwei-ms) - Zhiwei Yu - Product Manager - [@dhowett](https://github.com/dhowett) - Dustin Howett - Dev lead - [@yeelam-gordon](https://github.com/yeelam-gordon) - Gordon Lam - Dev lead - [@jamrobot](https://github.com/jamrobot) - Jerry Xu - Dev lead From b32c04fca191bd6e37be1a9c6df46a31a1a835ef Mon Sep 17 00:00:00 2001 From: ruslanlap <106077551+ruslanlap@users.noreply.github.com> Date: Fri, 11 Apr 2025 21:45:25 +0300 Subject: [PATCH 08/26] [PowerToysRun][Docs] Add QuickNotes to Third-Party plugins (#38663) * Add QuickNotes plugin to third-party Run plugins documentation * chore: add ruslanlap to spelling allow-list * chore: add ruslanlap to spelling allow-list * chore: add ruslanlap to spelling allow-list * Add ruslanlap to allowed names and remove from expected words list --- .github/actions/spell-check/allow/names.txt | 1 + .github/actions/spell-check/expect.txt | 48 ++------------------- doc/thirdPartyRunPlugins.md | 1 + 3 files changed, 5 insertions(+), 45 deletions(-) diff --git a/.github/actions/spell-check/allow/names.txt b/.github/actions/spell-check/allow/names.txt index 44131fecfb..289da43b14 100644 --- a/.github/actions/spell-check/allow/names.txt +++ b/.github/actions/spell-check/allow/names.txt @@ -188,6 +188,7 @@ zhaoqpcn Zoltan Zykova Sameerjs +ruslanlap # OTHERS diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt index e87b37fc78..8fb29864f3 100644 --- a/.github/actions/spell-check/expect.txt +++ b/.github/actions/spell-check/expect.txt @@ -56,12 +56,10 @@ APIIs Apm APPBARDATA APPEXECLINK -APPICONREFERENCE APPLICATIONFRAMEHOST appmanifest APPMODEL APPNAME -APPPUBLISHER appref appsettings appwindow @@ -173,7 +171,6 @@ CCHFORMNAME CCom CContext CDeclaration -cdn CElems CENTERALIGN certlm @@ -254,8 +251,6 @@ createdump CREATEPROCESS CREATESCHEDULEDTASK CREATESTRUCT -CREATETHREAD -CREATEWINDOW CREATEWINDOWFAILED CRECT CRH @@ -308,11 +303,7 @@ DCOM DComposition DCR ddd -DDEAPPLICATION -DDECOMMAND DDEIf -DDEIFEXEC -DDETOPIC DDevice DDxgi Deact @@ -326,16 +317,13 @@ DEFAULTFLAGS DEFAULTICON defaultlib DEFAULTONLY -DEFAULTTOFOLDER DEFAULTTONEAREST DEFAULTTONULL DEFAULTTOPRIMARY -DEFAULTTOSTAR DEFERERASE DEFPUSHBUTTON deinitialization DELA -DELEGATEEXECUTE DELETEDKEYIMAGE DELETESCANS deletethis @@ -389,7 +377,6 @@ dreamsofameaningfullife drivedetectionwarning Droid DROPFILES -DROPTARGET DSTINVERT DSurface DTexture @@ -510,12 +497,10 @@ Fira FIXEDFILEINFO FIXEDSYS flac -flaticon flyouts FMask fmtid FOF -WANTNUKEWARNING FOFX FOLDERID folderpath @@ -525,7 +510,6 @@ FORCEMINIMIZE FORMATDLGORD formatetc FORPARSING -fpvm Fqc FRAMECHANGED frm @@ -559,7 +543,6 @@ GETSECKEY GETSTICKYKEYS GETTEXTLENGTH GHND -gifv GMEM GNumber gpedit @@ -653,7 +636,6 @@ HROW hsb HSCROLL hsi -HSSH HTCLIENT hthumbnail HTOUCHINPUT @@ -691,7 +673,6 @@ iextn IFACEMETHOD IFACEMETHODIMP IFile -IGNOREBASECLASS IGNOREUNKNOWN IGo iid @@ -740,8 +721,6 @@ Inste Interlop INTRESOURCE INVALIDARG -INVALIDCALL -INVALIDINDEX invalidoperatioexception ipcmanager IPREVIEW @@ -803,7 +782,6 @@ LEVELID LExit lhwnd LIBID -libraryincludes LIMITSIZE LIMITTEXT lindex @@ -905,7 +883,6 @@ MBM MBR MDICHILD MDL -mdpvm mdtext mdtxt mdwn @@ -1053,7 +1030,6 @@ NOCRLF nodeca NODRAWCAPTION NODRAWICON -NOFIXUPS NOINHERITLAYOUT NOINTERFACE NOINVERT @@ -1069,13 +1045,11 @@ NONELEVATED NONINFRINGEMENT nonspace nonstd -NOOPEN NOOWNERZORDER NOPARENTNOTIFY NOPREFIX NOREDIRECTIONBITMAP NOREDRAW -NOREMAPCLSID NOREMOVE norename NOREPEAT @@ -1094,11 +1068,9 @@ NOTIFYICONDATAW NOTIMPL NOTOPMOST NOTRACK -NOTRUNCATE NOTSRCCOPY NOTSRCERASE NOTXORPEN -NOUSERSETTINGS NOZORDER NPH npmjs @@ -1318,7 +1290,6 @@ Quarternary QUERYENDSESSION QUERYOPEN QUEUESYNC -QUICKTIP QUNS QXZ RAII @@ -1347,7 +1318,6 @@ REFCLSID REFIID REGCLS regfile -REGISTERCLASSEX REGISTERCLASSFAILED REGISTRYHEADER registrypath @@ -1359,7 +1329,6 @@ REINSTALLMODE reloadable Relogger remappings -REMAPRUNDLL REMAPSUCCESSFUL REMAPUNSUCCESSFUL Remotable @@ -1436,7 +1405,6 @@ SDDL SDKDDK sdns searchterm -searchtext SEARCHUI SECONDARYDISPLAY secpol @@ -1484,8 +1452,6 @@ SHELLDLL shellex SHELLEXECUTEINFO SHELLEXECUTEINFOW -SHELLEXTENSION -SHELLNEWVALUE SHFILEINFO SHFILEOPSTRUCT SHGDN @@ -1495,7 +1461,6 @@ SHGFIICON SHGFILARGEICON shinfo shlwapi -SHNAMEMAPPING shobjidl SHORTCUTATLEAST SHORTCUTMAXONEACTIONKEY @@ -1546,7 +1511,6 @@ SNAPPROCESS snwprintf softline SOURCECLIENTAREAONLY -sourced sourcedoc SOURCEHEADER sourcesdirectory @@ -1685,7 +1649,6 @@ THotkey throughs TIcon TILEDWINDOW -TILEINFO TILLSON timedate timediff @@ -1699,9 +1662,6 @@ TLayout tlb tlbimp tlc -TPMLEFTALIGN -TPMRETURNCMD -TMPVAR TNP Toolhelp toolkitconverters @@ -1709,6 +1669,8 @@ toolwindow TOPDOWNDIB TOUCHEVENTF TOUCHINPUT +TPMLEFTALIGN +TPMRETURNCMD TRACEHANDLE tracelogging tracerpt @@ -1782,7 +1744,6 @@ USRDLL UType uuidv uwp -ums uxt uxtheme vabdq @@ -1809,7 +1770,6 @@ VERTSIZE VFT vget vgetq -videourl viewmodel VIRTKEY VIRTUALDESK @@ -1843,7 +1803,7 @@ vstprintf VSTT vswhere Vtbl -WANTMAPPINGHANDLE +WANTNUKEWARNING WANTPALM wasdk wbem @@ -1958,7 +1918,6 @@ WUX Wwanpp XAxis xclip -xdoc XDocument XElement xfd @@ -1981,7 +1940,6 @@ Yeet YIncrement yinle yinyue -youtube YPels YResolution YStr diff --git a/doc/thirdPartyRunPlugins.md b/doc/thirdPartyRunPlugins.md index 90966ead20..03bafa1c66 100644 --- a/doc/thirdPartyRunPlugins.md +++ b/doc/thirdPartyRunPlugins.md @@ -43,6 +43,7 @@ Contact the developers of a plugin directly for assistance with a specific plugi | [TailwindCSS](https://github.com/skttl/ptrun-tailwindcss) | [skttl](https://github.com/skttl) | Search the documentation of TailwindCSS | | [HttpStatusCodes](https://github.com/grzhan/HttpStatusCodePowerToys) | [grzhan](https://github.com/grzhan) | Search for http status codes | | [SVGL](https://github.com/Sameerjs6/powertoys-svgl) | [SameerJS6](https://github.com/SameerJS6) | Search, Browse and copy SVG logos from SVGL. | +| [QuickNotes](https://github.com/ruslanlap/CommunityPowerToysRunPlugin-QuickNotes) | [ruslanlap](https://github.com/ruslanlap) | Create, manage, and search notes directly from PowerToys Run. | ## Extending software plugins From 5c8aa67781eb88cd8995c736e9609904b20d536b Mon Sep 17 00:00:00 2001 From: Muhammad Danish Date: Mon, 14 Apr 2025 04:19:22 +0500 Subject: [PATCH 09/26] Add securityContext to configuration files (#38017) For the winget DSC, Setting developer mode, installing Visual Studio 2022 & fetching and installing VS components all require elevation. Added securityContext: elevated for these resources. These configurations can now be invoked from user context, and will prompt for a single UAC to run resources that require elevation in a separate process. --- .config/configuration.vsEnterprise.winget | 6 ++++++ .config/configuration.vsProfessional.winget | 6 ++++++ .config/configuration.winget | 6 ++++++ 3 files changed, 18 insertions(+) diff --git a/.config/configuration.vsEnterprise.winget b/.config/configuration.vsEnterprise.winget index 84e05ed511..4d19d37137 100644 --- a/.config/configuration.vsEnterprise.winget +++ b/.config/configuration.vsEnterprise.winget @@ -6,12 +6,16 @@ properties: directives: description: Enable Developer Mode allowPrerelease: true + # Requires elevation for the set operation + securityContext: elevated settings: Ensure: Present - resource: Microsoft.WinGet.DSC/WinGetPackage id: vsPackage directives: description: Install Visual Studio 2022 Enterprise (Any edition will work) + # Requires elevation for the set operation + securityContext: elevated settings: id: Microsoft.VisualStudio.2022.Enterprise source: winget @@ -21,6 +25,8 @@ properties: directives: description: Install required VS workloads allowPrerelease: true + # Requires elevation for the get and set operations + securityContext: elevated settings: productId: Microsoft.VisualStudio.Product.Enterprise channelId: VisualStudio.17.Release diff --git a/.config/configuration.vsProfessional.winget b/.config/configuration.vsProfessional.winget index 6ac0babf9f..78fb1c13d5 100644 --- a/.config/configuration.vsProfessional.winget +++ b/.config/configuration.vsProfessional.winget @@ -6,12 +6,16 @@ properties: directives: description: Enable Developer Mode allowPrerelease: true + # Requires elevation for the set operation + securityContext: elevated settings: Ensure: Present - resource: Microsoft.WinGet.DSC/WinGetPackage id: vsPackage directives: description: Install Visual Studio 2022 Professional (Any edition will work) + # Requires elevation for the set operation + securityContext: elevated settings: id: Microsoft.VisualStudio.2022.Professional source: winget @@ -21,6 +25,8 @@ properties: directives: description: Install required VS workloads allowPrerelease: true + # Requires elevation for the get and set operations + securityContext: elevated settings: productId: Microsoft.VisualStudio.Product.Professional channelId: VisualStudio.17.Release diff --git a/.config/configuration.winget b/.config/configuration.winget index df3eeea441..456eca47f2 100644 --- a/.config/configuration.winget +++ b/.config/configuration.winget @@ -6,12 +6,16 @@ properties: directives: description: Enable Developer Mode allowPrerelease: true + # Requires elevation for the set operation + securityContext: elevated settings: Ensure: Present - resource: Microsoft.WinGet.DSC/WinGetPackage id: vsPackage directives: description: Install Visual Studio 2022 Community (Any edition will work) + # Requires elevation for the set operation + securityContext: elevated settings: id: Microsoft.VisualStudio.2022.Community source: winget @@ -21,6 +25,8 @@ properties: directives: description: Install required VS workloads allowPrerelease: true + # Requires elevation for the get and set operations + securityContext: elevated settings: productId: Microsoft.VisualStudio.Product.Community channelId: VisualStudio.17.Release From 03bc72c4369311176fa4b66b1b494478f331919f Mon Sep 17 00:00:00 2001 From: Bennett Blodinger Date: Sun, 13 Apr 2025 18:20:43 -0500 Subject: [PATCH 10/26] Change log extension from .txt => .log (#33813) * Change log extension From .txt to .log * Also add workspace logs --------- Co-authored-by: Jaime Bernardo --- src/common/AllExperiments/Logger.cs | 2 +- src/common/ManagedCommon/Logger.cs | 2 +- src/common/logger/logger_settings.h | 60 ++++++++++++++--------------- src/common/utils/logger_helper.h | 2 +- 4 files changed, 33 insertions(+), 33 deletions(-) diff --git a/src/common/AllExperiments/Logger.cs b/src/common/AllExperiments/Logger.cs index 7604618bdf..b9e1f20969 100644 --- a/src/common/AllExperiments/Logger.cs +++ b/src/common/AllExperiments/Logger.cs @@ -25,7 +25,7 @@ namespace AllExperiments } // Using InvariantCulture since this is used for a log file name - var logFilePath = Path.Combine(ApplicationLogPath, "Log_" + DateTime.Now.ToString(@"yyyy-MM-dd", CultureInfo.InvariantCulture) + ".txt"); + var logFilePath = Path.Combine(ApplicationLogPath, "Log_" + DateTime.Now.ToString(@"yyyy-MM-dd", CultureInfo.InvariantCulture) + ".log"); Trace.Listeners.Add(new TextWriterTraceListener(logFilePath)); diff --git a/src/common/ManagedCommon/Logger.cs b/src/common/ManagedCommon/Logger.cs index b67d63c3b5..cd85d500e1 100644 --- a/src/common/ManagedCommon/Logger.cs +++ b/src/common/ManagedCommon/Logger.cs @@ -54,7 +54,7 @@ namespace ManagedCommon Directory.CreateDirectory(applicationLogPath); } - var logFilePath = Path.Combine(applicationLogPath, "Log_" + DateTime.Now.ToString(@"yyyy-MM-dd", CultureInfo.InvariantCulture) + ".txt"); + var logFilePath = Path.Combine(applicationLogPath, "Log_" + DateTime.Now.ToString(@"yyyy-MM-dd", CultureInfo.InvariantCulture) + ".log"); Trace.Listeners.Add(new TextWriterTraceListener(logFilePath)); diff --git a/src/common/logger/logger_settings.h b/src/common/logger/logger_settings.h index dab7ad64a2..c880614237 100644 --- a/src/common/logger/logger_settings.h +++ b/src/common/logger/logger_settings.h @@ -8,49 +8,49 @@ struct LogSettings inline const static std::wstring logLevelOption = L"logLevel"; inline const static std::string runnerLoggerName = "runner"; inline const static std::wstring logPath = L"Logs\\"; - inline const static std::wstring runnerLogPath = L"RunnerLogs\\runner-log.txt"; + inline const static std::wstring runnerLogPath = L"RunnerLogs\\runner-log.log"; inline const static std::string actionRunnerLoggerName = "action-runner"; - inline const static std::wstring actionRunnerLogPath = L"RunnerLogs\\action-runner-log.txt"; + inline const static std::wstring actionRunnerLogPath = L"RunnerLogs\\action-runner-log.log"; inline const static std::string updateLoggerName = "update"; - inline const static std::wstring updateLogPath = L"UpdateLogs\\update-log.txt"; + inline const static std::wstring updateLogPath = L"UpdateLogs\\update-log.log"; inline const static std::string fileExplorerLoggerName = "FileExplorer"; - inline const static std::wstring fileExplorerLogPath = L"Logs\\file-explorer-log.txt"; + inline const static std::wstring fileExplorerLogPath = L"Logs\\file-explorer-log.log"; inline const static std::string gcodePrevLoggerName = "GcodePrevHandler"; - inline const static std::wstring gcodePrevLogPath = L"logs\\FileExplorer_localLow\\GcodePreviewHandler\\gcode-prev-handler-log.txt"; + inline const static std::wstring gcodePrevLogPath = L"logs\\FileExplorer_localLow\\GcodePreviewHandler\\gcode-prev-handler-log.log"; inline const static std::string gcodeThumbLoggerName = "GcodeThumbnailProvider"; - inline const static std::wstring gcodeThumbLogPath = L"logs\\FileExplorer_localLow\\GcodeThumbnailProvider\\gcode-thumbnail-provider-log.txt"; + inline const static std::wstring gcodeThumbLogPath = L"logs\\FileExplorer_localLow\\GcodeThumbnailProvider\\gcode-thumbnail-provider-log.log"; inline const static std::string mdPrevLoggerName = "MDPrevHandler"; - inline const static std::wstring mdPrevLogPath = L"logs\\FileExplorer_localLow\\MDPrevHandler\\md-prev-handler-log.txt"; + inline const static std::wstring mdPrevLogPath = L"logs\\FileExplorer_localLow\\MDPrevHandler\\md-prev-handler-log.log"; inline const static std::string monacoPrevLoggerName = "MonacoPrevHandler"; - inline const static std::wstring monacoPrevLogPath = L"logs\\FileExplorer_localLow\\MonacoPrevHandler\\monaco-prev-handler-log.txt"; + inline const static std::wstring monacoPrevLogPath = L"logs\\FileExplorer_localLow\\MonacoPrevHandler\\monaco-prev-handler-log.log"; inline const static std::string pdfPrevLoggerName = "PdfPrevHandler"; - inline const static std::wstring pdfPrevLogPath = L"logs\\FileExplorer_localLow\\PdfPrevHandler\\pdf-prev-handler-log.txt"; + inline const static std::wstring pdfPrevLogPath = L"logs\\FileExplorer_localLow\\PdfPrevHandler\\pdf-prev-handler-log.log"; inline const static std::string pdfThumbLoggerName = "PdfThumbnailProvider"; - inline const static std::wstring pdfThumbLogPath = L"logs\\FileExplorer_localLow\\PdfThumbnailProvider\\pdf-thumbnail-provider-log.txt"; + inline const static std::wstring pdfThumbLogPath = L"logs\\FileExplorer_localLow\\PdfThumbnailProvider\\pdf-thumbnail-provider-log.log"; inline const static std::string qoiPrevLoggerName = "QoiPrevHandler"; - inline const static std::wstring qoiPrevLogPath = L"logs\\FileExplorer_localLow\\QoiPreviewHandler\\qoi-prev-handler-log.txt"; + inline const static std::wstring qoiPrevLogPath = L"logs\\FileExplorer_localLow\\QoiPreviewHandler\\qoi-prev-handler-log.log"; inline const static std::string qoiThumbLoggerName = "QoiThumbnailProvider"; - inline const static std::wstring qoiThumbLogPath = L"logs\\FileExplorer_localLow\\QoiThumbnailProvider\\qoi-thumbnail-provider-log.txt"; + inline const static std::wstring qoiThumbLogPath = L"logs\\FileExplorer_localLow\\QoiThumbnailProvider\\qoi-thumbnail-provider-log.log"; inline const static std::string stlThumbLoggerName = "StlThumbnailProvider"; - inline const static std::wstring stlThumbLogPath = L"logs\\FileExplorer_localLow\\StlThumbnailProvider\\stl-thumbnail-provider-log.txt"; + inline const static std::wstring stlThumbLogPath = L"logs\\FileExplorer_localLow\\StlThumbnailProvider\\stl-thumbnail-provider-log.log"; inline const static std::string svgPrevLoggerName = "SvgPrevHandler"; - inline const static std::wstring svgPrevLogPath = L"logs\\FileExplorer_localLow\\SvgPrevHandler\\svg-prev-handler-log.txt"; + inline const static std::wstring svgPrevLogPath = L"logs\\FileExplorer_localLow\\SvgPrevHandler\\svg-prev-handler-log.log"; inline const static std::string svgThumbLoggerName = "SvgThumbnailProvider"; - inline const static std::wstring svgThumbLogPath = L"logs\\FileExplorer_localLow\\SvgThumbnailProvider\\svg-thumbnail-provider-log.txt"; + inline const static std::wstring svgThumbLogPath = L"logs\\FileExplorer_localLow\\SvgThumbnailProvider\\svg-thumbnail-provider-log.log"; inline const static std::string launcherLoggerName = "launcher"; - inline const static std::wstring launcherLogPath = L"LogsModuleInterface\\launcher-log.txt"; + inline const static std::wstring launcherLogPath = L"LogsModuleInterface\\launcher-log.log"; inline const static std::string mouseWithoutBordersLoggerName = "mouseWithoutBorders"; - inline const static std::wstring mouseWithoutBordersLogPath = L"LogsModuleInterface\\mouseWithoutBorders-log.txt"; - inline const static std::wstring awakeLogPath = L"Logs\\awake-log.txt"; - inline const static std::wstring powerAccentLogPath = L"quick-accent-log.txt"; + inline const static std::wstring mouseWithoutBordersLogPath = L"LogsModuleInterface\\mouseWithoutBorders-log.log"; + inline const static std::wstring awakeLogPath = L"Logs\\awake-log.log"; + inline const static std::wstring powerAccentLogPath = L"quick-accent-log.log"; inline const static std::string fancyZonesLoggerName = "fancyzones"; - inline const static std::wstring fancyZonesLogPath = L"fancyzones-log.txt"; + inline const static std::wstring fancyZonesLogPath = L"fancyzones-log.log"; inline const static std::wstring fancyZonesOldLogPath = L"FancyZonesLogs\\"; // needed to clean up old logs inline const static std::string shortcutGuideLoggerName = "shortcut-guide"; - inline const static std::wstring shortcutGuideLogPath = L"ShortcutGuideLogs\\shortcut-guide-log.txt"; - inline const static std::wstring powerOcrLogPath = L"Logs\\text-extractor-log.txt"; + inline const static std::wstring shortcutGuideLogPath = L"ShortcutGuideLogs\\shortcut-guide-log.log"; + inline const static std::wstring powerOcrLogPath = L"Logs\\text-extractor-log.log"; inline const static std::string keyboardManagerLoggerName = "keyboard-manager"; - inline const static std::wstring keyboardManagerLogPath = L"Logs\\keyboard-manager-log.txt"; + inline const static std::wstring keyboardManagerLogPath = L"Logs\\keyboard-manager-log.log"; inline const static std::string findMyMouseLoggerName = "find-my-mouse"; inline const static std::string mouseHighlighterLoggerName = "mouse-highlighter"; inline const static std::string mouseJumpLoggerName = "mouse-jump"; @@ -60,22 +60,22 @@ struct LogSettings inline const static std::string alwaysOnTopLoggerName = "always-on-top"; inline const static std::string powerOcrLoggerName = "TextExtractor"; inline const static std::string fileLocksmithLoggerName = "FileLocksmith"; - inline const static std::wstring alwaysOnTopLogPath = L"always-on-top-log.txt"; + inline const static std::wstring alwaysOnTopLogPath = L"always-on-top-log.log"; inline const static std::string hostsLoggerName = "hosts"; - inline const static std::wstring hostsLogPath = L"Logs\\hosts-log.txt"; + inline const static std::wstring hostsLogPath = L"Logs\\hosts-log.log"; inline const static std::string registryPreviewLoggerName = "registrypreview"; inline const static std::string cropAndLockLoggerName = "crop-and-lock"; - inline const static std::wstring registryPreviewLogPath = L"Logs\\registryPreview-log.txt"; + inline const static std::wstring registryPreviewLogPath = L"Logs\\registryPreview-log.log"; inline const static std::string environmentVariablesLoggerName = "environment-variables"; - inline const static std::wstring cmdNotFoundLogPath = L"Logs\\cmd-not-found-log.txt"; + inline const static std::wstring cmdNotFoundLogPath = L"Logs\\cmd-not-found-log.log"; inline const static std::string cmdNotFoundLoggerName = "cmd-not-found"; inline const static std::string newLoggerName = "NewPlus"; inline const static std::string workspacesLauncherLoggerName = "workspaces-launcher"; - inline const static std::wstring workspacesLauncherLogPath = L"workspaces-launcher-log.txt"; + inline const static std::wstring workspacesLauncherLogPath = L"workspaces-launcher-log.log"; inline const static std::string workspacesWindowArrangerLoggerName = "workspaces-window-arranger"; - inline const static std::wstring workspacesWindowArrangerLogPath = L"workspaces-window-arranger-log.txt"; + inline const static std::wstring workspacesWindowArrangerLogPath = L"workspaces-window-arranger-log.log"; inline const static std::string workspacesSnapshotToolLoggerName = "workspaces-snapshot-tool"; - inline const static std::wstring workspacesSnapshotToolLogPath = L"workspaces-snapshot-tool-log.txt"; + inline const static std::wstring workspacesSnapshotToolLogPath = L"workspaces-snapshot-tool-log.log"; inline const static std::string zoomItLoggerName = "zoom-it"; inline const static int retention = 30; std::wstring logLevel; diff --git a/src/common/utils/logger_helper.h b/src/common/utils/logger_helper.h index c2207525e3..2deec22155 100644 --- a/src/common/utils/logger_helper.h +++ b/src/common/utils/logger_helper.h @@ -91,7 +91,7 @@ namespace LoggerHelpers currentFolder.append(get_product_version()); auto logsPath = currentFolder; - logsPath.append(L"log.txt"); + logsPath.append(L"log.log"); Logger::init(loggerName, logsPath.wstring(), PTSettingsHelper::get_log_settings_file_location()); delete_other_versions_log_folders(rootFolder.wstring(), currentFolder); From 662f04ed34da0fb8e074a6912e85b9afefd03371 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ionu=C8=9B=20Man=C8=9Ba?= Date: Mon, 14 Apr 2025 01:48:10 -0700 Subject: [PATCH 11/26] [KeyboardManager] Fix modifier Key (Not right or left) stuck (#37930) * Fix ctr,alt,shift getting stuck * more changes * Update src/modules/keyboardmanager/common/Helpers.h Co-authored-by: Hao Liu --------- Co-authored-by: Hao Liu --- .../EditorHelpers.cpp | 6 +- .../KeyboardEventHandlers.cpp | 94 +++++++++++-------- .../KeyboardManagerEngineLibrary/trace.cpp | 6 +- .../keyboardmanager/common/Helpers.cpp | 34 +++---- src/modules/keyboardmanager/common/Helpers.h | 4 +- .../common/KeyboardManagerCommon.vcxproj | 1 + .../KeyboardManagerCommon.vcxproj.filters | 3 + .../keyboardmanager/common/Modifiers.h | 26 +++++ .../keyboardmanager/common/RemapShortcut.h | 11 ++- .../keyboardmanager/common/Shortcut.cpp | 42 +++++++-- src/modules/keyboardmanager/common/Shortcut.h | 7 +- 11 files changed, 153 insertions(+), 81 deletions(-) create mode 100644 src/modules/keyboardmanager/common/Modifiers.h diff --git a/src/modules/keyboardmanager/KeyboardManagerEditorLibrary/EditorHelpers.cpp b/src/modules/keyboardmanager/KeyboardManagerEditorLibrary/EditorHelpers.cpp index 059d8931cc..1874899c1b 100644 --- a/src/modules/keyboardmanager/KeyboardManagerEditorLibrary/EditorHelpers.cpp +++ b/src/modules/keyboardmanager/KeyboardManagerEditorLibrary/EditorHelpers.cpp @@ -117,15 +117,15 @@ namespace EditorHelpers } if (shortcut.ctrlKey != ModifierKey::Disabled) { - keys.push_back(winrt::to_hstring(keyboardMap.GetKeyName(shortcut.GetCtrlKey()).c_str())); + keys.push_back(winrt::to_hstring(keyboardMap.GetKeyName(shortcut.GetCtrlKey(ModifierKey::Both)).c_str())); } if (shortcut.altKey != ModifierKey::Disabled) { - keys.push_back(winrt::to_hstring(keyboardMap.GetKeyName(shortcut.GetAltKey()).c_str())); + keys.push_back(winrt::to_hstring(keyboardMap.GetKeyName(shortcut.GetAltKey(ModifierKey::Both)).c_str())); } if (shortcut.shiftKey != ModifierKey::Disabled) { - keys.push_back(winrt::to_hstring(keyboardMap.GetKeyName(shortcut.GetShiftKey()).c_str())); + keys.push_back(winrt::to_hstring(keyboardMap.GetKeyName(shortcut.GetShiftKey(ModifierKey::Both)).c_str())); } if (shortcut.actionKey != NULL) { diff --git a/src/modules/keyboardmanager/KeyboardManagerEngineLibrary/KeyboardEventHandlers.cpp b/src/modules/keyboardmanager/KeyboardManagerEngineLibrary/KeyboardEventHandlers.cpp index 537e9016ac..080fcc16c2 100644 --- a/src/modules/keyboardmanager/KeyboardManagerEngineLibrary/KeyboardEventHandlers.cpp +++ b/src/modules/keyboardmanager/KeyboardManagerEngineLibrary/KeyboardEventHandlers.cpp @@ -158,13 +158,13 @@ namespace KeyboardEventHandlers if (data->wParam == WM_KEYUP || data->wParam == WM_SYSKEYUP) { Helpers::SetKeyEvent(keyEventList, INPUT_KEYBOARD, static_cast(targetShortcut.GetActionKey()), KEYEVENTF_KEYUP, KeyboardManagerConstants::KEYBOARDMANAGER_SINGLEKEY_FLAG); - Helpers::SetModifierKeyEvents(targetShortcut, ModifierKey::Disabled, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SINGLEKEY_FLAG); + Helpers::SetModifierKeyEvents(targetShortcut, Modifiers(), keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SINGLEKEY_FLAG); // Dummy key is not required here since SetModifierKeyEvents will only add key-up events for the modifiers here, and the action key key-up is already sent before it } else { // Dummy key is not required here since SetModifierKeyEvents will only add key-down events for the modifiers here, and the action key key-down is already sent after it - Helpers::SetModifierKeyEvents(targetShortcut, ModifierKey::Disabled, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SINGLEKEY_FLAG); + Helpers::SetModifierKeyEvents(targetShortcut, Modifiers(), keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SINGLEKEY_FLAG); Helpers::SetKeyEvent(keyEventList, INPUT_KEYBOARD, static_cast(targetShortcut.GetActionKey()), 0, KeyboardManagerConstants::KEYBOARDMANAGER_SINGLEKEY_FLAG); } } @@ -371,11 +371,35 @@ namespace KeyboardEventHandlers // Remember which win key was pressed initially if (ii.GetVirtualKeyState(VK_RWIN)) { - it->second.winKeyInvoked = ModifierKey::Right; + it->second.modifierKeysInvoked.winKey = ModifierKey::Right; } else if (ii.GetVirtualKeyState(VK_LWIN)) { - it->second.winKeyInvoked = ModifierKey::Left; + it->second.modifierKeysInvoked.winKey = ModifierKey::Left; + } + if (ii.GetVirtualKeyState(VK_RCONTROL)) + { + it->second.modifierKeysInvoked.ctrlKey = ModifierKey::Right; + } + else if (ii.GetVirtualKeyState(VK_LCONTROL)) + { + it->second.modifierKeysInvoked.ctrlKey = ModifierKey::Left; + } + if (ii.GetVirtualKeyState(VK_RSHIFT)) + { + it->second.modifierKeysInvoked.shiftKey = ModifierKey::Right; + } + else if (ii.GetVirtualKeyState(VK_LSHIFT)) + { + it->second.modifierKeysInvoked.shiftKey = ModifierKey::Left; + } + if (ii.GetVirtualKeyState(VK_RMENU)) + { + it->second.modifierKeysInvoked.altKey = ModifierKey::Right; + } + else if (ii.GetVirtualKeyState(VK_LMENU)) + { + it->second.modifierKeysInvoked.altKey = ModifierKey::Left; } if (isRunProgram) @@ -450,7 +474,7 @@ namespace KeyboardEventHandlers { // key down for all new shortcut keys except the common modifiers keyEventList = std::vector{}; - Helpers::SetModifierKeyEvents(std::get(it->second.targetShortcut), it->second.winKeyInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, it->first); + Helpers::SetModifierKeyEvents(std::get(it->second.targetShortcut), it->second.modifierKeysInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, it->first); Helpers::SetKeyEvent(keyEventList, INPUT_KEYBOARD, static_cast(std::get(it->second.targetShortcut).GetActionKey()), 0, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); } else @@ -460,15 +484,15 @@ namespace KeyboardEventHandlers Helpers::SetDummyKeyEvent(keyEventList, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); // Release original shortcut state (release in reverse order of shortcut to be accurate) - Helpers::SetModifierKeyEvents(it->first, it->second.winKeyInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, std::get(it->second.targetShortcut)); + Helpers::SetModifierKeyEvents(it->first, it->second.modifierKeysInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, std::get(it->second.targetShortcut)); // Set new shortcut key down state - Helpers::SetModifierKeyEvents(std::get(it->second.targetShortcut), it->second.winKeyInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, it->first); + Helpers::SetModifierKeyEvents(std::get(it->second.targetShortcut), it->second.modifierKeysInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, it->first); Helpers::SetKeyEvent(keyEventList, INPUT_KEYBOARD, static_cast(std::get(it->second.targetShortcut).GetActionKey()), 0, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); } // Modifier state reset might be required for this key depending on the shortcut's action and target modifiers - ex: Win+Caps -> Ctrl+A - if (it->first.GetCtrlKey() == NULL && it->first.GetAltKey() == NULL && it->first.GetShiftKey() == NULL) + if (it->first.GetCtrlKey(it->second.modifierKeysInvoked.ctrlKey) == NULL && it->first.GetAltKey(it->second.modifierKeysInvoked.altKey) == NULL && it->first.GetShiftKey(it->second.modifierKeysInvoked.shiftKey) == NULL) { Shortcut temp = std::get(it->second.targetShortcut); for (auto keys : temp.GetKeyCodes()) @@ -490,7 +514,7 @@ namespace KeyboardEventHandlers Helpers::SetDummyKeyEvent(keyEventList, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); // Release original shortcut state (release in reverse order of shortcut to be accurate) - Helpers::SetModifierKeyEvents(it->first, it->second.winKeyInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); + Helpers::SetModifierKeyEvents(it->first, it->second.modifierKeysInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); // Set target key down state if (std::get(it->second.targetShortcut) != CommonSharedConstants::VK_DISABLED) @@ -499,7 +523,7 @@ namespace KeyboardEventHandlers } // Modifier state reset might be required for this key depending on the shortcut's action and target modifier - ex: Win+Caps -> Ctrl - if (it->first.GetCtrlKey() == NULL && it->first.GetAltKey() == NULL && it->first.GetShiftKey() == NULL) + if (it->first.GetCtrlKey(it->second.modifierKeysInvoked.ctrlKey) == NULL && it->first.GetAltKey(it->second.modifierKeysInvoked.altKey) == NULL && it->first.GetShiftKey(it->second.modifierKeysInvoked.shiftKey) == NULL) { ResetIfModifierKeyForLowerLevelKeyHandlers(ii, static_cast(Helpers::FilterArtificialKeys(std::get(it->second.targetShortcut))), data->lParam->vkCode); } @@ -512,7 +536,7 @@ namespace KeyboardEventHandlers Helpers::SetDummyKeyEvent(keyEventList, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); // Release original shortcut state (release in reverse order of shortcut to be accurate) - Helpers::SetModifierKeyEvents(it->first, it->second.winKeyInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); + Helpers::SetModifierKeyEvents(it->first, it->second.modifierKeysInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); Helpers::SetTextKeyEvents(keyEventList, remapping); } @@ -614,12 +638,12 @@ namespace KeyboardEventHandlers Helpers::SetKeyEvent(keyEventList, INPUT_KEYBOARD, static_cast(std::get(it->second.targetShortcut).GetActionKey()), KEYEVENTF_KEYUP, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); } - Helpers::SetModifierKeyEvents(std::get(it->second.targetShortcut), it->second.winKeyInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, it->first, data->lParam->vkCode); + Helpers::SetModifierKeyEvents(std::get(it->second.targetShortcut), it->second.modifierKeysInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, it->first, data->lParam->vkCode); if (!isAltRightKeyInvoked) { // Set original shortcut key down state except the action key and the released modifier since the original action key may or may not be held down. If it is held down it will generate its own key message - Helpers::SetModifierKeyEvents(it->first, it->second.winKeyInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, std::get(it->second.targetShortcut), data->lParam->vkCode); + Helpers::SetModifierKeyEvents(it->first, it->second.modifierKeysInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, std::get(it->second.targetShortcut), data->lParam->vkCode); } else { @@ -643,7 +667,7 @@ namespace KeyboardEventHandlers if (!isAltRightKeyInvoked) { // Set original shortcut key down state except the action key and the released modifier since the original action key may or may not be held down. If it is held down it will generate its own key message - Helpers::SetModifierKeyEvents(it->first, it->second.winKeyInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, Shortcut(), data->lParam->vkCode); + Helpers::SetModifierKeyEvents(it->first, it->second.modifierKeysInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, Shortcut(), data->lParam->vkCode); } else { @@ -656,7 +680,7 @@ namespace KeyboardEventHandlers // Reset the remap state it->second.isShortcutInvoked = false; - it->second.winKeyInvoked = ModifierKey::Disabled; + it->second.modifierKeysInvoked.Reset(); it->second.isOriginalActionKeyPressed = false; // If app specific shortcut has finished invoking, reset the target application @@ -719,14 +743,14 @@ namespace KeyboardEventHandlers Helpers::SetKeyEvent(keyEventList, INPUT_KEYBOARD, static_cast(std::get(it->second.targetShortcut).GetActionKey()), KEYEVENTF_KEYUP, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); // Release new shortcut state (release in reverse order of shortcut to be accurate) - Helpers::SetModifierKeyEvents(std::get(it->second.targetShortcut), it->second.winKeyInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, it->first); + Helpers::SetModifierKeyEvents(std::get(it->second.targetShortcut), it->second.modifierKeysInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, it->first); // Set old shortcut key down state - Helpers::SetModifierKeyEvents(it->first, it->second.winKeyInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, std::get(it->second.targetShortcut)); + Helpers::SetModifierKeyEvents(it->first, it->second.modifierKeysInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, std::get(it->second.targetShortcut)); // Reset the remap state it->second.isShortcutInvoked = false; - it->second.winKeyInvoked = ModifierKey::Disabled; + it->second.modifierKeysInvoked.Reset(); it->second.isOriginalActionKeyPressed = false; // If app specific shortcut has finished invoking, reset the target application @@ -763,7 +787,7 @@ namespace KeyboardEventHandlers if (!isAltRightKeyInvoked) { // Set original shortcut key down state except the action key - Helpers::SetModifierKeyEvents(it->first, it->second.winKeyInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); + Helpers::SetModifierKeyEvents(it->first, it->second.modifierKeysInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); } // Send a dummy key event to prevent modifier press+release from being triggered. Example: Win+A->V, press Shift+Win+A and release A, since Win will be pressed here we need to send a dummy event after it @@ -773,7 +797,7 @@ namespace KeyboardEventHandlers { // Reset the remap state it->second.isShortcutInvoked = false; - it->second.winKeyInvoked = ModifierKey::Disabled; + it->second.modifierKeysInvoked.Reset(); it->second.isOriginalActionKeyPressed = false; } @@ -795,7 +819,7 @@ namespace KeyboardEventHandlers if (remapToShortcut) { // Modifier state reset might be required for this key depending on the target shortcut action key - ex: Ctrl+A -> Win+Caps - if (std::get(it->second.targetShortcut).GetCtrlKey() == NULL && std::get(it->second.targetShortcut).GetAltKey() == NULL && std::get(it->second.targetShortcut).GetShiftKey() == NULL) + if (std::get(it->second.targetShortcut).GetCtrlKey(it->second.modifierKeysInvoked.ctrlKey) == NULL && std::get(it->second.targetShortcut).GetAltKey(it->second.modifierKeysInvoked.altKey) == NULL && std::get(it->second.targetShortcut).GetShiftKey(it->second.modifierKeysInvoked.shiftKey) == NULL) { ResetIfModifierKeyForLowerLevelKeyHandlers(ii, data->lParam->vkCode, std::get(it->second.targetShortcut).GetActionKey()); } @@ -817,7 +841,7 @@ namespace KeyboardEventHandlers if (remapToShortcut) { // Modifier state reset might be required for this key depending on the target shortcut action key - ex: Ctrl+A -> Win+Caps, Shift is pressed. System should not see Shift and Caps pressed together - if (std::get(it->second.targetShortcut).GetCtrlKey() == NULL && std::get(it->second.targetShortcut).GetAltKey() == NULL && std::get(it->second.targetShortcut).GetShiftKey() == NULL) + if (std::get(it->second.targetShortcut).GetCtrlKey(it->second.modifierKeysInvoked.ctrlKey) == NULL && std::get(it->second.targetShortcut).GetAltKey(it->second.modifierKeysInvoked.altKey) == NULL && std::get(it->second.targetShortcut).GetShiftKey(it->second.modifierKeysInvoked.shiftKey) == NULL) { ResetIfModifierKeyForLowerLevelKeyHandlers(ii, data->lParam->vkCode, std::get(it->second.targetShortcut).GetActionKey()); } @@ -837,7 +861,7 @@ namespace KeyboardEventHandlers DWORD to = std::get<0>(newRemapping.targetShortcut); if (!isAltRightKeyInvoked) { - Helpers::SetModifierKeyEvents(from, it->second.winKeyInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); + Helpers::SetModifierKeyEvents(from, it->second.modifierKeysInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); } if (ii.GetVirtualKeyState(static_cast(from.actionKey))) { @@ -851,7 +875,7 @@ namespace KeyboardEventHandlers Shortcut to = std::get(newRemapping.targetShortcut); if (!isAltRightKeyInvoked) { - Helpers::SetModifierKeyEvents(from, it->second.winKeyInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, to); + Helpers::SetModifierKeyEvents(from, it->second.modifierKeysInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, to); } if (ii.GetVirtualKeyState(static_cast(from.actionKey))) { @@ -860,21 +884,11 @@ namespace KeyboardEventHandlers } if (!isAltRightKeyInvoked) { - Helpers::SetModifierKeyEvents(to, it->second.winKeyInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, from); + Helpers::SetModifierKeyEvents(to, it->second.modifierKeysInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, from); } Helpers::SetKeyEvent(keyEventList, INPUT_KEYBOARD, static_cast(to.actionKey), 0, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); newRemapping.isShortcutInvoked = true; } - - // Remember which win key was pressed initially - if (ii.GetVirtualKeyState(VK_RWIN)) - { - newRemapping.winKeyInvoked = ModifierKey::Right; - } - else if (ii.GetVirtualKeyState(VK_LWIN)) - { - newRemapping.winKeyInvoked = ModifierKey::Left; - } } else { @@ -888,10 +902,10 @@ namespace KeyboardEventHandlers } if (!isAltRightKeyInvoked) { - Helpers::SetModifierKeyEvents(std::get(it->second.targetShortcut), it->second.winKeyInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, it->first); + Helpers::SetModifierKeyEvents(std::get(it->second.targetShortcut), it->second.modifierKeysInvoked, keyEventList, false, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, it->first); // Set old shortcut key down state - Helpers::SetModifierKeyEvents(it->first, it->second.winKeyInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, std::get(it->second.targetShortcut)); + Helpers::SetModifierKeyEvents(it->first, it->second.modifierKeysInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG, std::get(it->second.targetShortcut)); } // key down for original shortcut action key with shortcut flag so that we don't invoke the same shortcut remap again @@ -910,7 +924,7 @@ namespace KeyboardEventHandlers { // Reset the remap state it->second.isShortcutInvoked = false; - it->second.winKeyInvoked = ModifierKey::Disabled; + it->second.modifierKeysInvoked.Reset(); it->second.isOriginalActionKeyPressed = false; } @@ -960,7 +974,7 @@ namespace KeyboardEventHandlers if (!isAltRightKeyInvoked) { // Set original shortcut key down state - Helpers::SetModifierKeyEvents(it->first, it->second.winKeyInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); + Helpers::SetModifierKeyEvents(it->first, it->second.modifierKeysInvoked, keyEventList, true, KeyboardManagerConstants::KEYBOARDMANAGER_SHORTCUT_FLAG); } // Send the original action key only if it is physically pressed. For remappings to keys other than disabled we already check earlier that it is not pressed in this scenario. For remap to disable @@ -979,7 +993,7 @@ namespace KeyboardEventHandlers { // Reset the remap state it->second.isShortcutInvoked = false; - it->second.winKeyInvoked = ModifierKey::Disabled; + it->second.modifierKeysInvoked.Reset(); it->second.isOriginalActionKeyPressed = false; } diff --git a/src/modules/keyboardmanager/KeyboardManagerEngineLibrary/trace.cpp b/src/modules/keyboardmanager/KeyboardManagerEngineLibrary/trace.cpp index ab3e49cb87..76a7355bff 100644 --- a/src/modules/keyboardmanager/KeyboardManagerEngineLibrary/trace.cpp +++ b/src/modules/keyboardmanager/KeyboardManagerEngineLibrary/trace.cpp @@ -145,15 +145,15 @@ std::wstring GetShortcutHumanReadableString(Shortcut const& shortcut, LayoutMap& } if (shortcut.ctrlKey != ModifierKey::Disabled) { - humanReadableShortcut += keyboardMap.GetKeyName(shortcut.GetCtrlKey()) + L" + "; + humanReadableShortcut += keyboardMap.GetKeyName(shortcut.GetCtrlKey(ModifierKey::Both)) + L" + "; } if (shortcut.altKey != ModifierKey::Disabled) { - humanReadableShortcut += keyboardMap.GetKeyName(shortcut.GetAltKey()) + L" + "; + humanReadableShortcut += keyboardMap.GetKeyName(shortcut.GetAltKey(ModifierKey::Both)) + L" + "; } if (shortcut.shiftKey != ModifierKey::Disabled) { - humanReadableShortcut += keyboardMap.GetKeyName(shortcut.GetShiftKey()) + L" + "; + humanReadableShortcut += keyboardMap.GetKeyName(shortcut.GetShiftKey(ModifierKey::Both)) + L" + "; } if (shortcut.actionKey != NULL) { diff --git a/src/modules/keyboardmanager/common/Helpers.cpp b/src/modules/keyboardmanager/common/Helpers.cpp index fb2cefd98a..b619ae73d3 100644 --- a/src/modules/keyboardmanager/common/Helpers.cpp +++ b/src/modules/keyboardmanager/common/Helpers.cpp @@ -262,27 +262,27 @@ namespace Helpers } // Function to set key events for modifier keys: When shortcutToCompare is passed (non-empty shortcut), then the key event is sent only if both shortcut's don't have the same modifier key. When keyToBeReleased is passed (non-NULL), then the key event is sent if either the shortcuts don't have the same modifier or if the shortcutToBeSent's modifier matches the keyToBeReleased - void SetModifierKeyEvents(const Shortcut& shortcutToBeSent, const ModifierKey& winKeyInvoked, std::vector& keyEventArray, bool isKeyDown, ULONG_PTR extraInfoFlag, const Shortcut& shortcutToCompare, const DWORD& keyToBeReleased) + void SetModifierKeyEvents(const Shortcut& shortcutToBeSent, const Modifiers& modifiersKeys, std::vector& keyEventArray, bool isKeyDown, ULONG_PTR extraInfoFlag, const Shortcut& shortcutToCompare, const DWORD& keyToBeReleased) { // If key down is to be sent, send in the order Win, Ctrl, Alt, Shift if (isKeyDown) { // If shortcutToCompare is non-empty, then the key event is sent only if both shortcut's don't have the same modifier key. If keyToBeReleased is non-NULL, then the key event is sent if either the shortcuts don't have the same modifier or if the shortcutToBeSent's modifier matches the keyToBeReleased - if (shortcutToBeSent.GetWinKey(winKeyInvoked) != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetWinKey(winKeyInvoked) != shortcutToCompare.GetWinKey(winKeyInvoked)) && (keyToBeReleased == NULL || !shortcutToBeSent.CheckWinKey(keyToBeReleased))) + if (shortcutToBeSent.GetWinKey(modifiersKeys.winKey) != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetWinKey(modifiersKeys.winKey) != shortcutToCompare.GetWinKey(modifiersKeys.winKey)) && (keyToBeReleased == NULL || !shortcutToBeSent.CheckWinKey(keyToBeReleased))) { - Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetWinKey(winKeyInvoked)), 0, extraInfoFlag); + Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetWinKey(modifiersKeys.winKey)), 0, extraInfoFlag); } - if (shortcutToBeSent.GetCtrlKey() != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetCtrlKey() != shortcutToCompare.GetCtrlKey()) && (keyToBeReleased == NULL || !shortcutToBeSent.CheckCtrlKey(keyToBeReleased))) + if (shortcutToBeSent.GetCtrlKey(modifiersKeys.ctrlKey) != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetCtrlKey(modifiersKeys.ctrlKey) != shortcutToCompare.GetCtrlKey(modifiersKeys.ctrlKey)) && (keyToBeReleased == NULL || !shortcutToBeSent.CheckCtrlKey(keyToBeReleased))) { - Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetCtrlKey()), 0, extraInfoFlag); + Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetCtrlKey(modifiersKeys.ctrlKey)), 0, extraInfoFlag); } - if (shortcutToBeSent.GetAltKey() != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetAltKey() != shortcutToCompare.GetAltKey()) && (keyToBeReleased == NULL || !shortcutToBeSent.CheckAltKey(keyToBeReleased))) + if (shortcutToBeSent.GetAltKey(modifiersKeys.altKey) != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetAltKey(modifiersKeys.altKey) != shortcutToCompare.GetAltKey(modifiersKeys.altKey)) && (keyToBeReleased == NULL || !shortcutToBeSent.CheckAltKey(keyToBeReleased))) { - Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetAltKey()), 0, extraInfoFlag); + Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetAltKey(modifiersKeys.altKey)), 0, extraInfoFlag); } - if (shortcutToBeSent.GetShiftKey() != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetShiftKey() != shortcutToCompare.GetShiftKey()) && (keyToBeReleased == NULL || !shortcutToBeSent.CheckShiftKey(keyToBeReleased))) + if (shortcutToBeSent.GetShiftKey(modifiersKeys.shiftKey) != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetShiftKey(modifiersKeys.shiftKey) != shortcutToCompare.GetShiftKey(modifiersKeys.shiftKey)) && (keyToBeReleased == NULL || !shortcutToBeSent.CheckShiftKey(keyToBeReleased))) { - Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetShiftKey()), 0, extraInfoFlag); + Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetShiftKey(modifiersKeys.shiftKey)), 0, extraInfoFlag); } } @@ -290,21 +290,21 @@ namespace Helpers else { // If shortcutToCompare is non-empty, then the key event is sent only if both shortcut's don't have the same modifier key. If keyToBeReleased is non-NULL, then the key event is sent if either the shortcuts don't have the same modifier or if the shortcutToBeSent's modifier matches the keyToBeReleased - if (shortcutToBeSent.GetShiftKey() != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetShiftKey() != shortcutToCompare.GetShiftKey() || shortcutToBeSent.CheckShiftKey(keyToBeReleased))) + if (shortcutToBeSent.GetShiftKey(modifiersKeys.shiftKey) != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetShiftKey(modifiersKeys.shiftKey) != shortcutToCompare.GetShiftKey(modifiersKeys.shiftKey) || shortcutToBeSent.CheckShiftKey(keyToBeReleased))) { - Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetShiftKey()), KEYEVENTF_KEYUP, extraInfoFlag); + Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetShiftKey(modifiersKeys.shiftKey)), KEYEVENTF_KEYUP, extraInfoFlag); } - if (shortcutToBeSent.GetAltKey() != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetAltKey() != shortcutToCompare.GetAltKey() || shortcutToBeSent.CheckAltKey(keyToBeReleased))) + if (shortcutToBeSent.GetAltKey(modifiersKeys.altKey) != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetAltKey(modifiersKeys.altKey) != shortcutToCompare.GetAltKey(modifiersKeys.altKey) || shortcutToBeSent.CheckAltKey(keyToBeReleased))) { - Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetAltKey()), KEYEVENTF_KEYUP, extraInfoFlag); + Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetAltKey(modifiersKeys.altKey)), KEYEVENTF_KEYUP, extraInfoFlag); } - if (shortcutToBeSent.GetCtrlKey() != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetCtrlKey() != shortcutToCompare.GetCtrlKey() || shortcutToBeSent.CheckCtrlKey(keyToBeReleased))) + if (shortcutToBeSent.GetCtrlKey(modifiersKeys.ctrlKey) != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetCtrlKey(modifiersKeys.ctrlKey) != shortcutToCompare.GetCtrlKey(modifiersKeys.ctrlKey) || shortcutToBeSent.CheckCtrlKey(keyToBeReleased))) { - Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetCtrlKey()), KEYEVENTF_KEYUP, extraInfoFlag); + Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetCtrlKey(modifiersKeys.ctrlKey)), KEYEVENTF_KEYUP, extraInfoFlag); } - if (shortcutToBeSent.GetWinKey(winKeyInvoked) != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetWinKey(winKeyInvoked) != shortcutToCompare.GetWinKey(winKeyInvoked) || shortcutToBeSent.CheckWinKey(keyToBeReleased))) + if (shortcutToBeSent.GetWinKey(modifiersKeys.winKey) != NULL && (shortcutToCompare.IsEmpty() || shortcutToBeSent.GetWinKey(modifiersKeys.winKey) != shortcutToCompare.GetWinKey(modifiersKeys.winKey) || shortcutToBeSent.CheckWinKey(keyToBeReleased))) { - Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetWinKey(winKeyInvoked)), KEYEVENTF_KEYUP, extraInfoFlag); + Helpers::SetKeyEvent(keyEventArray, INPUT_KEYBOARD, static_cast(shortcutToBeSent.GetWinKey(modifiersKeys.winKey)), KEYEVENTF_KEYUP, extraInfoFlag); } } } diff --git a/src/modules/keyboardmanager/common/Helpers.h b/src/modules/keyboardmanager/common/Helpers.h index bd878a3942..8f38bbbbe4 100644 --- a/src/modules/keyboardmanager/common/Helpers.h +++ b/src/modules/keyboardmanager/common/Helpers.h @@ -1,5 +1,6 @@ #pragma once #include "Shortcut.h" +#include "RemapShortcut.h" class LayoutMap; @@ -47,7 +48,8 @@ namespace Helpers std::wstring GetCurrentApplication(bool keepPath); // Function to set key events for modifier keys: When shortcutToCompare is passed (non-empty shortcut), then the key event is sent only if both shortcut's don't have the same modifier key. When keyToBeReleased is passed (non-NULL), then the key event is sent if either the shortcuts don't have the same modifier or if the shortcutToBeSent's modifier matches the keyToBeReleased - void SetModifierKeyEvents(const Shortcut& shortcutToBeSent, const ModifierKey& winKeyInvoked, std::vector& keyEventArray, bool isKeyDown, ULONG_PTR extraInfoFlag, const Shortcut& shortcutToCompare = Shortcut(), const DWORD& keyToBeReleased = NULL); + void SetModifierKeyEvents(const Shortcut& shortcutToBeSent, const Modifiers& modifiersKeys, std::vector& keyEventArray, bool isKeyDown, ULONG_PTR extraInfoFlag, const Shortcut& shortcutToCompare = Shortcut(), const DWORD& keyToBeReleased = NULL); + // Function to filter the key codes for artificial key codes int32_t FilterArtificialKeys(const int32_t& key); diff --git a/src/modules/keyboardmanager/common/KeyboardManagerCommon.vcxproj b/src/modules/keyboardmanager/common/KeyboardManagerCommon.vcxproj index 36e76f971c..36c1238949 100644 --- a/src/modules/keyboardmanager/common/KeyboardManagerCommon.vcxproj +++ b/src/modules/keyboardmanager/common/KeyboardManagerCommon.vcxproj @@ -54,6 +54,7 @@ + diff --git a/src/modules/keyboardmanager/common/KeyboardManagerCommon.vcxproj.filters b/src/modules/keyboardmanager/common/KeyboardManagerCommon.vcxproj.filters index d1df33fa5e..287017e312 100644 --- a/src/modules/keyboardmanager/common/KeyboardManagerCommon.vcxproj.filters +++ b/src/modules/keyboardmanager/common/KeyboardManagerCommon.vcxproj.filters @@ -65,6 +65,9 @@ Header Files + + Header Files + diff --git a/src/modules/keyboardmanager/common/Modifiers.h b/src/modules/keyboardmanager/common/Modifiers.h new file mode 100644 index 0000000000..17dc5612e8 --- /dev/null +++ b/src/modules/keyboardmanager/common/Modifiers.h @@ -0,0 +1,26 @@ +#pragma once +#include "ModifierKey.h" + +#include + +class Modifiers +{ +public: + ModifierKey winKey = ModifierKey::Disabled; + ModifierKey ctrlKey = ModifierKey::Disabled; + ModifierKey altKey = ModifierKey::Disabled; + ModifierKey shiftKey = ModifierKey::Disabled; + + void Reset() + { + winKey = ModifierKey::Disabled; + ctrlKey = ModifierKey::Disabled; + altKey = ModifierKey::Disabled; + shiftKey = ModifierKey::Disabled; + } + + inline bool operator==(const Modifiers& other) const + { + return winKey == other.winKey && ctrlKey == other.ctrlKey && altKey == other.altKey && shiftKey == other.shiftKey; + } +}; diff --git a/src/modules/keyboardmanager/common/RemapShortcut.h b/src/modules/keyboardmanager/common/RemapShortcut.h index 8690630b4c..de12867903 100644 --- a/src/modules/keyboardmanager/common/RemapShortcut.h +++ b/src/modules/keyboardmanager/common/RemapShortcut.h @@ -1,6 +1,8 @@ #pragma once #include "Shortcut.h" +#include "Modifiers.h" #include +#include // This class stores all the variables associated with each shortcut remapping class RemapShortcut @@ -8,23 +10,24 @@ class RemapShortcut public: KeyShortcutTextUnion targetShortcut; bool isShortcutInvoked; - ModifierKey winKeyInvoked; + + Modifiers modifierKeysInvoked; // This bool value is only required for remapping shortcuts to Disable bool isOriginalActionKeyPressed; RemapShortcut(const KeyShortcutTextUnion& sc) : - targetShortcut(sc), isShortcutInvoked(false), winKeyInvoked(ModifierKey::Disabled), isOriginalActionKeyPressed(false) + targetShortcut(sc), isShortcutInvoked(false), isOriginalActionKeyPressed(false) { } RemapShortcut() : - targetShortcut(Shortcut()), isShortcutInvoked(false), winKeyInvoked(ModifierKey::Disabled), isOriginalActionKeyPressed(false) + targetShortcut(Shortcut()), isShortcutInvoked(false), isOriginalActionKeyPressed(false) { } inline bool operator==(const RemapShortcut& sc) const { - return targetShortcut == sc.targetShortcut && isShortcutInvoked == sc.isShortcutInvoked && winKeyInvoked == sc.winKeyInvoked; + return targetShortcut == sc.targetShortcut && isShortcutInvoked == sc.isShortcutInvoked && modifierKeysInvoked == sc.modifierKeysInvoked; } bool RemapToKey() diff --git a/src/modules/keyboardmanager/common/Shortcut.cpp b/src/modules/keyboardmanager/common/Shortcut.cpp index 38550199f4..08f161e08c 100644 --- a/src/modules/keyboardmanager/common/Shortcut.cpp +++ b/src/modules/keyboardmanager/common/Shortcut.cpp @@ -185,7 +185,7 @@ DWORD Shortcut::GetWinKey(const ModifierKey& input) const } // Function to return the virtual key code of the ctrl key state expected in the shortcut. Return NULL if it is not a part of the shortcut -DWORD Shortcut::GetCtrlKey() const +DWORD Shortcut::GetCtrlKey(const ModifierKey& input) const { if (ctrlKey == ModifierKey::Disabled) { @@ -201,12 +201,20 @@ DWORD Shortcut::GetCtrlKey() const } else { + if (input == ModifierKey::Right) + { + return VK_RCONTROL; + } + if (input == ModifierKey::Left) + { + return VK_LCONTROL; + } return VK_CONTROL; } } // Function to return the virtual key code of the alt key state expected in the shortcut. Return NULL if it is not a part of the shortcut -DWORD Shortcut::GetAltKey() const +DWORD Shortcut::GetAltKey(const ModifierKey& input) const { if (altKey == ModifierKey::Disabled) { @@ -220,6 +228,14 @@ DWORD Shortcut::GetAltKey() const { return VK_RMENU; } + if (input == ModifierKey::Right) + { + return VK_RMENU; + } + else if (input == ModifierKey::Left || input == ModifierKey::Disabled) + { + return VK_LMENU; + } else { return VK_MENU; @@ -227,7 +243,7 @@ DWORD Shortcut::GetAltKey() const } // Function to return the virtual key code of the shift key state expected in the shortcut. Return NULL if it is not a part of the shortcut -DWORD Shortcut::GetShiftKey() const +DWORD Shortcut::GetShiftKey(const ModifierKey& input) const { if (shiftKey == ModifierKey::Disabled) { @@ -243,6 +259,14 @@ DWORD Shortcut::GetShiftKey() const } else { + if (input == ModifierKey::Right) + { + return VK_RSHIFT; + } + if (input == ModifierKey::Left) + { + return VK_LSHIFT; + } return VK_SHIFT; } } @@ -493,15 +517,15 @@ winrt::hstring Shortcut::ToHstringVK() const } if (ctrlKey != ModifierKey::Disabled) { - output = output + winrt::to_hstring(static_cast(GetCtrlKey())) + winrt::to_hstring(L";"); + output = output + winrt::to_hstring(static_cast(GetCtrlKey(ModifierKey::Both))) + winrt::to_hstring(L";"); } if (altKey != ModifierKey::Disabled) { - output = output + winrt::to_hstring(static_cast(GetAltKey())) + winrt::to_hstring(L";"); + output = output + winrt::to_hstring(static_cast(GetAltKey(ModifierKey::Both))) + winrt::to_hstring(L";"); } if (shiftKey != ModifierKey::Disabled) { - output = output + winrt::to_hstring(static_cast(GetShiftKey())) + winrt::to_hstring(L";"); + output = output + winrt::to_hstring(static_cast(GetShiftKey(ModifierKey::Both))) + winrt::to_hstring(L";"); } if (actionKey != NULL) { @@ -531,15 +555,15 @@ std::vector Shortcut::GetKeyCodes() } if (ctrlKey != ModifierKey::Disabled) { - keys.push_back(GetCtrlKey()); + keys.push_back(GetCtrlKey(ModifierKey::Both)); } if (altKey != ModifierKey::Disabled) { - keys.push_back(GetAltKey()); + keys.push_back(GetAltKey(ModifierKey::Both)); } if (shiftKey != ModifierKey::Disabled) { - keys.push_back(GetShiftKey()); + keys.push_back(GetShiftKey(ModifierKey::Both)); } if (actionKey != NULL) { diff --git a/src/modules/keyboardmanager/common/Shortcut.h b/src/modules/keyboardmanager/common/Shortcut.h index d9a61ff433..439559c9d0 100644 --- a/src/modules/keyboardmanager/common/Shortcut.h +++ b/src/modules/keyboardmanager/common/Shortcut.h @@ -4,7 +4,6 @@ #include #include #include - namespace KeyboardManagerInput { class InputInterface; @@ -142,13 +141,13 @@ public: DWORD GetWinKey(const ModifierKey& input) const; // Function to return the virtual key code of the ctrl key state expected in the shortcut. Return NULL if it is not a part of the shortcut - DWORD GetCtrlKey() const; + DWORD GetCtrlKey(const ModifierKey& input) const; // Function to return the virtual key code of the alt key state expected in the shortcut. Return NULL if it is not a part of the shortcut - DWORD GetAltKey() const; + DWORD GetAltKey(const ModifierKey& input) const; // Function to return the virtual key code of the shift key state expected in the shortcut. Return NULL if it is not a part of the shortcut - DWORD GetShiftKey() const; + DWORD GetShiftKey(const ModifierKey& input) const; // Function to check if the input key matches the win key expected in the shortcut bool CheckWinKey(const DWORD input) const; From d98659273702ce0081e5ece1fa4b8fcb22c879d9 Mon Sep 17 00:00:00 2001 From: OlegHarchevkin <40352094+OlegKharchevkin@users.noreply.github.com> Date: Mon, 14 Apr 2025 11:50:00 +0300 Subject: [PATCH 12/26] =?UTF-8?q?"=C7=94"=20changed=20to=20"=C5=AD"=20in?= =?UTF-8?q?=20GetDefaultLetterKeyEPO=20(#37791)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/modules/poweraccent/PowerAccent.Core/Languages.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/modules/poweraccent/PowerAccent.Core/Languages.cs b/src/modules/poweraccent/PowerAccent.Core/Languages.cs index 542af1b599..567c0ecc2d 100644 --- a/src/modules/poweraccent/PowerAccent.Core/Languages.cs +++ b/src/modules/poweraccent/PowerAccent.Core/Languages.cs @@ -325,7 +325,7 @@ namespace PowerAccent.Core LetterKey.VK_H => new[] { "ĥ" }, LetterKey.VK_J => new[] { "ĵ" }, LetterKey.VK_S => new[] { "ŝ" }, - LetterKey.VK_U => new[] { "ǔ" }, + LetterKey.VK_U => new[] { "ŭ" }, _ => Array.Empty(), }; } From bec6754aa306d7b84e6cfd0264c0f2ac8637b29b Mon Sep 17 00:00:00 2001 From: dcog989 <89043002+dcog989@users.noreply.github.com> Date: Mon, 14 Apr 2025 11:20:55 +0100 Subject: [PATCH 13/26] Fix Color Picker resource leak (#38122) (#38147) * Fix Color Picker resource leak (#38122) Added a using statement to properly dispose of the Graphics object created from the Bitmap. This fixes resource leak. * Fix CI complain * Update MouseInfoProvider.cs fix whitespace --------- Co-authored-by: Kai Tao <69313318+vanzue@users.noreply.github.com> --- .../colorPicker/ColorPickerUI/Mouse/MouseInfoProvider.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/modules/colorPicker/ColorPickerUI/Mouse/MouseInfoProvider.cs b/src/modules/colorPicker/ColorPickerUI/Mouse/MouseInfoProvider.cs index 76c376b761..c28dcc1ae6 100644 --- a/src/modules/colorPicker/ColorPickerUI/Mouse/MouseInfoProvider.cs +++ b/src/modules/colorPicker/ColorPickerUI/Mouse/MouseInfoProvider.cs @@ -104,8 +104,10 @@ namespace ColorPicker.Mouse var rect = new Rectangle((int)mousePosition.X, (int)mousePosition.Y, 1, 1); using (var bmp = new Bitmap(rect.Width, rect.Height, PixelFormat.Format32bppArgb)) { - var g = Graphics.FromImage(bmp); - g.CopyFromScreen(rect.Left, rect.Top, 0, 0, bmp.Size, CopyPixelOperation.SourceCopy); + using (var g = Graphics.FromImage(bmp)) // Ensure Graphics object is disposed + { + g.CopyFromScreen(rect.Left, rect.Top, 0, 0, bmp.Size, CopyPixelOperation.SourceCopy); + } return bmp.GetPixel(0, 0); } From badb029bcfb6a3dd8f9890ead6334a71011986b4 Mon Sep 17 00:00:00 2001 From: Clint Rutkas Date: Mon, 14 Apr 2025 17:01:37 +0000 Subject: [PATCH 14/26] Upgrading some of the Testing framework items (#38779) * starting to get some of the baseline * Update NOTICE.md * Upgrading streamjson gets the others on same version of newtonsoft.json * Update PowerToys.Settings.csproj * Update NOTICE.md --- Directory.Packages.props | 10 +++++----- NOTICE.md | 12 ++++++------ .../Programs/Win32Program.cs | 2 +- .../Settings.UI/PowerToys.Settings.csproj | 2 ++ 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index f4cfe643e9..12909c4be4 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -29,7 +29,7 @@ - + @@ -61,7 +61,7 @@ - + @@ -69,7 +69,7 @@ - + @@ -84,8 +84,8 @@ - - + + diff --git a/NOTICE.md b/NOTICE.md index 15693c9590..f11a2b2259 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -1393,7 +1393,6 @@ SOFTWARE. ## NuGet Packages used by PowerToys - - AdaptiveCards.ObjectModel.WinUI3 2.0.0-beta - AdaptiveCards.Rendering.WinUI3 2.1.0-beta - AdaptiveCards.Templating 2.0.2 @@ -1419,7 +1418,7 @@ SOFTWARE. - LazyCache 2.4.0 - Mages 3.0.0 - Markdig.Signed 0.34.0 -- MessagePack 2.5.187 +- MessagePack 3.1.3 - Microsoft.Bcl.AsyncInterfaces 9.0.4 - Microsoft.CodeAnalysis.NetAnalyzers 9.0.0 - Microsoft.Data.Sqlite 9.0.4 @@ -1445,14 +1444,14 @@ SOFTWARE. - Microsoft.Xaml.Behaviors.Wpf 1.1.39 - ModernWpfUI 0.9.4 - Moq 4.18.4 -- MSTest 3.6.3 +- MSTest 3.8.3 - NLog.Extensions.Logging 5.3.8 - NLog.Schema 5.2.8 - OpenAI 2.0.0 - ReverseMarkdown 4.1.0 - ScipBe.Common.Office.OneNote 3.0.1 - SharpCompress 0.37.2 -- StreamJsonRpc 2.19.27 +- StreamJsonRpc 2.21.69 - StyleCop.Analyzers 1.2.0-beta.556 - System.CodeDom 9.0.4 - System.CommandLine 2.0.0-beta4.22272.1 @@ -1463,8 +1462,8 @@ SOFTWARE. - System.Diagnostics.EventLog 9.0.4 - System.Diagnostics.PerformanceCounter 9.0.4 - System.Drawing.Common 9.0.4 -- System.IO.Abstractions 21.0.29 -- System.IO.Abstractions.TestingHelpers 21.0.29 +- System.IO.Abstractions 22.0.13 +- System.IO.Abstractions.TestingHelpers 22.0.13 - System.Management 9.0.4 - System.Reactive 6.0.1 - System.Runtime.Caching 9.0.4 @@ -1477,3 +1476,4 @@ SOFTWARE. - WinUIEx 2.2.0 - WPF-UI 3.0.5 - WyHash 1.0.5 + 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 56fd4d894d..4169a5769b 100644 --- a/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/Win32Program.cs +++ b/src/modules/launcher/Plugins/Microsoft.Plugin.Program/Programs/Win32Program.cs @@ -82,7 +82,7 @@ namespace Microsoft.Plugin.Program.Programs public ApplicationType AppType { get; set; } // Wrappers for File Operations - public static IFileVersionInfoWrapper FileVersionInfoWrapper { get; set; } = new FileVersionInfoWrapper(); + public static IFileVersionInfoWrapper FileVersionInfoWrapper { get; set; } = new Wox.Infrastructure.FileSystemHelper.FileVersionInfoWrapper(); public static IFile FileWrapper { get; set; } = new FileSystem().File; diff --git a/src/settings-ui/Settings.UI/PowerToys.Settings.csproj b/src/settings-ui/Settings.UI/PowerToys.Settings.csproj index 9d71b62de7..5a69d8beea 100644 --- a/src/settings-ui/Settings.UI/PowerToys.Settings.csproj +++ b/src/settings-ui/Settings.UI/PowerToys.Settings.csproj @@ -75,6 +75,8 @@ + + + From 293fa262bb4f3c942d06a49724855b58f54e3a7b Mon Sep 17 00:00:00 2001 From: ruslanlap <106077551+ruslanlap@users.noreply.github.com> Date: Mon, 14 Apr 2025 20:02:29 +0300 Subject: [PATCH 16/26] [PowerToysRun][Docs] Add Weather and Pomodoro to Third-Party plugins (#38760) * [PowerToysRun][Docs] Add Weather and Pomodoro to Third-Party plugins * [Spell-check] Add ruslanlap to allowed names and update expect.txt * Update expect.txt * Update names.txt * Update names.txt * Update names.txt * Update names.txt --- .github/actions/spell-check/expect.txt | 1 + doc/thirdPartyRunPlugins.md | 2 ++ 2 files changed, 3 insertions(+) diff --git a/.github/actions/spell-check/expect.txt b/.github/actions/spell-check/expect.txt index 8fb29864f3..59ec830124 100644 --- a/.github/actions/spell-check/expect.txt +++ b/.github/actions/spell-check/expect.txt @@ -1196,6 +1196,7 @@ Podcasts POINTERID POINTERUPDATE Pokedex +Pomodoro Popups POPUPWINDOW POSITIONITEM diff --git a/doc/thirdPartyRunPlugins.md b/doc/thirdPartyRunPlugins.md index 03bafa1c66..7070086bc9 100644 --- a/doc/thirdPartyRunPlugins.md +++ b/doc/thirdPartyRunPlugins.md @@ -44,6 +44,8 @@ Contact the developers of a plugin directly for assistance with a specific plugi | [HttpStatusCodes](https://github.com/grzhan/HttpStatusCodePowerToys) | [grzhan](https://github.com/grzhan) | Search for http status codes | | [SVGL](https://github.com/Sameerjs6/powertoys-svgl) | [SameerJS6](https://github.com/SameerJS6) | Search, Browse and copy SVG logos from SVGL. | | [QuickNotes](https://github.com/ruslanlap/CommunityPowerToysRunPlugin-QuickNotes) | [ruslanlap](https://github.com/ruslanlap) | Create, manage, and search notes directly from PowerToys Run. | +| [Weather](https://github.com/ruslanlap/PowerToysRun-Weather) | [ruslanlap](https://github.com/ruslanlap) | Get real-time weather information directly from PowerToys Run. | +| [Pomodoro](https://github.com/ruslanlap/PowerToysRun-Pomodoro) | [ruslanlap](https://github.com/ruslanlap) | Manage Pomodoro productivity sessions directly from PowerToys Run. | ## Extending software plugins From 21aa49cefb817afc05e373e962e436847784a79f Mon Sep 17 00:00:00 2001 From: PesBandi <127593627+PesBandi@users.noreply.github.com> Date: Tue, 15 Apr 2025 05:15:41 +0200 Subject: [PATCH 17/26] [ColorPicker]Only close on escape if focused (#37895) --- .../ColorPickerUI/Helpers/AppStateHandler.cs | 11 +++++------ .../ColorPickerUI/Keyboard/KeyboardMonitor.cs | 13 +++---------- 2 files changed, 8 insertions(+), 16 deletions(-) diff --git a/src/modules/colorPicker/ColorPickerUI/Helpers/AppStateHandler.cs b/src/modules/colorPicker/ColorPickerUI/Helpers/AppStateHandler.cs index 4940bd75e3..b3350702c7 100644 --- a/src/modules/colorPicker/ColorPickerUI/Helpers/AppStateHandler.cs +++ b/src/modules/colorPicker/ColorPickerUI/Helpers/AppStateHandler.cs @@ -222,7 +222,7 @@ namespace ColorPicker.Helpers public bool HandleEnterPressed() { - if (!IsColorPickerVisible()) + if (!_colorPickerShown) { return false; } @@ -233,14 +233,13 @@ namespace ColorPicker.Helpers public bool HandleEscPressed() { - if (!BlockEscapeKeyClosingColorPickerEditor) + if (!BlockEscapeKeyClosingColorPickerEditor + && (_colorPickerShown || (_colorEditorWindow != null && _colorEditorWindow.IsActive))) { return EndUserSession(); } - else - { - return false; - } + + return false; } internal void MoveCursor(int xOffset, int yOffset) diff --git a/src/modules/colorPicker/ColorPickerUI/Keyboard/KeyboardMonitor.cs b/src/modules/colorPicker/ColorPickerUI/Keyboard/KeyboardMonitor.cs index 208f139ae8..d6defaacb2 100644 --- a/src/modules/colorPicker/ColorPickerUI/Keyboard/KeyboardMonitor.cs +++ b/src/modules/colorPicker/ColorPickerUI/Keyboard/KeyboardMonitor.cs @@ -70,17 +70,10 @@ namespace ColorPicker.Keyboard var virtualCode = e.KeyboardData.VirtualCode; // ESC pressed - if (virtualCode == KeyInterop.VirtualKeyFromKey(Key.Escape) - && e.KeyboardState == GlobalKeyboardHook.KeyboardState.KeyDown - ) + if (virtualCode == KeyInterop.VirtualKeyFromKey(Key.Escape) && e.KeyboardState == GlobalKeyboardHook.KeyboardState.KeyDown) { - if (_appStateHandler.IsColorPickerVisible() - || !AppStateHandler.BlockEscapeKeyClosingColorPickerEditor - ) - { - e.Handled = _appStateHandler.EndUserSession(); - return; - } + e.Handled = _appStateHandler.HandleEscPressed(); + return; } if ((virtualCode == KeyInterop.VirtualKeyFromKey(Key.Space) || virtualCode == KeyInterop.VirtualKeyFromKey(Key.Enter)) && (e.KeyboardState == GlobalKeyboardHook.KeyboardState.KeyDown)) From f1bda8d71fd323a2df5422ec08847e86a6122d5b Mon Sep 17 00:00:00 2001 From: Stefan Markovic <57057282+stefansjfw@users.noreply.github.com> Date: Tue, 15 Apr 2025 07:09:35 +0200 Subject: [PATCH 18/26] [cmdpal] Setting a new alias should remove the old one (#38193) * [cmdpal] Fix alias update * Fix the command palette extension alias update issue * clean code --------- Co-authored-by: vanzue --- .../TopLevelViewModel.cs | 27 ++++++++++++------- 1 file changed, 17 insertions(+), 10 deletions(-) diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/TopLevelViewModel.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/TopLevelViewModel.cs index 4b8a2b49a9..5ff8337494 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/TopLevelViewModel.cs +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/TopLevelViewModel.cs @@ -152,7 +152,7 @@ public sealed partial class TopLevelViewModel : ObservableObject, IListItem { GenerateId(); - UpdateAlias(); + FetchAliasFromAliasManager(); UpdateHotkey(); UpdateTags(); } @@ -163,24 +163,31 @@ public sealed partial class TopLevelViewModel : ObservableObject, IListItem private void HandleChangeAlias() { - SetAlias(Alias); + SetAlias(); Save(); } - public void SetAlias(CommandAlias? newAlias) + public void SetAlias() { - _serviceProvider.GetService()!.UpdateAlias(Id, newAlias); - UpdateAlias(); + var commandAlias = Alias is null + ? null + : new CommandAlias(Alias.Alias, Alias.CommandId, Alias.IsDirect); + + _serviceProvider.GetService()!.UpdateAlias(Id, commandAlias); UpdateTags(); } - private void UpdateAlias() + private void FetchAliasFromAliasManager() { - // Add tags for the alias, if we have one. - var aliases = _serviceProvider.GetService(); - if (aliases != null) + var am = _serviceProvider.GetService(); + if (am != null) { - Alias = aliases.AliasFromId(Id); + var commandAlias = am.AliasFromId(Id); + if (commandAlias is not null) + { + // Decouple from the alias manager alias object + Alias = new CommandAlias(commandAlias.Alias, commandAlias.CommandId, commandAlias.IsDirect); + } } } From 60f50d853b1a53a38dcc60d1fce60c03880f1cba Mon Sep 17 00:00:00 2001 From: Typpi <20943337+Nick2bad4u@users.noreply.github.com> Date: Tue, 15 Apr 2025 04:33:05 -0400 Subject: [PATCH 19/26] Apply security best practices for GitHub Actions / Dependency (#38552) This update aligns with Microsoft's security guidelines by pinning all GitHub Action tags and Docker tags to their full-length commits. This practice ensures immutability and reduces the risk of supply chain attacks. Note that 1st and 2nd party actions do not require hash pinning. --- .github/workflows/dependency-review.yml | 26 +++++++++++++++++++++++++ .github/workflows/spelling2.yml | 8 ++++---- 2 files changed, 30 insertions(+), 4 deletions(-) create mode 100644 .github/workflows/dependency-review.yml diff --git a/.github/workflows/dependency-review.yml b/.github/workflows/dependency-review.yml new file mode 100644 index 0000000000..0db3dc6595 --- /dev/null +++ b/.github/workflows/dependency-review.yml @@ -0,0 +1,26 @@ +# Dependency Review Action +# +# This Action will scan dependency manifest files that change as part of a Pull Request, +# surfacing known-vulnerable versions of the packages declared or updated in the PR. +# Once installed, if the workflow run is marked as required, +# PRs introducing known-vulnerable packages will be blocked from merging. +# +# As recommended by Microsoft's security guidelines (https://docs.opensource.microsoft.com/security/tsg/actions/#requirements-for-security-hardening-your-own-github-actions), +# 3rd-party actions should be pinned to a specific commit hash to prevent supply chain attacks. +# This update aligns with best practices; 1st/2nd-party actions is not required hash pinning. +# +# Source repository: https://github.com/actions/dependency-review-action +name: 'Dependency Review' +on: [pull_request] + +permissions: + contents: read + +jobs: + dependency-review: + runs-on: ubuntu-latest + steps: + - name: 'Checkout Repository' + uses: actions/checkout@v4 + - name: 'Dependency Review' + uses: actions/dependency-review-action@v4 \ No newline at end of file diff --git a/.github/workflows/spelling2.yml b/.github/workflows/spelling2.yml index e79708399f..03bb66fff6 100644 --- a/.github/workflows/spelling2.yml +++ b/.github/workflows/spelling2.yml @@ -93,7 +93,7 @@ jobs: steps: - name: check-spelling id: spelling - uses: check-spelling/check-spelling@v0.0.24 + uses: check-spelling/check-spelling@67debf50669c7fc76fc8f5d7f996384535a72b77 # v0.0.24 with: config: .github/actions/spell-check suppress_push_for_open_pull_request: ${{ github.actor != 'dependabot[bot]' && 1 }} @@ -156,7 +156,7 @@ jobs: if: (success() || failure()) && needs.spelling.outputs.followup && github.event_name == 'push' steps: - name: comment - uses: check-spelling/check-spelling@v0.0.24 + uses: check-spelling/check-spelling@67debf50669c7fc76fc8f5d7f996384535a72b77 # v0.0.24 with: config: .github/actions/spell-check checkout: true @@ -175,7 +175,7 @@ jobs: if: (success() || failure()) && needs.spelling.outputs.followup && contains(github.event_name, 'pull_request') steps: - name: comment - uses: check-spelling/check-spelling@v0.0.24 + uses: check-spelling/check-spelling@67debf50669c7fc76fc8f5d7f996384535a72b77 # v0.0.24 with: config: .github/actions/spell-check checkout: true @@ -202,7 +202,7 @@ jobs: cancel-in-progress: false steps: - name: apply spelling updates - uses: check-spelling/check-spelling@v0.0.24 + uses: check-spelling/check-spelling@67debf50669c7fc76fc8f5d7f996384535a72b77 # v0.0.24 with: experimental_apply_changes_via_bot: ${{ github.repository_owner != 'microsoft' && 1 }} checkout: true From 2b5181b4c9413f0825c35547114c41eb24ea0da2 Mon Sep 17 00:00:00 2001 From: Mike Griese Date: Tue, 15 Apr 2025 06:07:22 -0500 Subject: [PATCH 20/26] Rename the `[Ee]xts` dir to `ext` (#38852) **WARNING:** This PR will probably blow up all in-flight PRs at some point in the early days of CmdPal, two of us created seperate `Exts` and `exts` dirs. Depending on what the casing was on the branch that you checked one of those out from, it'd get stuck like that on your PC forever. Windows didn't care, so we never noticed. But GitHub does care, and now browsing the source on GitHub is basically impossible. Closes #38081 --- PowerToys.sln | 34 +++++++++--------- .../Microsoft.CmdPal.UI.ViewModels.csproj | 2 +- .../Microsoft.CmdPal.UI.csproj | 30 ++++++++-------- .../command-palette-anatomy.md | 2 +- .../AllAppsCommandProvider.cs | 0 .../Microsoft.CmdPal.Ext.Apps/AllAppsPage.cs | 0 .../AllAppsSettings.cs | 0 .../Microsoft.CmdPal.Ext.Apps/AppCache.cs | 0 .../Microsoft.CmdPal.Ext.Apps/AppCommand.cs | 0 .../Microsoft.CmdPal.Ext.Apps/AppItem.cs | 0 .../Microsoft.CmdPal.Ext.Apps/AppListItem.cs | 0 .../Assets/AllApps.png | Bin .../Assets/AllApps.svg | 0 .../Commands/OpenInConsoleCommand.cs | 0 .../Commands/OpenPathCommand.cs | 0 .../Commands/RunAsAdminCommand.cs | 0 .../Commands/RunAsUserCommand.cs | 0 .../Microsoft.CmdPal.Ext.Apps.csproj | 0 .../NativeMethods.txt | 0 .../Programs/AppxFactory.cs | 0 .../Programs/AppxPackageHelper.cs | 0 .../Programs/DisabledProgramSource.cs | 0 .../Programs/IApplicationActivationManager.cs | 0 .../Programs/IAppxFactory.cs | 0 .../Programs/IAppxManifestApplication.cs | 0 .../IAppxManifestApplicationsEnumerator.cs | 0 .../Programs/IAppxManifestProperties.cs | 0 .../Programs/IAppxManifestReader.cs | 0 .../Programs/IFileVersionInfoWrapper.cs | 0 .../Programs/IPackage.cs | 0 .../Programs/IPackageCatalog.cs | 0 .../Programs/IPackageManager.cs | 0 .../Programs/IProgram.cs | 0 .../Programs/LogoType.cs | 0 .../Programs/PackageCatalogWrapper.cs | 0 .../Programs/PackageManagerWrapper.cs | 0 .../Programs/PackageWrapper.cs | 0 .../Programs/ProgramSource.cs | 0 .../Programs/ReparsePoint.cs | 0 .../Microsoft.CmdPal.Ext.Apps/Programs/UWP.cs | 0 .../Programs/UWPApplication.cs | 0 .../Programs/Win32Program.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../Storage/EventHandler.cs | 0 .../Storage/FileSystemWatcherWrapper.cs | 0 .../Storage/IFileSystemWatcherWrapper.cs | 0 .../Storage/IProgramRepository.cs | 0 .../Storage/IRepository`1.cs | 0 .../Storage/ListRepository`1.cs | 0 .../Storage/PackageRepository.cs | 0 .../Storage/Win32ProgramFileSystemWatchers.cs | 0 .../Storage/Win32ProgramRepository.cs | 0 .../Utils/IShellLinkHelper.cs | 0 .../Microsoft.CmdPal.Ext.Apps/Utils/Native.cs | 0 .../Utils/ShellCommand.cs | 0 .../Utils/ShellLinkHelper.cs | 0 .../Utils/ShellLocalization.cs | 0 .../Microsoft.CmdPal.Ext.Apps/Utils/Theme.cs | 0 .../Utils/ThemeHelper.cs | 0 .../AddBookmarkForm.cs | 0 .../AddBookmarkPage.cs | 0 .../Assets/Bookmark.png | Bin .../Assets/Bookmark.svg | 0 .../BookmarkData.cs | 0 .../BookmarkPlaceholderForm.cs | 0 .../BookmarkPlaceholderPage.cs | 0 .../Bookmarks.cs | 0 .../BookmarksCommandProvider.cs | 0 .../Microsoft.CmdPal.Ext.Bookmarks.csproj | 2 +- .../OpenInTerminalCommand.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../UrlCommand.cs | 0 .../Assets/Calculator.png | Bin .../Assets/Calculator.svg | 0 .../CalculatorCommandProvider.cs | 0 .../Microsoft.CmdPal.Ext.Calc.csproj | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../ClipboardHistoryCommandsProvider.cs | 0 .../Commands/CopyCommand.cs | 0 .../Commands/PasteCommand.cs | 0 .../Helpers/ClipboardHelper.cs | 0 .../Helpers/NativeMethods.cs | 0 ...crosoft.CmdPal.Ext.ClipboardHistory.csproj | 0 .../Models/ClipboardFormat.cs | 0 .../Models/ClipboardItem.cs | 0 .../Pages/ClipboardHistoryListPage.cs | 0 .../Assets/FileExplorer.png | Bin .../Assets/FileExplorer.svg | 0 .../Commands/CopyPathCommand.cs | 0 .../Commands/OpenFileCommand.cs | 0 .../Commands/OpenInConsoleCommand.cs | 0 .../Commands/OpenPropertiesCommand.cs | 0 .../Commands/OpenWithCommand.cs | 0 .../Data/IndexerItem.cs | 0 .../Data/IndexerListItem.cs | 0 .../FallbackOpenFileItem.cs | 0 .../Indexer/DataSourceManager.cs | 0 .../Indexer/OleDB/DBPROP.cs | 0 .../Indexer/OleDB/DBPROPIDSET.cs | 0 .../Indexer/OleDB/DBPROPSET.cs | 0 .../Indexer/OleDB/IRowset.cs | 0 .../Indexer/OleDB/IRowsetInfo.cs | 0 .../Indexer/SearchQuery.cs | 0 .../Indexer/SearchResult.cs | 0 .../SystemSearch/CSearchCatalogManager.cs | 0 .../CSearchCatalogManagerClass.cs | 0 .../Indexer/SystemSearch/CSearchManager.cs | 0 .../SystemSearch/CSearchManagerClass.cs | 0 .../SystemSearch/CSearchQueryHelper.cs | 0 .../SystemSearch/CSearchQueryHelperClass.cs | 0 .../SystemSearch/ISearchCatalogManager.cs | 0 .../Indexer/SystemSearch/ISearchManager.cs | 0 .../SystemSearch/ISearchQueryHelper.cs | 0 .../Indexer/Utils/QueryStringBuilder.cs | 0 .../Indexer/Utils/UrlToFilePathConverter.cs | 0 .../IndexerCommandsProvider.cs | 0 .../Microsoft.CmdPal.Ext.Indexer.csproj | 0 .../Native/NativeHelpers.cs | 0 .../NativeMethods.txt | 0 .../Pages/DirectoryExplorePage.cs | 0 .../Pages/DirectoryPage.cs | 0 .../Pages/ExploreListItem.cs | 0 .../Pages/Icons.cs | 0 .../Pages/IndexerPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../Assets/Registry.png | Bin .../Assets/Registry.svg | 0 .../Classes/RegistryEntry.cs | 0 .../Commands/CopyRegistryInfoCommand.cs | 0 .../Commands/OpenKeyInEditorCommand.cs | 0 .../Constants/KeyName.cs | 0 .../Constants/MaxTextLength.cs | 0 .../Microsoft.CmdPal.Ext.Registry/CopyType.cs | 0 .../Enumerations/TruncateSide.cs | 0 .../Helpers/ContextMenuHelper.cs | 0 .../Helpers/QueryHelper.cs | 0 .../Helpers/RegistryHelper.cs | 0 .../Helpers/ResultHelper.cs | 0 .../Helpers/ValueHelper.cs | 0 .../Microsoft.CmdPal.Ext.Registry.csproj | 0 .../Pages/RegistryListPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../RegistryCommandsProvider.cs | 0 .../Microsoft.CmdPal.Ext.Shell/Assets/Run.png | Bin .../Microsoft.CmdPal.Ext.Shell/Assets/Run.svg | 0 .../Assets/Run_V2_2x.svg | 0 .../Commands/ExecuteItem.cs | 0 .../FallbackExecuteItem.cs | 0 .../Helpers/ExecutionShell.cs | 0 .../Helpers/RunAsType.cs | 0 .../Helpers/SettingsManager.cs | 0 .../Helpers/ShellListPageHelpers.cs | 0 .../Microsoft.CmdPal.Ext.Shell/Icons.cs | 0 .../Microsoft.CmdPal.Ext.Shell.csproj | 0 .../Pages/ShellListPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../ShellCommandsProvider.cs | 0 .../Assets/SystemCommand.png | Bin .../Assets/SystemCommand.svg | 0 .../EmptyRecycleBinCommand.cs | 0 .../EmptyRecycleBinConfirmation.cs | 0 .../ExecuteCommand.cs | 0 .../ExecuteCommandConfirmation.cs | 0 .../Helpers/Commands.cs | 0 .../Helpers/Icons.cs | 0 .../Helpers/MessageBoxHelper.cs | 0 .../Helpers/Native.cs | 0 .../Helpers/NativeMethods.cs | 0 .../Helpers/NetworkConnectionProperties.cs | 0 .../Helpers/OpenInShellHelper.cs | 0 .../Helpers/ResultHelper.cs | 0 .../Helpers/SettingsManager.cs | 0 .../Helpers/SystemPluginContext.cs | 0 .../Helpers/Win32Helpers.cs | 0 .../Microsoft.CmdPal.Ext.System.csproj | 0 .../OpenInShellCommand.cs | 0 .../Pages/SystemCommandPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../SystemCommandExtensionProvider.cs | 0 .../SystemCommandsCache.cs | 0 .../Assets/TimeDate.png | Bin .../Assets/TimeDate.svg | 0 .../Assets/Warning.dark.png | Bin .../Assets/Warning.light.png | Bin .../Helpers/AvailableResult.cs | 0 .../Helpers/AvailableResultsList.cs | 0 .../Helpers/ResultHelper.cs | 0 .../Helpers/SettingsManager.cs | 0 .../Helpers/TimeAndDateHelper.cs | 0 .../Helpers/TimeDateCalculator.cs | 0 .../Microsoft.CmdPal.Ext.TimeDate.csproj | 0 .../Pages/TimeDateExtensionPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../TimeDateCommandsProvider.cs | 0 .../Assets/WebSearch.png | Bin .../Assets/WebSearch.svg | 0 .../Commands/OpenURLCommand.cs | 0 .../Commands/SearchWebCommand.cs | 0 .../FallbackExecuteSearchItem.cs | 0 .../FallbackOpenURLItem.cs | 0 .../Helpers/DefaultBrowserInfo.cs | 0 .../Helpers/HistoryItem.cs | 0 .../Helpers/SettingsManager.cs | 0 .../Microsoft.CmdPal.Ext.WebSearch.csproj | 0 .../NativeMethods.txt | 0 .../Pages/WebSearchListPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../WebSearchCommandsProvider.cs | 0 .../WebSearchTopLevelCommandItem.cs | 0 .../Assets/Extension.png | Bin .../Assets/Extension.svg | 0 .../Assets/Store.dark.png | Bin .../Assets/Store.dark.svg | 0 .../Assets/Store.light.png | Bin .../Assets/Store.light.svg | 0 .../Assets/WinGet.png | Bin .../Assets/WinGet.svg | 0 .../Microsoft.CmdPal.Ext.WinGet.csproj | 0 .../NativeMethods.txt | 0 .../Pages/InstallPackageCommand.cs | 0 .../Pages/InstallPackageListItem.cs | 0 .../Pages/WinGetExtensionPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../WinGetExtensionCommandsProvider.cs | 0 .../WinGetExtensionHost.cs | 0 .../WinGetStatics.cs | 0 .../ClassModel.cs | 0 .../ClassesDefinition.cs | 0 .../ClsidContext.cs | 0 .../WindowsPackageManagerFactory.cs | 0 .../WindowsPackageManagerStandardFactory.cs | 0 .../Microsoft.CmdPal.Ext.WinGet/app.manifest | 0 .../Assets/WindowWalker.png | Bin .../Assets/WindowWalker.svg | 0 .../Commands/CloseWindowCommand.cs | 0 .../Commands/ExplorerInfoResultCommand.cs | 0 .../Commands/KillProcessCommand.cs | 0 .../Commands/SwitchToWindowCommand.cs | 0 .../Components/ContextMenuHelper.cs | 0 .../Components/FuzzyMatching.cs | 0 .../Components/LivePreview.cs | 0 .../Components/OpenWindows.cs | 0 .../Components/ResultHelper.cs | 0 .../Components/SearchController.cs | 0 .../Components/SearchResult.cs | 0 .../Components/SearchString.cs | 0 .../Components/Window.cs | 0 .../Components/WindowProcess.cs | 0 .../Helpers/CVirtualDesktopManager.cs | 0 .../Helpers/IVirtualDesktopManager.cs | 0 .../Helpers/NativeMethods.cs | 0 .../Helpers/OSVersionHelper.cs | 0 .../Helpers/SettingsManager.cs | 0 .../Helpers/ShellCommand.cs | 0 .../Helpers/VDesktop.cs | 0 .../Helpers/VirtualDesktopHelper.cs | 0 .../Helpers/Win32Helpers.cs | 0 .../Microsoft.CmdPal.Ext.WindowWalker.csproj | 0 .../Pages/WindowWalkerListPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../WindowWalkerCommandsProvider.cs | 0 .../WindowWalkerListItem.cs | 0 .../Action.cs | 0 .../Assets/Services.png | Bin .../Assets/Services.svg | 0 .../Commands/OpenServicesCommand.cs | 0 .../Commands/RestartServiceCommand.cs | 0 .../Commands/ServiceCommand.cs | 0 .../Helpers/ServiceHelper.cs | 0 ...icrosoft.CmdPal.Ext.WindowsServices.csproj | 0 .../Pages/ServicesListPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../ServiceResult.cs | 0 .../WindowsServicesCommandsProvider.cs | 0 .../Assets/WindowsSettings.png | Bin .../Assets/WindowsSettings.svg | 0 .../Classes/WindowsSetting.cs | 0 .../Classes/WindowsSettings.cs | 0 .../Commands/CopySettingCommand.cs | 0 .../Commands/OpenSettingsCommand.cs | 0 .../Helpers/ContextMenuHelper.cs | 0 .../Helpers/JsonSettingsListHelper.cs | 0 .../Helpers/ResultHelper.cs | 0 .../Helpers/TranslationHelper.cs | 0 .../Helpers/UnsupportedSettingsHelper.cs | 0 .../Helpers/WindowsSettingsPathHelper.cs | 0 .../Images/WindowsSettings.dark.png | Bin .../Images/WindowsSettings.light.png | Bin ...icrosoft.CmdPal.Ext.WindowsSettings.csproj | 0 .../Pages/WindowsSettingsListPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../WindowsSettings.json | 0 .../WindowsSettings.schema.json | 0 .../WindowsSettingsCommandsProvider.cs | 0 .../Assets/WindowsTerminal.dark.png | Bin .../Assets/WindowsTerminal.light.png | Bin .../Assets/WindowsTerminal.png | Bin .../Assets/WindowsTerminal.svg | 0 .../Commands/LaunchProfileAsAdminCommand.cs | 0 .../Commands/LaunchProfileCommand.cs | 0 .../Helpers/ApplicationActivationManager.cs | 0 .../Helpers/IApplicationActivationManager.cs | 0 .../Helpers/ITerminalQuery.cs | 0 .../Helpers/SettingsManager.cs | 0 .../Helpers/TerminalHelper.cs | 0 .../Helpers/TerminalQuery.cs | 0 ...icrosoft.CmdPal.Ext.WindowsTerminal.csproj | 0 .../Pages/ProfilesListPage.cs | 0 .../Properties/Resources.Designer.cs | 0 .../Properties/Resources.resx | 0 .../TerminalPackage.cs | 0 .../TerminalProfile.cs | 0 .../TerminalTopLevelCommandItem.cs | 0 .../WindowsTerminalCommandsProvider.cs | 0 .../Assets/LockScreenLogo.scale-200.png | Bin .../Assets/SplashScreen.scale-200.png | Bin .../Assets/Square150x150Logo.scale-200.png | Bin .../Assets/Square44x44Logo.scale-200.png | Bin ...x44Logo.targetsize-24_altform-unplated.png | Bin .../Assets/StoreLogo.png | Bin .../Assets/Wide310x150Logo.scale-200.png | Bin .../Package.appxmanifest | 0 .../ProcessMonitorExtension/ProcessItem.cs | 0 .../ProcessListPage.cs | 0 .../ProcessMonitorCommandProvider.cs | 0 .../ProcessMonitorExtension.csproj | 0 .../ProcessMonitorExtension/Program.cs | 0 .../PublishProfiles/win-arm64.pubxml | 0 .../Properties/PublishProfiles/win-x64.pubxml | 0 .../Properties/launchSettings.json | 0 .../SampleExtension.cs | 0 .../SwitchToProcess.cs | 0 .../TerminateProcess.cs | 0 .../ProcessMonitorExtension/app.manifest | 0 .../Assets/LockScreenLogo.scale-200.png | Bin .../Assets/SplashScreen.scale-200.png | Bin .../Assets/Square150x150Logo.scale-200.png | Bin .../Assets/Square44x44Logo.scale-200.png | Bin ...x44Logo.targetsize-24_altform-unplated.png | Bin .../SamplePagesExtension/Assets/StoreLogo.png | Bin .../Assets/Wide310x150Logo.scale-200.png | Bin .../EvilSampleListPage.cs | 0 .../SamplePagesExtension/EvilSamplesPage.cs | 0 .../ExplodeInFiveSeconds.cs | 0 .../SamplePagesExtension/Package.appxmanifest | 0 .../Pages/SampleCommentsPage.cs | 0 .../Pages/SampleContentPage.cs | 0 .../Pages/SampleDynamicListPage.cs | 0 .../Pages/SampleListPage.cs | 0 .../Pages/SampleListPageWithDetails.cs | 0 .../Pages/SampleMarkdownDetails.cs | 0 .../Pages/SampleMarkdownManyBodies.cs | 0 .../Pages/SampleMarkdownPage.cs | 0 .../Pages/SampleSettingsPage.cs | 0 .../Pages/SendMessageCommand.cs | 0 .../SamplePagesExtension/Program.cs | 0 .../PublishProfiles/win-arm64.pubxml | 0 .../Properties/PublishProfiles/win-x64.pubxml | 0 .../Properties/launchSettings.json | 0 .../SamplePagesExtension/SampleExtension.cs | 0 .../SamplePagesCommandsProvider.cs | 0 .../SamplePagesExtension.csproj | 0 .../SampleUpdatingItemsPage.cs | 0 .../SamplePagesExtension/SamplesListPage.cs | 0 .../SelfImmolateCommand.cs | 0 .../SamplePagesExtension/app.manifest | 0 379 files changed, 35 insertions(+), 35 deletions(-) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/AllAppsCommandProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/AllAppsPage.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/AllAppsSettings.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/AppCache.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/AppCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/AppItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/AppListItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Assets/AllApps.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Assets/AllApps.svg (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Commands/OpenInConsoleCommand.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Commands/OpenPathCommand.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Commands/RunAsAdminCommand.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Commands/RunAsUserCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Microsoft.CmdPal.Ext.Apps.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/NativeMethods.txt (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/AppxFactory.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/AppxPackageHelper.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/DisabledProgramSource.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IApplicationActivationManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IAppxFactory.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestApplication.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestApplicationsEnumerator.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestProperties.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestReader.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IFileVersionInfoWrapper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IPackage.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IPackageCatalog.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IPackageManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/IProgram.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/LogoType.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/PackageCatalogWrapper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/PackageManagerWrapper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/PackageWrapper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/ProgramSource.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/ReparsePoint.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/UWP.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/UWPApplication.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Apps/Programs/Win32Program.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Properties/Resources.resx (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Storage/EventHandler.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Storage/FileSystemWatcherWrapper.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Storage/IFileSystemWatcherWrapper.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Storage/IProgramRepository.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Storage/IRepository`1.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Storage/ListRepository`1.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Storage/PackageRepository.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Storage/Win32ProgramFileSystemWatchers.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Storage/Win32ProgramRepository.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Utils/IShellLinkHelper.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Utils/Native.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Utils/ShellCommand.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Utils/ShellLinkHelper.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Utils/ShellLocalization.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Utils/Theme.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Apps/Utils/ThemeHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Bookmark/AddBookmarkForm.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Bookmark/AddBookmarkPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Bookmark/Assets/Bookmark.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Bookmark/Assets/Bookmark.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Bookmark/BookmarkData.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Bookmark/BookmarkPlaceholderForm.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Bookmark/BookmarkPlaceholderPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Bookmark/Bookmarks.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Bookmark/BookmarksCommandProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Bookmark/Microsoft.CmdPal.Ext.Bookmarks.csproj (93%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Bookmark/OpenInTerminalCommand.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Bookmark/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Bookmark/Properties/Resources.resx (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Bookmark/UrlCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Calc/Assets/Calculator.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Calc/Assets/Calculator.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Calc/CalculatorCommandProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Calc/Microsoft.CmdPal.Ext.Calc.csproj (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Calc/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Calc/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.ClipboardHistory/ClipboardHistoryCommandsProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.ClipboardHistory/Commands/CopyCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.ClipboardHistory/Commands/PasteCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/ClipboardHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/NativeMethods.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.ClipboardHistory/Microsoft.CmdPal.Ext.ClipboardHistory.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.ClipboardHistory/Models/ClipboardFormat.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.ClipboardHistory/Models/ClipboardItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.ClipboardHistory/Pages/ClipboardHistoryListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Commands/CopyPathCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Commands/OpenFileCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Commands/OpenInConsoleCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Commands/OpenPropertiesCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Commands/OpenWithCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Data/IndexerItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Data/IndexerListItem.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/FallbackOpenFileItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/DataSourceManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROP.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROPIDSET.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROPSET.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/IRowset.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/IRowsetInfo.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SearchQuery.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SearchResult.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchCatalogManager.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchCatalogManagerClass.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchManager.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchManagerClass.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchQueryHelper.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchQueryHelperClass.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchCatalogManager.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchManager.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchQueryHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/Utils/QueryStringBuilder.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Indexer/Utils/UrlToFilePathConverter.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/IndexerCommandsProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Microsoft.CmdPal.Ext.Indexer.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Native/NativeHelpers.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/NativeMethods.txt (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Pages/DirectoryExplorePage.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Pages/DirectoryPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Pages/ExploreListItem.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Pages/Icons.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Indexer/Pages/IndexerPage.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Indexer/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Assets/Registry.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Assets/Registry.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Classes/RegistryEntry.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Commands/CopyRegistryInfoCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Commands/OpenKeyInEditorCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Constants/KeyName.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Constants/MaxTextLength.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/CopyType.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Enumerations/TruncateSide.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Helpers/ContextMenuHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Helpers/QueryHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Helpers/RegistryHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Helpers/ResultHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Helpers/ValueHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Microsoft.CmdPal.Ext.Registry.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Pages/RegistryListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Registry/RegistryCommandsProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/Assets/Run.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/Assets/Run.svg (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Shell/Assets/Run_V2_2x.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/Commands/ExecuteItem.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Shell/FallbackExecuteItem.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Shell/Helpers/ExecutionShell.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/Helpers/RunAsType.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/Helpers/SettingsManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/Helpers/ShellListPageHelpers.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.Shell/Icons.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/Microsoft.CmdPal.Ext.Shell.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/Pages/ShellListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.Shell/ShellCommandsProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Assets/SystemCommand.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Assets/SystemCommand.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/EmptyRecycleBinCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/EmptyRecycleBinConfirmation.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/ExecuteCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/ExecuteCommandConfirmation.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/Commands.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/Icons.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/MessageBoxHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/Native.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/NativeMethods.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/NetworkConnectionProperties.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/OpenInShellHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/ResultHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/SettingsManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/SystemPluginContext.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Helpers/Win32Helpers.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Microsoft.CmdPal.Ext.System.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/OpenInShellCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Pages/SystemCommandPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/SystemCommandExtensionProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.System/SystemCommandsCache.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Assets/TimeDate.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Assets/TimeDate.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Assets/Warning.dark.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Assets/Warning.light.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Helpers/AvailableResult.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Helpers/AvailableResultsList.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Helpers/ResultHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Helpers/SettingsManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Helpers/TimeAndDateHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Helpers/TimeDateCalculator.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Microsoft.CmdPal.Ext.TimeDate.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Pages/TimeDateExtensionPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.TimeDate/TimeDateCommandsProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Assets/WebSearch.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Assets/WebSearch.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Commands/OpenURLCommand.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Commands/SearchWebCommand.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WebSearch/FallbackExecuteSearchItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/FallbackOpenURLItem.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Helpers/DefaultBrowserInfo.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Helpers/HistoryItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Helpers/SettingsManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Microsoft.CmdPal.Ext.WebSearch.csproj (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WebSearch/NativeMethods.txt (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Pages/WebSearchListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/WebSearchCommandsProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WebSearch/WebSearchTopLevelCommandItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WinGet/Assets/Extension.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WinGet/Assets/Extension.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WinGet/Assets/Store.dark.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WinGet/Assets/Store.dark.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WinGet/Assets/Store.light.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WinGet/Assets/Store.light.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WinGet/Assets/WinGet.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WinGet/Assets/WinGet.svg (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/Microsoft.CmdPal.Ext.WinGet.csproj (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/NativeMethods.txt (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/Pages/InstallPackageCommand.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/Pages/InstallPackageListItem.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/Pages/WinGetExtensionPage.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/Properties/Resources.resx (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/WinGetExtensionCommandsProvider.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/WinGetExtensionHost.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/WinGetStatics.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClassModel.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClassesDefinition.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClsidContext.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/WindowsPackageManagerFactory.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/WindowsPackageManagerStandardFactory.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WinGet/app.manifest (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Assets/WindowWalker.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Assets/WindowWalker.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Commands/CloseWindowCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Commands/ExplorerInfoResultCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Commands/KillProcessCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Commands/SwitchToWindowCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Components/ContextMenuHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Components/FuzzyMatching.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Components/LivePreview.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Components/OpenWindows.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Components/ResultHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchController.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchResult.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchString.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Components/Window.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Components/WindowProcess.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Helpers/CVirtualDesktopManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Helpers/IVirtualDesktopManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Helpers/NativeMethods.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Helpers/OSVersionHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Helpers/SettingsManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Helpers/ShellCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Helpers/VDesktop.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Helpers/VirtualDesktopHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Helpers/Win32Helpers.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Microsoft.CmdPal.Ext.WindowWalker.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Pages/WindowWalkerListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerCommandsProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerListItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Action.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Assets/Services.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Assets/Services.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Commands/OpenServicesCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Commands/RestartServiceCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Commands/ServiceCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Helpers/ServiceHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Microsoft.CmdPal.Ext.WindowsServices.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Pages/ServicesListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/ServiceResult.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsServices/WindowsServicesCommandsProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Assets/WindowsSettings.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Assets/WindowsSettings.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Classes/WindowsSetting.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Classes/WindowsSettings.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Commands/CopySettingCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Commands/OpenSettingsCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/ContextMenuHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/JsonSettingsListHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/ResultHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/TranslationHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/UnsupportedSettingsHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/WindowsSettingsPathHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Images/WindowsSettings.dark.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Images/WindowsSettings.light.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Microsoft.CmdPal.Ext.WindowsSettings.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Pages/WindowsSettingsListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettings.json (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettings.schema.json (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettingsCommandsProvider.cs (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.dark.png (100%) rename src/modules/cmdpal/{exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.light.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.png (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.svg (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Commands/LaunchProfileAsAdminCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Commands/LaunchProfileCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/ApplicationActivationManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/IApplicationActivationManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/ITerminalQuery.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/SettingsManager.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalHelper.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalQuery.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Microsoft.CmdPal.Ext.WindowsTerminal.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Pages/ProfilesListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Properties/Resources.Designer.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/Properties/Resources.resx (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalPackage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalProfile.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalTopLevelCommandItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/Microsoft.CmdPal.Ext.WindowsTerminal/WindowsTerminalCommandsProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Assets/LockScreenLogo.scale-200.png (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Assets/SplashScreen.scale-200.png (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Assets/Square150x150Logo.scale-200.png (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Assets/Square44x44Logo.scale-200.png (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Assets/Square44x44Logo.targetsize-24_altform-unplated.png (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Assets/StoreLogo.png (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Assets/Wide310x150Logo.scale-200.png (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Package.appxmanifest (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/ProcessItem.cs (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/ProcessListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/ProcessMonitorCommandProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/ProcessMonitorExtension.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Program.cs (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Properties/PublishProfiles/win-arm64.pubxml (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Properties/PublishProfiles/win-x64.pubxml (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/Properties/launchSettings.json (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/SampleExtension.cs (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/SwitchToProcess.cs (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/TerminateProcess.cs (100%) rename src/modules/cmdpal/{Exts => ext}/ProcessMonitorExtension/app.manifest (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Assets/LockScreenLogo.scale-200.png (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Assets/SplashScreen.scale-200.png (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Assets/Square150x150Logo.scale-200.png (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Assets/Square44x44Logo.scale-200.png (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Assets/Square44x44Logo.targetsize-24_altform-unplated.png (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Assets/StoreLogo.png (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Assets/Wide310x150Logo.scale-200.png (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/EvilSampleListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/EvilSamplesPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/ExplodeInFiveSeconds.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Package.appxmanifest (100%) rename src/modules/cmdpal/{exts => ext}/SamplePagesExtension/Pages/SampleCommentsPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Pages/SampleContentPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Pages/SampleDynamicListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Pages/SampleListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Pages/SampleListPageWithDetails.cs (100%) rename src/modules/cmdpal/{exts => ext}/SamplePagesExtension/Pages/SampleMarkdownDetails.cs (100%) rename src/modules/cmdpal/{exts => ext}/SamplePagesExtension/Pages/SampleMarkdownManyBodies.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Pages/SampleMarkdownPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Pages/SampleSettingsPage.cs (100%) rename src/modules/cmdpal/{exts => ext}/SamplePagesExtension/Pages/SendMessageCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Program.cs (100%) rename src/modules/cmdpal/{exts => ext}/SamplePagesExtension/Properties/PublishProfiles/win-arm64.pubxml (100%) rename src/modules/cmdpal/{exts => ext}/SamplePagesExtension/Properties/PublishProfiles/win-x64.pubxml (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/Properties/launchSettings.json (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/SampleExtension.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/SamplePagesCommandsProvider.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/SamplePagesExtension.csproj (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/SampleUpdatingItemsPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/SamplesListPage.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/SelfImmolateCommand.cs (100%) rename src/modules/cmdpal/{Exts => ext}/SamplePagesExtension/app.manifest (100%) diff --git a/PowerToys.sln b/PowerToys.sln index 9b911b388b..401ba6d598 100644 --- a/PowerToys.sln +++ b/PowerToys.sln @@ -624,19 +624,19 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "CommandPalette", "CommandPa EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Built-in Extensions", "Built-in Extensions", "{ECB8E0D1-7603-4E5C-AB10-D1E545E6F8E2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.Apps", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.Apps\Microsoft.CmdPal.Ext.Apps.csproj", "{6CE438DF-C245-4997-A360-0A0939E4BA34}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.Apps", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.Apps\Microsoft.CmdPal.Ext.Apps.csproj", "{6CE438DF-C245-4997-A360-0A0939E4BA34}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.Bookmarks", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.Bookmark\Microsoft.CmdPal.Ext.Bookmarks.csproj", "{E09AA983-C755-474F-83D6-A5CDF528C070}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.Bookmarks", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.Bookmark\Microsoft.CmdPal.Ext.Bookmarks.csproj", "{E09AA983-C755-474F-83D6-A5CDF528C070}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.Calc", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.Calc\Microsoft.CmdPal.Ext.Calc.csproj", "{6D56B64D-FF1F-488F-AFED-9B9854A5D399}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.Calc", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.Calc\Microsoft.CmdPal.Ext.Calc.csproj", "{6D56B64D-FF1F-488F-AFED-9B9854A5D399}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.Registry", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.Registry\Microsoft.CmdPal.Ext.Registry.csproj", "{92EC89E4-9972-453A-8A1A-3A9E230C146A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.Registry", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.Registry\Microsoft.CmdPal.Ext.Registry.csproj", "{92EC89E4-9972-453A-8A1A-3A9E230C146A}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.WindowsServices", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.WindowsServices\Microsoft.CmdPal.Ext.WindowsServices.csproj", "{51939B4F-1F62-4BFF-A6A2-C08646E5BE95}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.WindowsServices", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.WindowsServices\Microsoft.CmdPal.Ext.WindowsServices.csproj", "{51939B4F-1F62-4BFF-A6A2-C08646E5BE95}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.WindowsSettings", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.WindowsSettings\Microsoft.CmdPal.Ext.WindowsSettings.csproj", "{D1160404-D3D1-497A-883A-4059C07C2273}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.WindowsSettings", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.WindowsSettings\Microsoft.CmdPal.Ext.WindowsSettings.csproj", "{D1160404-D3D1-497A-883A-4059C07C2273}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.WindowsTerminal", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.WindowsTerminal\Microsoft.CmdPal.Ext.WindowsTerminal.csproj", "{40F6D69D-E321-400F-A767-5628C7AE453D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.WindowsTerminal", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.WindowsTerminal\Microsoft.CmdPal.Ext.WindowsTerminal.csproj", "{40F6D69D-E321-400F-A767-5628C7AE453D}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Extension SDK", "Extension SDK", "{F3D09629-59A2-4924-A4B9-D6BFAA2C1B49}" EndProject @@ -650,9 +650,9 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Microsoft.Terminal.UI", "sr EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Sample Extensions", "Sample Extensions", "{071E18A4-A530-46B8-AB7D-B862EE55E24E}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProcessMonitorExtension", "src\modules\cmdpal\Exts\ProcessMonitorExtension\ProcessMonitorExtension.csproj", "{C846F7A7-792A-47D9-B0CB-417C900EE03D}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ProcessMonitorExtension", "src\modules\cmdpal\ext\ProcessMonitorExtension\ProcessMonitorExtension.csproj", "{C846F7A7-792A-47D9-B0CB-417C900EE03D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SamplePagesExtension", "src\modules\cmdpal\Exts\SamplePagesExtension\SamplePagesExtension.csproj", "{C831231F-891C-4572-9694-45062534B42A}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "SamplePagesExtension", "src\modules\cmdpal\ext\SamplePagesExtension\SamplePagesExtension.csproj", "{C831231F-891C-4572-9694-45062534B42A}" EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "UI", "UI", "{7520A2FE-00A2-49B8-83ED-DB216E874C04}" EndProject @@ -660,7 +660,7 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.UI", "src\ EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.UI.ViewModels", "src\modules\cmdpal\Microsoft.CmdPal.UI.ViewModels\Microsoft.CmdPal.UI.ViewModels.csproj", "{C66020D1-CB10-4CF7-8715-84C97FD5E5E2}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.ClipboardHistory", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.ClipboardHistory\Microsoft.CmdPal.Ext.ClipboardHistory.csproj", "{79775343-7A3D-445D-9104-3DD5B2893DF9}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.ClipboardHistory", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.ClipboardHistory\Microsoft.CmdPal.Ext.ClipboardHistory.csproj", "{79775343-7A3D-445D-9104-3DD5B2893DF9}" EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "CmdPalModuleInterface", "src\modules\cmdpal\CmdPalModuleInterface\CmdPalModuleInterface.vcxproj", "{0ADEB797-C8C7-4FFA-ACD5-2AF6CAD7ECD8}" EndProject @@ -668,15 +668,15 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WorkspacesCsharpLibrary", " EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "NewPlus.ShellExtension.win10", "src\modules\NewPlus\NewShellExtensionContextMenu.win10\NewPlus.ShellExtension.win10.vcxproj", "{0DB0F63A-D2F8-4DA3-A650-2D0B8724218E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.Indexer", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.Indexer\Microsoft.CmdPal.Ext.Indexer.csproj", "{453CBB73-A3CB-4D0B-8D24-6940B86FE21D}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.Indexer", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.Indexer\Microsoft.CmdPal.Ext.Indexer.csproj", "{453CBB73-A3CB-4D0B-8D24-6940B86FE21D}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.Shell", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.Shell\Microsoft.CmdPal.Ext.Shell.csproj", "{C0CE3B5E-16D3-495D-B335-CA791B660162}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.Shell", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.Shell\Microsoft.CmdPal.Ext.Shell.csproj", "{C0CE3B5E-16D3-495D-B335-CA791B660162}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.WindowWalker", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.WindowWalker\Microsoft.CmdPal.Ext.WindowWalker.csproj", "{3A9A7297-92C4-4F16-B6F9-8D4AB652C86C}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Microsoft.CmdPal.Ext.WindowWalker", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.WindowWalker\Microsoft.CmdPal.Ext.WindowWalker.csproj", "{3A9A7297-92C4-4F16-B6F9-8D4AB652C86C}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.WebSearch", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.WebSearch\Microsoft.CmdPal.Ext.WebSearch.csproj", "{605E914B-7232-4789-AF46-BF5D3DDFC14E}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.WebSearch", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.WebSearch\Microsoft.CmdPal.Ext.WebSearch.csproj", "{605E914B-7232-4789-AF46-BF5D3DDFC14E}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.WinGet", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.WinGet\Microsoft.CmdPal.Ext.WinGet.csproj", "{E81A7D20-9862-ABDB-0AAE-9BC5B517A9F9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.WinGet", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.WinGet\Microsoft.CmdPal.Ext.WinGet.csproj", "{E81A7D20-9862-ABDB-0AAE-9BC5B517A9F9}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdvancedPaste.UnitTests", "src\modules\AdvancedPaste\AdvancedPaste.UnitTests\AdvancedPaste.UnitTests.csproj", "{D5E5F5EA-1B6C-4A73-88BE-304F36C9E4EE}" EndProject @@ -690,7 +690,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZoomItModuleInterface", "sr EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "ZoomItSettingsInterop", "src\modules\ZoomIt\ZoomItSettingsInterop\ZoomItSettingsInterop.vcxproj", "{CA7D8106-30B9-4AEC-9D05-B69B31B8C461}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.TimeDate", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.TimeDate\Microsoft.CmdPal.Ext.TimeDate.csproj", "{DCC6BD67-17BB-47AA-B507-FB0FE43A7449}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.TimeDate", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.TimeDate\Microsoft.CmdPal.Ext.TimeDate.csproj", "{DCC6BD67-17BB-47AA-B507-FB0FE43A7449}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UITestAutomation", "src\common\UITestAutomation\UITestAutomation.csproj", "{A558C25D-2007-498E-8B6F-43405AFAE9E2}" EndProject @@ -704,7 +704,7 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Hosts.UITests", "src\module EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RegistryPreview.FuzzTests", "src\modules\registrypreview\RegistryPreview.FuzzTests\RegistryPreview.FuzzTests.csproj", "{5702B3CC-8575-48D5-83D8-15BB42269CD3}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.System", "src\modules\cmdpal\Exts\Microsoft.CmdPal.Ext.System\Microsoft.CmdPal.Ext.System.csproj", "{64B88F02-CD88-4ED8-9624-989A800230F9}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Microsoft.CmdPal.Ext.System", "src\modules\cmdpal\ext\Microsoft.CmdPal.Ext.System\Microsoft.CmdPal.Ext.System.csproj", "{64B88F02-CD88-4ED8-9624-989A800230F9}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/Microsoft.CmdPal.UI.ViewModels.csproj b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/Microsoft.CmdPal.UI.ViewModels.csproj index ed8831915a..342dbe251c 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/Microsoft.CmdPal.UI.ViewModels.csproj +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/Microsoft.CmdPal.UI.ViewModels.csproj @@ -31,7 +31,7 @@ - + diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI/Microsoft.CmdPal.UI.csproj b/src/modules/cmdpal/Microsoft.CmdPal.UI/Microsoft.CmdPal.UI.csproj index 9398315223..80fbc58a5e 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI/Microsoft.CmdPal.UI.csproj +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI/Microsoft.CmdPal.UI.csproj @@ -97,26 +97,26 @@ - - - + + + - - - - - - - - - - - - + + + + + + + + + + + + True diff --git a/src/modules/cmdpal/doc/command-pal-anatomy/command-palette-anatomy.md b/src/modules/cmdpal/doc/command-pal-anatomy/command-palette-anatomy.md index 2af4771e16..878daaa69a 100644 --- a/src/modules/cmdpal/doc/command-pal-anatomy/command-palette-anatomy.md +++ b/src/modules/cmdpal/doc/command-pal-anatomy/command-palette-anatomy.md @@ -152,7 +152,7 @@ We've made it easy to build a new extension. Just follow these steps: 2. Run the following PowerShell script, replacing "MastodonExtension" with the `Name` of your extension and "Mastodon extension for cmdpal" with the `DisplayName` of the [command that will show up in the root view](#root-view) of the Command Palette: ```powershell -.\Exts\NewExtension.ps1 -name MastodonExtension -DisplayName "Mastodon extension for cmdpal" +.\ext\NewExtension.ps1 -name MastodonExtension -DisplayName "Mastodon extension for cmdpal" ``` 3. Open the solution in Visual Studio. diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/AllAppsCommandProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AllAppsCommandProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/AllAppsCommandProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AllAppsCommandProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/AllAppsPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AllAppsPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/AllAppsPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AllAppsPage.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/AllAppsSettings.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AllAppsSettings.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/AllAppsSettings.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AllAppsSettings.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/AppCache.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppCache.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/AppCache.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppCache.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/AppCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/AppCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/AppItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/AppItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/AppListItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppListItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/AppListItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/AppListItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Assets/AllApps.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Assets/AllApps.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Assets/AllApps.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Assets/AllApps.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Assets/AllApps.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Assets/AllApps.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Assets/AllApps.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Assets/AllApps.svg diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Commands/OpenInConsoleCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Commands/OpenInConsoleCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Commands/OpenInConsoleCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Commands/OpenInConsoleCommand.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Commands/OpenPathCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Commands/OpenPathCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Commands/OpenPathCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Commands/OpenPathCommand.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Commands/RunAsAdminCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Commands/RunAsAdminCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Commands/RunAsAdminCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Commands/RunAsAdminCommand.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Commands/RunAsUserCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Commands/RunAsUserCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Commands/RunAsUserCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Commands/RunAsUserCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Microsoft.CmdPal.Ext.Apps.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Microsoft.CmdPal.Ext.Apps.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Microsoft.CmdPal.Ext.Apps.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Microsoft.CmdPal.Ext.Apps.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/NativeMethods.txt b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/NativeMethods.txt similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/NativeMethods.txt rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/NativeMethods.txt diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/AppxFactory.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/AppxFactory.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/AppxFactory.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/AppxFactory.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/AppxPackageHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/AppxPackageHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/AppxPackageHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/AppxPackageHelper.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Programs/DisabledProgramSource.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/DisabledProgramSource.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Programs/DisabledProgramSource.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/DisabledProgramSource.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IApplicationActivationManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IApplicationActivationManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IApplicationActivationManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IApplicationActivationManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IAppxFactory.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IAppxFactory.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IAppxFactory.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IAppxFactory.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestApplication.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestApplication.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestApplication.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestApplication.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestApplicationsEnumerator.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestApplicationsEnumerator.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestApplicationsEnumerator.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestApplicationsEnumerator.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestProperties.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestProperties.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestProperties.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestProperties.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestReader.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestReader.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestReader.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IAppxManifestReader.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Programs/IFileVersionInfoWrapper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IFileVersionInfoWrapper.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Programs/IFileVersionInfoWrapper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IFileVersionInfoWrapper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IPackage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IPackage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IPackage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IPackage.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Programs/IPackageCatalog.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IPackageCatalog.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Programs/IPackageCatalog.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IPackageCatalog.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IPackageManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IPackageManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IPackageManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IPackageManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IProgram.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IProgram.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/IProgram.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/IProgram.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/LogoType.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/LogoType.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/LogoType.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/LogoType.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Programs/PackageCatalogWrapper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/PackageCatalogWrapper.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Programs/PackageCatalogWrapper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/PackageCatalogWrapper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/PackageManagerWrapper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/PackageManagerWrapper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/PackageManagerWrapper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/PackageManagerWrapper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/PackageWrapper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/PackageWrapper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/PackageWrapper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/PackageWrapper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/ProgramSource.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/ProgramSource.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/ProgramSource.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/ProgramSource.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Programs/ReparsePoint.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/ReparsePoint.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Programs/ReparsePoint.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/ReparsePoint.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/UWP.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/UWP.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/UWP.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/UWP.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/UWPApplication.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/UWPApplication.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/UWPApplication.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/UWPApplication.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/Win32Program.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/Win32Program.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Apps/Programs/Win32Program.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Programs/Win32Program.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Properties/Resources.resx diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/EventHandler.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/EventHandler.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/EventHandler.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/EventHandler.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/FileSystemWatcherWrapper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/FileSystemWatcherWrapper.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/FileSystemWatcherWrapper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/FileSystemWatcherWrapper.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/IFileSystemWatcherWrapper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/IFileSystemWatcherWrapper.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/IFileSystemWatcherWrapper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/IFileSystemWatcherWrapper.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/IProgramRepository.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/IProgramRepository.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/IProgramRepository.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/IProgramRepository.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/IRepository`1.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/IRepository`1.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/IRepository`1.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/IRepository`1.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/ListRepository`1.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/ListRepository`1.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/ListRepository`1.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/ListRepository`1.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/PackageRepository.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/PackageRepository.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/PackageRepository.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/PackageRepository.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/Win32ProgramFileSystemWatchers.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/Win32ProgramFileSystemWatchers.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/Win32ProgramFileSystemWatchers.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/Win32ProgramFileSystemWatchers.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/Win32ProgramRepository.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/Win32ProgramRepository.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Storage/Win32ProgramRepository.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Storage/Win32ProgramRepository.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/IShellLinkHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/IShellLinkHelper.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/IShellLinkHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/IShellLinkHelper.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/Native.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/Native.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/Native.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/Native.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/ShellCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ShellCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/ShellCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ShellCommand.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/ShellLinkHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ShellLinkHelper.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/ShellLinkHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ShellLinkHelper.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/ShellLocalization.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ShellLocalization.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/ShellLocalization.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ShellLocalization.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/Theme.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/Theme.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/Theme.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/Theme.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/ThemeHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ThemeHelper.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Apps/Utils/ThemeHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Apps/Utils/ThemeHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/AddBookmarkForm.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/AddBookmarkForm.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/AddBookmarkForm.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/AddBookmarkForm.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/AddBookmarkPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/AddBookmarkPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/AddBookmarkPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/AddBookmarkPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/Assets/Bookmark.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Assets/Bookmark.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/Assets/Bookmark.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Assets/Bookmark.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/Assets/Bookmark.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Assets/Bookmark.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/Assets/Bookmark.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Assets/Bookmark.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/BookmarkData.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/BookmarkData.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/BookmarkData.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/BookmarkData.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/BookmarkPlaceholderForm.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/BookmarkPlaceholderForm.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/BookmarkPlaceholderForm.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/BookmarkPlaceholderForm.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/BookmarkPlaceholderPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/BookmarkPlaceholderPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/BookmarkPlaceholderPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/BookmarkPlaceholderPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/Bookmarks.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Bookmarks.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/Bookmarks.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Bookmarks.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/BookmarksCommandProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/BookmarksCommandProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/BookmarksCommandProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/BookmarksCommandProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/Microsoft.CmdPal.Ext.Bookmarks.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Microsoft.CmdPal.Ext.Bookmarks.csproj similarity index 93% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/Microsoft.CmdPal.Ext.Bookmarks.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Microsoft.CmdPal.Ext.Bookmarks.csproj index eaa4ac6b42..7bbf1efc5f 100644 --- a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Bookmark/Microsoft.CmdPal.Ext.Bookmarks.csproj +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Microsoft.CmdPal.Ext.Bookmarks.csproj @@ -14,7 +14,7 @@ - + diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Bookmark/OpenInTerminalCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/OpenInTerminalCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Bookmark/OpenInTerminalCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/OpenInTerminalCommand.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Bookmark/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Bookmark/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Bookmark/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Bookmark/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/Properties/Resources.resx diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Bookmark/UrlCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/UrlCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Bookmark/UrlCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Bookmark/UrlCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Calc/Assets/Calculator.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/Assets/Calculator.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Calc/Assets/Calculator.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/Assets/Calculator.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Calc/Assets/Calculator.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/Assets/Calculator.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Calc/Assets/Calculator.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/Assets/Calculator.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Calc/CalculatorCommandProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/CalculatorCommandProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Calc/CalculatorCommandProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/CalculatorCommandProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Calc/Microsoft.CmdPal.Ext.Calc.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/Microsoft.CmdPal.Ext.Calc.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Calc/Microsoft.CmdPal.Ext.Calc.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/Microsoft.CmdPal.Ext.Calc.csproj diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Calc/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Calc/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Calc/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Calc/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Calc/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/ClipboardHistoryCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/ClipboardHistoryCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/ClipboardHistoryCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/ClipboardHistoryCommandsProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Commands/CopyCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Commands/CopyCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Commands/CopyCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Commands/CopyCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Commands/PasteCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Commands/PasteCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Commands/PasteCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Commands/PasteCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/ClipboardHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/ClipboardHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/ClipboardHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/ClipboardHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/NativeMethods.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/NativeMethods.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/NativeMethods.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/NativeMethods.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Microsoft.CmdPal.Ext.ClipboardHistory.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Microsoft.CmdPal.Ext.ClipboardHistory.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Microsoft.CmdPal.Ext.ClipboardHistory.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Microsoft.CmdPal.Ext.ClipboardHistory.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Models/ClipboardFormat.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Models/ClipboardFormat.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Models/ClipboardFormat.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Models/ClipboardFormat.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Models/ClipboardItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Models/ClipboardItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Models/ClipboardItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Models/ClipboardItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Pages/ClipboardHistoryListPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Pages/ClipboardHistoryListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.ClipboardHistory/Pages/ClipboardHistoryListPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Pages/ClipboardHistoryListPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Assets/FileExplorer.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Commands/CopyPathCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Commands/CopyPathCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Commands/CopyPathCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Commands/CopyPathCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Commands/OpenFileCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Commands/OpenFileCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Commands/OpenFileCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Commands/OpenFileCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Commands/OpenInConsoleCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Commands/OpenInConsoleCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Commands/OpenInConsoleCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Commands/OpenInConsoleCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Commands/OpenPropertiesCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Commands/OpenPropertiesCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Commands/OpenPropertiesCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Commands/OpenPropertiesCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Commands/OpenWithCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Commands/OpenWithCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Commands/OpenWithCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Commands/OpenWithCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Data/IndexerItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Data/IndexerItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Data/IndexerItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Data/IndexerItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Data/IndexerListItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Data/IndexerListItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Data/IndexerListItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Data/IndexerListItem.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/FallbackOpenFileItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/FallbackOpenFileItem.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/FallbackOpenFileItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/FallbackOpenFileItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/DataSourceManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/DataSourceManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/DataSourceManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/DataSourceManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROP.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROP.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROP.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROP.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROPIDSET.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROPIDSET.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROPIDSET.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROPIDSET.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROPSET.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROPSET.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROPSET.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/DBPROPSET.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/IRowset.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/IRowset.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/IRowset.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/IRowset.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/IRowsetInfo.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/IRowsetInfo.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/IRowsetInfo.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/OleDB/IRowsetInfo.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SearchQuery.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SearchQuery.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SearchQuery.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SearchQuery.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SearchResult.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SearchResult.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SearchResult.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SearchResult.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchCatalogManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchCatalogManager.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchCatalogManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchCatalogManager.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchCatalogManagerClass.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchCatalogManagerClass.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchCatalogManagerClass.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchCatalogManagerClass.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchManager.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchManager.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchManagerClass.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchManagerClass.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchManagerClass.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchManagerClass.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchQueryHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchQueryHelper.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchQueryHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchQueryHelper.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchQueryHelperClass.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchQueryHelperClass.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchQueryHelperClass.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/CSearchQueryHelperClass.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchCatalogManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchCatalogManager.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchCatalogManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchCatalogManager.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchManager.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchManager.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchQueryHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchQueryHelper.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchQueryHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/SystemSearch/ISearchQueryHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/Utils/QueryStringBuilder.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/Utils/QueryStringBuilder.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/Utils/QueryStringBuilder.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/Utils/QueryStringBuilder.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/Utils/UrlToFilePathConverter.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/Utils/UrlToFilePathConverter.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Indexer/Utils/UrlToFilePathConverter.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Indexer/Utils/UrlToFilePathConverter.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/IndexerCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/IndexerCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/IndexerCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/IndexerCommandsProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Microsoft.CmdPal.Ext.Indexer.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Microsoft.CmdPal.Ext.Indexer.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Microsoft.CmdPal.Ext.Indexer.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Microsoft.CmdPal.Ext.Indexer.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Native/NativeHelpers.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Native/NativeHelpers.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Native/NativeHelpers.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Native/NativeHelpers.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/NativeMethods.txt b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/NativeMethods.txt similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/NativeMethods.txt rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/NativeMethods.txt diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Pages/DirectoryExplorePage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Pages/DirectoryExplorePage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Pages/DirectoryExplorePage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Pages/DirectoryExplorePage.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Pages/DirectoryPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Pages/DirectoryPage.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Pages/DirectoryPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Pages/DirectoryPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Pages/ExploreListItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Pages/ExploreListItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Pages/ExploreListItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Pages/ExploreListItem.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Pages/Icons.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Pages/Icons.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Pages/Icons.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Pages/Icons.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Pages/IndexerPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Pages/IndexerPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Indexer/Pages/IndexerPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Pages/IndexerPage.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Indexer/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Indexer/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Assets/Registry.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Assets/Registry.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Assets/Registry.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Assets/Registry.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Assets/Registry.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Assets/Registry.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Assets/Registry.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Assets/Registry.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Classes/RegistryEntry.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Classes/RegistryEntry.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Classes/RegistryEntry.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Classes/RegistryEntry.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Commands/CopyRegistryInfoCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Commands/CopyRegistryInfoCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Commands/CopyRegistryInfoCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Commands/CopyRegistryInfoCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Commands/OpenKeyInEditorCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Commands/OpenKeyInEditorCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Commands/OpenKeyInEditorCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Commands/OpenKeyInEditorCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Constants/KeyName.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Constants/KeyName.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Constants/KeyName.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Constants/KeyName.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Constants/MaxTextLength.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Constants/MaxTextLength.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Constants/MaxTextLength.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Constants/MaxTextLength.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/CopyType.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/CopyType.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/CopyType.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/CopyType.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Enumerations/TruncateSide.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Enumerations/TruncateSide.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Enumerations/TruncateSide.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Enumerations/TruncateSide.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Helpers/ContextMenuHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Helpers/ContextMenuHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Helpers/ContextMenuHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Helpers/ContextMenuHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Helpers/QueryHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Helpers/QueryHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Helpers/QueryHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Helpers/QueryHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Helpers/RegistryHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Helpers/RegistryHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Helpers/RegistryHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Helpers/RegistryHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Helpers/ResultHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Helpers/ResultHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Helpers/ResultHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Helpers/ResultHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Helpers/ValueHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Helpers/ValueHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Helpers/ValueHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Helpers/ValueHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Microsoft.CmdPal.Ext.Registry.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Microsoft.CmdPal.Ext.Registry.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Microsoft.CmdPal.Ext.Registry.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Microsoft.CmdPal.Ext.Registry.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Pages/RegistryListPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Pages/RegistryListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Pages/RegistryListPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Pages/RegistryListPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/RegistryCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/RegistryCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Registry/RegistryCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Registry/RegistryCommandsProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Assets/Run.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Assets/Run.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Assets/Run.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Assets/Run.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Assets/Run.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Assets/Run.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Assets/Run.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Assets/Run.svg diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Shell/Assets/Run_V2_2x.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Assets/Run_V2_2x.svg similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Shell/Assets/Run_V2_2x.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Assets/Run_V2_2x.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Commands/ExecuteItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Commands/ExecuteItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Commands/ExecuteItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Commands/ExecuteItem.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Shell/FallbackExecuteItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/FallbackExecuteItem.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Shell/FallbackExecuteItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/FallbackExecuteItem.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Shell/Helpers/ExecutionShell.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Helpers/ExecutionShell.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Shell/Helpers/ExecutionShell.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Helpers/ExecutionShell.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Helpers/RunAsType.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Helpers/RunAsType.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Helpers/RunAsType.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Helpers/RunAsType.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Helpers/SettingsManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Helpers/SettingsManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Helpers/SettingsManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Helpers/SettingsManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Helpers/ShellListPageHelpers.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Helpers/ShellListPageHelpers.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Helpers/ShellListPageHelpers.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Helpers/ShellListPageHelpers.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Shell/Icons.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Icons.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.Shell/Icons.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Icons.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Microsoft.CmdPal.Ext.Shell.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Microsoft.CmdPal.Ext.Shell.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Microsoft.CmdPal.Ext.Shell.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Microsoft.CmdPal.Ext.Shell.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Pages/ShellListPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Pages/ShellListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Pages/ShellListPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Pages/ShellListPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/ShellCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/ShellCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.Shell/ShellCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.Shell/ShellCommandsProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Assets/SystemCommand.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Assets/SystemCommand.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Assets/SystemCommand.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Assets/SystemCommand.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Assets/SystemCommand.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Assets/SystemCommand.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Assets/SystemCommand.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Assets/SystemCommand.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/EmptyRecycleBinCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/EmptyRecycleBinCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/EmptyRecycleBinCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/EmptyRecycleBinCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/EmptyRecycleBinConfirmation.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/EmptyRecycleBinConfirmation.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/EmptyRecycleBinConfirmation.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/EmptyRecycleBinConfirmation.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/ExecuteCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/ExecuteCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/ExecuteCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/ExecuteCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/ExecuteCommandConfirmation.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/ExecuteCommandConfirmation.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/ExecuteCommandConfirmation.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/ExecuteCommandConfirmation.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/Commands.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/Commands.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/Commands.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/Commands.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/Icons.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/Icons.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/Icons.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/Icons.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/MessageBoxHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/MessageBoxHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/MessageBoxHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/MessageBoxHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/Native.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/Native.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/Native.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/Native.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/NativeMethods.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/NativeMethods.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/NativeMethods.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/NativeMethods.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/NetworkConnectionProperties.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/NetworkConnectionProperties.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/NetworkConnectionProperties.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/NetworkConnectionProperties.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/OpenInShellHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/OpenInShellHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/OpenInShellHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/OpenInShellHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/ResultHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/ResultHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/ResultHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/ResultHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/SettingsManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/SettingsManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/SettingsManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/SettingsManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/SystemPluginContext.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/SystemPluginContext.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/SystemPluginContext.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/SystemPluginContext.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/Win32Helpers.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/Win32Helpers.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Helpers/Win32Helpers.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Helpers/Win32Helpers.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Microsoft.CmdPal.Ext.System.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Microsoft.CmdPal.Ext.System.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Microsoft.CmdPal.Ext.System.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Microsoft.CmdPal.Ext.System.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/OpenInShellCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/OpenInShellCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/OpenInShellCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/OpenInShellCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Pages/SystemCommandPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Pages/SystemCommandPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Pages/SystemCommandPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Pages/SystemCommandPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/SystemCommandExtensionProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/SystemCommandExtensionProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/SystemCommandExtensionProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/SystemCommandExtensionProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/SystemCommandsCache.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/SystemCommandsCache.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.System/SystemCommandsCache.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.System/SystemCommandsCache.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Assets/TimeDate.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Assets/TimeDate.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Assets/TimeDate.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Assets/TimeDate.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Assets/TimeDate.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Assets/TimeDate.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Assets/TimeDate.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Assets/TimeDate.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Assets/Warning.dark.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Assets/Warning.dark.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Assets/Warning.dark.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Assets/Warning.dark.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Assets/Warning.light.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Assets/Warning.light.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Assets/Warning.light.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Assets/Warning.light.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/AvailableResult.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/AvailableResult.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/AvailableResult.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/AvailableResult.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/AvailableResultsList.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/AvailableResultsList.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/AvailableResultsList.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/AvailableResultsList.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/ResultHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/ResultHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/ResultHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/ResultHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/SettingsManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/SettingsManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/SettingsManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/SettingsManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/TimeAndDateHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/TimeAndDateHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/TimeAndDateHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/TimeAndDateHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/TimeDateCalculator.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/TimeDateCalculator.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Helpers/TimeDateCalculator.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Helpers/TimeDateCalculator.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Microsoft.CmdPal.Ext.TimeDate.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Microsoft.CmdPal.Ext.TimeDate.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Microsoft.CmdPal.Ext.TimeDate.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Microsoft.CmdPal.Ext.TimeDate.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Pages/TimeDateExtensionPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Pages/TimeDateExtensionPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Pages/TimeDateExtensionPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Pages/TimeDateExtensionPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/TimeDateCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/TimeDateCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.TimeDate/TimeDateCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.TimeDate/TimeDateCommandsProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Assets/WebSearch.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Assets/WebSearch.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Assets/WebSearch.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Assets/WebSearch.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Assets/WebSearch.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Assets/WebSearch.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Assets/WebSearch.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Assets/WebSearch.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Commands/OpenURLCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Commands/OpenURLCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Commands/OpenURLCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Commands/OpenURLCommand.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WebSearch/Commands/SearchWebCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Commands/SearchWebCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WebSearch/Commands/SearchWebCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Commands/SearchWebCommand.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WebSearch/FallbackExecuteSearchItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/FallbackExecuteSearchItem.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WebSearch/FallbackExecuteSearchItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/FallbackExecuteSearchItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/FallbackOpenURLItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/FallbackOpenURLItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/FallbackOpenURLItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/FallbackOpenURLItem.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WebSearch/Helpers/DefaultBrowserInfo.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Helpers/DefaultBrowserInfo.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WebSearch/Helpers/DefaultBrowserInfo.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Helpers/DefaultBrowserInfo.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Helpers/HistoryItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Helpers/HistoryItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Helpers/HistoryItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Helpers/HistoryItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Helpers/SettingsManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Helpers/SettingsManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Helpers/SettingsManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Helpers/SettingsManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Microsoft.CmdPal.Ext.WebSearch.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Microsoft.CmdPal.Ext.WebSearch.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Microsoft.CmdPal.Ext.WebSearch.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Microsoft.CmdPal.Ext.WebSearch.csproj diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WebSearch/NativeMethods.txt b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/NativeMethods.txt similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WebSearch/NativeMethods.txt rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/NativeMethods.txt diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Pages/WebSearchListPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Pages/WebSearchListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Pages/WebSearchListPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Pages/WebSearchListPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/WebSearchCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/WebSearchCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/WebSearchCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/WebSearchCommandsProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/WebSearchTopLevelCommandItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/WebSearchTopLevelCommandItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WebSearch/WebSearchTopLevelCommandItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WebSearch/WebSearchTopLevelCommandItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Extension.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Extension.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Extension.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Extension.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Extension.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Extension.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Extension.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Extension.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Store.dark.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Store.dark.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Store.dark.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Store.dark.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Store.dark.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Store.dark.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Store.dark.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Store.dark.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Store.light.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Store.light.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Store.light.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Store.light.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Store.light.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Store.light.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/Store.light.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/Store.light.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/WinGet.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/WinGet.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/WinGet.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/WinGet.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/WinGet.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/WinGet.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WinGet/Assets/WinGet.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Assets/WinGet.svg diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Microsoft.CmdPal.Ext.WinGet.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Microsoft.CmdPal.Ext.WinGet.csproj similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Microsoft.CmdPal.Ext.WinGet.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Microsoft.CmdPal.Ext.WinGet.csproj diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/NativeMethods.txt b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/NativeMethods.txt similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/NativeMethods.txt rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/NativeMethods.txt diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Pages/InstallPackageCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Pages/InstallPackageCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Pages/InstallPackageCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Pages/InstallPackageCommand.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Pages/InstallPackageListItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Pages/InstallPackageListItem.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Pages/InstallPackageListItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Pages/InstallPackageListItem.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Pages/WinGetExtensionPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Pages/WinGetExtensionPage.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Pages/WinGetExtensionPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Pages/WinGetExtensionPage.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/Properties/Resources.resx diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WinGetExtensionCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WinGetExtensionCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WinGetExtensionCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WinGetExtensionCommandsProvider.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WinGetExtensionHost.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WinGetExtensionHost.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WinGetExtensionHost.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WinGetExtensionHost.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WinGetStatics.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WinGetStatics.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WinGetStatics.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WinGetStatics.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClassModel.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClassModel.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClassModel.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClassModel.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClassesDefinition.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClassesDefinition.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClassesDefinition.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClassesDefinition.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClsidContext.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClsidContext.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClsidContext.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/ClsidContext.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/WindowsPackageManagerFactory.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/WindowsPackageManagerFactory.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/WindowsPackageManagerFactory.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/WindowsPackageManagerFactory.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/WindowsPackageManagerStandardFactory.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/WindowsPackageManagerStandardFactory.cs similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/WindowsPackageManagerStandardFactory.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/WindowsPackageManager.Interop/WindowsPackageManagerStandardFactory.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/app.manifest b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/app.manifest similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WinGet/app.manifest rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WinGet/app.manifest diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Assets/WindowWalker.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Assets/WindowWalker.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Assets/WindowWalker.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Assets/WindowWalker.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Assets/WindowWalker.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Assets/WindowWalker.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Assets/WindowWalker.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Assets/WindowWalker.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/CloseWindowCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Commands/CloseWindowCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/CloseWindowCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Commands/CloseWindowCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/ExplorerInfoResultCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Commands/ExplorerInfoResultCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/ExplorerInfoResultCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Commands/ExplorerInfoResultCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/KillProcessCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Commands/KillProcessCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/KillProcessCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Commands/KillProcessCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/SwitchToWindowCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Commands/SwitchToWindowCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Commands/SwitchToWindowCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Commands/SwitchToWindowCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/ContextMenuHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/ContextMenuHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/ContextMenuHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/ContextMenuHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/FuzzyMatching.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/FuzzyMatching.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/FuzzyMatching.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/FuzzyMatching.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/LivePreview.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/LivePreview.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/LivePreview.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/LivePreview.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/OpenWindows.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/OpenWindows.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/OpenWindows.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/OpenWindows.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/ResultHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/ResultHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/ResultHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/ResultHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchController.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchController.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchController.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchController.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchResult.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchResult.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchResult.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchResult.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchString.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchString.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchString.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/SearchString.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/Window.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/Window.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/Window.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/Window.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/WindowProcess.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/WindowProcess.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Components/WindowProcess.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Components/WindowProcess.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/CVirtualDesktopManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/CVirtualDesktopManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/CVirtualDesktopManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/CVirtualDesktopManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/IVirtualDesktopManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/IVirtualDesktopManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/IVirtualDesktopManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/IVirtualDesktopManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/NativeMethods.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/NativeMethods.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/NativeMethods.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/NativeMethods.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/OSVersionHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/OSVersionHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/OSVersionHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/OSVersionHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/SettingsManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/SettingsManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/SettingsManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/SettingsManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/ShellCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/ShellCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/ShellCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/ShellCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/VDesktop.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/VDesktop.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/VDesktop.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/VDesktop.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/VirtualDesktopHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/VirtualDesktopHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/VirtualDesktopHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/VirtualDesktopHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/Win32Helpers.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/Win32Helpers.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Helpers/Win32Helpers.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Helpers/Win32Helpers.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Microsoft.CmdPal.Ext.WindowWalker.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Microsoft.CmdPal.Ext.WindowWalker.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Microsoft.CmdPal.Ext.WindowWalker.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Microsoft.CmdPal.Ext.WindowWalker.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Pages/WindowWalkerListPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Pages/WindowWalkerListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Pages/WindowWalkerListPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Pages/WindowWalkerListPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerCommandsProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerListItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerListItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerListItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowWalker/WindowWalkerListItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Action.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Action.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Action.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Action.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Assets/Services.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/Services.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Assets/Services.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/Services.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Assets/Services.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/Services.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Assets/Services.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/Services.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Commands/OpenServicesCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Commands/OpenServicesCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Commands/OpenServicesCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Commands/OpenServicesCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Commands/RestartServiceCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Commands/RestartServiceCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Commands/RestartServiceCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Commands/RestartServiceCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Commands/ServiceCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Commands/ServiceCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Commands/ServiceCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Commands/ServiceCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Helpers/ServiceHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Helpers/ServiceHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Helpers/ServiceHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Helpers/ServiceHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Microsoft.CmdPal.Ext.WindowsServices.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Microsoft.CmdPal.Ext.WindowsServices.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Microsoft.CmdPal.Ext.WindowsServices.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Microsoft.CmdPal.Ext.WindowsServices.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Pages/ServicesListPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Pages/ServicesListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Pages/ServicesListPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Pages/ServicesListPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/ServiceResult.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/ServiceResult.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/ServiceResult.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/ServiceResult.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/WindowsServicesCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/WindowsServicesCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsServices/WindowsServicesCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/WindowsServicesCommandsProvider.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Assets/WindowsSettings.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Assets/WindowsSettings.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Assets/WindowsSettings.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Assets/WindowsSettings.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Assets/WindowsSettings.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Assets/WindowsSettings.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Assets/WindowsSettings.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Assets/WindowsSettings.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Classes/WindowsSetting.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Classes/WindowsSetting.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Classes/WindowsSetting.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Classes/WindowsSetting.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Classes/WindowsSettings.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Classes/WindowsSettings.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Classes/WindowsSettings.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Classes/WindowsSettings.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Commands/CopySettingCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Commands/CopySettingCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Commands/CopySettingCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Commands/CopySettingCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Commands/OpenSettingsCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Commands/OpenSettingsCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Commands/OpenSettingsCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Commands/OpenSettingsCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/ContextMenuHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/ContextMenuHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/ContextMenuHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/ContextMenuHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/JsonSettingsListHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/JsonSettingsListHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/JsonSettingsListHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/JsonSettingsListHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/ResultHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/ResultHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/ResultHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/ResultHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/TranslationHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/TranslationHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/TranslationHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/TranslationHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/UnsupportedSettingsHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/UnsupportedSettingsHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/UnsupportedSettingsHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/UnsupportedSettingsHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/WindowsSettingsPathHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/WindowsSettingsPathHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/WindowsSettingsPathHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Helpers/WindowsSettingsPathHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Images/WindowsSettings.dark.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Images/WindowsSettings.dark.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Images/WindowsSettings.dark.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Images/WindowsSettings.dark.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Images/WindowsSettings.light.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Images/WindowsSettings.light.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Images/WindowsSettings.light.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Images/WindowsSettings.light.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Microsoft.CmdPal.Ext.WindowsSettings.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Microsoft.CmdPal.Ext.WindowsSettings.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Microsoft.CmdPal.Ext.WindowsSettings.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Microsoft.CmdPal.Ext.WindowsSettings.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Pages/WindowsSettingsListPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Pages/WindowsSettingsListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Pages/WindowsSettingsListPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Pages/WindowsSettingsListPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettings.json b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettings.json similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettings.json rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettings.json diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettings.schema.json b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettings.schema.json similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettings.schema.json rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettings.schema.json diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettingsCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettingsCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettingsCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsSettings/WindowsSettingsCommandsProvider.cs diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.dark.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.dark.png similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.dark.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.dark.png diff --git a/src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.light.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.light.png similarity index 100% rename from src/modules/cmdpal/exts/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.light.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.light.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.png similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.png rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.png diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.svg b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.svg similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.svg rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Assets/WindowsTerminal.svg diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Commands/LaunchProfileAsAdminCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Commands/LaunchProfileAsAdminCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Commands/LaunchProfileAsAdminCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Commands/LaunchProfileAsAdminCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Commands/LaunchProfileCommand.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Commands/LaunchProfileCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Commands/LaunchProfileCommand.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Commands/LaunchProfileCommand.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/ApplicationActivationManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/ApplicationActivationManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/ApplicationActivationManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/ApplicationActivationManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/IApplicationActivationManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/IApplicationActivationManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/IApplicationActivationManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/IApplicationActivationManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/ITerminalQuery.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/ITerminalQuery.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/ITerminalQuery.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/ITerminalQuery.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/SettingsManager.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/SettingsManager.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/SettingsManager.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/SettingsManager.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalHelper.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalHelper.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalHelper.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalQuery.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalQuery.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalQuery.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Helpers/TerminalQuery.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Microsoft.CmdPal.Ext.WindowsTerminal.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Microsoft.CmdPal.Ext.WindowsTerminal.csproj similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Microsoft.CmdPal.Ext.WindowsTerminal.csproj rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Microsoft.CmdPal.Ext.WindowsTerminal.csproj diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Pages/ProfilesListPage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Pages/ProfilesListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Pages/ProfilesListPage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Pages/ProfilesListPage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Properties/Resources.Designer.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Properties/Resources.Designer.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Properties/Resources.Designer.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Properties/Resources.resx similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/Properties/Resources.resx rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/Properties/Resources.resx diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalPackage.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalPackage.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalPackage.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalPackage.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalProfile.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalProfile.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalProfile.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalProfile.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalTopLevelCommandItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalTopLevelCommandItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalTopLevelCommandItem.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/TerminalTopLevelCommandItem.cs diff --git a/src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/WindowsTerminalCommandsProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/WindowsTerminalCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/Microsoft.CmdPal.Ext.WindowsTerminal/WindowsTerminalCommandsProvider.cs rename to src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsTerminal/WindowsTerminalCommandsProvider.cs diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/LockScreenLogo.scale-200.png b/src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/LockScreenLogo.scale-200.png similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/LockScreenLogo.scale-200.png rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/LockScreenLogo.scale-200.png diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/SplashScreen.scale-200.png b/src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/SplashScreen.scale-200.png similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/SplashScreen.scale-200.png rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/SplashScreen.scale-200.png diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/Square150x150Logo.scale-200.png b/src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/Square150x150Logo.scale-200.png similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/Square150x150Logo.scale-200.png rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/Square150x150Logo.scale-200.png diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/Square44x44Logo.scale-200.png b/src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/Square44x44Logo.scale-200.png similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/Square44x44Logo.scale-200.png rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/Square44x44Logo.scale-200.png diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/Square44x44Logo.targetsize-24_altform-unplated.png similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/Square44x44Logo.targetsize-24_altform-unplated.png rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/Square44x44Logo.targetsize-24_altform-unplated.png diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/StoreLogo.png b/src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/StoreLogo.png similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/StoreLogo.png rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/StoreLogo.png diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/Wide310x150Logo.scale-200.png b/src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/Wide310x150Logo.scale-200.png similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Assets/Wide310x150Logo.scale-200.png rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Assets/Wide310x150Logo.scale-200.png diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Package.appxmanifest b/src/modules/cmdpal/ext/ProcessMonitorExtension/Package.appxmanifest similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Package.appxmanifest rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Package.appxmanifest diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/ProcessItem.cs b/src/modules/cmdpal/ext/ProcessMonitorExtension/ProcessItem.cs similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/ProcessItem.cs rename to src/modules/cmdpal/ext/ProcessMonitorExtension/ProcessItem.cs diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/ProcessListPage.cs b/src/modules/cmdpal/ext/ProcessMonitorExtension/ProcessListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/ProcessListPage.cs rename to src/modules/cmdpal/ext/ProcessMonitorExtension/ProcessListPage.cs diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/ProcessMonitorCommandProvider.cs b/src/modules/cmdpal/ext/ProcessMonitorExtension/ProcessMonitorCommandProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/ProcessMonitorCommandProvider.cs rename to src/modules/cmdpal/ext/ProcessMonitorExtension/ProcessMonitorCommandProvider.cs diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/ProcessMonitorExtension.csproj b/src/modules/cmdpal/ext/ProcessMonitorExtension/ProcessMonitorExtension.csproj similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/ProcessMonitorExtension.csproj rename to src/modules/cmdpal/ext/ProcessMonitorExtension/ProcessMonitorExtension.csproj diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Program.cs b/src/modules/cmdpal/ext/ProcessMonitorExtension/Program.cs similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Program.cs rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Program.cs diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Properties/PublishProfiles/win-arm64.pubxml b/src/modules/cmdpal/ext/ProcessMonitorExtension/Properties/PublishProfiles/win-arm64.pubxml similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Properties/PublishProfiles/win-arm64.pubxml rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Properties/PublishProfiles/win-arm64.pubxml diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Properties/PublishProfiles/win-x64.pubxml b/src/modules/cmdpal/ext/ProcessMonitorExtension/Properties/PublishProfiles/win-x64.pubxml similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Properties/PublishProfiles/win-x64.pubxml rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Properties/PublishProfiles/win-x64.pubxml diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/Properties/launchSettings.json b/src/modules/cmdpal/ext/ProcessMonitorExtension/Properties/launchSettings.json similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/Properties/launchSettings.json rename to src/modules/cmdpal/ext/ProcessMonitorExtension/Properties/launchSettings.json diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/SampleExtension.cs b/src/modules/cmdpal/ext/ProcessMonitorExtension/SampleExtension.cs similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/SampleExtension.cs rename to src/modules/cmdpal/ext/ProcessMonitorExtension/SampleExtension.cs diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/SwitchToProcess.cs b/src/modules/cmdpal/ext/ProcessMonitorExtension/SwitchToProcess.cs similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/SwitchToProcess.cs rename to src/modules/cmdpal/ext/ProcessMonitorExtension/SwitchToProcess.cs diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/TerminateProcess.cs b/src/modules/cmdpal/ext/ProcessMonitorExtension/TerminateProcess.cs similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/TerminateProcess.cs rename to src/modules/cmdpal/ext/ProcessMonitorExtension/TerminateProcess.cs diff --git a/src/modules/cmdpal/Exts/ProcessMonitorExtension/app.manifest b/src/modules/cmdpal/ext/ProcessMonitorExtension/app.manifest similarity index 100% rename from src/modules/cmdpal/Exts/ProcessMonitorExtension/app.manifest rename to src/modules/cmdpal/ext/ProcessMonitorExtension/app.manifest diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Assets/LockScreenLogo.scale-200.png b/src/modules/cmdpal/ext/SamplePagesExtension/Assets/LockScreenLogo.scale-200.png similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Assets/LockScreenLogo.scale-200.png rename to src/modules/cmdpal/ext/SamplePagesExtension/Assets/LockScreenLogo.scale-200.png diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Assets/SplashScreen.scale-200.png b/src/modules/cmdpal/ext/SamplePagesExtension/Assets/SplashScreen.scale-200.png similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Assets/SplashScreen.scale-200.png rename to src/modules/cmdpal/ext/SamplePagesExtension/Assets/SplashScreen.scale-200.png diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Assets/Square150x150Logo.scale-200.png b/src/modules/cmdpal/ext/SamplePagesExtension/Assets/Square150x150Logo.scale-200.png similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Assets/Square150x150Logo.scale-200.png rename to src/modules/cmdpal/ext/SamplePagesExtension/Assets/Square150x150Logo.scale-200.png diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Assets/Square44x44Logo.scale-200.png b/src/modules/cmdpal/ext/SamplePagesExtension/Assets/Square44x44Logo.scale-200.png similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Assets/Square44x44Logo.scale-200.png rename to src/modules/cmdpal/ext/SamplePagesExtension/Assets/Square44x44Logo.scale-200.png diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Assets/Square44x44Logo.targetsize-24_altform-unplated.png b/src/modules/cmdpal/ext/SamplePagesExtension/Assets/Square44x44Logo.targetsize-24_altform-unplated.png similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Assets/Square44x44Logo.targetsize-24_altform-unplated.png rename to src/modules/cmdpal/ext/SamplePagesExtension/Assets/Square44x44Logo.targetsize-24_altform-unplated.png diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Assets/StoreLogo.png b/src/modules/cmdpal/ext/SamplePagesExtension/Assets/StoreLogo.png similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Assets/StoreLogo.png rename to src/modules/cmdpal/ext/SamplePagesExtension/Assets/StoreLogo.png diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Assets/Wide310x150Logo.scale-200.png b/src/modules/cmdpal/ext/SamplePagesExtension/Assets/Wide310x150Logo.scale-200.png similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Assets/Wide310x150Logo.scale-200.png rename to src/modules/cmdpal/ext/SamplePagesExtension/Assets/Wide310x150Logo.scale-200.png diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/EvilSampleListPage.cs b/src/modules/cmdpal/ext/SamplePagesExtension/EvilSampleListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/EvilSampleListPage.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/EvilSampleListPage.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/EvilSamplesPage.cs b/src/modules/cmdpal/ext/SamplePagesExtension/EvilSamplesPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/EvilSamplesPage.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/EvilSamplesPage.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/ExplodeInFiveSeconds.cs b/src/modules/cmdpal/ext/SamplePagesExtension/ExplodeInFiveSeconds.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/ExplodeInFiveSeconds.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/ExplodeInFiveSeconds.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Package.appxmanifest b/src/modules/cmdpal/ext/SamplePagesExtension/Package.appxmanifest similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Package.appxmanifest rename to src/modules/cmdpal/ext/SamplePagesExtension/Package.appxmanifest diff --git a/src/modules/cmdpal/exts/SamplePagesExtension/Pages/SampleCommentsPage.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleCommentsPage.cs similarity index 100% rename from src/modules/cmdpal/exts/SamplePagesExtension/Pages/SampleCommentsPage.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleCommentsPage.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleContentPage.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleContentPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleContentPage.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleContentPage.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleDynamicListPage.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleDynamicListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleDynamicListPage.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleDynamicListPage.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleListPage.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleListPage.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleListPage.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleListPageWithDetails.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleListPageWithDetails.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleListPageWithDetails.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleListPageWithDetails.cs diff --git a/src/modules/cmdpal/exts/SamplePagesExtension/Pages/SampleMarkdownDetails.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleMarkdownDetails.cs similarity index 100% rename from src/modules/cmdpal/exts/SamplePagesExtension/Pages/SampleMarkdownDetails.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleMarkdownDetails.cs diff --git a/src/modules/cmdpal/exts/SamplePagesExtension/Pages/SampleMarkdownManyBodies.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleMarkdownManyBodies.cs similarity index 100% rename from src/modules/cmdpal/exts/SamplePagesExtension/Pages/SampleMarkdownManyBodies.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleMarkdownManyBodies.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleMarkdownPage.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleMarkdownPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleMarkdownPage.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleMarkdownPage.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleSettingsPage.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleSettingsPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Pages/SampleSettingsPage.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Pages/SampleSettingsPage.cs diff --git a/src/modules/cmdpal/exts/SamplePagesExtension/Pages/SendMessageCommand.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Pages/SendMessageCommand.cs similarity index 100% rename from src/modules/cmdpal/exts/SamplePagesExtension/Pages/SendMessageCommand.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Pages/SendMessageCommand.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Program.cs b/src/modules/cmdpal/ext/SamplePagesExtension/Program.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Program.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/Program.cs diff --git a/src/modules/cmdpal/exts/SamplePagesExtension/Properties/PublishProfiles/win-arm64.pubxml b/src/modules/cmdpal/ext/SamplePagesExtension/Properties/PublishProfiles/win-arm64.pubxml similarity index 100% rename from src/modules/cmdpal/exts/SamplePagesExtension/Properties/PublishProfiles/win-arm64.pubxml rename to src/modules/cmdpal/ext/SamplePagesExtension/Properties/PublishProfiles/win-arm64.pubxml diff --git a/src/modules/cmdpal/exts/SamplePagesExtension/Properties/PublishProfiles/win-x64.pubxml b/src/modules/cmdpal/ext/SamplePagesExtension/Properties/PublishProfiles/win-x64.pubxml similarity index 100% rename from src/modules/cmdpal/exts/SamplePagesExtension/Properties/PublishProfiles/win-x64.pubxml rename to src/modules/cmdpal/ext/SamplePagesExtension/Properties/PublishProfiles/win-x64.pubxml diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/Properties/launchSettings.json b/src/modules/cmdpal/ext/SamplePagesExtension/Properties/launchSettings.json similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/Properties/launchSettings.json rename to src/modules/cmdpal/ext/SamplePagesExtension/Properties/launchSettings.json diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/SampleExtension.cs b/src/modules/cmdpal/ext/SamplePagesExtension/SampleExtension.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/SampleExtension.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/SampleExtension.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/SamplePagesCommandsProvider.cs b/src/modules/cmdpal/ext/SamplePagesExtension/SamplePagesCommandsProvider.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/SamplePagesCommandsProvider.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/SamplePagesCommandsProvider.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/SamplePagesExtension.csproj b/src/modules/cmdpal/ext/SamplePagesExtension/SamplePagesExtension.csproj similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/SamplePagesExtension.csproj rename to src/modules/cmdpal/ext/SamplePagesExtension/SamplePagesExtension.csproj diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/SampleUpdatingItemsPage.cs b/src/modules/cmdpal/ext/SamplePagesExtension/SampleUpdatingItemsPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/SampleUpdatingItemsPage.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/SampleUpdatingItemsPage.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/SamplesListPage.cs b/src/modules/cmdpal/ext/SamplePagesExtension/SamplesListPage.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/SamplesListPage.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/SamplesListPage.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/SelfImmolateCommand.cs b/src/modules/cmdpal/ext/SamplePagesExtension/SelfImmolateCommand.cs similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/SelfImmolateCommand.cs rename to src/modules/cmdpal/ext/SamplePagesExtension/SelfImmolateCommand.cs diff --git a/src/modules/cmdpal/Exts/SamplePagesExtension/app.manifest b/src/modules/cmdpal/ext/SamplePagesExtension/app.manifest similarity index 100% rename from src/modules/cmdpal/Exts/SamplePagesExtension/app.manifest rename to src/modules/cmdpal/ext/SamplePagesExtension/app.manifest From d3c4e808d039aed4217d534ebd233211630d2374 Mon Sep 17 00:00:00 2001 From: Clint Rutkas Date: Tue, 15 Apr 2025 18:57:58 +0000 Subject: [PATCH 21/26] Upgrading Boost dependencies (#38782) Upgrading Boost --- .../powerrename/PowerRenameUILib/PowerRenameUI.vcxproj | 8 ++++---- src/modules/powerrename/PowerRenameUILib/packages.config | 4 ++-- src/modules/powerrename/dll/PowerRenameExt.vcxproj | 8 ++++---- src/modules/powerrename/dll/packages.config | 4 ++-- src/modules/powerrename/lib/PowerRenameLib.vcxproj | 8 ++++---- src/modules/powerrename/lib/packages.config | 4 ++-- src/modules/powerrename/testapp/PowerRenameTest.vcxproj | 8 ++++---- src/modules/powerrename/testapp/packages.config | 4 ++-- .../powerrename/unittests/PowerRenameLibUnitTests.vcxproj | 8 ++++---- src/modules/powerrename/unittests/packages.config | 4 ++-- 10 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/modules/powerrename/PowerRenameUILib/PowerRenameUI.vcxproj b/src/modules/powerrename/PowerRenameUILib/PowerRenameUI.vcxproj index 1421778986..40bbb7a682 100644 --- a/src/modules/powerrename/PowerRenameUILib/PowerRenameUI.vcxproj +++ b/src/modules/powerrename/PowerRenameUILib/PowerRenameUI.vcxproj @@ -204,12 +204,12 @@ - - + + @@ -217,14 +217,14 @@ - - + + diff --git a/src/modules/powerrename/PowerRenameUILib/packages.config b/src/modules/powerrename/PowerRenameUILib/packages.config index 893bd804ad..c8aa0dc6df 100644 --- a/src/modules/powerrename/PowerRenameUILib/packages.config +++ b/src/modules/powerrename/PowerRenameUILib/packages.config @@ -1,7 +1,7 @@  - - + + diff --git a/src/modules/powerrename/dll/PowerRenameExt.vcxproj b/src/modules/powerrename/dll/PowerRenameExt.vcxproj index ead9518f35..32484c75b6 100644 --- a/src/modules/powerrename/dll/PowerRenameExt.vcxproj +++ b/src/modules/powerrename/dll/PowerRenameExt.vcxproj @@ -77,8 +77,8 @@ - - + + @@ -86,7 +86,7 @@ - - + + \ No newline at end of file diff --git a/src/modules/powerrename/dll/packages.config b/src/modules/powerrename/dll/packages.config index ecc3202cd3..dbb70a80f2 100644 --- a/src/modules/powerrename/dll/packages.config +++ b/src/modules/powerrename/dll/packages.config @@ -1,6 +1,6 @@  - - + + \ No newline at end of file diff --git a/src/modules/powerrename/lib/PowerRenameLib.vcxproj b/src/modules/powerrename/lib/PowerRenameLib.vcxproj index d55c7b4b77..103eab8e8e 100644 --- a/src/modules/powerrename/lib/PowerRenameLib.vcxproj +++ b/src/modules/powerrename/lib/PowerRenameLib.vcxproj @@ -79,8 +79,8 @@ - - + + @@ -88,7 +88,7 @@ - - + + \ No newline at end of file diff --git a/src/modules/powerrename/lib/packages.config b/src/modules/powerrename/lib/packages.config index ecc3202cd3..dbb70a80f2 100644 --- a/src/modules/powerrename/lib/packages.config +++ b/src/modules/powerrename/lib/packages.config @@ -1,6 +1,6 @@  - - + + \ No newline at end of file diff --git a/src/modules/powerrename/testapp/PowerRenameTest.vcxproj b/src/modules/powerrename/testapp/PowerRenameTest.vcxproj index 616f8e70a4..ce2795710a 100644 --- a/src/modules/powerrename/testapp/PowerRenameTest.vcxproj +++ b/src/modules/powerrename/testapp/PowerRenameTest.vcxproj @@ -67,8 +67,8 @@ - - + + @@ -76,7 +76,7 @@ - - + + \ No newline at end of file diff --git a/src/modules/powerrename/testapp/packages.config b/src/modules/powerrename/testapp/packages.config index ecc3202cd3..dbb70a80f2 100644 --- a/src/modules/powerrename/testapp/packages.config +++ b/src/modules/powerrename/testapp/packages.config @@ -1,6 +1,6 @@  - - + + \ No newline at end of file diff --git a/src/modules/powerrename/unittests/PowerRenameLibUnitTests.vcxproj b/src/modules/powerrename/unittests/PowerRenameLibUnitTests.vcxproj index 56976c1877..4c1b5d26af 100644 --- a/src/modules/powerrename/unittests/PowerRenameLibUnitTests.vcxproj +++ b/src/modules/powerrename/unittests/PowerRenameLibUnitTests.vcxproj @@ -77,8 +77,8 @@ - - + + @@ -86,7 +86,7 @@ - - + + \ No newline at end of file diff --git a/src/modules/powerrename/unittests/packages.config b/src/modules/powerrename/unittests/packages.config index ecc3202cd3..dbb70a80f2 100644 --- a/src/modules/powerrename/unittests/packages.config +++ b/src/modules/powerrename/unittests/packages.config @@ -1,6 +1,6 @@  - - + + \ No newline at end of file From f15bed5323f6b0f022a960c188444c2dbc606fb9 Mon Sep 17 00:00:00 2001 From: Clint Rutkas Date: Tue, 15 Apr 2025 18:58:33 +0000 Subject: [PATCH 22/26] upgrading toolkit + suppressing warnings (#38746) * upgrade toolkit to latest * supressing warnings * Update expect.txt making generic * Update suppression comments for AOT compatibility * Fix case for 'MVVMTK' in spell-check file * Update NOTICE.md --- Directory.Packages.props | 16 ++++++++-------- NOTICE.md | 16 ++++++++-------- src/codeAnalysis/GlobalSuppressions.cs | 12 ++++++++++-- 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/Directory.Packages.props b/Directory.Packages.props index 8df1437546..4393655dab 100644 --- a/Directory.Packages.props +++ b/Directory.Packages.props @@ -10,14 +10,14 @@ - - - - - - - - + + + + + + + + diff --git a/NOTICE.md b/NOTICE.md index b8bd5ae8e5..83a24ef185 100644 --- a/NOTICE.md +++ b/NOTICE.md @@ -1400,14 +1400,14 @@ SOFTWARE. - Azure.AI.OpenAI 1.0.0-beta.17 - CommunityToolkit.Common 8.4.0 - CommunityToolkit.Mvvm 8.4.0 -- CommunityToolkit.WinUI.Animations 8.2.250129-preview2 -- CommunityToolkit.WinUI.Collections 8.2.250129-preview2 -- CommunityToolkit.WinUI.Controls.Primitives 8.2.250129-preview2 -- CommunityToolkit.WinUI.Controls.Segmented 8.2.250129-preview2 -- CommunityToolkit.WinUI.Controls.SettingsControls 8.2.250129-preview2 -- CommunityToolkit.WinUI.Controls.Sizers 8.2.250129-preview2 -- CommunityToolkit.WinUI.Converters 8.2.250129-preview2 -- CommunityToolkit.WinUI.Extensions 8.2.250129-preview2 +- CommunityToolkit.WinUI.Animations 8.2.250402 +- CommunityToolkit.WinUI.Collections 8.2.250402 +- CommunityToolkit.WinUI.Controls.Primitives 8.2.250402 +- CommunityToolkit.WinUI.Controls.Segmented 8.2.250402 +- CommunityToolkit.WinUI.Controls.SettingsControls 8.2.250402 +- CommunityToolkit.WinUI.Controls.Sizers 8.2.250402 +- CommunityToolkit.WinUI.Converters 8.2.250402 +- CommunityToolkit.WinUI.Extensions 8.2.250402 - CommunityToolkit.WinUI.UI.Controls.DataGrid 7.1.2 - CommunityToolkit.WinUI.UI.Controls.Markdown 7.1.2 - ControlzEx 6.0.0 diff --git a/src/codeAnalysis/GlobalSuppressions.cs b/src/codeAnalysis/GlobalSuppressions.cs index c05e5f8820..d5ff98e548 100644 --- a/src/codeAnalysis/GlobalSuppressions.cs +++ b/src/codeAnalysis/GlobalSuppressions.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. @@ -63,8 +63,16 @@ using System.Diagnostics.CodeAnalysis; [assembly: SuppressMessage("StyleCop.CSharp.NamingRules", "SA1310:Field names should not contain underscore", Justification = "", Scope = "namespaceanddescendants", Target = "MouseWithoutBorders")] [assembly: SuppressMessage("StyleCop.CSharp.DocumentationRules", "SA1649:File name should match first type name", Justification = "", Scope = "namespaceanddescendants", Target = "MouseWithoutBorders")] -// AOT +// AOT MVVMTK0045 +[assembly: SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.ObservablePropertyGenerator", "MVVMTK0045:Using [ObservableProperty] on fields is not AOT compatible for WinRT", Justification = "Updated MVVM toolkit package introduced this.", Scope = "namespaceanddescendants", Target = "AdvancedPaste.ViewModels")] [assembly: SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.ObservablePropertyGenerator", "MVVMTK0045:Using [ObservableProperty] on fields is not AOT compatible for WinRT", Justification = "Updated MVVM toolkit package introduced this.", Scope = "namespaceanddescendants", Target = "HostsUILib")] +[assembly: SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.ObservablePropertyGenerator", "MVVMTK0045:Using [ObservableProperty] on fields is not AOT compatible for WinRT", Justification = "Updated MVVM toolkit package introduced this.", Scope = "namespaceanddescendants", Target = "EnvironmentVariablesUILib")] +[assembly: SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.ObservablePropertyGenerator", "MVVMTK0045:Using [ObservableProperty] on fields is not AOT compatible for WinRT", Justification = "Updated MVVM toolkit package introduced this.", Scope = "namespaceanddescendants", Target = "Peek.FilePreviewer")] [assembly: SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.ObservablePropertyGenerator", "MVVMTK0045:Using [ObservableProperty] on fields is not AOT compatible for WinRT", Justification = "Updated MVVM toolkit package introduced this.", Scope = "namespaceanddescendants", Target = "Peek.UI")] [assembly: SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.ObservablePropertyGenerator", "MVVMTK0045:Using [ObservableProperty] on fields is not AOT compatible for WinRT", Justification = "Updated MVVM toolkit package introduced this.", Scope = "namespaceanddescendants", Target = "Peek.UI.Views")] +[assembly: SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.ObservablePropertyGenerator", "MVVMTK0045:Using [ObservableProperty] on fields is not AOT compatible for WinRT", Justification = "Updated MVVM toolkit package introduced this.", Scope = "namespaceanddescendants", Target = "RegistryPreviewUILib")] + +// AOT MVVMTK0049 +[assembly: SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.ObservablePropertyGenerator", "MVVMTK0049:Using [INotifyPropertyChanged] is not AOT compatible for WinRT", Justification = "Updated MVVM toolkit package introduced this.", Scope = "namespaceanddescendants", Target = "Peek.FilePreviewer")] [assembly: SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.INotifyPropertyChangedGenerator", "MVVMTK0049:Using [INotifyPropertyChanged] is not AOT compatible for WinRT", Justification = "Updated MVVM toolkit package introduced this.", Scope = "type", Target = "~T:Peek.UI.Views.TitleBar")] +[assembly: SuppressMessage("CommunityToolkit.Mvvm.SourceGenerators.ObservablePropertyGenerator", "MVVMTK0049:Using [INotifyPropertyChanged] is not AOT compatible for WinRT", Justification = "Updated MVVM toolkit package introduced this.", Scope = "namespaceanddescendants", Target = "RegistryPreviewUILib")] From 0e98cbd57e5d03221ff8dabecaca78d6db40c87b Mon Sep 17 00:00:00 2001 From: Carlos Zamora Date: Tue, 15 Apr 2025 19:14:23 -0700 Subject: [PATCH 23/26] [CNF] Only enable experimental features if they exist (#37690) --- .../Assets/Settings/Scripts/EnableModule.ps1 | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/settings-ui/Settings.UI/Assets/Settings/Scripts/EnableModule.ps1 b/src/settings-ui/Settings.UI/Assets/Settings/Scripts/EnableModule.ps1 index a2943e4d4e..af6632f98e 100644 --- a/src/settings-ui/Settings.UI/Assets/Settings/Scripts/EnableModule.ps1 +++ b/src/settings-ui/Settings.UI/Assets/Settings/Scripts/EnableModule.ps1 @@ -4,10 +4,17 @@ Param( [string]$scriptPath ) -Write-Host "Enabling experimental feature: PSFeedbackProvider" -Enable-ExperimentalFeature PSFeedbackProvider -Write-Host "Enabling experimental feature: PSCommandNotFoundSuggestion" -Enable-ExperimentalFeature PSCommandNotFoundSuggestion +$experimentalFeatures = Get-ExperimentalFeature; +if ($experimentalFeatures.Name -contains "PSFeedbackProvider") +{ + Write-Host "Enabling experimental feature: PSFeedbackProvider" + Enable-ExperimentalFeature PSFeedbackProvider +} +if ($experimentalFeatures.Name -contains "PSCommandNotFoundSuggestion") +{ + Write-Host "Enabling experimental feature: PSCommandNotFoundSuggestion" + Enable-ExperimentalFeature PSCommandNotFoundSuggestion +} $wingetModules = Get-Module -ListAvailable -Name Microsoft.WinGet.Client if ($wingetModules) { From 4e0db267dc233ad83273d384b5d3dda045231c15 Mon Sep 17 00:00:00 2001 From: Abhyudit <64366765+bitmap4@users.noreply.github.com> Date: Wed, 16 Apr 2025 07:45:03 +0530 Subject: [PATCH 24/26] [PowerRename] Add 12-hour time format patterns with AM/PM support (#30703) (#38723) * [PowerRename][Feature] Add new date/time formatting patterns to GetDatedFileName * [PowerRename][UI] Add date/time shortcut patterns to cheat sheet * [PowerRename][Tests] Add tests for new date/time formatting patterns * [PowerRename] [Refactor] Simplify AM/PM string handling in time patterns --- .../PowerRenameXAML/MainWindow.xaml.cpp | 11 ++++- .../Strings/en-us/Resources.resw | 20 ++++++-- src/modules/powerrename/lib/Helpers.cpp | 32 ++++++++++++- .../unittests/PowerRenameRegExBoostTests.cpp | 48 +++++++++++++++++++ .../unittests/PowerRenameRegExTests.cpp | 48 +++++++++++++++++++ 5 files changed, 152 insertions(+), 7 deletions(-) diff --git a/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.cpp b/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.cpp index 9d5d8497d3..1a6269a8bf 100644 --- a/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.cpp +++ b/src/modules/powerrename/PowerRenameUILib/PowerRenameXAML/MainWindow.xaml.cpp @@ -195,8 +195,15 @@ namespace winrt::PowerRenameUI::implementation m_dateTimeShortcuts.Append(winrt::make(L"$DDD", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_DayNameAbbr").ValueAsString())); m_dateTimeShortcuts.Append(winrt::make(L"$DD", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_DayDigitLZero").ValueAsString())); m_dateTimeShortcuts.Append(winrt::make(L"$D", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_DayDigit").ValueAsString())); - m_dateTimeShortcuts.Append(winrt::make(L"$hh", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_HoursLZero").ValueAsString())); - m_dateTimeShortcuts.Append(winrt::make(L"$h", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_Hours").ValueAsString())); + + m_dateTimeShortcuts.Append(winrt::make(L"$HH", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_Hours12LZero").ValueAsString())); + m_dateTimeShortcuts.Append(winrt::make(L"$H", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_Hours12").ValueAsString())); + m_dateTimeShortcuts.Append(winrt::make(L"$TT", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_AMPMUpperCase").ValueAsString())); + m_dateTimeShortcuts.Append(winrt::make(L"$tt", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_AMPMLowerCase").ValueAsString())); + + m_dateTimeShortcuts.Append(winrt::make(L"$hh", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_Hours24LZero").ValueAsString())); + m_dateTimeShortcuts.Append(winrt::make(L"$h", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_Hours24").ValueAsString())); + m_dateTimeShortcuts.Append(winrt::make(L"$mm", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_MinutesLZero").ValueAsString())); m_dateTimeShortcuts.Append(winrt::make(L"$m", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_Minutes").ValueAsString())); m_dateTimeShortcuts.Append(winrt::make(L"$ss", manager.MainResourceMap().GetValue(L"Resources/DateTimeCheatSheet_SecondsLZero").ValueAsString())); diff --git a/src/modules/powerrename/PowerRenameUILib/Strings/en-us/Resources.resw b/src/modules/powerrename/PowerRenameUILib/Strings/en-us/Resources.resw index c1d55917f7..d528961148 100644 --- a/src/modules/powerrename/PowerRenameUILib/Strings/en-us/Resources.resw +++ b/src/modules/powerrename/PowerRenameUILib/Strings/en-us/Resources.resw @@ -219,11 +219,23 @@ Day of the month as digits without leading zeros for single-digit days. - - Hours with leading zeros for single-digit hours. + + Hours in 12-hour format (01-12) with leading zero. - - Hours without leading zeros for single-digit hours. + + Hours in 12-hour format (1-12) without leading zero. + + + AM/PM indicator in uppercase (AM or PM). + + + AM/PM indicator in lowercase (am or pm). + + + Hours in 24-hour format (00-23) with leading zero. + + + Hours in 24-hour format (0-23) without leading zero. Minutes with leading zeros for single-digit minutes. diff --git a/src/modules/powerrename/lib/Helpers.cpp b/src/modules/powerrename/lib/Helpers.cpp index aeadd8b683..2b6527593e 100644 --- a/src/modules/powerrename/lib/Helpers.cpp +++ b/src/modules/powerrename/lib/Helpers.cpp @@ -248,7 +248,19 @@ HRESULT GetTransformedFileName(_Out_ PWSTR result, UINT cchMax, _In_ PCWSTR sour bool isFileTimeUsed(_In_ PCWSTR source) { bool used = false; - static const std::array patterns = { std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$Y" }, std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$M" }, std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$D" }, std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$h" }, std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$m" }, std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$s" }, std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$f" } }; + static const std::array patterns = { + std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$Y" }, + std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$M" }, + std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$D" }, + std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$h" }, + std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$m" }, + std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$s" }, + std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$f" }, + std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$H" }, + std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$T" }, + std::wregex{ L"(([^\\$]|^)(\\$\\$)*)\\$t" } + }; + for (size_t i = 0; !used && i < patterns.size(); i++) { if (std::regex_search(source, patterns[i])) @@ -275,6 +287,12 @@ HRESULT GetDatedFileName(_Out_ PWSTR result, UINT cchMax, _In_ PCWSTR source, SY StringCchCopy(localeName, LOCALE_NAME_MAX_LENGTH, L"en_US"); } + int hour12 = (fileTime.wHour % 12); + if (hour12 == 0) + { + hour12 = 12; + } + StringCchPrintf(replaceTerm, MAX_PATH, TEXT("%s%04d"), L"$01", fileTime.wYear); res = regex_replace(res, std::wregex(L"(([^\\$]|^)(\\$\\$)*)\\$YYYY"), replaceTerm); @@ -316,6 +334,18 @@ HRESULT GetDatedFileName(_Out_ PWSTR result, UINT cchMax, _In_ PCWSTR source, SY StringCchPrintf(replaceTerm, MAX_PATH, TEXT("%s%d"), L"$01", fileTime.wDay); res = regex_replace(res, std::wregex(L"(([^\\$]|^)(\\$\\$)*)\\$D"), replaceTerm); + StringCchPrintf(replaceTerm, MAX_PATH, TEXT("%s%02d"), L"$01", hour12); + res = regex_replace(res, std::wregex(L"(([^\\$]|^)(\\$\\$)*)\\$HH"), replaceTerm); + + StringCchPrintf(replaceTerm, MAX_PATH, TEXT("%s%d"), L"$01", hour12); + res = regex_replace(res, std::wregex(L"(([^\\$]|^)(\\$\\$)*)\\$H"), replaceTerm); + + StringCchPrintf(replaceTerm, MAX_PATH, TEXT("%s%s"), L"$01", (fileTime.wHour < 12) ? L"AM" : L"PM"); + res = regex_replace(res, std::wregex(L"(([^\\$]|^)(\\$\\$)*)\\$TT"), replaceTerm); + + StringCchPrintf(replaceTerm, MAX_PATH, TEXT("%s%s"), L"$01", (fileTime.wHour < 12) ? L"am" : L"pm"); + res = regex_replace(res, std::wregex(L"(([^\\$]|^)(\\$\\$)*)\\$tt"), replaceTerm); + StringCchPrintf(replaceTerm, MAX_PATH, TEXT("%s%02d"), L"$01", fileTime.wHour); res = regex_replace(res, std::wregex(L"(([^\\$]|^)(\\$\\$)*)\\$hh"), replaceTerm); diff --git a/src/modules/powerrename/unittests/PowerRenameRegExBoostTests.cpp b/src/modules/powerrename/unittests/PowerRenameRegExBoostTests.cpp index 2bff1a4b9c..491852ff88 100644 --- a/src/modules/powerrename/unittests/PowerRenameRegExBoostTests.cpp +++ b/src/modules/powerrename/unittests/PowerRenameRegExBoostTests.cpp @@ -127,5 +127,53 @@ TEST_METHOD(VerifyLookbehind) CoTaskMemFree(result); } } + +TEST_METHOD (Verify12and24HourTimeFormats) +{ + CComPtr renameRegEx; + Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK); + DWORD flags = MatchAllOccurrences | UseRegularExpressions; + Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK); + + struct TimeTestCase { + SYSTEMTIME time; // Input time + PCWSTR formatString; // Format pattern + PCWSTR expectedResult; // Expected output + PCWSTR description; // Description of what we're testing + }; + + struct TimeTestCase testCases[] = { + // Midnight (00:00 / 12:00 AM) + { { 2025, 4, 4, 10, 0, 0, 0, 0 }, L"[$hh:$mm] [$H:$mm $tt]", L"[00:00] [12:00 am]", L"Midnight formatting" }, + + // Noon (12:00 / 12:00 PM) + { { 2025, 4, 4, 10, 12, 0, 0, 0 }, L"[$hh:$mm] [$H:$mm $tt]", L"[12:00] [12:00 pm]", L"Noon formatting" }, + + // 1:05 AM + { { 2025, 4, 4, 10, 1, 5, 0, 0 }, L"[$h:$m] [$H:$m $tt] [$hh:$mm] [$HH:$mm $TT]", + L"[1:5] [1:5 am] [01:05] [01:05 AM]", L"1 AM with various formats" }, + + // 11 PM + { { 2025, 4, 4, 10, 23, 45, 0, 0 }, L"[$h:$m] [$H:$m $tt] [$hh:$mm] [$HH:$mm $TT]", + L"[23:45] [11:45 pm] [23:45] [11:45 PM]", L"11 PM with various formats" }, + + // Mixed formats in complex pattern + { { 2025, 4, 4, 10, 14, 30, 0, 0 }, L"Date: $YYYY-$MM-$DD Time: $hh:$mm (24h) / $H:$mm $tt (12h)", + L"Date: 2025-04-10 Time: 14:30 (24h) / 2:30 pm (12h)", L"Complex combined format" }, + }; + + for (int i = 0; i < ARRAYSIZE(testCases); i++) + { + PWSTR result = nullptr; + Assert::IsTrue(renameRegEx->PutSearchTerm(L"test") == S_OK); + Assert::IsTrue(renameRegEx->PutReplaceTerm(testCases[i].formatString) == S_OK); + Assert::IsTrue(renameRegEx->PutFileTime(testCases[i].time) == S_OK); + unsigned long index = {}; + Assert::IsTrue(renameRegEx->Replace(L"test", &result, index) == S_OK); + Assert::IsTrue(wcscmp(result, testCases[i].expectedResult) == 0, + (std::wstring(L"Failed test case: ") + testCases[i].description).c_str()); + CoTaskMemFree(result); + } +} }; } diff --git a/src/modules/powerrename/unittests/PowerRenameRegExTests.cpp b/src/modules/powerrename/unittests/PowerRenameRegExTests.cpp index 5270f193e2..18a679995a 100644 --- a/src/modules/powerrename/unittests/PowerRenameRegExTests.cpp +++ b/src/modules/powerrename/unittests/PowerRenameRegExTests.cpp @@ -207,5 +207,53 @@ TEST_METHOD(VerifyLookbehindFails) } } +TEST_METHOD (Verify12and24HourTimeFormats) +{ + CComPtr renameRegEx; + Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK); + DWORD flags = MatchAllOccurrences | UseRegularExpressions; + Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK); + + struct TimeTestCase { + SYSTEMTIME time; // Input time + PCWSTR formatString; // Format pattern + PCWSTR expectedResult; // Expected output + PCWSTR description; // Description of what we're testing + }; + + struct TimeTestCase testCases[] = { + // Midnight (00:00 / 12:00 AM) + { { 2025, 4, 4, 10, 0, 0, 0, 0 }, L"[$hh:$mm] [$H:$mm $tt]", L"[00:00] [12:00 am]", L"Midnight formatting" }, + + // Noon (12:00 / 12:00 PM) + { { 2025, 4, 4, 10, 12, 0, 0, 0 }, L"[$hh:$mm] [$H:$mm $tt]", L"[12:00] [12:00 pm]", L"Noon formatting" }, + + // 1:05 AM + { { 2025, 4, 4, 10, 1, 5, 0, 0 }, L"[$h:$m] [$H:$m $tt] [$hh:$mm] [$HH:$mm $TT]", + L"[1:5] [1:5 am] [01:05] [01:05 AM]", L"1 AM with various formats" }, + + // 11 PM + { { 2025, 4, 4, 10, 23, 45, 0, 0 }, L"[$h:$m] [$H:$m $tt] [$hh:$mm] [$HH:$mm $TT]", + L"[23:45] [11:45 pm] [23:45] [11:45 PM]", L"11 PM with various formats" }, + + // Mixed formats in complex pattern + { { 2025, 4, 4, 10, 14, 30, 0, 0 }, L"Date: $YYYY-$MM-$DD Time: $hh:$mm (24h) / $H:$mm $tt (12h)", + L"Date: 2025-04-10 Time: 14:30 (24h) / 2:30 pm (12h)", L"Complex combined format" }, + }; + + for (int i = 0; i < ARRAYSIZE(testCases); i++) + { + PWSTR result = nullptr; + Assert::IsTrue(renameRegEx->PutSearchTerm(L"test") == S_OK); + Assert::IsTrue(renameRegEx->PutReplaceTerm(testCases[i].formatString) == S_OK); + Assert::IsTrue(renameRegEx->PutFileTime(testCases[i].time) == S_OK); + unsigned long index = {}; + Assert::IsTrue(renameRegEx->Replace(L"test", &result, index) == S_OK); + Assert::IsTrue(wcscmp(result, testCases[i].expectedResult) == 0, + (std::wstring(L"Failed test case: ") + testCases[i].description).c_str()); + CoTaskMemFree(result); + } +} + }; } From a16f784011df079b3b4fa0e89b3cdf5b8b9317ce Mon Sep 17 00:00:00 2001 From: Yu Leng <42196638+moooyo@users.noreply.github.com> Date: Wed, 16 Apr 2025 10:17:43 +0800 Subject: [PATCH 25/26] [cmdpal] Fix empty file name issue when create new ext in "Create New Extension" command. (#38864) Co-authored-by: Yu Leng (from Dev Box) --- .../Commands/NewExtensionForm.cs | 37 +++++++++++-------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/Commands/NewExtensionForm.cs b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/Commands/NewExtensionForm.cs index 326b7ac2b3..698faf0335 100644 --- a/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/Commands/NewExtensionForm.cs +++ b/src/modules/cmdpal/Microsoft.CmdPal.UI.ViewModels/Commands/NewExtensionForm.cs @@ -3,6 +3,7 @@ // See the LICENSE file in the project root for more information. using System.IO.Compression; +using System.Text.Json; using System.Text.Json.Nodes; using Microsoft.CommandPalette.Extensions; using Microsoft.CommandPalette.Extensions.Toolkit; @@ -28,69 +29,69 @@ internal sealed partial class NewExtensionForm : NewExtensionFormBase "body": [ { "type": "TextBlock", - "text": "{{Properties.Resources.builtin_create_extension_page_title}}", + "text": {{FormatJsonString(Properties.Resources.builtin_create_extension_page_title)}}, "size": "large" }, { "type": "TextBlock", - "text": "{{Properties.Resources.builtin_create_extension_page_text}}", + "text": {{FormatJsonString(Properties.Resources.builtin_create_extension_page_text)}}, "wrap": true }, { "type": "TextBlock", - "text": "{{Properties.Resources.builtin_create_extension_name_header}}", + "text": {{FormatJsonString(Properties.Resources.builtin_create_extension_name_header)}}, "weight": "bolder", "size": "default" }, { "type": "TextBlock", - "text": "{{Properties.Resources.builtin_create_extension_name_description}}", + "text": {{FormatJsonString(Properties.Resources.builtin_create_extension_name_description)}}, "wrap": true }, { "type": "Input.Text", - "label": "{{Properties.Resources.builtin_create_extension_name_label}}", + "label": {{FormatJsonString(Properties.Resources.builtin_create_extension_name_label)}}, "isRequired": true, - "errorMessage": "{{Properties.Resources.builtin_create_extension_name_required}}", + "errorMessage": {{FormatJsonString(Properties.Resources.builtin_create_extension_name_required)}}, "id": "ExtensionName", "placeholder": "ExtensionName", "regex": "^[^\\s]+$" }, { "type": "TextBlock", - "text": "{{Properties.Resources.builtin_create_extension_display_name_header}}", + "text": {{FormatJsonString(Properties.Resources.builtin_create_extension_display_name_header)}}, "weight": "bolder", "size": "default" }, { "type": "TextBlock", - "text": "{{Properties.Resources.builtin_create_extension_display_name_description}}", + "text": {{FormatJsonString(Properties.Resources.builtin_create_extension_display_name_description)}}, "wrap": true }, { "type": "Input.Text", - "label": "{{Properties.Resources.builtin_create_extension_display_name_label}}", + "label": {{FormatJsonString(Properties.Resources.builtin_create_extension_display_name_label)}}, "isRequired": true, - "errorMessage": "{{Properties.Resources.builtin_create_extension_display_name_required}}", + "errorMessage": {{FormatJsonString(Properties.Resources.builtin_create_extension_display_name_required)}}, "id": "DisplayName", "placeholder": "My new extension" }, { "type": "TextBlock", - "text": "{{Properties.Resources.builtin_create_extension_directory_header}}", + "text": {{FormatJsonString(Properties.Resources.builtin_create_extension_directory_header)}}, "weight": "bolder", "size": "default" }, { "type": "TextBlock", - "text": "{{Properties.Resources.builtin_create_extension_directory_description}}", + "text": {{FormatJsonString(Properties.Resources.builtin_create_extension_directory_description)}}, "wrap": true }, { "type": "Input.Text", - "label": "{{Properties.Resources.builtin_create_extension_directory_label}}", + "label": {{FormatJsonString(Properties.Resources.builtin_create_extension_directory_label)}}, "isRequired": true, - "errorMessage": "{{Properties.Resources.builtin_create_extension_directory_required}}", + "errorMessage": {{FormatJsonString(Properties.Resources.builtin_create_extension_directory_required)}}, "id": "OutputPath", "placeholder": "C:\\users\\me\\dev" } @@ -98,7 +99,7 @@ internal sealed partial class NewExtensionForm : NewExtensionFormBase "actions": [ { "type": "Action.Submit", - "title": "{{Properties.Resources.builtin_create_extension_submit}}", + "title": {{FormatJsonString(Properties.Resources.builtin_create_extension_submit)}}, "associatedInputs": "auto" } ] @@ -192,4 +193,10 @@ internal sealed partial class NewExtensionForm : NewExtensionFormBase // Delete the temp dir Directory.Delete(tempDir, true); } + + private string FormatJsonString(string str) + { + // Escape the string for JSON + return JsonSerializer.Serialize(str); + } } From e700f86acecb5da0821fc1950bd31869c89e76d3 Mon Sep 17 00:00:00 2001 From: Davide Giacometti <25966642+davidegiacometti@users.noreply.github.com> Date: Wed, 16 Apr 2025 05:08:43 +0200 Subject: [PATCH 26/26] [QuickAccent] Fix on-screen keyboard activation (#37581) * fix on-screen keyboard activation * cleanup --- .../KeyboardListener.cpp | 20 ++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/src/modules/poweraccent/PowerAccentKeyboardService/KeyboardListener.cpp b/src/modules/poweraccent/PowerAccentKeyboardService/KeyboardListener.cpp index 6969d7dd58..93fb5c0230 100644 --- a/src/modules/poweraccent/PowerAccentKeyboardService/KeyboardListener.cpp +++ b/src/modules/poweraccent/PowerAccentKeyboardService/KeyboardListener.cpp @@ -169,6 +169,14 @@ namespace winrt::PowerToys::PowerAccentKeyboardService::implementation if (std::find(letters.begin(), letters.end(), letterKey) != cend(letters) && m_isLanguageLetterCb(letterKey)) { + if (m_toolbarVisible && letterPressed == letterKey) + { + // On-screen keyboard continuously sends WM_KEYDOWN when a key is held down + // If Quick Accent is visible, prevent the letter key from being processed + // https://github.com/microsoft/PowerToys/issues/36853 + return true; + } + m_stopwatch.reset(); letterPressed = letterKey; } @@ -282,12 +290,11 @@ namespace winrt::PowerToys::PowerAccentKeyboardService::implementation LRESULT KeyboardListener::LowLevelKeyboardProc(int nCode, WPARAM wParam, LPARAM lParam) { + if (nCode == HC_ACTION && s_instance != nullptr) { - if (nCode == HC_ACTION && s_instance != nullptr) + KBDLLHOOKSTRUCT* key = reinterpret_cast(lParam); + switch (wParam) { - KBDLLHOOKSTRUCT* key = reinterpret_cast(lParam); - switch (wParam) - { case WM_KEYDOWN: { if (s_instance->OnKeyDown(*key)) @@ -304,10 +311,9 @@ namespace winrt::PowerToys::PowerAccentKeyboardService::implementation } } break; - } } - - return CallNextHookEx(NULL, nCode, wParam, lParam); } + + return CallNextHookEx(NULL, nCode, wParam, lParam); } }