diff --git a/kwin/src/breezydesktopconfig.kcfg b/kwin/src/breezydesktopconfig.kcfg index 98dab8d..d6f1bca 100644 --- a/kwin/src/breezydesktopconfig.kcfg +++ b/kwin/src/breezydesktopconfig.kcfg @@ -98,5 +98,9 @@ Curve the displays around you + + + false + diff --git a/kwin/src/breezydesktopeffect.cpp b/kwin/src/breezydesktopeffect.cpp index 0a821ac..2942f73 100644 --- a/kwin/src/breezydesktopeffect.cpp +++ b/kwin/src/breezydesktopeffect.cpp @@ -263,6 +263,9 @@ void BreezyDesktopEffect::reconfigure(ReconfigureFlags) if (m_removeVirtualDisplaysOnDisable != removeVD) { m_removeVirtualDisplaysOnDisable = removeVD; Q_EMIT removeVirtualDisplaysOnDisableChanged(); } if (m_mirrorPhysicalDisplays != mirrorPhysicalDisplays) { m_mirrorPhysicalDisplays = mirrorPhysicalDisplays; Q_EMIT mirrorPhysicalDisplaysChanged(); } + const bool developerMode = BreezyDesktopConfig::developerMode(); + if (m_developerMode != developerMode) { m_developerMode = developerMode; Q_EMIT developerModeChanged(); } + bool curved = BreezyDesktopConfig::curvedDisplay() && m_curvedDisplaySupported; if (m_curvedDisplay != curved) { m_curvedDisplay = curved; Q_EMIT curvedDisplayChanged(); } @@ -270,6 +273,11 @@ void BreezyDesktopEffect::reconfigure(ReconfigureFlags) m_allDisplaysFollowMode = BreezyDesktopConfig::allDisplaysFollowMode(); } +bool BreezyDesktopEffect::developerMode() const +{ + return m_developerMode; +} + QVariantMap BreezyDesktopEffect::initialProperties(Output *screen) { return QVariantMap{ diff --git a/kwin/src/breezydesktopeffect.h b/kwin/src/breezydesktopeffect.h index 7c3d881..f3badc3 100644 --- a/kwin/src/breezydesktopeffect.h +++ b/kwin/src/breezydesktopeffect.h @@ -53,6 +53,7 @@ namespace KWin Q_PROPERTY(bool mirrorPhysicalDisplays READ mirrorPhysicalDisplays NOTIFY mirrorPhysicalDisplaysChanged) Q_PROPERTY(bool curvedDisplay READ curvedDisplay NOTIFY curvedDisplayChanged) Q_PROPERTY(bool curvedDisplaySupported READ curvedDisplaySupported WRITE setCurvedDisplaySupported NOTIFY curvedDisplaySupportedChanged) + Q_PROPERTY(bool developerMode READ developerMode NOTIFY developerModeChanged) public: @@ -105,6 +106,7 @@ namespace KWin bool removeVirtualDisplaysOnDisable() const; bool mirrorPhysicalDisplays() const; bool curvedDisplay() const; + bool developerMode() const; void setCurvedDisplaySupported(bool supported); void showCursor(); @@ -144,6 +146,7 @@ namespace KWin void mirrorPhysicalDisplaysChanged(); void curvedDisplayChanged(); void curvedDisplaySupportedChanged(); + void developerModeChanged(); void cursorImageSourceChanged(); void cursorPosChanged(); @@ -204,6 +207,7 @@ namespace KWin bool m_mirrorPhysicalDisplays = false; bool m_curvedDisplay = false; bool m_curvedDisplaySupported = false; + bool m_developerMode = false; float m_smoothFollowThreshold = 1.0f; bool m_allDisplaysFollowMode = false; bool m_focusedSmoothFollowEnabled = false; diff --git a/kwin/src/qml/main.qml b/kwin/src/qml/main.qml index f64f021..a03135d 100644 --- a/kwin/src/qml/main.qml +++ b/kwin/src/qml/main.qml @@ -30,8 +30,9 @@ Item { property real viewportDiagonalFOVDegrees: effect.diagonalFOV property var viewportResolution: effect.displayResolution property bool mirrorPhysicalDisplays: effect.mirrorPhysicalDisplays + property bool developerMode: effect.developerMode property var screens: KWinComponents.Workspace.screens.filter(function(screen) { - return mirrorPhysicalDisplays || screen.name.includes("BreezyDesktop") || supportedModels.some(model => screen.model.includes(model)); + return developerMode || mirrorPhysicalDisplays || screen.name.includes("BreezyDesktop") || supportedModels.some(model => screen.model.includes(model)); }) property var sizeAdjustedScreens: screens.map(function(screen) { const sizeComplement = (1.0 - distanceAdjustedSize) / 2.0; @@ -114,7 +115,7 @@ Item { return displays.monitorsToPlacements(fovDetails, adjustedGeometries, effect.displaySpacing); } - property bool targetScreenSupported: supportedModels.some(model => root.targetScreen.model.includes(model)) + property bool targetScreenSupported: developerMode || supportedModels.some(model => root.targetScreen.model.includes(model)) property bool targetScreenIsVirtual: targetScreen.name.includes("BreezyDesktop") property bool poseResetState: effect.poseResetState property bool isEnabled: effect.isEnabled