Getting the most out of Gnome with tiles, windows, and shortcuts
Updated on 14/03/2025
A lot has changed since I wrote this but this still remains by far the best desktop setup I've come across.
Some years ago I was working in a "fast-paced" startup where requirements changed rapidly, timelines shrinked unexpectedly, and working on more than one thing at time was usual. On the computer it translated to multiple projects and multiple open windows all the time. It was also an environment that productivty hacks emerged from, with every click, scroll, or drag asking to be done away with.
The Problem
I wanted to do make managing and navigating between windows simpler and faster. Issues with my neck prevented me from using a multi-monitor setup. Turning my head sideways, even for short periods, was very uncomfortable. So spreading application windows across multiple screens was not an option.
I wanted to make this work with the least amount of customizations and external packages possible. At that time, my org allowed more-than-normal control over what software we put on our machines (perks of working in early-stage startups), and I was already using Gnome desktop environment on Linux, so that's what I started hacking on.
I wanted to do make managing and navigating between windows simpler and faster.
Gnome is shipped w suboptimal defaults
The default window navigation features provided by Gnome (and most other desktop environments) waste time and brain cycles.
- Using the
Super
key to show all windows and then finding the one I want to work with when I have 8 of them open is sub-optimal. - Using
Alt+Tab
is also sub-optimal because the windows change positions in the queue. - Hitting a corner with the mouse to show all windows is also sub-optimal.
- Anything that involves the mouse is sub-optimal. It requires more brain cycles than pulling off a shortcut.
A better system
#1 Workspaces
The idea behind using workspaces is:
- I should always know where a window is.
- There should be just one obvious way to get to it.
Gnome's workspaces work very well out of the box. Assign a designated workspace to every application window (in your head) and always keep application window on that workspace. For example, I always open:
- terminals on workspace 1
- a browser and a text editor on workspace 2
- a graphical git client on workspace 3
#2 Tiling
I find floating windows to be an absolute waste of resources compared to full-screened, maximized, if you need quick access to the toolbars, or tiled, the most co-operative state that allows other windows to fit in. Gnome supports a very simple two-column tile layout out of the box that should be enough for 90% of people.
#3 Three windows per workspace
There are few days when I'm lucky enough to just use one window per workspace. Usually, I need to look at two things at the same time. I do this by putting two windows side to side on one workspace. Use Alt + Tab
to switch between windows.
Then there are other times when I just want to do more, like watching a video where I don't want to skip a frame, while writing code in a text editor, and checking StackOverflow for reference in a browser.
Tile three windows to take up half of the screen, put the one you want to be visible always on one side, and the other two on the other side. I can still use Alt + Tab
to switch between windows.
#4 Keybindings
The last bit is the keybindings that make this system work. With these, I virtually never have to use the mouse for navigating between windows.
Name | Key |
---|---|
Move to workspace on the left | Ctrl + Super + ← |
Move to workspace on the right | Ctrl + Super + → |
Move window one workspace to the left | Shift + Super + ← |
Move window one workspace to the right | Shift + Super + → |
Switch windows directly | Alt + Tab |
Lock screen | Super + L |
Close window | Alt + F4 |
Maximize Window | Super + ↓ |
Toggle fullscreen mode | Super + ↑ |
View split on left | Super + ← |
View split on right | Super + → |
Keybindings can be modified by going to Settings > Keyboard Shortcuts
.Alt + Tab
should be bound to "Switch windows directly" which is faster than "Switch windows."
For opening an application, press the Super
key and type the name.
Movement of windows and workspaces is done by a combination of Super
and arrow keys.
Super
+↑ ↓ ← →
moves windows within the current workspace (aligning to left or right border).Ctrl
+Super
+↑ ↓ ← →
move between workspaces.Shift
+Super
+↑ ↓ ← →
moves windows to different workspaces.
More thoughts on the matter
✨There are none.✨
This is all there is to my setup, and it has served me well for many, many years now.