1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2026-08-05 13:08:29 -04:00

feat(power): lower refresh rate on battery (#2428)

* feat(power): lower refresh rate on battery (#1203)

Add a Power & Sleep setting that lowers eligible displays to 60 Hz on battery and restores their previous mode on AC power.

Skip displays without an available 60 Hz mode, displays with a single refresh-rate option, current modes at or below 60 Hz, and VRR-enabled outputs.
Apply niri changes at runtime through output commands and use wlr-output-management as fallback.

* fix(quickshell): debounce display refresh sync

* chore: regenerate settings_search_index.json for pre-commit CI fix

* fix: translator context is missing for lowerDisplayRefreshRateOnBattery

* fix: activeDisplayProfileModes is missing from SettingsSpec

* feat: added guard to syncRefreshRates function

* refactor(display): move refresh sync listeners to display service

* fix(display): publish active profile modes after config write

* feat(display): persist previous refresh modes

* fix(display): route refresh mode writes through compositor backends

* fix(display): detect preferred niri refresh modes

* some small cleanups

---------

Co-authored-by: bbedward <bbedward@gmail.com>
This commit is contained in:
Artem Timofeev
2026-07-17 15:41:08 +02:00
committed by GitHub
parent 95e1d6b72e
commit adbbd9b112
6 changed files with 677 additions and 1 deletions
@@ -7023,6 +7023,43 @@
"timeout"
]
},
{
"section": "lowerDisplayRefreshRateOnBattery",
"label": "Lower display refresh rate on battery",
"tabIndex": 21,
"category": "Power & Sleep",
"keywords": [
"60hz",
"available",
"battery",
"charge",
"charging",
"display",
"displays",
"enabled",
"energy",
"hz",
"lower",
"mode",
"monitor",
"monitors",
"output",
"outputs",
"power",
"previous",
"rate",
"refresh",
"restore",
"screen",
"screens",
"shutdown",
"skips",
"sleep",
"suspend",
"switch"
],
"description": "Switch displays with an available 60 Hz mode to 60 Hz on battery and restore the previous mode on AC. Skips displays with VRR enabled."
},
{
"section": "fadeToDpmsGracePeriod",
"label": "Monitor fade grace period",