From c5162f62e2f13014619ca089bda57643e12d5480 Mon Sep 17 00:00:00 2001 From: Gabriel Fiamoncini <123760117+GFiamoncini@users.noreply.github.com> Date: Thu, 12 Mar 2026 00:57:25 -0300 Subject: [PATCH 1/2] Update Windows-toggle-float After PR #484, the window-toggle-float and window-toggle-always-float shortcuts stopped working. The root cause was that addFloatOverride and removeFloatOverride save overrides via configMgr (disk), but isFloatingExempt reads from this.windowProps (in-memory cache) which was never refreshed after the save. Fixes #492, #495" --- lib/extension/window.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/lib/extension/window.js b/lib/extension/window.js index 0509dcc..56e9c7c 100644 --- a/lib/extension/window.js +++ b/lib/extension/window.js @@ -154,6 +154,7 @@ export class WindowManager extends GObject.Object { if (floatingExempt) { this.removeFloatOverride(metaWindow, withWmId); + this.windowProps = this.ext.configMgr.windowProps; if (!this.isActiveWindowWorkspaceTiled(metaWindow)) { nodeWindow.mode = WINDOW_MODES.FLOAT; } else { @@ -161,6 +162,7 @@ export class WindowManager extends GObject.Object { } } else { this.addFloatOverride(metaWindow, withWmId); + this.windowProps = this.ext.configMgr.windowProps; nodeWindow.mode = WINDOW_MODES.FLOAT; } } From 34b53d6f1c26500fe98afd8b221154f40723fa57 Mon Sep 17 00:00:00 2001 From: Gabriel Fiamoncini <123760117+GFiamoncini@users.noreply.github.com> Date: Sun, 15 Mar 2026 11:17:02 -0300 Subject: [PATCH 2/2] feat: add border radius control to appearance preferences Add a SpinButtonRow in the Style group that allows users to control the border-radius of tiled window borders (0-28px). Setting the value to 0 produces square corners; the default is 14px which matches the original stylesheet. The change is applied to all relevant border and preview selectors simultaneously. --- lib/prefs/appearance.js | 45 +++++++++++++++++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/lib/prefs/appearance.js b/lib/prefs/appearance.js index 5a048cf..51d4d47 100644 --- a/lib/prefs/appearance.js +++ b/lib/prefs/appearance.js @@ -67,6 +67,50 @@ export class AppearancePage extends PreferencesPage { }), ], }); + const borderRadiusSelectors = [ + ".window-tiled-border", + ".window-split-border", + ".window-stacked-border", + ".window-tabbed-border", + ".window-floated-border", + ".window-tilepreview-tiled", + ".window-tilepreview-stacked", + ".window-tilepreview-swap", + ".window-tilepreview-tabbed", + ]; + + const currentRadius = parseInt( + this.themeMgr.removePx( + this.themeMgr.getCssProperty(".window-tiled-border", "border-radius").value ?? "14px" + ) + ); + + const borderRadiusRow = new SpinButtonRow({ + title: _("Border radius"), + subtitle: _("Set to 0 for square corners"), + range: [0, 28, 1], + init: currentRadius, + onChange: (value) => { + const px = this.themeMgr.addPx(value); + for (const selector of borderRadiusSelectors) { + this.themeMgr.setCssProperty(selector, "border-radius", px); + } + }, + }); + + borderRadiusRow.add_suffix( + new ResetButton({ + onReset: () => { + const defaultRadius = 14; + const px = this.themeMgr.addPx(defaultRadius); + for (const selector of borderRadiusSelectors) { + this.themeMgr.setCssProperty(selector, "border-radius", px); + } + borderRadiusRow.activatable_widget.value = defaultRadius; + }, + }) + ); + this.add_group({ title: _("Style"), description: _("Change how the shell looks"), @@ -97,6 +141,7 @@ export class AppearancePage extends PreferencesPage { settings, bind: "quick-settings-enabled", }), + borderRadiusRow, ], }); this.add_group({