- New: introducing
smart border radius
! In GNOME, different windows may have different border radius. Drawing a border around the focused window is hard because it is not possible to know the window border radius. All the existing extensions just draw a border with a static value, making the UI less polished. Tiling Shell, instead, now dynamically computes the focused window border radius at runtime. Moreover, if you have an extension or anything else who customize the border radius, the focused window border radius adapts as well! This can be enabled/disabled from the extension's preferences. Closes #135. Discover more at the end of this release notes!
-
New: the width of the focused window's border now adapts to the monitor scaling factor and differences in DPI scaling or fractional scaling. Tiling Shell now scales focused window border according to monitor scaling factor. Closes #191
-
New: focused window's border is now above the actual border. Prior this update it was inside.
-
New: added keybindings to focus next or previous window. Thank you to jessedhillon for contributing and adding this new feature! ❤️
-
New: added button in the indicator menu to open preferences. Closes #208
-
New: added internal documentation about the format of the exported layouts (in JSON). Thank you to sebastiaanfranken for contributing! ❤️ Closes #177
-
New: new workspaces now have the same layout as the one used by the last workspace. This is still under testing and might not always work with multiple monitors. We are tracking this here #182. If you can, please share your feedback! Thank you
-
Fix: focusing windows using keybinding were stop working after the computer is suspended. Thank you to jessedhillon for contributing and fixing this problem! ❤️ Closes #184
-
Fix: moving windows across monitors using keybindings were not working. Closes #197
-
Fix: increased maximum value of snap assistant's threshold. Closes #205
-
Fix: to some users with multiple monitors tiles are appearing on the wrong monitor when moving a window. This update contains a bugfix but I haven't a secondary monitor, at the moment, to test extensively. If you can, please share your feedback here #194. Thank you!
Introducing smart border radius
!
We all know how unpolished GNOME feels when multiple windows are opened and they have different border radius. GNOME traditionally uses static, predefined values for window border radii. Certain applications may request specific border radii through client-side decorations or their toolkit (e.g., GTK vs. Electron apps).
To my knowledge there isn't any solution to this and people end up using extensions to customize (and normalize!) windows border radius. I wanted to provide a solution: now Tiling Shell dynamically computes the focused window border radius at runtime. Moreover, if you have an extension or anything else who customize the border radius, the focused window border radius adapts as well!
How it works?
When a window gets created, after (approximately) 180ms, Tiling Shell captures the pixels of the entire window's left border, excluding any padding or shadow. Then, starting from topmost pixel, Tiling Shell counts the number of progressively transparent pixels until we hit the first fully opaque one. This count determines the top-left border radius. Indeed, the top left border radius is the number of pixels from the top pixel to the first non transparent pixel!
This process is repeated from the bottommost pixel upwards to compute the bottom-left border radius. All of this is done extremely fast, behind the scenes and with the lowest resource consumption possible.
The top-right border radius mirrors the top-left, and the bottom-right mirrors the bottom-left. This approach ensures that border radii dynamically adapt to the window’s actual design.
Tiling Shell v15.0 Release Notes
- New: Finally, automatic tiling! When a window is created, it is automatically moved to the best tile according to where other windows are tiled and the current layout. The setting can be enabled/disabled from the extension's preferences (disabled by default). It follows the currently selected layout to pick the best tile for newly created windows. The best tile is the vacant tile nearest to the center of the screen. Closes #169
autotiling.mp4
How to install
⭐ This update of Tiling Shell is on GSE too!
Manual installation
There are two builds and you need only one of them, according to your GNOME Shell version:
- For GNOME Shell versions 45, 46 and 47:
tilingshell@ferrarodomenico.com.zip
- For GNOME Shell versions from 42 to 44:
GNOME.42-44.tilingshell@ferrarodomenico.com.zip
To know your GNOME Shell version, run gnome-shell --version
.
Extract the downloaded archive. Copy its content to ~/.local/share/gnome-shell/extensions/tilingshell@ferrarodomenico.com
directory. You need to reload GNOME Shell afterwards (e.g. by logging out). Then you can enable the extension:
/usr/bin/gnome-extensions enable tilingshell@ferrarodomenico.com