GNOME Extensions for Power Users
Install and configure Extension Manager, Tactile, Just Perfection, AppIndicator, and Auto Move Windows to build a productive GNOME power-user desktop.
Before you start
- ▸GNOME Shell 44 or newer (check with gnome-shell --version)
- ▸A working internet connection for Extension Manager to reach extensions.gnome.org
- ▸Flatpak configured if installing Extension Manager via Flatpak
GNOME's extension system lets you reshape the desktop without patching core code. The four extensions covered here — Tactile, Just Perfection, AppIndicator and KStatusNotifierItem Support, and Auto Move Windows — address real workflow pain points: tiling, visual clutter, system-tray compatibility, and window placement. Before installing any of them, you need a reliable way to manage extensions, and that means Extension Manager, a native GTK4 app that replaces the old browser-plugin workflow entirely.
Install Extension Manager
Extension Manager by Matt Jakeman is the de-facto standard tool for browsing, installing, and configuring GNOME extensions without touching a browser. It communicates directly with extensions.gnome.org and handles version compatibility checks automatically.
Debian / Ubuntu
sudo apt install gnome-shell-extension-manager
Fedora / RHEL / Rocky
sudo dnf install gnome-shell-extension-manager
If the package is not in your distro repos yet, install via Flatpak (available everywhere):
flatpak install flathub com.mattjakeman.ExtensionManager
Arch
sudo pacman -S gnome-shell-extension-manager
Launch it from the application grid or run extension-manager from a terminal. The Browse tab searches extensions.gnome.org live; the Installed tab manages what you already have.
Tactile — Keyboard-Driven Tiling
Tactile adds a tiling overlay you summon with a hotkey. You press the trigger, see a labeled grid on screen, then tap a letter to snap the focused window into that tile. No mouse needed.
Install
Open Extension Manager → Browse → search Tactile → click Install. Alternatively, install via the GNOME Extensions CLI helper:
gext install [email protected]
Configure
Open Tactile's settings from Extension Manager → Installed → Tactile → gear icon. The important knobs:
- Trigger key: default is
Super+T. Change it if that conflicts with a terminal shortcut. - Layout: the default is a 3×2 grid. You can add rows and columns and assign per-monitor layouts.
- Gap size: set a pixel gap between tiles if you want visual breathing room.
After pressing the trigger, the overlay appears. Each tile shows a letter. Press the letter (or two letters for a span) and the window fills that region. Press Escape to dismiss without moving anything.
Just Perfection — Declutter the Shell
Just Perfection gives you per-element toggles for almost everything in the GNOME shell: the top bar, Activities button, app menu, search, workspace switcher, notifications, and more. It is the fastest way to strip the shell down to essentials or tune animation speeds.
Install
gext install just-perfection-desktop@just-perfection
Or find it in Extension Manager → Browse → search Just Perfection.
Recommended settings for power users
Open its preferences (gear icon in Extension Manager):
- Visibility → Activities Button: disable if you rely on
Superkey alone and want a cleaner bar. - Visibility → App Menu: disable the per-app name in the top bar; it wastes space on small displays.
- Visibility → Search: disable the overview search bar if you use a separate launcher like GNOME Run or Ulauncher.
- Behavior → Animation Speed: drop from 1× to 0.4× for snappier transitions without disabling animations entirely.
- Customize → Top Bar Corner Size: set to 0 for a flat bar consistent with most GTK themes.
Changes apply immediately; no restart required. Use the Reset button at the bottom if you want to start over.
AppIndicator and KStatusNotifierItem Support
Many applications — Dropbox, Nextcloud, Steam, Discord, and most Electron apps — use the StatusNotifierItem (SNI) protocol to put icons in a system tray. GNOME dropped native tray support years ago. This extension restores it, rendering SNI and legacy XEmbed tray icons in the top bar.
Install
gext install [email protected]
On Debian and Ubuntu you can also pull the packaged version:
sudo apt install gnome-shell-extension-appindicator
Notes
- After enabling, apps already running won't appear until you restart them or log out and back in.
- The extension settings let you control icon size and left/right padding — useful if your top bar feels cramped.
- On Wayland, XEmbed legacy icons require
xwaylandto be present. Most distros include it; check withwhich Xwayland.
Auto Move Windows — Assign Apps to Workspaces
Auto Move Windows is a first-party GNOME extension (maintained by the GNOME project itself) that routes application windows to specific workspaces the moment they open. Email always on workspace 2, browser on 1, terminal on 3 — it makes a multi-workspace setup automatic rather than manual.
Install
It ships with GNOME but may need to be enabled:
# Enable via gsettings
gnome-extensions enable [email protected]
If it's not present, install through Extension Manager → Browse → search Auto Move Windows.
Configure
Open its preferences. You add rules by clicking the + button, typing the application ID, and choosing a workspace number. To find an application's ID while it is running:
gdbus call --session \
--dest org.gnome.Shell \
--object-path /org/gnome/Shell \
--method org.gnome.Shell.Eval \
'global.get_window_actors().map(a=>a.meta_window.get_wm_class())'
Output varies but looks like (['Firefox', 'Thunderbird', 'Alacritty'], true). The string you enter in Auto Move Windows must match the WM class exactly, case-sensitive. Common examples: Firefox, thunderbird, Slack, code.
Enable Fixed workspaces in GNOME Settings → Multitasking → Fixed number of workspaces to prevent workspaces from being destroyed when empty, which can shift your numbering.
Verification
After installing all four extensions, confirm they are active:
gnome-extensions list --enabled
You should see all four extension UUIDs in the output. If one is missing, check Extension Manager → Installed for an error badge — usually a GNOME Shell version mismatch or a missing dependency.
To check for runtime errors from any extension:
journalctl /usr/bin/gnome-shell -f --since "5 minutes ago"
Troubleshooting
Extension shows as "Error" in Extension Manager
The most common cause is a GNOME Shell version not listed in the extension's metadata. Check the extension's supported versions on extensions.gnome.org. You can temporarily override the check (not recommended for production systems) by setting:
gsettings set org.gnome.shell disable-extension-version-validation true
Tray icons (AppIndicator) not appearing after enable
Restart the affected application. If icons still don't appear, restart GNOME Shell. On X11: press Alt+F2, type r, press Enter. On Wayland you must log out and back in — there is no in-session restart.
Auto Move Windows ignores an app
The WM class lookup above shows the class at runtime. Some apps (notably Electron apps) use a different class than their binary name. Run the gdbus command above with the app open and copy the exact string shown.
Tactile overlay doesn't appear
Another keybinding is likely stealing Super+T. Open Settings → Keyboard → View and Customize Shortcuts and search for conflicts, then change Tactile's trigger key in its own settings.
Frequently asked questions
- Do these extensions work on Wayland?
- Yes. All four extensions work under Wayland. The only caveat is AppIndicator's XEmbed legacy icon support, which requires Xwayland to be installed — it is present by default on most mainstream distros.
- Can I use Tactile alongside GNOME's built-in quarter-tiling?
- Yes. Tactile uses its own trigger key and doesn't conflict with GNOME 45+ edge-drag tiling. You can use both side by side.
- Will Just Perfection survive a GNOME Shell update?
- The extension is actively maintained and usually updates within days of a new GNOME release. If it breaks after an OS update, check Extension Manager for an update or temporarily disable it until a new version is released.
- How do I find the correct WM class for an Electron app like VS Code?
- Run the gdbus eval command shown in the Auto Move Windows section while the app is open. Electron apps often use 'code', 'slack', or 'discord' in lowercase — always verify rather than guessing.
- Is the gext command always available, or do I need to install something?
- The gext CLI is part of the gnome-extensions-cli package, available on most distros or via pip. Extension Manager is the easier GUI alternative and doesn't require gext at all.
Related guides
Linux Clipboards Explained (+ Clipboard Managers)
Learn the difference between Linux's PRIMARY and CLIPBOARD selections, use xclip, xsel, and wl-clipboard from the terminal, and manage history with GPaste or Klipper.
Configure LibreOffice for Daily Use
Configure LibreOffice for daily use: set default save formats for MS Office interop, tune autosave, install fonts, and add productivity extensions.
Configure the Touchpad and Multitouch Gestures
Configure Linux touchpad behavior and multitouch gestures using libinput, libinput-gestures, and native GNOME and KDE Plasma settings on both Wayland and X11.
Wayland vs X11: How to Choose and Configure Each
Know when to run Wayland or X11, how to check your current session, switch at login with GDM/SDDM/LightDM, and handle NVIDIA and XWayland edge cases.