From d8de2e5c1c5796fb87b2af46613edbc29947264b Mon Sep 17 00:00:00 2001 From: Sam Rueby Date: Mon, 15 Sep 2025 14:30:02 -0400 Subject: [PATCH] Use shape icons for Command Palette Windows Service state. (#41809) ## Summary Resolves #41653 by using play/pause/stop icons for Windows Service state in the Command Palette utility. Prior to this green/red circles were used. New icons provide an improved user experience, especially for color-blind users. The new icons are consistent with the UI in the native Windows Services management console utility (services.msc). ## PR Checklist - [ X ] Closes: #41653 - [ X ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx ## Detailed Description of the Pull Request / Additional comments ## Validation Steps Performed Windows service states display new icons: image image Here is an image of how the icons currently appear prior to working on this PR. image --- .../Assets/service_paused.png | Bin 0 -> 5916 bytes .../Assets/service_running.png | Bin 0 -> 5503 bytes .../Assets/service_stopped.png | Bin 0 -> 6862 bytes .../Helpers/ServiceHelper.cs | 4 ++-- .../Icons.cs | 10 +++------- .../Microsoft.CmdPal.Ext.WindowsServices.csproj | 9 +++++++++ .../Pages/ServiceFilters.cs | 4 ++-- 7 files changed, 16 insertions(+), 11 deletions(-) create mode 100644 src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/service_paused.png create mode 100644 src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/service_running.png create mode 100644 src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/service_stopped.png diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/service_paused.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/service_paused.png new file mode 100644 index 0000000000000000000000000000000000000000..a1727ded730215aa3a05a446900ba71ffd832024 GIT binary patch literal 5916 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 XThrUCh7*id|2K88ak8%3gGv1#Lx^P# literal 0 HcmV?d00001 diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/service_stopped.png b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Assets/service_stopped.png new file mode 100644 index 0000000000000000000000000000000000000000..daeea9151924dab8d761ac07eb83fd25bb85630d GIT binary patch literal 6862 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 literal 0 HcmV?d00001 diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Helpers/ServiceHelper.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Helpers/ServiceHelper.cs index feb7aac9c0..fdbf08dfa8 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Helpers/ServiceHelper.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Helpers/ServiceHelper.cs @@ -88,11 +88,11 @@ public static class ServiceHelper ]; } - IconInfo icon = Icons.GreenCircleIcon; + IconInfo icon = Icons.PlayIcon; switch (s.Status) { case ServiceControllerStatus.Stopped: - icon = Icons.RedCircleIcon; + icon = Icons.StopIcon; break; case ServiceControllerStatus.Running: break; diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Icons.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Icons.cs index 91ac6cb779..e726dbeebd 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Icons.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Icons.cs @@ -10,17 +10,13 @@ internal sealed class Icons { internal static IconInfo ServicesIcon { get; } = IconHelpers.FromRelativePath("Assets\\Services.svg"); - internal static IconInfo StopIcon { get; } = new IconInfo("\xE71A"); // Stop icon + internal static IconInfo StopIcon { get; } = IconHelpers.FromRelativePath("Assets\\service_stopped.png"); - internal static IconInfo PlayIcon { get; } = new IconInfo("\xEDB5"); // PlayBadge12 icon + internal static IconInfo PlayIcon { get; } = IconHelpers.FromRelativePath("Assets\\service_running.png"); internal static IconInfo RefreshIcon { get; } = new IconInfo("\xE72C"); // Refresh icon internal static IconInfo OpenIcon { get; } = new IconInfo("\xE8A7"); // OpenInNewWindow icon - internal static IconInfo GreenCircleIcon { get; } = new("\U0001f7e2"); // unicode LARGE GREEN CIRCLE - - internal static IconInfo RedCircleIcon { get; } = new("\U0001F534"); // unicode LARGE RED CIRCLE - - internal static IconInfo PauseIcon { get; } = new("\u23F8"); // unicode DOUBLE VERTICAL BAR, aka, "Pause" + internal static IconInfo PauseIcon { get; } = IconHelpers.FromRelativePath("Assets\\service_paused.png"); } diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Microsoft.CmdPal.Ext.WindowsServices.csproj b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Microsoft.CmdPal.Ext.WindowsServices.csproj index d32221a4a4..49c6771cc0 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Microsoft.CmdPal.Ext.WindowsServices.csproj +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Microsoft.CmdPal.Ext.WindowsServices.csproj @@ -35,6 +35,15 @@ PreserveNewest + + PreserveNewest + + + PreserveNewest + + + PreserveNewest + diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Pages/ServiceFilters.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Pages/ServiceFilters.cs index 179315b0c3..079138fb63 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Pages/ServiceFilters.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.WindowsServices/Pages/ServiceFilters.cs @@ -18,8 +18,8 @@ public partial class ServiceFilters : Filters return [ new Filter() { Id = "all", Name = "All Services" }, new Separator(), - new Filter() { Id = "running", Name = "Running", Icon = Icons.GreenCircleIcon }, - new Filter() { Id = "stopped", Name = "Stopped", Icon = Icons.RedCircleIcon }, + new Filter() { Id = "running", Name = "Running", Icon = Icons.PlayIcon }, + new Filter() { Id = "stopped", Name = "Stopped", Icon = Icons.StopIcon }, new Filter() { Id = "paused", Name = "Paused", Icon = Icons.PauseIcon }, ]; }