diff --git a/assets/icons/power.svg b/assets/icons/power.svg new file mode 100644 index 0000000..a15a059 --- /dev/null +++ b/assets/icons/power.svg @@ -0,0 +1 @@ + diff --git a/config/BarLayout.qml b/config/BarLayout.qml index 97bef46..20fd5fb 100644 --- a/config/BarLayout.qml +++ b/config/BarLayout.qml @@ -13,6 +13,7 @@ Singleton { property var left: [ root.widget("LauncherButton"), + root.widget("PowerProfileWidget"), root.widget("BatteryIndicator"), ] diff --git a/modules/bar/PowerProfileWidget.qml b/modules/bar/PowerProfileWidget.qml new file mode 100644 index 0000000..ed53823 --- /dev/null +++ b/modules/bar/PowerProfileWidget.qml @@ -0,0 +1,11 @@ +pragma ComponentBehavior: Bound + +import qs.ui +import qs.services + +BarButton { + hoverHighlight: false + pointerCursor: false + label: PowerProfile.name + iconSource: PowerProfile.icon +} diff --git a/services/PowerProfile.qml b/services/PowerProfile.qml new file mode 100644 index 0000000..f4347c8 --- /dev/null +++ b/services/PowerProfile.qml @@ -0,0 +1,22 @@ +pragma Singleton + +import QtQuick +import Quickshell +import Quickshell.Services.UPower as UPower + +Singleton { + id: root + + readonly property bool performanceAvailable: UPower.PowerProfiles.hasPerformanceProfile + readonly property string name: { + switch (UPower.PowerProfiles.profile) { + case UPower.PowerProfile.Performance: + return "Performance"; + case UPower.PowerProfile.PowerSaver: + return "Power Saver"; + default: + return "Balanced"; + } + } + readonly property url icon: `${Quickshell.shellPath("assets")}/icons/power.svg` +}