From 474f14465c8414a6b4d945cd8a1854a4e1b93689 Mon Sep 17 00:00:00 2001 From: kossLAN Date: Sun, 8 Jun 2025 23:44:52 -0400 Subject: [PATCH] bar/battery: start of battery widget --- bar/battery/BatteryIndicator.qml | 108 +++++++++++++++++++++++++++++++ bar/systray/SubTrayMenu.qml | 9 --- 2 files changed, 108 insertions(+), 9 deletions(-) create mode 100644 bar/battery/BatteryIndicator.qml delete mode 100644 bar/systray/SubTrayMenu.qml diff --git a/bar/battery/BatteryIndicator.qml b/bar/battery/BatteryIndicator.qml new file mode 100644 index 0000000..2b5c9ae --- /dev/null +++ b/bar/battery/BatteryIndicator.qml @@ -0,0 +1,108 @@ +pragma ComponentBehavior: Bound + +import QtQuick +import QtQuick.Controls +import QtQuick.Layouts +import Qt5Compat.GraphicalEffects +import Quickshell.Widgets +import Quickshell.Services.UPower +import "../.." + +Item { + id: root + implicitWidth: parent.height + 8 + implicitHeight: parent.height + visible: UPower.displayDevice.isLaptopBattery + + required property var popup + + MouseArea { + id: batteryButton + hoverEnabled: true + anchors.fill: parent + onClicked: { + root.popup.set(this, powerMenu); + root.popup.show(); + } + } + + WrapperItem { + id: powerMenu + visible: false + + ColumnLayout { + RowLayout { + id: powerProfiles + implicitWidth: 300 + implicitHeight: 60 + + // place holder until I figured out what I want to do with material + ComboBox { + model: ["Power Save", "Balanced", "Performance"] + currentIndex: PowerProfiles.profile + onCurrentIndexChanged: PowerProfiles.profile = currentIndex + } + } + } + } + + Rectangle { + id: highlight + color: batteryButton.containsMouse ? ShellSettings.settings.colors["primary"] : "transparent" + // radius: width / 2 + radius: 10 + + anchors { + fill: parent + // topMargin: 2 + // bottomMargin: 2 + } + + Behavior on color { + ColorAnimation { + duration: 100 + } + } + } + + Item { + implicitWidth: parent.height + implicitHeight: parent.height + anchors.centerIn: parent + layer.enabled: true + layer.effect: OpacityMask { + source: Rectangle { + width: root.width + height: root.height + color: "white" + } + + maskSource: IconImage { + implicitSize: root.width + source: "root:resources/battery/battery.svg" + } + } + + Rectangle { + id: batteryBackground + color: Qt.color(ShellSettings.settings.colors["surface"]).lighter(4) + opacity: 0.75 + anchors { + fill: parent + margins: 2 + } + } + + Rectangle { + id: batteryPercentage + width: (parent.width - 4) * UPower.displayDevice.percentage + color: ShellSettings.settings.colors["inverse_surface"] + + anchors { + left: batteryBackground.left + top: batteryBackground.top + bottom: batteryBackground.bottom + } + } + } +} diff --git a/bar/systray/SubTrayMenu.qml b/bar/systray/SubTrayMenu.qml deleted file mode 100644 index c6dca25..0000000 --- a/bar/systray/SubTrayMenu.qml +++ /dev/null @@ -1,9 +0,0 @@ -import Quickshell -import QtQuick - -Rectangle { - id: root - visible: false - implicitWidth: 20 - implicitHeight: 20 -}