Compare commits
4 commits
aa943a44b6
...
d043f86269
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d043f86269 | ||
|
|
9505748b32 | ||
|
|
da4654e4a6 | ||
|
|
c500637fd8 |
6 changed files with 80 additions and 4 deletions
|
|
@ -2,9 +2,12 @@ import qs.config
|
||||||
import QtQuick
|
import QtQuick
|
||||||
|
|
||||||
Text {
|
Text {
|
||||||
|
|
||||||
color: Theme.palette.basecontent
|
color: Theme.palette.basecontent
|
||||||
|
Behavior on color {
|
||||||
|
ColorAnimation {
|
||||||
|
duration: 100
|
||||||
|
}
|
||||||
|
}
|
||||||
font.family: Theme.lucide.font.family
|
font.family: Theme.lucide.font.family
|
||||||
font.pixelSize: Dimensions.gpu.iconSize
|
font.pixelSize: Dimensions.gpu.iconSize
|
||||||
font.bold: true
|
font.bold: true
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ pragma Singleton
|
||||||
import Quickshell
|
import Quickshell
|
||||||
|
|
||||||
Singleton {
|
Singleton {
|
||||||
|
property string batteryCharging: "\u{E058}"
|
||||||
property string batteryFull: "\u{E059}"
|
property string batteryFull: "\u{E059}"
|
||||||
property string batteryMedium: "\u{E05b}"
|
property string batteryMedium: "\u{E05b}"
|
||||||
property string batteryLow: "\u{E05a}"
|
property string batteryLow: "\u{E05a}"
|
||||||
|
|
|
||||||
|
|
@ -107,6 +107,8 @@ PanelWindow {
|
||||||
|
|
||||||
Gpu {}
|
Gpu {}
|
||||||
|
|
||||||
|
Power {}
|
||||||
|
|
||||||
Clock {}
|
Clock {}
|
||||||
|
|
||||||
Notifications {}
|
Notifications {}
|
||||||
|
|
|
||||||
60
modules/bar/components/Power.qml
Normal file
60
modules/bar/components/Power.qml
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
import qs.components
|
||||||
|
import qs.config
|
||||||
|
import qs.constants
|
||||||
|
import qs.widgets
|
||||||
|
import QtQuick
|
||||||
|
import QtQuick.Layouts
|
||||||
|
import Quickshell.Services.UPower
|
||||||
|
|
||||||
|
StyledButton {
|
||||||
|
id: root
|
||||||
|
property UPowerDevice laptopBattery: UPower.devices.values.find(device => device.isLaptopBattery)
|
||||||
|
property bool isCritical: laptopBattery.percentage < 0.10
|
||||||
|
|
||||||
|
contentItem: RowLayout {
|
||||||
|
spacing: 4
|
||||||
|
LucideIcon {
|
||||||
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
color: {
|
||||||
|
if (root.isCritical) {
|
||||||
|
return Theme.palette.error;
|
||||||
|
}
|
||||||
|
if (root.hovered) {
|
||||||
|
return Theme.palette.primarycontent;
|
||||||
|
}
|
||||||
|
return Theme.palette.basecontent;
|
||||||
|
}
|
||||||
|
font.pixelSize: 16
|
||||||
|
text: {
|
||||||
|
if (root.laptopBattery.state == UPowerDeviceState.Charging) {
|
||||||
|
return Icons.batteryCharging;
|
||||||
|
}
|
||||||
|
if (root.isCritical) {
|
||||||
|
return Icons.batteryWarning;
|
||||||
|
}
|
||||||
|
if (root.laptopBattery.percentage < 0.33) {
|
||||||
|
return Icons.batteryLow;
|
||||||
|
}
|
||||||
|
if (root.laptopBattery.percentage < 0.66) {
|
||||||
|
return Icons.batteryMedium;
|
||||||
|
}
|
||||||
|
return Icons.batteryFull;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
StyledText {
|
||||||
|
Layout.alignment: Qt.AlignVCenter
|
||||||
|
color: {
|
||||||
|
if (root.isCritical) {
|
||||||
|
return Theme.palette.error;
|
||||||
|
}
|
||||||
|
if (root.hovered) {
|
||||||
|
return Theme.palette.primarycontent;
|
||||||
|
}
|
||||||
|
return Theme.palette.basecontent;
|
||||||
|
}
|
||||||
|
text: `${root.laptopBattery.percentage * 100}%`
|
||||||
|
}
|
||||||
|
}
|
||||||
|
visible: laptopBattery
|
||||||
|
}
|
||||||
|
|
@ -2,10 +2,8 @@ pragma ComponentBehavior: Bound
|
||||||
|
|
||||||
import "services"
|
import "services"
|
||||||
import qs.components
|
import qs.components
|
||||||
import qs.config
|
|
||||||
import qs.constants
|
import qs.constants
|
||||||
import qs.services
|
import qs.services
|
||||||
import qs.widgets
|
|
||||||
import Quickshell.Hyprland
|
import Quickshell.Hyprland
|
||||||
import Quickshell.Wayland
|
import Quickshell.Wayland
|
||||||
import QtQuick
|
import QtQuick
|
||||||
|
|
|
||||||
12
services/PowerService.qml
Normal file
12
services/PowerService.qml
Normal file
|
|
@ -0,0 +1,12 @@
|
||||||
|
pragma Singleton
|
||||||
|
|
||||||
|
import Quickshell
|
||||||
|
import Quickshell.Services.UPower
|
||||||
|
|
||||||
|
Singleton {
|
||||||
|
id: root
|
||||||
|
|
||||||
|
property bool onBattery: UPower.onBattery
|
||||||
|
property UPowerDevice laptopBattery: UPower.devices.values.find(device => device.isLaptopBattery)
|
||||||
|
|
||||||
|
}
|
||||||
Loading…
Add table
Reference in a new issue