diff --git a/.config/quickshell/ii/modules/bar/Bar.qml b/.config/quickshell/ii/modules/bar/Bar.qml index 01d794f4f..71852e3cd 100644 --- a/.config/quickshell/ii/modules/bar/Bar.qml +++ b/.config/quickshell/ii/modules/bar/Bar.qml @@ -75,10 +75,17 @@ Scope { right: true } + margins { + right: (Config.options.interactions.deadPixelWorkaround.enable && barRoot.anchors.right) * -1 + } + MouseArea { id: hoverRegion hoverEnabled: true - anchors.fill: parent + anchors { + fill: parent + rightMargin: (Config.options.interactions.deadPixelWorkaround.enable && barRoot.anchors.right) * 1 + } Item { id: hoverMaskRegion @@ -100,6 +107,7 @@ Scope { bottom: undefined topMargin: (Config?.options.bar.autoHide.enable && !mustShow) ? -Appearance.sizes.barHeight : 0 bottomMargin: 0 + rightMargin: (Config.options.interactions.deadPixelWorkaround.enable && barRoot.anchors.right) * -1 } Behavior on anchors.topMargin { animation: Appearance.animation.elementMoveFast.numberAnimation.createObject(this) diff --git a/.config/quickshell/ii/modules/common/Config.qml b/.config/quickshell/ii/modules/common/Config.qml index dc20e9195..2fc3d285b 100644 --- a/.config/quickshell/ii/modules/common/Config.qml +++ b/.config/quickshell/ii/modules/common/Config.qml @@ -226,6 +226,9 @@ Singleton { property int mouseScrollFactor: 120 property int touchpadScrollFactor: 450 } + property JsonObject deadPixelWorkaround: JsonObject { // Hyprland leaves out 1 pixel on the right for interactions + property bool enable: true + } } property JsonObject language: JsonObject { diff --git a/.config/quickshell/ii/modules/common/widgets/RoundCorner.qml b/.config/quickshell/ii/modules/common/widgets/RoundCorner.qml index 80aa62f2e..785e01bce 100644 --- a/.config/quickshell/ii/modules/common/widgets/RoundCorner.qml +++ b/.config/quickshell/ii/modules/common/widgets/RoundCorner.qml @@ -6,6 +6,10 @@ Item { enum CornerEnum { TopLeft, TopRight, BottomLeft, BottomRight } property var corner: RoundCorner.CornerEnum.TopLeft + property alias leftVisualMargin: shape.anchors.leftMargin + property alias topVisualMargin: shape.anchors.topMargin + property alias rightVisualMargin: shape.anchors.rightMargin + property alias bottomVisualMargin: shape.anchors.bottomMargin property int implicitSize: 25 property color color: "#000000" @@ -23,6 +27,7 @@ Item { property bool isRight: isTopRight || isBottomRight Shape { + id: shape anchors { top: root.isTop ? parent.top : undefined bottom: root.isBottom ? parent.bottom : undefined diff --git a/.config/quickshell/ii/modules/screenCorners/ScreenCorners.qml b/.config/quickshell/ii/modules/screenCorners/ScreenCorners.qml index f62794f47..92b8627ab 100644 --- a/.config/quickshell/ii/modules/screenCorners/ScreenCorners.qml +++ b/.config/quickshell/ii/modules/screenCorners/ScreenCorners.qml @@ -41,13 +41,19 @@ Scope { bottom: cornerWidget.isBottomLeft || cornerWidget.isBottomRight right: cornerWidget.isTopRight || cornerWidget.isBottomRight } + margins { + right: (Config.options.interactions.deadPixelWorkaround.enable && cornerPanelWindow.anchors.right) * -1 + } implicitWidth: cornerWidget.implicitWidth implicitHeight: cornerWidget.implicitHeight RoundCorner { id: cornerWidget + anchors.fill: parent corner: cornerPanelWindow.corner + rightVisualMargin: (Config.options.interactions.deadPixelWorkaround.enable && cornerPanelWindow.anchors.right) * 1 + implicitSize: Appearance.rounding.screenRounding implicitHeight: Math.max(implicitSize, sidebarCornerOpenInteractionLoader.implicitHeight) implicitWidth: Math.max(implicitSize, sidebarCornerOpenInteractionLoader.implicitWidth)