diff --git a/Bar/Bar.qml b/Bar/Bar.qml index 52e7f34..63b4692 100644 --- a/Bar/Bar.qml +++ b/Bar/Bar.qml @@ -100,19 +100,18 @@ Scope { Brightness { id: widgetsBrightness anchors.verticalCenter: parent.verticalCenter - anchors.verticalCenterOffset: 1 } Volume { id: widgetsVolume shell: rootScope.shell anchors.verticalCenter: parent.verticalCenter - anchors.verticalCenterOffset: 1 } SystemTray { id: systemTrayModule shell: rootScope.shell + anchors.verticalCenter: parent.verticalCenter bar: panel trayMenu: externalTrayMenu } @@ -123,7 +122,6 @@ Scope { ClockWidget { anchors.verticalCenter: parent.verticalCenter - anchors.verticalCenterOffset: 1 } PanelPopup { @@ -133,7 +131,6 @@ Scope { Button { barBackground: barBackground anchors.verticalCenter: parent.verticalCenter - anchors.verticalCenterOffset: 1 screen: modelData sidebarPopup: sidebarPopup } diff --git a/Bar/Modules/Applauncher.qml b/Bar/Modules/Applauncher.qml index 60970ac..301a06a 100644 --- a/Bar/Modules/Applauncher.qml +++ b/Bar/Modules/Applauncher.qml @@ -15,12 +15,13 @@ PanelWindow { implicitHeight: 640 color: "transparent" visible: false + WlrLayershell.exclusionMode: ExclusionMode.Ignore WlrLayershell.keyboardFocus: visible ? WlrKeyboardFocus.Exclusive : WlrKeyboardFocus.None screen: (typeof modelData !== 'undefined' ? modelData : null) property bool shouldBeVisible: false anchors.top: true - margins.top: -26 + margins.top: 36 function showAt() { visible = true; diff --git a/Bar/Modules/SystemTray.qml b/Bar/Modules/SystemTray.qml index 7c00eeb..98f95b1 100644 --- a/Bar/Modules/SystemTray.qml +++ b/Bar/Modules/SystemTray.qml @@ -2,8 +2,10 @@ import QtQuick import QtQuick.Layouts import QtQuick.Controls import Quickshell +import Qt5Compat.GraphicalEffects import Quickshell.Services.SystemTray import Quickshell.Widgets +import qs.Settings Row { property var bar @@ -42,33 +44,44 @@ Row { } } - IconImage { - id: trayIcon + Rectangle { anchors.centerIn: parent - width: 18 - height: 18 - smooth: false // Memory savings - asynchronous: true - source: { - let icon = modelData?.icon || ""; - if (!icon) return ""; - // Process icon path - if (icon.includes("?path=")) { - const [name, path] = icon.split("?path="); - const fileName = name.substring(name.lastIndexOf("/") + 1); - return `file://${path}/${fileName}`; + width: 16 + height: 16 + radius: 6 + color: "transparent" + clip: true + + IconImage { + id: trayIcon + anchors.centerIn: parent + width: 16 + height: 16 + smooth: false + asynchronous: true + backer.fillMode: Image.PreserveAspectFit + source: { + let icon = modelData?.icon || ""; + if (!icon) return ""; + // Process icon path + if (icon.includes("?path=")) { + const [name, path] = icon.split("?path="); + const fileName = name.substring(name.lastIndexOf("/") + 1); + return `file://${path}/${fileName}`; + } + return icon; } - return icon; - } - opacity: status === Image.Ready ? 1 : 0 - Behavior on opacity { - NumberAnimation { - duration: 300 - easing.type: Easing.OutCubic + opacity: status === Image.Ready ? 1 : 0 + + Behavior on opacity { + NumberAnimation { + duration: 300 + easing.type: Easing.OutCubic + } + } + Component.onCompleted: { + } - } - Component.onCompleted: { - // console.log("Tray icon for", modelData?.id, ":", modelData?.icon) } } diff --git a/Settings/Settings.qml b/Settings/Settings.qml index 18928b0..6ff0e62 100644 --- a/Settings/Settings.qml +++ b/Settings/Settings.qml @@ -54,6 +54,7 @@ QtObject { transitionFps = settings.value("transitionFps", transitionFps) transitionType = settings.value("transitionType", transitionType) transitionDuration = settings.value("transitionDuration", transitionDuration) + WallpaperManager.setCurrentWallpaper(currentWallpaper, true); } function saveSettings() { diff --git a/Widgets/LockScreen.qml b/Widgets/LockScreen.qml index 143a71c..04830bc 100644 --- a/Widgets/LockScreen.qml +++ b/Widgets/LockScreen.qml @@ -129,9 +129,7 @@ WlSessionLock { fillMode: Image.PreserveAspectCrop source: WallpaperManager.currentWallpaper !== "" ? WallpaperManager.currentWallpaper : "" cache: true - smooth: true - sourceSize.width: 2560 - sourceSize.height: 1440 + smooth: false visible: true // Show the original for FastBlur input } FastBlur { @@ -208,7 +206,7 @@ WlSessionLock { height: 50 radius: 25 color: Theme.surface - opacity: 0.3 + opacity: passwordInput.activeFocus ? 0.8 : 0.3 border.color: passwordInput.activeFocus ? Theme.accentPrimary : Theme.outline border.width: 2 @@ -244,6 +242,10 @@ WlSessionLock { lock.unlockAttempt() } } + + Component.onCompleted: { + forceActiveFocus() + } } } @@ -268,15 +270,16 @@ WlSessionLock { width: 120 height: 44 radius: 22 - color: unlockButtonArea.containsMouse ? Theme.accentPrimary : "transparent" + opacity: unlockButtonArea.containsMouse ? 0.8 : 0.5 + color: unlockButtonArea.containsMouse ? Theme.accentPrimary : Theme.surface border.color: Theme.accentPrimary border.width: 2 - opacity: lock.authenticating ? 0.5 : 0.8 enabled: !lock.authenticating Text { + id: unlockButtonText anchors.centerIn: parent - text: lock.authenticating ? "Authenticating..." : "Unlock" + text: lock.authenticating ? "..." : "Unlock" font.family: Theme.fontFamily font.pixelSize: 16 font.bold: true @@ -293,6 +296,10 @@ WlSessionLock { } } } + + Behavior on opacity { + NumberAnimation { duration: 200 } + } } }