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

feat(ipc): add powerprofile status & shared profile helpers

- Follow-up to PR #2515
This commit is contained in:
purian23
2026-05-30 14:57:01 -04:00
parent 461da22b08
commit b7daf3f64a
7 changed files with 171 additions and 64 deletions
@@ -21,14 +21,13 @@ DankPopout {
}
function setProfile(profile) {
if (typeof PowerProfiles === "undefined") {
ToastService.showError(I18n.tr("power-profiles-daemon not available"));
if (PowerProfileWatcher.applyProfile(profile))
return;
}
PowerProfiles.profile = profile;
if (PowerProfiles.profile !== profile) {
if (!PowerProfileWatcher.available)
ToastService.showError(I18n.tr("power-profiles-daemon not available"));
else
ToastService.showError(I18n.tr("Failed to set power profile"));
}
}
popupWidth: 400
@@ -555,7 +554,7 @@ DankPopout {
DankButtonGroup {
id: profileButtonGroup
property var profileModel: (typeof PowerProfiles !== "undefined") ? [PowerProfile.PowerSaver, PowerProfile.Balanced].concat(PowerProfiles.hasPerformanceProfile ? [PowerProfile.Performance] : []) : [PowerProfile.PowerSaver, PowerProfile.Balanced, PowerProfile.Performance]
property var profileModel: PowerProfileWatcher.availableProfiles
property int currentProfileIndex: {
if (typeof PowerProfiles === "undefined")
return 1;
@@ -140,30 +140,24 @@ BasePill {
log.info("Trigger! Delta: " + delta);
// This is after the other delta checks so it only shows on valid Y scroll
if (typeof PowerProfiles === "undefined") {
if (!PowerProfileWatcher.available) {
ToastService.showError(I18n.tr("power-profiles-daemon not available"));
return;
}
// Get list of profiles, and current index
const profiles = [PowerProfile.PowerSaver, PowerProfile.Balanced].concat(PowerProfiles.hasPerformanceProfile ? [PowerProfile.Performance] : []);
const profiles = PowerProfileWatcher.availableProfiles;
var index = profiles.findIndex(profile => PowerProfiles.profile === profile);
// Step once based on mouse wheel direction
if (delta > 0)
index += 1;
else
index -= 1;
// Already at end of list, can't go further
if (index < 0 || index >= profiles.length)
return;
// Set new profile
PowerProfiles.profile = profiles[index];
if (PowerProfiles.profile !== profiles[index]) {
if (!PowerProfileWatcher.applyProfile(profiles[index]))
ToastService.showError(I18n.tr("Failed to set power profile"));
}
}
}
}