diff --git a/bar/modules/Volume.qml b/bar/modules/Volume.qml index b92c196..30f5986 100644 --- a/bar/modules/Volume.qml +++ b/bar/modules/Volume.qml @@ -268,6 +268,9 @@ ModuleChip { textColor: root.t.textMain dimColor: root.t.textDim borderColor: root.t.volPopupBorder + btnIdle: root.t.volLimitBtn + btnHover: root.t.volOutputLimitBtnHover + btnPress: root.t.volOutputLimitBtnPress onDecrement: root.outputMaxVolume = Math.max(10, root.outputMaxVolume - 10) onIncrement: root.outputMaxVolume = Math.min(300, root.outputMaxVolume + 10) } @@ -282,6 +285,9 @@ ModuleChip { textColor: root.t.textMain dimColor: root.t.textDim borderColor: root.t.volPopupBorder + btnIdle: root.t.volLimitBtn + btnHover: root.t.volInputLimitBtnHover + btnPress: root.t.volInputLimitBtnPress onDecrement: root.inputMaxVolume = Math.max(10, root.inputMaxVolume - 10) onIncrement: root.inputMaxVolume = Math.min(300, root.inputMaxVolume + 10) } @@ -506,6 +512,9 @@ ModuleChip { required property color textColor required property color dimColor required property color borderColor + required property color btnIdle + required property color btnHover + required property color btnPress signal decrement() signal increment() @@ -521,10 +530,18 @@ ModuleChip { } Rectangle { + id: decBtn width: 22; height: 22; radius: 5 - color: decHover.hovered ? "#22ffffff" : "transparent" + color: decMa.containsMouse + ? (decMa.pressed ? lr.btnPress : lr.btnHover) + : lr.btnIdle border.color: lr.borderColor border.width: Cfg.Config.popupBorderWidth + scale: decMa.pressed ? 0.88 : 1.0 + + Behavior on color { ColorAnimation { duration: 120 } } + Behavior on scale { NumberAnimation { duration: 100; easing.type: Easing.OutCubic } } + Text { anchors.centerIn: parent; text: "−" color: lr.value <= lr.minValue ? lr.dimColor : lr.textColor @@ -532,8 +549,13 @@ ModuleChip { font.bold: true renderType: Text.NativeRendering } - HoverHandler { id: decHover; cursorShape: Qt.PointingHandCursor } - TapHandler { onTapped: { if (lr.value > lr.minValue) lr.decrement() } } + MouseArea { + id: decMa + anchors.fill: parent + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + onClicked: { if (lr.value > lr.minValue) lr.decrement() } + } } Text { text: lr.value + "%" @@ -545,10 +567,18 @@ ModuleChip { } Rectangle { + id: incBtn width: 22; height: 22; radius: 5 - color: incHover.hovered ? "#22ffffff" : "transparent" + color: incMa.containsMouse + ? (incMa.pressed ? lr.btnPress : lr.btnHover) + : lr.btnIdle border.color: lr.borderColor border.width: Cfg.Config.popupBorderWidth + scale: incMa.pressed ? 0.88 : 1.0 + + Behavior on color { ColorAnimation { duration: 120 } } + Behavior on scale { NumberAnimation { duration: 100; easing.type: Easing.OutCubic } } + Text { anchors.centerIn: parent; text: "+" color: lr.value >= lr.maxValue ? lr.dimColor : lr.textColor @@ -556,8 +586,13 @@ ModuleChip { font.bold: true renderType: Text.NativeRendering } - HoverHandler { id: incHover; cursorShape: Qt.PointingHandCursor } - TapHandler { onTapped: { if (lr.value < lr.maxValue) lr.increment() } } + MouseArea { + id: incMa + anchors.fill: parent + hoverEnabled: true + cursorShape: Qt.PointingHandCursor + onClicked: { if (lr.value < lr.maxValue) lr.increment() } + } } } } diff --git a/config/config.qml b/config/config.qml index 65ddf83..eed94d4 100644 --- a/config/config.qml +++ b/config/config.qml @@ -90,7 +90,7 @@ QtObject { // NOTIFICATIONS // ──────────────────────────────────────────────────────────────────────── property bool notificationShakeEnabled: true // bell ringing shake for notifications - property string notificationPosition: "bottomright" + property string notificationPosition: "topright" property int notificationHistorySize: 50 // ── Toast timeouts (milliseconds) ───────────────────────────────────────── diff --git a/config/themes/aero.qml b/config/themes/aero.qml index de2117f..f131e13 100644 --- a/config/themes/aero.qml +++ b/config/themes/aero.qml @@ -59,6 +59,15 @@ QtObject { readonly property color volMuteBg: "#33cbdc3d" readonly property color volPickerHover: "#15cbdc3d" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff" diff --git a/config/themes/aurora.qml b/config/themes/aurora.qml index 1aa07fb..2d01d1e 100644 --- a/config/themes/aurora.qml +++ b/config/themes/aurora.qml @@ -59,6 +59,15 @@ QtObject { readonly property color volMuteBg: "#33ff4b4b" readonly property color volPickerHover: "#1500d9ff" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff" diff --git a/config/themes/beach.qml b/config/themes/beach.qml index f497c43..30faa44 100644 --- a/config/themes/beach.qml +++ b/config/themes/beach.qml @@ -59,6 +59,15 @@ QtObject { readonly property color volMuteBg: "#33d9a385" readonly property color volPickerHover: "#15ebc6a0" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff" diff --git a/config/themes/boat.qml b/config/themes/boat.qml index 6db5f7f..76908f7 100644 --- a/config/themes/boat.qml +++ b/config/themes/boat.qml @@ -60,6 +60,15 @@ QtObject { readonly property color volMuteBg: "#33f38ba8" readonly property color volPickerHover: "#15e0533c" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff" diff --git a/config/themes/colorful.qml b/config/themes/colorful.qml index 460254c..20ecfd2 100644 --- a/config/themes/colorful.qml +++ b/config/themes/colorful.qml @@ -59,6 +59,15 @@ QtObject { readonly property color volMuteBg: "#33f0a1ba" readonly property color volPickerHover: "#15f0a1ba" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff" diff --git a/config/themes/cosmic.qml b/config/themes/cosmic.qml index c05d425..f8c69f3 100644 --- a/config/themes/cosmic.qml +++ b/config/themes/cosmic.qml @@ -59,6 +59,15 @@ QtObject { readonly property color volMuteBg: "#33ffb3d1" readonly property color volPickerHover: "#15bdf0ff" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff" diff --git a/config/themes/everforest.qml b/config/themes/everforest.qml index 016fbf3..f00b507 100644 --- a/config/themes/everforest.qml +++ b/config/themes/everforest.qml @@ -59,6 +59,15 @@ QtObject { readonly property color volMuteBg: "#22ffffff" readonly property color volPickerHover: "#15ffffff" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#22ffffff" diff --git a/config/themes/goldencity.qml b/config/themes/goldencity.qml index 4413342..9df7510 100644 --- a/config/themes/goldencity.qml +++ b/config/themes/goldencity.qml @@ -60,6 +60,15 @@ QtObject { readonly property color volMuteBg: "#33f38ba8" readonly property color volPickerHover: "#15c19375" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22c19375" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff" diff --git a/config/themes/hummingbird.qml b/config/themes/hummingbird.qml index 2dc8724..2f859ad 100644 --- a/config/themes/hummingbird.qml +++ b/config/themes/hummingbird.qml @@ -60,6 +60,15 @@ QtObject { readonly property color volMuteBg: "#33f44336" readonly property color volPickerHover: "#15ff5722" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff" diff --git a/config/themes/metropolitan.qml b/config/themes/metropolitan.qml index e4228c8..304844d 100644 --- a/config/themes/metropolitan.qml +++ b/config/themes/metropolitan.qml @@ -60,6 +60,15 @@ QtObject { readonly property color volMuteBg: "#33f7768e" readonly property color volPickerHover: "#15ffb86c" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff" diff --git a/config/themes/neonica.qml b/config/themes/neonica.qml index ecbe8c9..966c386 100644 --- a/config/themes/neonica.qml +++ b/config/themes/neonica.qml @@ -59,6 +59,15 @@ QtObject { readonly property color volMuteBg: "#33eb6f92" readonly property color volPickerHover: "#22c4a7e7" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#22ffffff" diff --git a/config/themes/supreme.qml b/config/themes/supreme.qml index 02d51b1..2a09d6b 100644 --- a/config/themes/supreme.qml +++ b/config/themes/supreme.qml @@ -59,6 +59,15 @@ QtObject { readonly property color volMuteBg: "#33ff7eb9" readonly property color volPickerHover: "#15ff7eb9" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff" diff --git a/config/themes/tropicalnight.qml b/config/themes/tropicalnight.qml index a8e0279..a91fd0e 100644 --- a/config/themes/tropicalnight.qml +++ b/config/themes/tropicalnight.qml @@ -61,6 +61,15 @@ QtObject { readonly property color volMuteBg: "#33f38ba8" readonly property color volPickerHover: "#1589b4fa" + // ── Volume Limit Buttons ──────────────────────────────────────────────── + readonly property color volLimitBtn: "transparent" + readonly property color volLimitBtnHover: "#22ffffff" + readonly property color volLimitBtnPress: accent + readonly property color volOutputLimitBtnPress: accent + readonly property color volInputLimitBtnPress: statusInfo + readonly property color volOutputLimitBtnHover: Qt.alpha(accent, 0.08) + readonly property color volInputLimitBtnHover: Qt.alpha(statusInfo, 0.08) + // ── Clock Module ─────────────────────────────────────────────────────────── readonly property color clockBg: bgPanel readonly property color clockBgHover: "#11ffffff"