diff --git a/kwin/src/breezydesktopconfig.kcfg b/kwin/src/breezydesktopconfig.kcfg index 17d6b9a..ab1bdb0 100644 --- a/kwin/src/breezydesktopconfig.kcfg +++ b/kwin/src/breezydesktopconfig.kcfg @@ -57,12 +57,10 @@ 0=None, 1=Medium, 2=High, 3=Very High - - 1 - 0 - 2 - - How to handle the physical (built-in) monitors: 0=Off, 1=On - not mirrored in XR, 2=On - mirrored in XR (may impact performance) + + false + + Whether to mirror the physical monitors in XR true diff --git a/kwin/src/breezydesktopeffect.cpp b/kwin/src/breezydesktopeffect.cpp index 145b067..724618e 100644 --- a/kwin/src/breezydesktopeffect.cpp +++ b/kwin/src/breezydesktopeffect.cpp @@ -203,14 +203,14 @@ void BreezyDesktopEffect::reconfigure(ReconfigureFlags) int wrap = BreezyDesktopConfig::displayWrappingScheme(); int aaQuality = BreezyDesktopConfig::antialiasingQuality(); bool removeVD = BreezyDesktopConfig::removeVirtualDisplaysOnDisable(); - int physDisplaysMode = BreezyDesktopConfig::physicalDisplaysMode(); + bool mirrorPhysicalDisplays = BreezyDesktopConfig::mirrorPhysicalDisplays(); bool changed = false; if (!qFuzzyCompare(m_displayHorizontalOffset, horiz)) { m_displayHorizontalOffset = horiz; changed = true; } if (!qFuzzyCompare(m_displayVerticalOffset, vert)) { m_displayVerticalOffset = vert; changed = true; } if (m_displayWrappingScheme != wrap) { m_displayWrappingScheme = wrap; Q_EMIT displayWrappingSchemeChanged(); } if (m_antialiasingQuality != aaQuality) { m_antialiasingQuality = aaQuality; Q_EMIT antialiasingQualityChanged(); } if (m_removeVirtualDisplaysOnDisable != removeVD) { m_removeVirtualDisplaysOnDisable = removeVD; Q_EMIT removeVirtualDisplaysOnDisableChanged(); } - if (m_physicalDisplaysMode != physDisplaysMode) { m_physicalDisplaysMode = physDisplaysMode; Q_EMIT physicalDisplaysModeChanged(); } + if (m_mirrorPhysicalDisplays != mirrorPhysicalDisplays) { m_mirrorPhysicalDisplays = mirrorPhysicalDisplays; Q_EMIT mirrorPhysicalDisplaysChanged(); } if (changed) Q_EMIT displayOffsetChanged(); } @@ -429,8 +429,8 @@ bool BreezyDesktopEffect::removeVirtualDisplaysOnDisable() const { return m_removeVirtualDisplaysOnDisable; } -int BreezyDesktopEffect::physicalDisplaysMode() const { - return m_physicalDisplaysMode; +bool BreezyDesktopEffect::mirrorPhysicalDisplays() const { + return m_mirrorPhysicalDisplays; } bool BreezyDesktopEffect::checkParityByte(const char* data) { diff --git a/kwin/src/breezydesktopeffect.h b/kwin/src/breezydesktopeffect.h index 3ac3fbf..bcbdd49 100644 --- a/kwin/src/breezydesktopeffect.h +++ b/kwin/src/breezydesktopeffect.h @@ -37,7 +37,7 @@ namespace KWin Q_PROPERTY(bool customBannerEnabled READ customBannerEnabled NOTIFY devicePropertiesChanged) Q_PROPERTY(int antialiasingQuality READ antialiasingQuality NOTIFY antialiasingQualityChanged) Q_PROPERTY(bool removeVirtualDisplaysOnDisable READ removeVirtualDisplaysOnDisable NOTIFY removeVirtualDisplaysOnDisableChanged) - Q_PROPERTY(int physicalDisplaysMode READ physicalDisplaysMode NOTIFY physicalDisplaysModeChanged) + Q_PROPERTY(bool mirrorPhysicalDisplays READ mirrorPhysicalDisplays NOTIFY mirrorPhysicalDisplaysChanged) public: @@ -76,7 +76,7 @@ namespace KWin bool customBannerEnabled() const; int antialiasingQuality() const; bool removeVirtualDisplaysOnDisable() const; - int physicalDisplaysMode() const; + bool mirrorPhysicalDisplays() const; void showCursor(); void hideCursor(); @@ -106,7 +106,7 @@ namespace KWin void devicePropertiesChanged(); void antialiasingQualityChanged(); void removeVirtualDisplaysOnDisableChanged(); - void physicalDisplaysModeChanged(); + void mirrorPhysicalDisplaysChanged(); protected: QVariantMap initialProperties(Output *screen) override; @@ -145,7 +145,7 @@ namespace KWin int m_displayWrappingScheme = 0; // 0=auto,1=horizontal,2=vertical,3=flat int m_antialiasingQuality = 3; // 0=None, 1=Medium, 2=High, 3=VeryHigh bool m_removeVirtualDisplaysOnDisable = true; - int m_physicalDisplaysMode = 1; // 0=Off,1=On no mirror,2=On mirrored + bool m_mirrorPhysicalDisplays = false; QList m_virtualOutputs; }; diff --git a/kwin/src/kcm/breezydesktopeffectkcm.cpp b/kwin/src/kcm/breezydesktopeffectkcm.cpp index 14cf70b..3c729a9 100644 --- a/kwin/src/kcm/breezydesktopeffectkcm.cpp +++ b/kwin/src/kcm/breezydesktopeffectkcm.cpp @@ -106,7 +106,7 @@ BreezyDesktopEffectConfig::BreezyDesktopEffectConfig(QObject *parent, const KPlu connect(ui.kcfg_DisplayVerticalOffset, &QSlider::valueChanged, this, &BreezyDesktopEffectConfig::save); connect(ui.kcfg_DisplayWrappingScheme, qOverload(&QComboBox::currentIndexChanged), this, &BreezyDesktopEffectConfig::save); connect(ui.kcfg_AntialiasingQuality, qOverload(&QComboBox::currentIndexChanged), this, &BreezyDesktopEffectConfig::save); - connect(ui.kcfg_PhysicalDisplaysMode, qOverload(&QComboBox::currentIndexChanged), this, &BreezyDesktopEffectConfig::save); + connect(ui.kcfg_MirrorPhysicalDisplays, &QCheckBox::toggled, this, &BreezyDesktopEffectConfig::save); connect(ui.kcfg_RemoveVirtualDisplaysOnDisable, &QCheckBox::toggled, this, &BreezyDesktopEffectConfig::save); if (auto label = widget()->findChild("labelAppNameVersion")) { @@ -227,7 +227,7 @@ void BreezyDesktopEffectConfig::updateUiFromConfig() ui.kcfg_DisplayVerticalOffset->setValue(BreezyDesktopConfig::self()->displayVerticalOffset()); ui.kcfg_DisplayWrappingScheme->setCurrentIndex(BreezyDesktopConfig::self()->displayWrappingScheme()); ui.kcfg_AntialiasingQuality->setCurrentIndex(BreezyDesktopConfig::self()->antialiasingQuality()); - ui.kcfg_PhysicalDisplaysMode->setCurrentIndex(BreezyDesktopConfig::self()->physicalDisplaysMode()); + ui.kcfg_MirrorPhysicalDisplays->setChecked(BreezyDesktopConfig::self()->mirrorPhysicalDisplays()); ui.kcfg_RemoveVirtualDisplaysOnDisable->setChecked(BreezyDesktopConfig::self()->removeVirtualDisplaysOnDisable()); ui.kcfg_ZoomOnFocusEnabled->setChecked(BreezyDesktopConfig::self()->zoomOnFocusEnabled()); ui.kcfg_FocusedDisplayDistance->setEnabled(ui.kcfg_ZoomOnFocusEnabled->isChecked()); diff --git a/kwin/src/kcm/breezydesktopeffectkcm.ui b/kwin/src/kcm/breezydesktopeffectkcm.ui index d91049f..7b71a73 100644 --- a/kwin/src/kcm/breezydesktopeffectkcm.ui +++ b/kwin/src/kcm/breezydesktopeffectkcm.ui @@ -267,39 +267,13 @@ - - - Physical Displays On/Off: - - - - - - - - Off - - - - - On - not mirrored in XR - - - - - On - mirrored in XR (may impact performance) - - - - - Display Horizontal Offset: - + 2 @@ -318,14 +292,14 @@ - + Display Vertical Offset: - + 2 @@ -344,7 +318,7 @@ - + false @@ -358,6 +332,14 @@ true + + + + Mirror physical displays (may impact performance) + + false + + diff --git a/kwin/src/qml/main.qml b/kwin/src/qml/main.qml index 8e54650..0350329 100644 --- a/kwin/src/qml/main.qml +++ b/kwin/src/qml/main.qml @@ -25,7 +25,7 @@ Item { property real viewportDiagonalFOVDegrees: effect.diagonalFOV property var viewportResolution: effect.displayResolution - property bool mirrorPhysicalDisplays: effect.physicalDisplaysMode === 2 + property bool mirrorPhysicalDisplays: effect.mirrorPhysicalDisplays property var screens: KWinComponents.Workspace.screens.filter(function(screen) { return mirrorPhysicalDisplays || screen.name.includes("BreezyDesktop") || supportedModels.some(model => screen.model.includes(model)); })