Skip to content
 
 

Repository files navigation

PowerSwitcher

简体中文

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

Screenshot

PowerSwitcher Settings

Improvements In This Fork

  • Reworked the tray experience around the right-click menu and a dedicated settings window.
  • Added a settings window with Settings and About tabs.
  • 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.

Windows 11 Power Plans

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.

Usage

  • Right-click the tray icon to switch power plans, open settings, or exit.
  • Open Settings to configure language, visible plan types, startup behavior, and automatic AC/battery switching.
  • Use the About tab to view the app version and check for updates.

Build

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

Versioning

Update project versions with:

.\Scripts\Set-Version.ps1 -Version 0.5.0

This updates assembly versions and the Appx manifest version. Release tags use the vX.Y.Z format, for example v0.5.0.

Installer

Build a release installer with:

.\Scripts\Build-Release.ps1 -Version 0.5.0

The 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.

GitHub Release

After building the installer and creating/pushing the release tag, publish a GitHub Release with:

.\Scripts\Publish-GitHubRelease.ps1 -Version 0.5.0

By default this publishes to z4none/PowerSwitcher and uploads the installer from dist.

Original Project

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

Special Thanks

About

Power plan switcher for Windows 10 and 11

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages