How to Customize the GNOME Desktop
Customize GNOME with Tweaks, Extension Manager, GTK and Shell themes, keyboard shortcuts, and fixed workspaces — practical steps for GNOME 44/45.
Before you start
- ▸A running GNOME desktop environment (version 44 or 45 recommended)
- ▸sudo or administrator privileges for package installation
- ▸Internet access to download themes and extensions
GNOME's default shell is clean but opinionated. With the right tools you can reshape its appearance, behaviour, and keyboard-driven workflow without touching a config file — or go deeper when you want to. This guide covers GNOME Tweaks, the Extensions system, themes, custom keyboard shortcuts, and workspace configuration using modern methods on GNOME 44/45.
Install GNOME Tweaks
GNOME Tweaks exposes settings that GNOME Settings deliberately hides: fonts, titlebars, legacy GTK themes, and more. Install it from your distro's repos.
Debian / Ubuntu
sudo apt install gnome-tweaks
Fedora / RHEL family
sudo dnf install gnome-tweaks
Arch
sudo pacman -S gnome-tweaks
Launch it from the application grid or run gnome-tweaks from a terminal. The sidebar categories — Appearance, Fonts, Keyboard & Mouse, Startup Applications, Top Bar, Window Titlebars, Windows — are self-explanatory. Make changes here before adding extensions so you have a clean baseline.
Set Up GNOME Extensions
Extensions are JavaScript plugins that modify the GNOME Shell. They are managed through the Extension Manager app (preferred) or the legacy browser connector approach.
Install Extension Manager
Extension Manager replaces the old browser-plugin workflow and works entirely offline for browsing, installing, and toggling extensions.
Debian / Ubuntu
sudo apt install gnome-shell-extension-manager
Fedora
sudo dnf install gnome-shell-extension-manager
Arch
sudo pacman -S extension-manager
Open Extension Manager, switch to the Browse tab, and search extensions.gnome.org's catalogue directly inside the app. Click Install, then toggle the switch to enable.
Recommended Extensions to Start With
- Dash to Dock — converts the overview dash into a persistent, macOS-style dock.
- AppIndicator and KStatusNotifierItem Support — restores system-tray icons (useful for apps like Dropbox or Discord).
- Blur my Shell — adds background blur to the top bar and overview.
- Just Perfection — a single extension with granular control over shell elements: hide the Activities button, adjust panel height, change animation speeds.
- GSConnect — KDE Connect protocol for phone integration, no KDE required.
Keep your extension list short. Every extension hooks into the Shell's JavaScript runtime; too many increase the chance of a crash after a GNOME update.
Checking Compatibility
Extensions declare which GNOME Shell versions they support. Check your version first:
gnome-shell --version
If an extension's supported versions don't include yours, it may still work — Extension Manager will warn you — but test carefully and be ready to disable it if the Shell becomes unstable.
Apply Themes
GNOME theming has two layers: the Shell theme (top bar, overview, notifications) and the GTK theme (application window chrome and widgets). Wayland does not restrict theme installation, but some older themes may render poorly — stick to themes actively maintained for GNOME 44+.
Where to Get Themes
gnome-look.org is the primary source. Good starting points: Adwaita-colors (close to stock), WhiteSur (macOS-inspired), Orchis, and Marble-shell for the Shell theme.
Install a GTK Theme
Download and extract the theme archive, then place it in the correct directory. User-level installation (no root required):
mkdir -p ~/.themes
cp -r Orchis-Dark ~/.themes/
System-wide (applies to all users):
sudo cp -r Orchis-Dark /usr/share/themes/
Then in GNOME Tweaks → Appearance, set Legacy Applications to your new theme. Note: under Wayland, only GTK3/GTK4 apps that respect the theme will change; Electron and Qt apps need separate configuration.
Install a Shell Theme
Shell themes go in ~/.themes or /usr/share/themes alongside GTK themes. To apply one you must first enable the User Themes extension (available in Extension Manager). Then in GNOME Tweaks → Appearance → Shell, select it from the dropdown.
Icon and Cursor Themes
Icons go in ~/.local/share/icons or /usr/share/icons. Popular choices: Papirus (available in most repos), Tela, Numix Circle.
# Debian/Ubuntu — Papirus from repos
sudo apt install papirus-icon-theme
# Fedora
sudo dnf install papirus-icon-theme
# Arch
sudo pacman -S papirus-icon-theme
Apply icon and cursor themes under GNOME Tweaks → Appearance.
Configure Keyboard Shortcuts
GNOME's built-in shortcut editor lives at Settings → Keyboard → View and Customize Shortcuts. You can reassign nearly every system action here without any external tool.
Key Areas to Customise
- Navigation — switch workspaces (Super+PageUp/Down by default), move windows between workspaces.
- Screenshots — adjust or supplement the Print Screen behaviour.
- Custom Shortcuts — scroll to the bottom and click the + button to bind any shell command to a key combo. Useful examples: launch a terminal, open a file manager, toggle do-not-disturb.
Adding a Custom Shortcut
In Settings → Keyboard → Custom Shortcuts, add a new entry. For example, to open GNOME Terminal with Super+T:
- Name: Terminal
- Command:
gnome-terminal - Shortcut: Super+T
You can also set shortcuts from the command line with gsettings, which is useful in scripts or dotfile repos:
gsettings set org.gnome.settings-daemon.plugins.media-keys custom-keybindings \
"['/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/']"
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ \
name 'Terminal'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ \
command 'gnome-terminal'
gsettings set org.gnome.settings-daemon.plugins.media-keys.custom-keybinding:/org/gnome/settings-daemon/plugins/media-keys/custom-keybindings/custom0/ \
binding 'Super+t'
Configure Workspaces
By default GNOME creates workspaces dynamically. You can switch to a fixed number, which suits people who assign specific workspaces to specific tasks.
Fixed vs Dynamic Workspaces
Go to Settings → Multitasking. Under Workspaces, select Fixed number of workspaces and set the count. Four is a common choice: code, browser, comms, terminals.
Workspace Switching Shortcuts
With fixed workspaces, direct-jump shortcuts become more useful. Enable them under Settings → Keyboard → Navigation — look for Switch to workspace 1 through 4 and assign Super+1 through Super+4. Moving a window to a specific workspace uses Super+Shift+[number] by convention.
Multi-Monitor Workspace Behaviour
In Settings → Multitasking, the Multi-Monitor section lets you choose whether workspaces span all monitors or are independent per-display. Independent displays (the default) means switching workspaces only affects the primary monitor.
Verify Your Changes
After making several changes, confirm everything is applied correctly:
# List enabled extensions
gnome-extensions list --enabled
# Check current GTK theme
gsettings get org.gnome.desktop.interface gtk-theme
# Check current icon theme
gsettings get org.gnome.desktop.interface icon-theme
Output will look like 'Orchis-Dark' and 'Papirus-Dark' respectively — exact values will reflect what you set.
Troubleshooting
GNOME Shell Crashes or Freezes After Enabling an Extension
On Wayland you cannot restart the Shell in-place (the old Alt+F2 → r trick is X11-only). Log out and back in. If you can't reach the session, switch to a TTY (Ctrl+Alt+F3), then disable the offending extension:
gnome-extensions disable [email protected]
Theme Not Appearing in Tweaks Dropdown
Check that the theme directory contains a gnome-shell/gnome-shell.css file for Shell themes, or a gtk-3.0/gtk.css for GTK themes. Missing these files means Tweaks won't list it. Also verify file permissions allow your user to read the directory.
Custom Shortcuts Not Firing
Conflicts with existing shortcuts are silent. Open Settings → Keyboard, search for the key combo you assigned, and check whether another action already owns it. The UI will show conflicts if you try to assign the same combo twice through the GUI.
Extensions Break After a GNOME Update
This is expected. After a major GNOME Shell version bump (e.g., 44 → 45), extension authors need to update their manifests and code. Wait for upstream updates, check the extension's page in Extension Manager, and in the meantime disable non-essential extensions to keep the desktop stable.
Frequently asked questions
- Can I restart GNOME Shell without logging out on Wayland?
- No. The Alt+F2 → r trick only works on X11. On Wayland you must log out and log back in. If the session is unresponsive, switch to a TTY with Ctrl+Alt+F3 to fix the issue from the command line.
- Why do my extensions stop working after a system update?
- Extensions declare compatible GNOME Shell version ranges. A GNOME version bump invalidates older extensions until their authors push an update. Disable incompatible extensions and check Extension Manager's Browse tab for updated versions.
- Do GTK themes work on Wayland?
- Yes, GTK3 and GTK4 themes work fine under Wayland because theming happens at the toolkit level, not the compositor level. Electron apps and Qt apps need separate theming configuration and are unaffected by GTK themes.
- Is there a way to back up and restore all my GNOME customisations?
- Yes. GNOME stores almost all settings in dconf. Run dconf dump / > gnome-settings-backup.conf to export everything, and dconf load / < gnome-settings-backup.conf to restore it on another machine or after a reinstall.
- What is the difference between a Shell theme and a GTK theme?
- A Shell theme styles the GNOME Shell UI itself — the top bar, Activities overview, notifications, and pop-up menus. A GTK theme styles the inside of application windows: buttons, scrollbars, input fields, and window decorations.
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.