MEHTAB MAHIR
All projects

WINDOWS UTILITY

Auto 60 Hz

Save laptop battery by lowering the refresh rate during full-screen video.

CONTRIBUTIONWindows application developmentView Source on GitHub
Auto 60 Hz application screenshot

The Problem

Keeping a laptop display at 120 Hz can use more battery power even when the content does not need that refresh rate. A 30 or 60 fps video does not contain 120 unique frames per second, yet the display may remain at 120 Hz throughout playback. I wanted to reduce that unnecessary power use while keeping a higher refresh rate for everyday interaction.

The Approach

Auto 60 Hz checks the foreground window and power source. While running on battery, it selects the configured lower refresh rate when the tracked window is full-screen and restores the higher rate after full-screen mode ends. Connecting AC power also restores the higher rate. The Qt interface exposes both values and a run-on-startup option.

01

Battery-Aware Switching

The control loop checks Windows power status before lowering the refresh rate. This targets battery-powered use instead of applying the same policy while the device is plugged in.

02

Full-Screen Detection as the Trigger

WinAPI tracks foreground-window bounds, while PSAPI identifies processes so Windows system processes can be excluded. Full-screen state is a practical trigger for video watching; the app does not inspect playback frame rate or identify video content.

03

Configurable Rates and Periodic Checks

Users choose the high and low refresh rates to suit their display. The background loop checks once per second and avoids requesting a display change when the target rate is already active.

Battery Benefit and Tradeoffs

Reducing the refresh rate can extend battery life by up to 20%, depending on the display, brightness, workload, and device. The app uses full-screen detection to trigger the switch, so full-screen games can also activate the lower rate.

Read the Battery-Life Estimate
Back to projects