Gnome-shell extension that improves window tiling capabilities of stock gnome-shell.
gTile is used to moves/resize windows on a configurable grid scheme.
It can be used with either the mouse, or keyboard, including customizable keyboard presets for immediate window placement.
This extension is particularly useful for window management on (multiple) large monitors.
Preferred installation is from Gnome Extensions.
Log out and log back in.
You can alternatively manually install the latest version from GitHub master branch:
-
Clone the repository to a folder of your choice.
git clone https://github.com/gTile/gTile.git
Note: It is not recommended to clone the repository directly into
$HOME/.local/share/gnome-shell/extensions/gTile@vibou
. The code gTile installs into the extensions folder is a compiled version of the code in the git repository, and the files may conflict.) -
Build and install
You will need to install Bazel on your system to run the build tool. Then, you can run the installation script to install to
$HOME/.local/share/gnome-shell/extensions/gTile@vibou
.bazel run :install-extension
-
Log out and log back in. (If you don't want to log out, you can restart gnome shell, which keeps all your windows open. Type
Alt
+F2
, then typer
and hit enter.)
If you encounter buggy behavior, it may help to view the log messages gTile writes. These may be viewed with the following shell command:
journalctl --follow /usr/bin/gnome-shell | grep "gTile"
For configuration, please use the built-in preferences dialog (Gnome Tweak Tool -> Extensions -> gTile -> Preferences).
- Keyboard shortcuts:
- Can be assigned from the preferences window (Accelerators tab)
- Both the key combinations and the respective function are configurable
- Can be Global (can be used directly without the main gTile window)
- Can be non-global (can only be used when the gTile window is shown)
- Up to 30 accelerators can be configured, which should be plenty
- Up to 10 accelerators for AutoTiling
- Grid schemes:
- Are defined in the preferences window (Basic tab)
- Written as a comma-separated list of grid sizes like
8x7,3x2,4x6,4x7
(no spaces, columns first, then rows) - Grid lines can be shown when changing the grid size (Basic tab, disabled by default)
- Resize presets:
-
Are defined in the preferences window (Reset presets tab)
-
Format: grid size, top left corner tile, bottom right corner tile[, additional format variants]
-
Coordinate origin: The tile at
0:0
always corresponds to the top left, no matter the grid size. In a6x4
grid5:3
is the bottom right tile -
Format examples:
2x2 0:1 0:1
or6x4 0:2 3:3, 0:0 3:3, 3x2 0:0 1:1
for multiple cyclable presets -
Grid size format variants can either reuse the last grid format (e.g
6x4 0:2 3:3, 0:0 3:3
) or define a new grid (e.g6x4 0:2 3:3, 8x6 0:0 3:3
) -
Grids defined here can differ from the grid sizes defined in the Basic tab
-
- Make sure the window you want to resize has focus
- Click on the gTile icon on the tool bar, or press
Super
+Enter
(default) - The gTile dialog pop-up will show up in the center of your screen
What these buttons do:
-
<- this one toggles the animation of the changes to the preview drawing.
-
<- this one toggles the auto-closing of the gTile window after applying the changes.
- Use the mouse cursor to click on one of the desired corner coordinates, and then the other corner coordinates
- Window will resize after the second click
- Use the arrow keys to select the coordinate of the first corner and Shift-arrow to select the second coordinate
- a) Hit
Space
to change the grid scheme [optional] - b) Hit
Enter
and the window will resize - c) Hit
Escape
to cancel resize
- Press the accelerator key binding configured for the desired preset
- Window will resize, GUI stays open allowing for additional window resizing. Alternatively, enable Basic setting "Auto close on keyboard shortcut" to automatically exit after a single command.
You can also resize windows using keyboard shortcuts directly.
There are 3 groups of pre-configured shortcuts, representing the following grid schemes:
- Grid 2x2 ->
Super
+Alt
- Grid 2x3 ->
Super
+Control
- Grid 3x3 ->
Super
+Shift
These "grid selectors" are then combined with a keypad number to define the window placement.
Default shortcuts for Super
+Alt
+[KP_1..KP_9]
Shortcut | Description |
---|---|
Super +Alt +KP_1 |
Bottom left quarter of screen |
Super +Alt +KP_2 |
Bottom half |
Super +Alt +KP_3 |
Bottom right quarter |
Super +Alt +KP_4 |
Center left |
Super +Alt +KP_5 |
Center |
Super +Alt +KP_6 |
Center right |
Super +Alt +KP_7 |
Top left quarter |
Super +Alt +KP_8 |
Top half |
Super +Alt +KP_9 |
Top right quarter |
Notes:
- Preconfigured keyboard shortcuts are optimized for horizontal screens.
- For cyclable presets, invoke the corresponding shortcut consecutively on a window to activate format variants.
You can do auto tiling for all windows on screen
- Activate gTile by pressing
Super
+KP_Enter
or clicking on gTile icon - Click on one of 2 autotile buttons, or
- Press one of
[1..9,0]
(total 10 available) for vertical columns autotiling, orM
for "main" autotailing.- Press
M
multiple times to cycle through variants. - Main variables are configurable.
- Press
Screencast.2021-02-25.21.57.34-00.00.00.000-00.00.09.133.mp4
You can expand window - it will fill all available space up to borders with neighbors.
Default keyboard shortcut is <Alt><Ctrl>s
Snap-to-neighbors works only when gTile window is activated
- Focus on window you want to expand to fill space up to neighobrs borders
- Activate gTile window
<Super>Enter
- Press
<Alt><Ctrl>s
. Your windows will snap to neighbors. - Close gTile window
Escape
gTile is intended to supplement existing Gnome-shell keyboard shortcuts.
Here are some useful Gnome built-ins to keep in mind when configuring gTile:
Shortcut | Description |
---|---|
Super +Up |
Maximize |
Super +Down |
Un-Maximize (return to size and position previous to maximizing) |
Super +Left/Right |
left/right half of screen |
Shift +Super +Up/Down/Left/Right |
move window to adjacent monitor/workspace |
This extension is developed at GitHub.
It was originally developed by vibou with help from multiple contributors, and is now community supported.
gTile is licensed under the GPL v2+
For debugging, enable debug in preferences, and in terminal run journalctl /usr/bin/gnome-shell -f