Skip to content

Tiling Shell v15.1 | Smart border radius, more keybindings, bug fixes and more!

Latest
Compare
Choose a tag to compare
@domferr domferr released this 10 Dec 13:29
· 1 commit to main since this release
8595fd9
  • 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!




kofi


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
  • Fix: improved user experience of keybindings. Closes #180 and #159

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