From 8d59ce6153b0fac11511f5fa1088c4401beff070 Mon Sep 17 00:00:00 2001 From: Marco Allegretti Date: Wed, 6 May 2026 10:02:43 +0200 Subject: [PATCH] Add Convergence section to shell KCM Group convergence controls in one place by adding Convergence Mode, Dynamic Tiling, and Auto Hide Panels to the Shell settings page. Move Auto Hide Panels out of General and keep Dynamic Tiling disabled when convergence is off or gaming mode is active. --- kcms/mobileshell/ui/main.qml | 63 +++++++++++++++++++++++++++--------- 1 file changed, 48 insertions(+), 15 deletions(-) diff --git a/kcms/mobileshell/ui/main.qml b/kcms/mobileshell/ui/main.qml index 8ad07d0d..431caf09 100644 --- a/kcms/mobileshell/ui/main.qml +++ b/kcms/mobileshell/ui/main.qml @@ -48,21 +48,7 @@ KCM.SimpleKCM { } } - FormCard.FormDelegateSeparator { above: shellVibrationsButton; below: animationsSwitch } - - FormCard.FormSwitchDelegate { - id: autoHidePanels - text: i18n("Auto Hide Panels") - description: i18n("Auto-hide the status and navigation panels to allow applications to always be in fullscreen.") - checked: ShellSettings.Settings.autoHidePanelsEnabled - onCheckedChanged: { - if (checked != ShellSettings.Settings.autoHidePanelsEnabled) { - ShellSettings.Settings.autoHidePanelsEnabled = checked; - } - } - } - - FormCard.FormDelegateSeparator { above: autoHidePanels; below: doubleTapWakeup } + FormCard.FormDelegateSeparator { above: animationsSwitch; below: doubleTapWakeup } FormCard.FormSwitchDelegate { id: doubleTapWakeup @@ -77,6 +63,53 @@ KCM.SimpleKCM { } } + FormCard.FormHeader { + title: i18n("Convergence") + } + + FormCard.FormCard { + FormCard.FormSwitchDelegate { + id: convergenceModeSwitch + text: i18n("Convergence Mode") + description: i18n("Use desktop-style window placement, titlebar controls, Overview, and the dock.") + checked: ShellSettings.Settings.convergenceModeEnabled + onCheckedChanged: { + if (checked != ShellSettings.Settings.convergenceModeEnabled) { + ShellSettings.Settings.convergenceModeEnabled = checked; + } + } + } + + FormCard.FormDelegateSeparator { above: convergenceModeSwitch; below: dynamicTilingSwitch } + + FormCard.FormSwitchDelegate { + id: dynamicTilingSwitch + text: i18n("Dynamic Tiling") + description: i18n("Automatically arrange windows in convergence mode. Disabled while convergence mode is off or gaming mode is active.") + enabled: ShellSettings.Settings.convergenceModeEnabled && !ShellSettings.Settings.gamingModeEnabled + checked: ShellSettings.Settings.dynamicTilingEnabled + onCheckedChanged: { + if (checked != ShellSettings.Settings.dynamicTilingEnabled) { + ShellSettings.Settings.dynamicTilingEnabled = checked; + } + } + } + + FormCard.FormDelegateSeparator { above: dynamicTilingSwitch; below: autoHidePanels } + + FormCard.FormSwitchDelegate { + id: autoHidePanels + text: i18n("Auto Hide Panels") + description: i18n("Allow maximized or fullscreen applications to reclaim panel and dock space.") + checked: ShellSettings.Settings.autoHidePanelsEnabled + onCheckedChanged: { + if (checked != ShellSettings.Settings.autoHidePanelsEnabled) { + ShellSettings.Settings.autoHidePanelsEnabled = checked; + } + } + } + } + FormCard.FormHeader { title: i18n("Status Bar") }