forked from Shinonome/dots-hyprland
warn on low battery
This commit is contained in:
@@ -241,7 +241,7 @@ Scope {
|
|||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
|
|
||||||
Battery {
|
BatteryIndicator {
|
||||||
visible: (barRoot.useShortenedForm < 2 && UPower.displayDevice.isLaptopBattery)
|
visible: (barRoot.useShortenedForm < 2 && UPower.displayDevice.isLaptopBattery)
|
||||||
Layout.alignment: Qt.AlignVCenter
|
Layout.alignment: Qt.AlignVCenter
|
||||||
}
|
}
|
||||||
|
|||||||
+6
-5
@@ -1,5 +1,6 @@
|
|||||||
import "root:/modules/common"
|
import "root:/modules/common"
|
||||||
import "root:/modules/common/widgets"
|
import "root:/modules/common/widgets"
|
||||||
|
import "root:/services"
|
||||||
import QtQuick
|
import QtQuick
|
||||||
import QtQuick.Layouts
|
import QtQuick.Layouts
|
||||||
import Quickshell
|
import Quickshell
|
||||||
@@ -9,11 +10,11 @@ import Quickshell.Services.UPower
|
|||||||
Rectangle {
|
Rectangle {
|
||||||
id: root
|
id: root
|
||||||
property bool borderless: ConfigOptions.bar.borderless
|
property bool borderless: ConfigOptions.bar.borderless
|
||||||
readonly property var chargeState: UPower.displayDevice.state
|
readonly property var chargeState: Battery.chargeState
|
||||||
readonly property bool isCharging: chargeState == UPowerDeviceState.Charging
|
readonly property bool isCharging: Battery.isCharging
|
||||||
readonly property bool isPluggedIn: isCharging || chargeState == UPowerDeviceState.PendingCharge
|
readonly property bool isPluggedIn: Battery.isPluggedIn
|
||||||
readonly property real percentage: UPower.displayDevice.percentage
|
readonly property real percentage: Battery.percentage
|
||||||
readonly property bool isLow: percentage <= ConfigOptions.bar.batteryLowThreshold / 100
|
readonly property bool isLow: percentage <= ConfigOptions.battery.low / 100
|
||||||
readonly property color batteryLowBackground: Appearance.m3colors.darkmode ? Appearance.m3colors.m3error : Appearance.m3colors.m3errorContainer
|
readonly property color batteryLowBackground: Appearance.m3colors.darkmode ? Appearance.m3colors.m3error : Appearance.m3colors.m3errorContainer
|
||||||
readonly property color batteryLowOnBackground: Appearance.m3colors.darkmode ? Appearance.m3colors.m3errorContainer : Appearance.m3colors.m3error
|
readonly property color batteryLowOnBackground: Appearance.m3colors.darkmode ? Appearance.m3colors.m3errorContainer : Appearance.m3colors.m3error
|
||||||
|
|
||||||
@@ -0,0 +1,29 @@
|
|||||||
|
pragma Singleton
|
||||||
|
|
||||||
|
import "root:/modules/common"
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Io
|
||||||
|
import Quickshell.Hyprland
|
||||||
|
import Quickshell.Services.UPower
|
||||||
|
|
||||||
|
Singleton {
|
||||||
|
property bool available: UPower.displayDevice.isLaptopBattery
|
||||||
|
property var chargeState: UPower.displayDevice.state
|
||||||
|
property bool isCharging: chargeState == UPowerDeviceState.Charging
|
||||||
|
property bool isPluggedIn: isCharging || chargeState == UPowerDeviceState.PendingCharge
|
||||||
|
property real percentage: UPower.displayDevice.percentage
|
||||||
|
|
||||||
|
property bool isLow: percentage <= ConfigOptions.battery.low / 100
|
||||||
|
property bool isCritical: percentage <= ConfigOptions.battery.critical / 100
|
||||||
|
property bool isSuspending: percentage <= ConfigOptions.battery.suspend / 100
|
||||||
|
|
||||||
|
onIsLowChanged: {
|
||||||
|
if (available && isLow) Hyprland.dispatch(`exec notify-send "Low battery" "Consider plugging in your device" -u critical -a "Shell"`)
|
||||||
|
}
|
||||||
|
|
||||||
|
onIsCriticalChanged: {
|
||||||
|
if (available && isCritical) Hyprland.dispatch(`exec notify-send "Critically low battery" "🙏 I ask for pleas charge\nAutomatic suspend triggers at ${ConfigOptions.battery.suspend}%" -u critical -a "Shell"`)
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user