Add developer mode

This commit is contained in:
wheaney 2026-01-10 10:26:10 -08:00
parent efd652b77c
commit f90ac4fe3c
4 changed files with 19 additions and 2 deletions

View File

@ -98,5 +98,9 @@
<label>Curved display</label> <label>Curved display</label>
<description>Curve the displays around you</description> <description>Curve the displays around you</description>
</entry> </entry>
<entry name="DeveloperMode" type="Bool">
<default>false</default>
</entry>
</group> </group>
</kcfg> </kcfg>

View File

@ -263,6 +263,9 @@ void BreezyDesktopEffect::reconfigure(ReconfigureFlags)
if (m_removeVirtualDisplaysOnDisable != removeVD) { m_removeVirtualDisplaysOnDisable = removeVD; Q_EMIT removeVirtualDisplaysOnDisableChanged(); } if (m_removeVirtualDisplaysOnDisable != removeVD) { m_removeVirtualDisplaysOnDisable = removeVD; Q_EMIT removeVirtualDisplaysOnDisableChanged(); }
if (m_mirrorPhysicalDisplays != mirrorPhysicalDisplays) { m_mirrorPhysicalDisplays = mirrorPhysicalDisplays; Q_EMIT mirrorPhysicalDisplaysChanged(); } 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; bool curved = BreezyDesktopConfig::curvedDisplay() && m_curvedDisplaySupported;
if (m_curvedDisplay != curved) { m_curvedDisplay = curved; Q_EMIT curvedDisplayChanged(); } if (m_curvedDisplay != curved) { m_curvedDisplay = curved; Q_EMIT curvedDisplayChanged(); }
@ -270,6 +273,11 @@ void BreezyDesktopEffect::reconfigure(ReconfigureFlags)
m_allDisplaysFollowMode = BreezyDesktopConfig::allDisplaysFollowMode(); m_allDisplaysFollowMode = BreezyDesktopConfig::allDisplaysFollowMode();
} }
bool BreezyDesktopEffect::developerMode() const
{
return m_developerMode;
}
QVariantMap BreezyDesktopEffect::initialProperties(Output *screen) QVariantMap BreezyDesktopEffect::initialProperties(Output *screen)
{ {
return QVariantMap{ return QVariantMap{

View File

@ -53,6 +53,7 @@ namespace KWin
Q_PROPERTY(bool mirrorPhysicalDisplays READ mirrorPhysicalDisplays NOTIFY mirrorPhysicalDisplaysChanged) Q_PROPERTY(bool mirrorPhysicalDisplays READ mirrorPhysicalDisplays NOTIFY mirrorPhysicalDisplaysChanged)
Q_PROPERTY(bool curvedDisplay READ curvedDisplay NOTIFY curvedDisplayChanged) Q_PROPERTY(bool curvedDisplay READ curvedDisplay NOTIFY curvedDisplayChanged)
Q_PROPERTY(bool curvedDisplaySupported READ curvedDisplaySupported WRITE setCurvedDisplaySupported NOTIFY curvedDisplaySupportedChanged) Q_PROPERTY(bool curvedDisplaySupported READ curvedDisplaySupported WRITE setCurvedDisplaySupported NOTIFY curvedDisplaySupportedChanged)
Q_PROPERTY(bool developerMode READ developerMode NOTIFY developerModeChanged)
public: public:
@ -105,6 +106,7 @@ namespace KWin
bool removeVirtualDisplaysOnDisable() const; bool removeVirtualDisplaysOnDisable() const;
bool mirrorPhysicalDisplays() const; bool mirrorPhysicalDisplays() const;
bool curvedDisplay() const; bool curvedDisplay() const;
bool developerMode() const;
void setCurvedDisplaySupported(bool supported); void setCurvedDisplaySupported(bool supported);
void showCursor(); void showCursor();
@ -144,6 +146,7 @@ namespace KWin
void mirrorPhysicalDisplaysChanged(); void mirrorPhysicalDisplaysChanged();
void curvedDisplayChanged(); void curvedDisplayChanged();
void curvedDisplaySupportedChanged(); void curvedDisplaySupportedChanged();
void developerModeChanged();
void cursorImageSourceChanged(); void cursorImageSourceChanged();
void cursorPosChanged(); void cursorPosChanged();
@ -204,6 +207,7 @@ namespace KWin
bool m_mirrorPhysicalDisplays = false; bool m_mirrorPhysicalDisplays = false;
bool m_curvedDisplay = false; bool m_curvedDisplay = false;
bool m_curvedDisplaySupported = false; bool m_curvedDisplaySupported = false;
bool m_developerMode = false;
float m_smoothFollowThreshold = 1.0f; float m_smoothFollowThreshold = 1.0f;
bool m_allDisplaysFollowMode = false; bool m_allDisplaysFollowMode = false;
bool m_focusedSmoothFollowEnabled = false; bool m_focusedSmoothFollowEnabled = false;

View File

@ -30,8 +30,9 @@ Item {
property real viewportDiagonalFOVDegrees: effect.diagonalFOV property real viewportDiagonalFOVDegrees: effect.diagonalFOV
property var viewportResolution: effect.displayResolution property var viewportResolution: effect.displayResolution
property bool mirrorPhysicalDisplays: effect.mirrorPhysicalDisplays property bool mirrorPhysicalDisplays: effect.mirrorPhysicalDisplays
property bool developerMode: effect.developerMode
property var screens: KWinComponents.Workspace.screens.filter(function(screen) { 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) { property var sizeAdjustedScreens: screens.map(function(screen) {
const sizeComplement = (1.0 - distanceAdjustedSize) / 2.0; const sizeComplement = (1.0 - distanceAdjustedSize) / 2.0;
@ -114,7 +115,7 @@ Item {
return displays.monitorsToPlacements(fovDetails, adjustedGeometries, effect.displaySpacing); 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 targetScreenIsVirtual: targetScreen.name.includes("BreezyDesktop")
property bool poseResetState: effect.poseResetState property bool poseResetState: effect.poseResetState
property bool isEnabled: effect.isEnabled property bool isEnabled: effect.isEnabled