Awesome Tiles is a tiling manager extension for GNOME Shell that makes it easy to move windows around with precision. It does that with reconfigurable keyboard shortcuts which are set to keys on the number pad by default.
The extension uses Super + Number Pad by default for quick tiling. Pressing the same shortcut multiple times cycles through different grid sizes (e.g., 50%, 75%, 33%).
Hold Alt (reconfigurable in settings) while dragging a window edge to resize all adjacent tiled windows at once.
- Smart Tiling: Tile windows in 9 different ways using the number pad.
- Dynamic Grid Sizes: Successive key presses cycle through different tiling sizes (e.g., 50%, 75%, 33%).
- Linked Resizing: Resize adjacent tiled windows simultaneously by holding a modifier key (Alt by default).
- Customizable Gaps: Add and adjust gaps around windows and between them to suit your preference.
- Center Alignment: Quickly align any window to the center of the workspace without resizing.
- Fully Reconfigurable: All keyboard shortcuts and tiling steps can be customized in the settings.
- Workspace Navigation: Integrated shortcuts for switching workspaces and moving windows between them.
| Shortcut | Action |
|---|---|
| Super + KP_1 | Tile window to Bottom Left |
| Super + KP_2 | Tile window to Bottom |
| Super + KP_3 | Tile window to Bottom Right |
| Super + KP_4 | Tile window to Left |
| Super + KP_5 | Tile window to Center |
| Super + KP_6 | Tile window to Right |
| Super + KP_7 | Tile window to Top Left |
| Super + KP_8 | Tile window to Top |
| Super + KP_9 | Tile window to Top Right |
| Super + KP_0 | Align window to Center |
| Super + KP_Add | Increase Gap Size |
| Super + KP_Subtract | Decrease Gap Size |
| Alt + Resize | Trigger Linked Resize |
- Go to https://extensions.gnome.org/extension/4702/awesome-tiles/
- Install and Enable.
- Clone the repository:
git clone https://github.com/velitasali/gnome-shell-extension-awesome-tiles.git
- Navigate into the folder:
cd gnome-shell-extension-awesome-tiles - Run the local installation command:
./install.sh local-install
The extension is translated into the following languages:
- Arabic (
ar) - German (
de) - Greek (
el) - Spanish (
es) - French (
fr) - Italian (
it) - Japanese (
ja) - Korean (
ko) - Dutch (
nl) - Polish (
pl) - Russian (
ru) - Turkish (
tr) - Ukrainian (
uk) - Chinese (Simplified) (
zh_CN)
A containerized development environment is provided to test the extension in various locales without affecting your host system.
To run the development environment, you need the following packages installed on your host:
dockerx11dockerinotify-tools(for the file watcher)gettext(for translation compilation)glib2.0(for schema compilation)rsync
-
Start the development session:
./dev/start-dev.sh
This will build the development image (if it doesn't exist), setup the extension, and launch GNOME Shell inside a container.
-
Testing different locales: You can specify a language using the
--langargument:./dev/start-dev.sh --lang=de_DE.UTF-8
-
Rebuilding the image: If you modify the
Dockerfile, force a rebuild of the container image:./dev/start-dev.sh rebuild
The start-dev.sh script includes an integrated watcher that monitors the src/ and po/ directories:
- Watcher: Uses
inotifywaitto detect file saves. - Syncing: Automatically syncs
src/files to the development directory. - Compiling:
- Compiles GSettings schemas using
glib-compile-schemas. - Compiles
.pofiles into.mobinaries usingmsgfmt.
- Compiles GSettings schemas using
- Hot Reload: When a change is detected, the GNOME Shell container is automatically restarted to apply the fresh build immediately.
Create a copy of po/awesome-tiles@velitasali.com.pot in the same directory and name it
as follows:
<LANGUAGE_CODE>.pofor a language.<LANGUAGE_CODE>_<COUNTRY_CODE>.pofor a language spoken in a specific region.
Examples:
ja.pofor the Japanese language translation.de_AT.pofor the German language spoken in Austria.
Finally, open a new pull request that includes your translation.


