From 82d43640326bed59a54c4e202972094c44039cde Mon Sep 17 00:00:00 2001 From: purian23 Date: Wed, 3 Jun 2026 18:45:33 -0400 Subject: [PATCH] feat(hyprland): add Resize on Border layout option --- quickshell/Common/SettingsData.qml | 1 + quickshell/Common/settings/SettingsSpec.js | 1 + quickshell/Modules/Settings/ThemeColorsTab.qml | 10 ++++++++++ quickshell/Services/HyprlandService.qml | 2 ++ 4 files changed, 14 insertions(+) diff --git a/quickshell/Common/SettingsData.qml b/quickshell/Common/SettingsData.qml index 5dda4e74..1f85f54f 100644 --- a/quickshell/Common/SettingsData.qml +++ b/quickshell/Common/SettingsData.qml @@ -173,6 +173,7 @@ Singleton { property int hyprlandLayoutGapsOverride: -1 property int hyprlandLayoutRadiusOverride: -1 property int hyprlandLayoutBorderSize: -1 + property bool hyprlandResizeOnBorder: false property int mangoLayoutGapsOverride: -1 property int mangoLayoutRadiusOverride: -1 property int mangoLayoutBorderSize: -1 diff --git a/quickshell/Common/settings/SettingsSpec.js b/quickshell/Common/settings/SettingsSpec.js index b430630d..de81b1a4 100644 --- a/quickshell/Common/settings/SettingsSpec.js +++ b/quickshell/Common/settings/SettingsSpec.js @@ -29,6 +29,7 @@ var SPEC = { hyprlandLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" }, hyprlandLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" }, hyprlandLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" }, + hyprlandResizeOnBorder: { def: false, onChange: "updateCompositorLayout" }, mangoLayoutGapsOverride: { def: -1, onChange: "updateCompositorLayout" }, mangoLayoutRadiusOverride: { def: -1, onChange: "updateCompositorLayout" }, mangoLayoutBorderSize: { def: -1, onChange: "updateCompositorLayout" }, diff --git a/quickshell/Modules/Settings/ThemeColorsTab.qml b/quickshell/Modules/Settings/ThemeColorsTab.qml index 0519abae..8f8fb333 100644 --- a/quickshell/Modules/Settings/ThemeColorsTab.qml +++ b/quickshell/Modules/Settings/ThemeColorsTab.qml @@ -2159,6 +2159,16 @@ Item { defaultValue: 2 onSliderValueChanged: newValue => SettingsData.set("hyprlandLayoutBorderSize", newValue) } + + SettingsToggleRow { + tab: "theme" + tags: ["hyprland", "resize", "border", "mouse", "drag"] + settingKey: "hyprlandResizeOnBorder" + text: I18n.tr("Resize on Border") + description: I18n.tr("Resize windows by dragging their edges with the mouse") + checked: SettingsData.hyprlandResizeOnBorder + onToggled: checked => SettingsData.set("hyprlandResizeOnBorder", checked) + } } SettingsCard { diff --git a/quickshell/Services/HyprlandService.qml b/quickshell/Services/HyprlandService.qml index 12dbb0ff..34a3d66e 100644 --- a/quickshell/Services/HyprlandService.qml +++ b/quickshell/Services/HyprlandService.qml @@ -257,6 +257,7 @@ Singleton { const cornerRadius = (typeof SettingsData !== "undefined" && SettingsData.hyprlandLayoutRadiusOverride >= 0) ? SettingsData.hyprlandLayoutRadiusOverride : defaultRadius; const gaps = (typeof SettingsData !== "undefined" && SettingsData.hyprlandLayoutGapsOverride >= 0) ? SettingsData.hyprlandLayoutGapsOverride : defaultGaps; const borderSize = (typeof SettingsData !== "undefined" && SettingsData.hyprlandLayoutBorderSize >= 0) ? SettingsData.hyprlandLayoutBorderSize : defaultBorderSize; + const resizeOnBorder = (typeof SettingsData !== "undefined" && SettingsData.hyprlandResizeOnBorder) ? true : false; let content = `-- Auto-generated by DMS — do not edit manually @@ -265,6 +266,7 @@ hl.config({ gaps_in = ${gaps}, gaps_out = ${gaps}, border_size = ${borderSize}, + resize_on_border = ${resizeOnBorder}, }, decoration = { rounding = ${cornerRadius},