diff --git a/Bar/Bar.qml b/Bar/Bar.qml index 5db9a94..986bacc 100644 --- a/Bar/Bar.qml +++ b/Bar/Bar.qml @@ -4,7 +4,7 @@ import QtQuick.Layouts import Quickshell import Quickshell.Io import Quickshell.Wayland -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import qs.Bar.Modules import qs.Settings import qs.Services diff --git a/Bar/Modules/Media.qml b/Bar/Modules/Media.qml index f51142d..ca30cd6 100644 --- a/Bar/Modules/Media.qml +++ b/Bar/Modules/Media.qml @@ -1,7 +1,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import qs.Settings import qs.Services import qs.Components @@ -63,8 +63,8 @@ Item { // Rounded corners using layer layer.enabled: true - layer.effect: MultiEffect { - maskEnabled: true + layer.effect: OpacityMask { + cached: true maskSource: Rectangle { width: albumArt.width height: albumArt.height diff --git a/Bar/Modules/SystemTray.qml b/Bar/Modules/SystemTray.qml index 685e967..fe2ceee 100644 --- a/Bar/Modules/SystemTray.qml +++ b/Bar/Modules/SystemTray.qml @@ -2,7 +2,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls import Quickshell -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import Quickshell.Services.SystemTray import Quickshell.Widgets import qs.Settings @@ -14,10 +14,10 @@ Row { property var trayMenu spacing: 8 Layout.alignment: Qt.AlignVCenter - + property bool containsMouse: false property var systemTray: SystemTray - + Repeater { model: systemTray.items delegate: Item { @@ -26,7 +26,7 @@ Row { // Hide Spotify icon, or adjust to your liking visible: modelData && modelData.id !== "spotify" property bool isHovered: trayMouseArea.containsMouse - + // Hover scale animation scale: isHovered ? 1.15 : 1.0 Behavior on scale { @@ -35,7 +35,7 @@ Row { easing.type: Easing.OutCubic } } - + // Subtle rotation on hover rotation: isHovered ? 5 : 0 Behavior on rotation { @@ -44,7 +44,7 @@ Row { easing.type: Easing.OutCubic } } - + Rectangle { anchors.centerIn: parent width: 16 @@ -63,8 +63,7 @@ Row { backer.fillMode: Image.PreserveAspectFit source: { let icon = modelData?.icon || ""; - if (!icon) - return ""; + if (!icon) return ""; // Process icon path if (icon.includes("?path=")) { const [name, path] = icon.split("?path="); @@ -81,60 +80,61 @@ Row { easing.type: Easing.OutCubic } } - Component.onCompleted: {} + Component.onCompleted: { + + } } } - + MouseArea { id: trayMouseArea anchors.fill: parent hoverEnabled: true cursorShape: Qt.PointingHandCursor acceptedButtons: Qt.LeftButton | Qt.RightButton | Qt.MiddleButton - onClicked: mouse => { - if (!modelData) - return; - + onClicked: (mouse) => { + if (!modelData) return; + if (mouse.button === Qt.LeftButton) { // Close any open menu first if (trayMenu && trayMenu.visible) { - trayMenu.hideMenu(); + trayMenu.hideMenu() } - + if (!modelData.onlyMenu) { - modelData.activate(); + modelData.activate() } } else if (mouse.button === Qt.MiddleButton) { // Close any open menu first if (trayMenu && trayMenu.visible) { - trayMenu.hideMenu(); + trayMenu.hideMenu() } - - modelData.secondaryActivate && modelData.secondaryActivate(); + + modelData.secondaryActivate && modelData.secondaryActivate() } else if (mouse.button === Qt.RightButton) { - trayTooltip.tooltipVisible = false; - console.log("Right click on", modelData.id, "hasMenu:", modelData.hasMenu, "menu:", modelData.menu); + trayTooltip.tooltipVisible = false + console.log("Right click on", modelData.id, "hasMenu:", modelData.hasMenu, "menu:", modelData.menu) // If menu is already visible, close it if (trayMenu && trayMenu.visible) { - trayMenu.hideMenu(); - return; + trayMenu.hideMenu() + return } - + if (modelData.hasMenu && modelData.menu && trayMenu) { // Anchor the menu to the tray icon item (parent) and position it below the icon const menuX = (width / 2) - (trayMenu.width / 2); const menuY = height + 20; trayMenu.menu = modelData.menu; trayMenu.showAt(parent, menuX, menuY); - } else - // console.log("No menu available for", modelData.id, "or trayMenu not set") - {} + } else { + // console.log("No menu available for", modelData.id, "or trayMenu not set") + } } } onEntered: trayTooltip.tooltipVisible = true onExited: trayTooltip.tooltipVisible = false } - + StyledTooltip { id: trayTooltip text: modelData.tooltipTitle || modelData.name || modelData.id || "Tray Item" @@ -143,10 +143,10 @@ Row { targetItem: trayIcon delay: 200 } - - Component.onDestruction: - // No cache cleanup needed - {} + + Component.onDestruction: { + // No cache cleanup needed + } } } -} +} \ No newline at end of file diff --git a/Bar/Modules/Workspace.qml b/Bar/Modules/Workspace.qml index a658a6a..40a4023 100644 --- a/Bar/Modules/Workspace.qml +++ b/Bar/Modules/Workspace.qml @@ -2,7 +2,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts import QtQuick.Window -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import Quickshell import Quickshell.Io import qs.Settings @@ -124,13 +124,13 @@ Item { border.color: Qt.rgba(Theme.textPrimary.r, Theme.textPrimary.g, Theme.textPrimary.b, 0.1) border.width: 1 layer.enabled: true - layer.effect: MultiEffect { - shadowColor: "black" - // radius: 12 - - shadowVerticalOffset: 0 - shadowHorizontalOffset: 0 - shadowOpacity: 0.10 + layer.effect: DropShadow { + color: "black" + radius: 12 + samples: 24 + verticalOffset: 0 + horizontalOffset: 0 + opacity: 0.10 } } diff --git a/Widgets/LockScreen/LockScreen.qml b/Widgets/LockScreen/LockScreen.qml index 379ce67..1097c29 100644 --- a/Widgets/LockScreen/LockScreen.qml +++ b/Widgets/LockScreen/LockScreen.qml @@ -2,7 +2,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls import QtQuick.Effects -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import Quickshell.Wayland import Quickshell import Quickshell.Services.Pam @@ -146,7 +146,6 @@ WlSessionLock { blurEnabled: true blur: 0.48 // controls blur strength (0 to 1) blurMax: 128 // max blur radius in pixels - // transparentBorder: true } ColumnLayout { @@ -170,9 +169,8 @@ WlSessionLock { visible: false asynchronous: true } - MultiEffect { + OpacityMask { anchors.fill: avatarImage - maskEnabled: true source: avatarImage maskSource: Rectangle { width: avatarImage.width @@ -191,11 +189,10 @@ WlSessionLock { visible: Settings.settings.profileImage === "" } layer.enabled: true - layer.effect: MultiEffect { - shadowEnabled: true - shadowColor: Theme.accentPrimary - // radius: 8 - // samples: 16 + layer.effect: Glow { + color: Theme.accentPrimary + radius: 8 + samples: 16 } } diff --git a/Widgets/Overview.qml b/Widgets/Overview.qml index 790cbb7..c23b79f 100644 --- a/Widgets/Overview.qml +++ b/Widgets/Overview.qml @@ -2,6 +2,7 @@ import QtQuick import QtQuick.Effects import Quickshell import Quickshell.Wayland +import Qt5Compat.GraphicalEffects import qs.Services import qs.Settings @@ -52,4 +53,4 @@ ShellRoot { } } } -} +} \ No newline at end of file diff --git a/Widgets/Sidebar/Config/ProfileSettings.qml b/Widgets/Sidebar/Config/ProfileSettings.qml index 00bf26e..eac4e30 100644 --- a/Widgets/Sidebar/Config/ProfileSettings.qml +++ b/Widgets/Sidebar/Config/ProfileSettings.qml @@ -1,7 +1,7 @@ import QtQuick import QtQuick.Layouts -import QtQuick.Effects import QtQuick.Controls +import Qt5Compat.GraphicalEffects import qs.Settings Rectangle { @@ -74,8 +74,7 @@ Rectangle { sourceSize.height: 64 } - MultiEffect { - maskEnabled: true + OpacityMask { anchors.fill: avatarImage source: avatarImage maskSource: Rectangle { @@ -663,4 +662,4 @@ Rectangle { } } } -} +} \ No newline at end of file diff --git a/Widgets/Sidebar/Panel/Music.qml b/Widgets/Sidebar/Panel/Music.qml index 299fa22..553f3b3 100644 --- a/Widgets/Sidebar/Panel/Music.qml +++ b/Widgets/Sidebar/Panel/Music.qml @@ -1,7 +1,7 @@ import QtQuick import QtQuick.Controls import QtQuick.Layouts -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import qs.Settings import qs.Components import qs.Services @@ -102,8 +102,8 @@ Rectangle { // Rounded corners using layer layer.enabled: true - layer.effect: MultiEffect { - maskEnabled: true + layer.effect: OpacityMask { + cached: true maskSource: Rectangle { width: albumArt.width height: albumArt.height @@ -318,4 +318,4 @@ Rectangle { } } } -} +} \ No newline at end of file diff --git a/Widgets/Sidebar/Panel/QuickAccess.qml b/Widgets/Sidebar/Panel/QuickAccess.qml index e8ba245..93975f1 100644 --- a/Widgets/Sidebar/Panel/QuickAccess.qml +++ b/Widgets/Sidebar/Panel/QuickAccess.qml @@ -1,7 +1,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import Quickshell import Quickshell.Io import qs.Settings diff --git a/Widgets/Sidebar/Panel/System.qml b/Widgets/Sidebar/Panel/System.qml index a4aeea4..2d8b96a 100644 --- a/Widgets/Sidebar/Panel/System.qml +++ b/Widgets/Sidebar/Panel/System.qml @@ -1,7 +1,7 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls -import QtQuick.Effects +import Qt5Compat.GraphicalEffects import Quickshell import Quickshell.Io import qs.Settings @@ -51,8 +51,7 @@ Rectangle { z: 2 } - MultiEffect { - maskEnabled:true + OpacityMask { anchors.fill: parent source: Image { id: avatarImage