import Quickshell.Services.UPower import QtQuick import QtQuick.Layouts import qs.Modules.SysTray.Common import qs.Components import qs.Helpers Item { id: root readonly property Item currentItem: batteryIconLoader?.item ?? peripheralIconLoader?.item ?? upowerIconLoader.item implicitHeight: currentItem?.implicitHeight ?? 0 implicitWidth: currentItem?.implicitWidth ?? 0 visible: opacity > 0 Behavior on Layout.preferredHeight { Anim { } } Behavior on Layout.preferredWidth { Anim { } } Behavior on opacity { Anim { } } Behavior on scale { Anim { } } Component.onCompleted: Battery.startDaemon() Loader { id: batteryIconLoader active: Battery.isLaptop anchors.centerIn: parent sourceComponent: BatteryIcon { devState: Battery.deviceStateString percentage: Battery.currentPerc } } Loader { id: peripheralIconLoader active: Battery.lowestPeripheral.isPresent && !batteryIconLoader.active anchors.centerIn: parent sourceComponent: BatteryIcon { devState: Battery.lowestPeripheral.state percentage: Battery.lowestPeripheral.percentage } } Loader { id: upowerIconLoader active: !batteryIconLoader.active && !peripheralIconLoader.active anchors.centerIn: parent sourceComponent: MaterialIcon { Layout.alignment: Qt.AlignVCenter animate: true fill: 1 text: { if (PowerProfiles.profile === PowerProfile.PowerSaver) return "energy_savings_leaf"; if (PowerProfiles.profile === PowerProfile.Performance) return "bolt"; return "balance"; } } } }