PowerSwitcher is a Windows tray application for switching power plans quickly and automatically. This fork is based on the original petrroll/PowerSwitcher, with changes focused on Windows 11, localized configuration, built-in power plan handling, and release packaging.
New project repository: z4none/PowerSwitcher
- Reworked the tray experience around the right-click menu and a dedicated settings window.
- Added a settings window with
SettingsandAbouttabs. - Moved configuration into the settings window, including language, plan display, built-in plan support, automatic switching, and launch on startup.
- Added JSON-based i18n. Current languages are English and Simplified Chinese.
- Added support for missing Windows built-in power plans. If a built-in plan is hidden or missing, the app can duplicate it on demand before activating it.
- Added explicit confirmation before allowing performance built-in plans such as High performance and Ultimate performance.
- Added AC/battery automatic switching configuration in the main window.
- Added startup integration through the current user's Windows Run registry key.
- Added in-app update checking against GitHub Releases.
- Added Inno Setup installer packaging and GitHub release helper scripts.
- Added centralized version update script for assembly and Appx manifest versions.
Some Windows 11 laptops, especially systems using Modern Standby / S0 Low Power Idle, may only show the Balanced plan in powercfg /list. Other built-in plans can still exist as templates and may need to be duplicated before use.
This fork handles that case by using the built-in template GUIDs when needed:
- Power saver:
a1841308-3541-4fab-bc81-f71556f20b4a - Balanced:
381b4222-f694-41f0-9685-ff5bb260df2e - High performance:
8c5e7fda-e8bf-4a96-9a85-a6e23a8c635c - Ultimate performance:
e9a42b02-d5df-448d-aa00-03f14749eb61
High performance and Ultimate performance may increase power usage, heat, fan noise, and battery drain. They are hidden from configuration until the user enables the confirmation checkbox in settings.
- Right-click the tray icon to switch power plans, open settings, or exit.
- Open
Settingsto configure language, visible plan types, startup behavior, and automatic AC/battery switching. - Use the
Abouttab to view the app version and check for updates.
Requirements:
- Windows
- Visual Studio or Visual Studio Build Tools with MSBuild
- .NET Framework 4.8 targeting pack
- Inno Setup 6, only required for installer packaging
- GitHub CLI, only required for publishing releases
Build the solution from Visual Studio, or run:
msbuild PowerSwitcher.sln /p:Configuration=Release "/p:Platform=Any CPU"The tray app output is written to:
Build\Release\PowerSwitcher.TrayApp.exe
Update project versions with:
.\Scripts\Set-Version.ps1 -Version 0.5.0This updates assembly versions and the Appx manifest version. Release tags use the vX.Y.Z format, for example v0.5.0.
Build a release installer with:
.\Scripts\Build-Release.ps1 -Version 0.5.0The generated installer is written to:
dist\PowerSwitcher-0.5.0-Setup.exe
If Inno Setup is installed outside the default location, pass the full compiler path:
.\Scripts\Build-Release.ps1 -Version 0.5.0 -InnoCompilerPath "C:\Path\To\Inno Setup 6\ISCC.exe"ISCC.exe must be run from a complete Inno Setup installation directory containing ISCmplr.dll.
After building the installer and creating/pushing the release tag, publish a GitHub Release with:
.\Scripts\Publish-GitHubRelease.ps1 -Version 0.5.0By default this publishes to z4none/PowerSwitcher and uploads the installer from dist.
This project is derived from petrroll/PowerSwitcher, originally named PowerPlanSwitcher.
Original features included:
- Tray-based power plan switching
- Optional filtering to Windows default power plans
- Automatic switching when AC power is connected or disconnected
- Launch on Windows startup
- Keyboard navigation and shortcut support
- Icon made by Cursor creative from flaticon.com
- EarTrumpet for flyout, interop work, and related inspiration
- David Golden (@GoldenTao)
- Rafael Rivera (@WithinRafael)
- Andy Belsky's power-plan-switcher for interop inspiration
- Mahdi Safsafi's ImmersiveColors for working with undocumented accent colors
