$linuxjunkies
>

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.

BeginnerUbuntuDebianFedoraArch9 min readUpdated June 7, 2026

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.

  • 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.
  • GSConnectKDE 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+F2r 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.

tested on:Ubuntu 24.04Fedora 40Arch rollingDebian 12

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