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.
This commit is contained in:
Marco Allegretti 2026-05-06 10:02:43 +02:00
parent 4282b30a30
commit 8d59ce6153

View file

@ -48,21 +48,7 @@ KCM.SimpleKCM {
} }
} }
FormCard.FormDelegateSeparator { above: shellVibrationsButton; below: animationsSwitch } FormCard.FormDelegateSeparator { above: animationsSwitch; below: doubleTapWakeup }
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.FormSwitchDelegate { FormCard.FormSwitchDelegate {
id: doubleTapWakeup 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 { FormCard.FormHeader {
title: i18n("Status Bar") title: i18n("Status Bar")
} }