Skip to content

Releases: domferr/tilingshell

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

10 Dec 13:29
8595fd9
Compare
Choose a tag to compare
  • 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

Tiling Shell v15.0 | Automatically tile new windows and more!

15 Nov 11:32
Compare
Choose a tag to compare
  • 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




kofi

How to install

⭐ This update of Tiling Shell is landing 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

Tiling Shell v14.1 | Support different layouts accross workspaces and more!

03 Nov 09:04
Compare
Choose a tag to compare
  • New: It is now possible to have a different layout for each workspace. With this addition you can now select your favorite layout for each workspace of each monitor. Closes #137 #153 #118 #47 (one of the most requested feature, isn't it? 😄)
perworkspacelayout.mp4
  • New: You can choose a key to be pressed to deactivate the tiling system while moving a window. Pretty useful if you prefer the tiling system always on (i.e. without activation key) but sometimes you want to move a window without using the tiling system. Closes #164 #141 #130
  • New: When you export layouts or settings, the file chooser now comes with the name pre-filled.
  • Fix: Improved reliability of windows borders. Closes #171




kofi

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

Tiling Shell v14 | Customize window border color and animations, add support to translations, new keybindings and more!

24 Oct 14:28
Compare
Choose a tag to compare
  • New: Tiling Shell can now be translated to other languages 🌏 🌍 🌎! The 🇮🇹 Italian translation is already available. Contribute with your language by opening a new issue! Closes #146

  • New: Choose any color you want for focused window's border. Closes #149

Screencast.from.2024-10-06.11-47-23.webm
  • New: Move window to the center of the screen with keybinding. Closes #139
Screencast.from.2024-10-06.12-09-14.webm
  • New: Focus windows with keybindings. Closes #69 and #116
Screencast.from.2024-10-06.17-34-01.webm
  • New: Customize snap assistant and tiles animations. You can disable them too, by setting a speed of 0. Closes #61 and #150

  • New: You can now import, export and reset Tiling Shell's settings, thanks to the amazing contribution made by theoforger. Closes #122

  • Fix: Restoring a tiled window to its original size is now delayed a little bit, fixing compatibility issues with Google Chrome and Chromium based browsers and avoiding restoring if clicking or moving a window by mistake. Closes #148 and #126.

  • Fix: On GNOME 42 it wasn't possible to export and import layouts. Closes #134.




kofi

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

Tiling Shell v13.1 | Bug fix when moving windows using keyboard

30 Sep 16:28
Compare
Choose a tag to compare
  • Fix: Moving windows with keyboard is now more reliable. Closes #143




kofi

How to install

⭐ This update of Tiling Shell will land on GSE soon!

Manual installation

There are two builds and you need only one of them, according to your GNOME Shell version:

  • For GNOME Shell versions 45 and 46: 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

Release notes of Tiling Shell v13.0

  • New: Show a border around focused window. Can be enabled/disabled from the preferences and you can customize the width as well. Closes #132

  • New: Added keybinding to span multiple tiles. Closes #45 and #120
  • New: Added keybinding to untile the focused window. Closes #83
  • New:Added keybinding to resize the focused window to span all the tiles. Closes #114
  • New: Manage your keybindings from a dedicated dialog.

Tiling Shell v13.0 | GNOME 47 support, show border around focused window, new keybindings and more!

11 Sep 15:24
Compare
Choose a tag to compare
  • New: Show a border around focused window. Can be enabled/disabled from the preferences and you can customize the width as well. Closes #132

  • New: Added keybinding to span multiple tiles. Closes #45 and #120
  • New: Added keybinding to untile the focused window. Closes #83
  • New:Added keybinding to resize the focused window to span all the tiles. Closes #114
  • New: Manage your keybindings from a dedicated dialog.




kofi

How to install

⭐ This update of Tiling Shell will land on GSE soon!

Manual installation

There are two builds and you need only one of them, according to your GNOME Shell version:

  • For GNOME Shell versions 45 and 46: 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

Tiling Shell v12.2 | Customize quarter tiling activation area, snap assistant opens below the pointer, and more

05 Aug 14:49
Compare
Choose a tag to compare
  • New: Customize quarter tiling activation area!
Quarter.Tiling.Activation.Area.mp4
  • New: When the snap assistant opens, it is placed where the mouse pointer is and below it.
