import QtQuick import QtQuick.Layouts import Quickshell import Quickshell.Widgets import qs.Services Scope { id: root property bool show: false property bool inhibited: true Connections { target: Brightness function onCurrBrightnessChanged() { root.show = true; hideTimer.restart(); } } onShowChanged: { if (show) hideTimer.restart(); } Timer { id: hideTimer interval: 1000 onTriggered: root.show = false } Timer { id: startInhibit interval: 100 running: true onTriggered: { root.show = false; root.inhibited = false; } } LazyLoader { active: root.show && !root.inhibited Variants { model: Quickshell.screens delegate: Scope { id: screenScope required property var modelData PanelWindow { id: window screen: screenScope.modelData anchors.top: true margins.top: screen.height / 2 - 50 + 3.5 exclusiveZone: 0 exclusionMode: ExclusionMode.Ignore implicitWidth: 400 implicitHeight: 50 mask: Region {} color: "transparent" Rectangle { anchors.fill: parent color: Qt.rgba(0, 0, 0, 0.75) } RowLayout { id: layout anchors.centerIn: parent height: 50 - 8*2 width: 400 - 8*2 MaterialDesignIcon { id: volumeIcon implicitWidth: parent.height implicitHeight: parent.height icon: `brightness-${Math.min(7, Math.floor(Brightness.currBrightness * 7) + 1)}` } Rectangle { Layout.fillWidth: true implicitHeight: 10 color: "#50ffffff" Rectangle { anchors { left: parent.left top: parent.top bottom: parent.bottom } color: "white" implicitWidth: parent.width * Brightness.currBrightness } } } } } } } }