cmdpal: add IDs to all PT commands (#45840)

Adds IDs to all the PT extension commands. This will let all the PT
commands be pinned, ala #45191
This commit is contained in:
Mike Griese
2026-03-04 01:25:56 -06:00
committed by GitHub
parent c23ba227b4
commit f6309ac549
31 changed files with 81 additions and 67 deletions

View File

@@ -40,7 +40,7 @@
<!-- Including MessagePack to force version, since it's used by StreamJsonRpc but contains vulnerabilities. After StreamJsonRpc updates the version of MessagePack, we can upgrade StreamJsonRpc instead. -->
<PackageVersion Include="MessagePack" Version="3.1.3" />
<PackageVersion Include="Microsoft.CodeAnalysis.NetAnalyzers" Version="9.0.0" />
<PackageVersion Include="Microsoft.CommandPalette.Extensions" Version="0.5.250829002" />
<PackageVersion Include="Microsoft.CommandPalette.Extensions" Version="0.9.260303001" />
<PackageVersion Include="Microsoft.Data.Sqlite" Version="9.0.10" />
<!-- Including Microsoft.Bcl.AsyncInterfaces to force version, since it's used by Microsoft.SemanticKernel. -->
<PackageVersion Include="Microsoft.Bcl.AsyncInterfaces" Version="9.0.10" />

View File

@@ -24,7 +24,7 @@ internal sealed partial class WorkspaceListItem : ListItem
private static readonly CompositeFormat DaysAgoFormat = CompositeFormat.Parse(Resources.Workspaces_DaysAgo_Format);
public WorkspaceListItem(ProjectWrapper workspace, IconInfo icon)
: base(new LaunchWorkspaceCommand(workspace.Id))
: base(new LaunchWorkspaceCommand(workspace.Id) { Id = $"com.microsoft.powertoys.workspaces.launch.{workspace.Id}" })
{
Title = workspace.Name;
Subtitle = BuildSubtitle(workspace);

View File

@@ -3,7 +3,6 @@
// See the LICENSE file in the project root for more information.
using System;
using Common.Search.FuzzSearch;
using Microsoft.CommandPalette.Extensions;
using Microsoft.CommandPalette.Extensions.Toolkit;
@@ -21,7 +20,7 @@ internal sealed partial class PowerToysFallbackCommandItem : FallbackCommandItem
private readonly Command? _mutableCommand;
public PowerToysFallbackCommandItem(ICommand command, string title, string subtitle, IIconInfo? icon, IContextItem[]? moreCommands)
: base(command, title)
: base(command, title, "com.microsoft.powertoys.fallback")
{
_baseTitle = title ?? string.Empty;
_baseSubtitle = subtitle ?? string.Empty;

View File

@@ -21,7 +21,7 @@ internal sealed class AdvancedPasteModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsModuleEnabled(module))
{
yield return new ListItem(new OpenAdvancedPasteCommand())
yield return new ListItem(new OpenAdvancedPasteCommand() { Id = "com.microsoft.powertoys.advancedPaste.open" })
{
Title = Resources.AdvancedPaste_Open_Title,
Subtitle = Resources.AdvancedPaste_Open_Subtitle,
@@ -29,7 +29,7 @@ internal sealed class AdvancedPasteModuleCommandProvider : ModuleCommandProvider
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.advancedPaste.openSettings" })
{
Title = title,
Subtitle = Resources.AdvancedPaste_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class AlwaysOnTopModuleCommandProvider : ModuleCommandProvider
var title = SettingsWindow.AlwaysOnTop.ModuleDisplayName();
var icon = SettingsWindow.AlwaysOnTop.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.AlwaysOnTop, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.AlwaysOnTop, title) { Id = "com.microsoft.powertoys.alwaysOnTop.openSettings" })
{
Title = title,
Subtitle = Resources.AlwaysOnTop_Settings_Subtitle,

View File

@@ -24,7 +24,7 @@ internal sealed class AwakeModuleCommandProvider : ModuleCommandProvider
var icon = PowerToysResourcesHelper.IconFromSettingsIcon("Awake.png");
var moduleIcon = module.ModuleIcon();
items.Add(new ListItem(new OpenInSettingsCommand(module, title))
items.Add(new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.awake.openSettings" })
{
Title = title,
Subtitle = Resources.Awake_Settings_Subtitle,
@@ -46,7 +46,7 @@ internal sealed class AwakeModuleCommandProvider : ModuleCommandProvider
}
};
var refreshCommand = new RefreshAwakeStatusCommand(refreshStatus);
var refreshCommand = new RefreshAwakeStatusCommand(refreshStatus) { Id = "com.microsoft.powertoys.awake.status" };
statusItem = new ListItem(new CommandItem(refreshCommand))
{
@@ -56,31 +56,31 @@ internal sealed class AwakeModuleCommandProvider : ModuleCommandProvider
};
items.Add(statusItem);
items.Add(new ListItem(new StartAwakeCommand(Resources.Awake_KeepIndefinite_Title, () => AwakeService.Instance.SetIndefiniteAsync(), Resources.Awake_SetIndefinite_Toast, refreshStatus))
items.Add(new ListItem(new StartAwakeCommand(Resources.Awake_KeepIndefinite_Title, () => AwakeService.Instance.SetIndefiniteAsync(), Resources.Awake_SetIndefinite_Toast, refreshStatus) { Id = "com.microsoft.powertoys.awake.keepIndefinite" })
{
Title = Resources.Awake_KeepIndefinite_Title,
Subtitle = Resources.Awake_KeepIndefinite_Subtitle,
Icon = icon,
});
items.Add(new ListItem(new StartAwakeCommand(Resources.Awake_Keep30Min_Title, () => AwakeService.Instance.SetTimedAsync(30), Resources.Awake_Set30Min_Toast, refreshStatus))
items.Add(new ListItem(new StartAwakeCommand(Resources.Awake_Keep30Min_Title, () => AwakeService.Instance.SetTimedAsync(30), Resources.Awake_Set30Min_Toast, refreshStatus) { Id = "com.microsoft.powertoys.awake.keep30Min" })
{
Title = Resources.Awake_Keep30Min_Title,
Subtitle = Resources.Awake_Keep30Min_Subtitle,
Icon = icon,
});
items.Add(new ListItem(new StartAwakeCommand(Resources.Awake_Keep1Hour_Title, () => AwakeService.Instance.SetTimedAsync(60), Resources.Awake_Set1Hour_Toast, refreshStatus))
items.Add(new ListItem(new StartAwakeCommand(Resources.Awake_Keep1Hour_Title, () => AwakeService.Instance.SetTimedAsync(60), Resources.Awake_Set1Hour_Toast, refreshStatus) { Id = "com.microsoft.powertoys.awake.keep1Hour" })
{
Title = Resources.Awake_Keep1Hour_Title,
Subtitle = Resources.Awake_Keep1Hour_Subtitle,
Icon = icon,
});
items.Add(new ListItem(new StartAwakeCommand(Resources.Awake_Keep2Hours_Title, () => AwakeService.Instance.SetTimedAsync(120), Resources.Awake_Set2Hours_Toast, refreshStatus))
items.Add(new ListItem(new StartAwakeCommand(Resources.Awake_Keep2Hours_Title, () => AwakeService.Instance.SetTimedAsync(120), Resources.Awake_Set2Hours_Toast, refreshStatus) { Id = "com.microsoft.powertoys.awake.keep2Hours" })
{
Title = Resources.Awake_Keep2Hours_Title,
Subtitle = Resources.Awake_Keep2Hours_Subtitle,
Icon = icon,
});
items.Add(new ListItem(new StopAwakeCommand(refreshStatus))
items.Add(new ListItem(new StopAwakeCommand(refreshStatus) { Id = "com.microsoft.powertoys.awake.turnOff" })
{
Title = Resources.Awake_TurnOff_Title,
Subtitle = Resources.Awake_TurnOff_Subtitle,

View File

@@ -22,7 +22,7 @@ internal sealed class ColorPickerModuleCommandProvider : ModuleCommandProvider
var commands = new List<ListItem>();
commands.Add(new ListItem(new OpenInSettingsCommand(module, title))
commands.Add(new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.colorPicker.openSettings" })
{
Title = title,
Subtitle = Resources.ColorPicker_Settings_Subtitle,
@@ -35,14 +35,14 @@ internal sealed class ColorPickerModuleCommandProvider : ModuleCommandProvider
}
// Direct entries in the module list.
commands.Add(new ListItem(new OpenColorPickerCommand())
commands.Add(new ListItem(new OpenColorPickerCommand() { Id = "com.microsoft.powertoys.colorPicker.open" })
{
Title = Resources.ColorPicker_Open_Title,
Subtitle = Resources.ColorPicker_Open_Subtitle,
Icon = icon,
});
commands.Add(new ListItem(new CommandItem(new ColorPickerSavedColorsPage()))
commands.Add(new ListItem(new CommandItem(new ColorPickerSavedColorsPage() { Id = "com.microsoft.powertoys.colorPicker.savedColors" }))
{
Title = Resources.ColorPicker_SavedColors_Title,
Subtitle = Resources.ColorPicker_SavedColors_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class CommandNotFoundModuleCommandProvider : ModuleCommandProvid
var title = SettingsWindow.CmdNotFound.ModuleDisplayName();
var icon = SettingsWindow.CmdNotFound.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.CmdNotFound, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.CmdNotFound, title) { Id = "com.microsoft.powertoys.commandNotFound.openSettings" })
{
Title = title,
Subtitle = Resources.CommandNotFound_Settings_Subtitle,

View File

@@ -21,21 +21,21 @@ internal sealed class CropAndLockModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsModuleEnabled(module))
{
yield return new ListItem(new CropAndLockReparentCommand())
yield return new ListItem(new CropAndLockReparentCommand() { Id = "com.microsoft.powertoys.cropAndLock.reparent" })
{
Title = Resources.CropAndLock_Reparent_Title,
Subtitle = Resources.CropAndLock_Reparent_Subtitle,
Icon = icon,
};
yield return new ListItem(new CropAndLockThumbnailCommand())
yield return new ListItem(new CropAndLockThumbnailCommand() { Id = "com.microsoft.powertoys.cropAndLock.thumbnail" })
{
Title = Resources.CropAndLock_Thumbnail_Title,
Subtitle = Resources.CropAndLock_Thumbnail_Subtitle,
Icon = icon,
};
yield return new ListItem(new CropAndLockScreenshotCommand())
yield return new ListItem(new CropAndLockScreenshotCommand() { Id = "com.microsoft.powertoys.cropAndLock.screenshot" })
{
Title = Resources.CropAndLock_Screenshot_Title,
Subtitle = Resources.CropAndLock_Screenshot_Subtitle,
@@ -43,7 +43,7 @@ internal sealed class CropAndLockModuleCommandProvider : ModuleCommandProvider
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.cropAndLock.openSettings" })
{
Title = title,
Subtitle = Resources.CropAndLock_Settings_Subtitle,

View File

@@ -21,14 +21,14 @@ internal sealed class EnvironmentVariablesModuleCommandProvider : ModuleCommandP
if (ModuleEnablementService.IsModuleEnabled(module))
{
yield return new ListItem(new OpenEnvironmentVariablesCommand())
yield return new ListItem(new OpenEnvironmentVariablesCommand() { Id = "com.microsoft.powertoys.environmentVariables.open" })
{
Title = Resources.EnvironmentVariables_Open_Title,
Subtitle = Resources.EnvironmentVariables_Open_Subtitle,
Icon = icon,
};
yield return new ListItem(new OpenEnvironmentVariablesAdminCommand())
yield return new ListItem(new OpenEnvironmentVariablesAdminCommand() { Id = "com.microsoft.powertoys.environmentVariables.openAdmin" })
{
Title = Resources.EnvironmentVariables_OpenAdmin_Title,
Subtitle = Resources.EnvironmentVariables_OpenAdmin_Subtitle,
@@ -36,7 +36,7 @@ internal sealed class EnvironmentVariablesModuleCommandProvider : ModuleCommandP
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.environmentVariables.openSettings" })
{
Title = title,
Subtitle = Resources.EnvironmentVariables_Settings_Subtitle,

View File

@@ -22,21 +22,21 @@ internal sealed class FancyZonesModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsModuleEnabled(module))
{
yield return new ListItem(new CommandItem(new FancyZonesLayoutsPage()))
yield return new ListItem(new CommandItem(new FancyZonesLayoutsPage() { Id = "com.microsoft.powertoys.fancyZones.layouts" }))
{
Title = Resources.FancyZones_Layouts_Title,
Subtitle = Resources.FancyZones_Layouts_Subtitle,
Icon = icon,
};
yield return new ListItem(new CommandItem(new FancyZonesMonitorsPage()))
yield return new ListItem(new CommandItem(new FancyZonesMonitorsPage() { Id = "com.microsoft.powertoys.fancyZones.monitors" }))
{
Title = Resources.FancyZones_Monitors_Title,
Subtitle = Resources.FancyZones_Monitors_Subtitle,
Icon = icon,
};
yield return new ListItem(new OpenFancyZonesEditorCommand())
yield return new ListItem(new OpenFancyZonesEditorCommand() { Id = "com.microsoft.powertoys.fancyZones.openEditor" })
{
Title = Resources.FancyZones_OpenEditor_Title,
Subtitle = Resources.FancyZones_OpenEditor_Subtitle,
@@ -44,7 +44,7 @@ internal sealed class FancyZonesModuleCommandProvider : ModuleCommandProvider
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.fancyZones.openSettings" })
{
Title = title,
Subtitle = Resources.FancyZones_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class FileExplorerAddonsModuleCommandProvider : ModuleCommandPro
var title = SettingsWindow.FileExplorer.ModuleDisplayName();
var icon = SettingsWindow.FileExplorer.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.FileExplorer, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.FileExplorer, title) { Id = "com.microsoft.powertoys.fileExplorerAddons.openSettings" })
{
Title = title,
Subtitle = Resources.FileExplorerAddons_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class FileLocksmithModuleCommandProvider : ModuleCommandProvider
var title = SettingsWindow.FileLocksmith.ModuleDisplayName();
var icon = SettingsWindow.FileLocksmith.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.FileLocksmith, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.FileLocksmith, title) { Id = "com.microsoft.powertoys.fileLocksmith.openSettings" })
{
Title = title,
Subtitle = Resources.FileLocksmith_Settings_Subtitle,

View File

@@ -21,14 +21,14 @@ internal sealed class HostsModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsModuleEnabled(module))
{
yield return new ListItem(new OpenHostsEditorCommand())
yield return new ListItem(new OpenHostsEditorCommand() { Id = "com.microsoft.powertoys.hosts.open" })
{
Title = Resources.Hosts_Open_Title,
Subtitle = Resources.Hosts_Open_Subtitle,
Icon = icon,
};
yield return new ListItem(new OpenHostsEditorAdminCommand())
yield return new ListItem(new OpenHostsEditorAdminCommand() { Id = "com.microsoft.powertoys.hosts.openAdmin" })
{
Title = Resources.Hosts_OpenAdmin_Title,
Subtitle = Resources.Hosts_OpenAdmin_Subtitle,
@@ -36,7 +36,7 @@ internal sealed class HostsModuleCommandProvider : ModuleCommandProvider
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.hosts.openSettings" })
{
Title = title,
Subtitle = Resources.Hosts_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class ImageResizerModuleCommandProvider : ModuleCommandProvider
var title = SettingsWindow.ImageResizer.ModuleDisplayName();
var icon = SettingsWindow.ImageResizer.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.ImageResizer, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.ImageResizer, title) { Id = "com.microsoft.powertoys.imageResizer.openSettings" })
{
Title = title,
Subtitle = Resources.ImageResizer_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class KeyboardManagerModuleCommandProvider : ModuleCommandProvid
var title = SettingsWindow.KBM.ModuleDisplayName();
var icon = SettingsWindow.KBM.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.KBM, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.KBM, title) { Id = "com.microsoft.powertoys.keyboardManager.openSettings" })
{
Title = title,
Subtitle = Resources.KeyboardManager_Settings_Subtitle,

View File

@@ -23,7 +23,7 @@ internal sealed class LightSwitchModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsModuleEnabled(module))
{
items.Add(new ListItem(new ToggleLightSwitchCommand())
items.Add(new ListItem(new ToggleLightSwitchCommand() { Id = "com.microsoft.powertoys.lightSwitch.toggle" })
{
Title = Resources.LightSwitch_Toggle_Title,
Subtitle = Resources.LightSwitch_Toggle_Subtitle,
@@ -31,7 +31,7 @@ internal sealed class LightSwitchModuleCommandProvider : ModuleCommandProvider
});
}
items.Add(new ListItem(new OpenInSettingsCommand(module, title))
items.Add(new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.lightSwitch.openSettings" })
{
Title = title,
Subtitle = Resources.LightSwitch_Settings_Subtitle,

View File

@@ -21,7 +21,7 @@ internal sealed class MouseUtilsModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsKeyEnabled("FindMyMouse"))
{
yield return new ListItem(new ToggleFindMyMouseCommand())
yield return new ListItem(new ToggleFindMyMouseCommand() { Id = "com.microsoft.powertoys.mouseUtils.findMyMouse" })
{
Title = Resources.MouseUtils_FindMyMouse_Title,
Subtitle = Resources.MouseUtils_FindMyMouse_Subtitle,
@@ -31,7 +31,7 @@ internal sealed class MouseUtilsModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsKeyEnabled("MouseHighlighter"))
{
yield return new ListItem(new ToggleMouseHighlighterCommand())
yield return new ListItem(new ToggleMouseHighlighterCommand() { Id = "com.microsoft.powertoys.mouseUtils.highlighter" })
{
Title = Resources.MouseUtils_Highlighter_Title,
Subtitle = Resources.MouseUtils_Highlighter_Subtitle,
@@ -41,7 +41,7 @@ internal sealed class MouseUtilsModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsKeyEnabled("MousePointerCrosshairs"))
{
yield return new ListItem(new ToggleMouseCrosshairsCommand())
yield return new ListItem(new ToggleMouseCrosshairsCommand() { Id = "com.microsoft.powertoys.mouseUtils.crosshairs" })
{
Title = Resources.MouseUtils_Crosshairs_Title,
Subtitle = Resources.MouseUtils_Crosshairs_Subtitle,
@@ -51,7 +51,7 @@ internal sealed class MouseUtilsModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsKeyEnabled("CursorWrap"))
{
yield return new ListItem(new ToggleCursorWrapCommand())
yield return new ListItem(new ToggleCursorWrapCommand() { Id = "com.microsoft.powertoys.mouseUtils.cursorWrap" })
{
Title = Resources.MouseUtils_CursorWrap_Title,
Subtitle = Resources.MouseUtils_CursorWrap_Subtitle,
@@ -61,7 +61,7 @@ internal sealed class MouseUtilsModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsKeyEnabled("MouseJump"))
{
yield return new ListItem(new ShowMouseJumpPreviewCommand())
yield return new ListItem(new ShowMouseJumpPreviewCommand() { Id = "com.microsoft.powertoys.mouseUtils.mouseJump" })
{
Title = Resources.MouseUtils_MouseJump_Title,
Subtitle = Resources.MouseUtils_MouseJump_Subtitle,
@@ -69,7 +69,7 @@ internal sealed class MouseUtilsModuleCommandProvider : ModuleCommandProvider
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.mouseUtils.openSettings" })
{
Title = title,
Subtitle = Resources.MouseUtils_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class MouseWithoutBordersModuleCommandProvider : ModuleCommandPr
var title = SettingsWindow.MouseWithoutBorders.ModuleDisplayName();
var icon = SettingsWindow.MouseWithoutBorders.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.MouseWithoutBorders, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.MouseWithoutBorders, title) { Id = "com.microsoft.powertoys.mouseWithoutBorders.openSettings" })
{
Title = title,
Subtitle = Resources.MouseWithoutBorders_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class NewPlusModuleCommandProvider : ModuleCommandProvider
var title = SettingsWindow.NewPlus.ModuleDisplayName();
var icon = SettingsWindow.NewPlus.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.NewPlus, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.NewPlus, title) { Id = "com.microsoft.powertoys.newPlus.openSettings" })
{
Title = title,
Subtitle = Resources.NewPlus_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class PeekModuleCommandProvider : ModuleCommandProvider
var title = SettingsWindow.Peek.ModuleDisplayName();
var icon = SettingsWindow.Peek.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.Peek, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.Peek, title) { Id = "com.microsoft.powertoys.peek.openSettings" })
{
Title = title,
Subtitle = Resources.Peek_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class PowerRenameModuleCommandProvider : ModuleCommandProvider
var title = SettingsWindow.PowerRename.ModuleDisplayName();
var icon = SettingsWindow.PowerRename.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.PowerRename, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.PowerRename, title) { Id = "com.microsoft.powertoys.powerRename.openSettings" })
{
Title = title,
Subtitle = Resources.PowerRename_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class PowerToysRunModuleCommandProvider : ModuleCommandProvider
var title = SettingsWindow.PowerLauncher.ModuleDisplayName();
var icon = SettingsWindow.PowerLauncher.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.PowerLauncher, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.PowerLauncher, title) { Id = "com.microsoft.powertoys.powerToysRun.openSettings" })
{
Title = title,
Subtitle = Resources.PowerToysRun_Settings_Subtitle,

View File

@@ -18,7 +18,7 @@ internal sealed class QuickAccentModuleCommandProvider : ModuleCommandProvider
var title = SettingsWindow.PowerAccent.ModuleDisplayName();
var icon = SettingsWindow.PowerAccent.ModuleIcon();
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.PowerAccent, title))
yield return new ListItem(new OpenInSettingsCommand(SettingsWindow.PowerAccent, title) { Id = "com.microsoft.powertoys.quickAccent.openSettings" })
{
Title = title,
Subtitle = Resources.QuickAccent_Settings_Subtitle,

View File

@@ -21,7 +21,7 @@ internal sealed class RegistryPreviewModuleCommandProvider : ModuleCommandProvid
if (ModuleEnablementService.IsModuleEnabled(module))
{
yield return new ListItem(new OpenRegistryPreviewCommand())
yield return new ListItem(new OpenRegistryPreviewCommand() { Id = "com.microsoft.powertoys.registryPreview.open" })
{
Title = Resources.RegistryPreview_Open_Title,
Subtitle = Resources.RegistryPreview_Open_Subtitle,
@@ -29,7 +29,7 @@ internal sealed class RegistryPreviewModuleCommandProvider : ModuleCommandProvid
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.registryPreview.openSettings" })
{
Title = title,
Subtitle = Resources.RegistryPreview_Settings_Subtitle,

View File

@@ -21,7 +21,7 @@ internal sealed class ScreenRulerModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsModuleEnabled(module))
{
yield return new ListItem(new ToggleScreenRulerCommand())
yield return new ListItem(new ToggleScreenRulerCommand() { Id = "com.microsoft.powertoys.screenRuler.toggle" })
{
Title = Resources.ScreenRuler_Toggle_Title,
Subtitle = Resources.ScreenRuler_Toggle_Subtitle,
@@ -29,7 +29,7 @@ internal sealed class ScreenRulerModuleCommandProvider : ModuleCommandProvider
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.screenRuler.openSettings" })
{
Title = title,
Subtitle = Resources.ScreenRuler_Settings_Subtitle,

View File

@@ -21,7 +21,7 @@ internal sealed class ShortcutGuideModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsModuleEnabled(module))
{
yield return new ListItem(new ToggleShortcutGuideCommand())
yield return new ListItem(new ToggleShortcutGuideCommand() { Id = "com.microsoft.powertoys.shortcutGuide.toggle" })
{
Title = Resources.ShortcutGuide_Toggle_Title,
Subtitle = Resources.ShortcutGuide_Toggle_Subtitle,
@@ -29,7 +29,7 @@ internal sealed class ShortcutGuideModuleCommandProvider : ModuleCommandProvider
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.shortcutGuide.openSettings" })
{
Title = title,
Subtitle = Resources.ShortcutGuide_Settings_Subtitle,

View File

@@ -21,7 +21,7 @@ internal sealed class TextExtractorModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsModuleEnabled(module))
{
yield return new ListItem(new ToggleTextExtractorCommand())
yield return new ListItem(new ToggleTextExtractorCommand() { Id = "com.microsoft.powertoys.textExtractor.toggle" })
{
Title = Resources.TextExtractor_Toggle_Title,
Subtitle = Resources.TextExtractor_Toggle_Subtitle,
@@ -29,7 +29,7 @@ internal sealed class TextExtractorModuleCommandProvider : ModuleCommandProvider
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.textExtractor.openSettings" })
{
Title = title,
Subtitle = Resources.TextExtractor_Settings_Subtitle,

View File

@@ -23,7 +23,7 @@ internal sealed class WorkspacesModuleCommandProvider : ModuleCommandProvider
var icon = PowerToysResourcesHelper.IconFromSettingsIcon("Workspaces.png");
var moduleIcon = module.ModuleIcon();
items.Add(new ListItem(new OpenInSettingsCommand(module, title))
items.Add(new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.workspaces.openSettings" })
{
Title = title,
Subtitle = Resources.Workspaces_Settings_Subtitle,
@@ -36,7 +36,7 @@ internal sealed class WorkspacesModuleCommandProvider : ModuleCommandProvider
}
// Settings entry plus common actions.
items.Add(new ListItem(new OpenWorkspaceEditorCommand())
items.Add(new ListItem(new OpenWorkspaceEditorCommand() { Id = "com.microsoft.powertoys.workspaces.openEditor" })
{
Title = Resources.Workspaces_OpenEditor_Title,
Subtitle = Resources.Workspaces_OpenEditor_Subtitle,

View File

@@ -22,37 +22,37 @@ internal sealed class ZoomItModuleCommandProvider : ModuleCommandProvider
if (ModuleEnablementService.IsModuleEnabled(module))
{
// Action commands via ZoomIt IPC
yield return new ListItem(new ZoomItActionCommand("zoom", Resources.ZoomIt_Zoom_Title))
yield return new ListItem(new ZoomItActionCommand("zoom", Resources.ZoomIt_Zoom_Title) { Id = "com.microsoft.powertoys.zoomIt.zoom" })
{
Title = Resources.ZoomIt_Zoom_Title,
Subtitle = Resources.ZoomIt_Zoom_Subtitle,
Icon = icon,
};
yield return new ListItem(new ZoomItActionCommand("draw", Resources.ZoomIt_Draw_Title))
yield return new ListItem(new ZoomItActionCommand("draw", Resources.ZoomIt_Draw_Title) { Id = "com.microsoft.powertoys.zoomIt.draw" })
{
Title = Resources.ZoomIt_Draw_Title,
Subtitle = Resources.ZoomIt_Draw_Subtitle,
Icon = icon,
};
yield return new ListItem(new ZoomItActionCommand("break", Resources.ZoomIt_Break_Title))
yield return new ListItem(new ZoomItActionCommand("break", Resources.ZoomIt_Break_Title) { Id = "com.microsoft.powertoys.zoomIt.break" })
{
Title = Resources.ZoomIt_Break_Title,
Subtitle = Resources.ZoomIt_Break_Subtitle,
Icon = icon,
};
yield return new ListItem(new ZoomItActionCommand("liveZoom", Resources.ZoomIt_LiveZoom_Title))
yield return new ListItem(new ZoomItActionCommand("liveZoom", Resources.ZoomIt_LiveZoom_Title) { Id = "com.microsoft.powertoys.zoomIt.liveZoom" })
{
Title = Resources.ZoomIt_LiveZoom_Title,
Subtitle = Resources.ZoomIt_LiveZoom_Subtitle,
Icon = icon,
};
yield return new ListItem(new ZoomItActionCommand("snip", Resources.ZoomIt_Snip_Title))
yield return new ListItem(new ZoomItActionCommand("snip", Resources.ZoomIt_Snip_Title) { Id = "com.microsoft.powertoys.zoomIt.snip" })
{
Title = Resources.ZoomIt_Snip_Title,
Subtitle = Resources.ZoomIt_Snip_Subtitle,
Icon = icon,
};
yield return new ListItem(new ZoomItActionCommand("record", Resources.ZoomIt_Record_Title))
yield return new ListItem(new ZoomItActionCommand("record", Resources.ZoomIt_Record_Title) { Id = "com.microsoft.powertoys.zoomIt.record" })
{
Title = Resources.ZoomIt_Record_Title,
Subtitle = Resources.ZoomIt_Record_Subtitle,
@@ -60,7 +60,7 @@ internal sealed class ZoomItModuleCommandProvider : ModuleCommandProvider
};
}
yield return new ListItem(new OpenInSettingsCommand(module, title))
yield return new ListItem(new OpenInSettingsCommand(module, title) { Id = "com.microsoft.powertoys.zoomIt.openSettings" })
{
Title = title,
Subtitle = Resources.ZoomIt_Settings_Subtitle,

View File

@@ -48,4 +48,19 @@ public partial class PowerToysExtensionCommandsProvider : CommandProvider
return fallbacks.ToArray();
}
public override ICommandItem? GetCommandItem(string id)
{
// First check top-level commands.
var allCommands = ModuleCommandCatalog.GetAllItems();
foreach (var li in allCommands)
{
if (li?.Command is ICommand cmd && cmd.Id == id)
{
return li;
}
}
return null;
}
}