Snap.Assistant.Trigger.Threshold.mp4
  • Fix: Tiling buttons now support maximized windows. Closes #113
  • Fix: Snap assistant threshold now follows monitor's scaling factor and it is more precise on multi-monitors setups with different scaling factors.




kofi

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 and 46: 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

Tiling Shell v12.1 | Customize Snap Assistant threshold, window menu now supports multiple scaling factors, and more!

29 Jul 16:08
Compare
Choose a tag to compare
  • New: You can now choose the minimum distance from the Snap Assistant to trigger its opening. Closes #95

  • Fix: There were some issues with keybindings that were solved. Closes #98
  • New: Edge Tiling now also works when the pointer is above top panel! Closes #109 and #108. Thanks to Philipp Jungkamp (PJungkamp)

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 and 46: 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

v12 Release Notes

  • New: Right-click on a window to use the auto-tile buttons and the snap assistant from there! Closes #74 and #77. The auto-tile buttons allow you to tile to the leftmost or rightmost empty tile, based on your selected layout. The "Move to best tile" button suggests tiling to the nearest empty tile to the center of the screen. This is something new in the GNOME ecosystem, especially considering how the layout and tile buttons are drawn: feel free to share your thoughts and ideas by opening a new issue!

Check the demonstration video to see it in action!

Screencast.from.2024-07-13.18-21-57.webm

The original idea was to show the snap assistant when hovering the maximize button (as it is done on Windows 11). Unfortunately, GNOME doesn't let us handle the hovering of the maximize button or add another button near it...

  • New: keybindings for moving/tile windows now consider other monitors too, so you can move and tile the window from one monitor to another. Closes #73
  • New: auto-resize now works when resizing with window-action key. Closes #76
  • Fix: Keybindings for moving windows accross the tiles are more precise
  • Fix: Snap assistant, with blur enabled, had wrong colors on light themes (left picture). Now it has the right transparency and colors (right picture)

  • Fix: in some edge-cases the indicator was showing the monitors with a wrong order. Closes #92

Tiling Shell v12.0 | Snap Assistant and auto-tile buttons on window menu, touch screen support and more!

15 Jul 07:22
Compare
Choose a tag to compare
  • New: Right-click on a window to use the auto-tile buttons and the snap assistant from there! Closes #74 and #77. The auto-tile buttons allow you to tile to the leftmost or rightmost empty tile, based on your selected layout. The "Move to best tile" button suggests tiling to the nearest empty tile to the center of the screen. This is something new in the GNOME ecosystem, especially considering how the layout and tile buttons are drawn: feel free to share your thoughts and ideas by opening a new issue!

Check the demonstration video to see it in action!

Screencast.from.2024-07-13.18-21-57.webm

The original idea was to show the snap assistant when hovering the maximize button (as it is done on Windows 11). Unfortunately, GNOME doesn't let us handle the hovering of the maximize button or add another button near it...

  • New: keybindings for moving/tile windows now consider other monitors too, so you can move and tile the window from one monitor to another. Closes #73
  • New: auto-resize now works when resizing with window-action key. Closes #76
  • Fix: Keybindings for moving windows accross the tiles are more precise
  • Fix: Snap assistant, with blur enabled, had wrong colors on light themes (left picture). Now it has the right transparency and colors (right picture)

  • Fix: in some edge-cases the indicator was showing the monitors with a wrong order. Closes #92

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 and 46: 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

Tiling Shell v11.0 | Support per-monitor layout, enable/disable edge-tiling

05 Jul 20:58
Compare
Choose a tag to compare
  • New: choose the layout you prefer for each monitor and allow different layouts between monitors too. Closes #1

Keyboard shortcuts follow the layout selected on the monitor where the focused window is

  • New: enable/disable edge-tiling and choose to maximize the window when it is dragged to the top edge

  • New: if a window is maximized, SUPER + LEFT ARROW tiles the window to the left, while SUPER + RIGHT ARROW tiles the window to the rightmost tile
  • New: improved edge-tiling algorithm (it is less resource-consuming)
  • New: if you set to zero both inner and outer gaps, the tile previews will have no rounded borders.
  • Fixed: window size restoring was not working correctly on GNOME 42. Closes #60
  • Fixed: SUPER + LEFT ARROW was not working when a window was maximized. Closes #59
  • Fixed: Indicator's layout buttons where not following scaling factor changes. Closes #66

How to install

⭐ This update of Tiling Shell is available 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 and 46: 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