import QtQuick import Quickshell import Quickshell.Widgets import qs.Services Item { height: parent.height width: brightnessIcon.width + 8 anchors.verticalCenter: parent.verticalCenter WrapperMouseArea { id: widgetMouseArea anchors.fill: parent hoverEnabled: true property real sensitivity: (1 / 50) / 120 onWheel: event => Brightness.currBrightness += event.angleDelta.y * sensitivity Item { anchors.fill: parent MaterialDesignIcon { id: brightnessIcon implicitSize: 14 anchors.centerIn: parent icon: `brightness-${Math.min(7, Math.floor(Brightness.currBrightness * 7) + 1)}` color: "#555" } } } PopupWindow { id: tooltip property bool nextVisible: widgetMouseArea.containsMouse || tooltipMouseArea.containsMouse anchor { item: widgetMouseArea edges: Edges.Bottom | Edges.Left } visible: false onNextVisibleChanged: hangTimer.restart() Timer { id: hangTimer interval: 100 onTriggered: tooltip.visible = tooltip.nextVisible } implicitWidth: widgetTooltipText.contentWidth + 16 implicitHeight: widgetTooltipText.contentHeight + 16 color: "black" WrapperMouseArea { id: tooltipMouseArea hoverEnabled: true enabled: true anchors.centerIn: parent Text { id: widgetTooltipText font.pointSize: 10 font.family: "Fira Sans" color: "white" text: `${Math.round(Brightness.currBrightness * 100)}%` } } } }