1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-06 21:45:38 -05:00

Improve brightness device detection

This commit is contained in:
bbedward
2025-08-12 21:28:14 -04:00
parent 1037f010ed
commit fdf769883d
3 changed files with 110 additions and 13 deletions

View File

@@ -20,12 +20,16 @@ PanelWindow {
interval: BrightnessService.ddcAvailable ? 500 : 50
repeat: false
onTriggered: {
BrightnessService.setBrightnessInternal(pendingValue)
BrightnessService.setBrightnessInternal(pendingValue, BrightnessService.lastIpcDevice)
}
}
function show() {
root.brightnessPopupVisible = true
// Update slider to current device brightness when showing
if (BrightnessService.brightnessAvailable) {
brightnessSlider.value = BrightnessService.brightnessLevel
}
hideTimer.restart()
}
@@ -111,9 +115,20 @@ PanelWindow {
DankIcon {
anchors.centerIn: parent
name: BrightnessService.brightnessLevel
< 30 ? "brightness_low" : BrightnessService.brightnessLevel
< 70 ? "brightness_medium" : "brightness_high"
name: {
const deviceInfo = BrightnessService.getCurrentDeviceInfo();
if (!deviceInfo || deviceInfo.class === "backlight") {
// Display backlight
return "brightness_medium";
} else if (deviceInfo.name.includes("kbd")) {
// Keyboard brightness
return "keyboard";
} else {
// Other devices (LEDs, etc.)
return "lightbulb";
}
}
size: Theme.iconSize
color: Theme.primary
}
@@ -145,7 +160,7 @@ PanelWindow {
onSliderDragFinished: function (finalValue) {
if (BrightnessService.brightnessAvailable) {
brightnessDebounceTimer.stop()
BrightnessService.setBrightnessInternal(finalValue)
BrightnessService.setBrightnessInternal(finalValue, BrightnessService.lastIpcDevice)
}
}
@@ -153,6 +168,10 @@ PanelWindow {
function onBrightnessChanged() {
brightnessSlider.value = BrightnessService.brightnessLevel
}
function onDeviceSwitched() {
brightnessSlider.value = BrightnessService.brightnessLevel
}
target: BrightnessService
}