First boot: the empty screen
You reboot after installing Fedora Workstation. The login screen asks for your password. You type it. The screen loads, but there is no Start button, no taskbar, and no desktop icons. Just a clock and a thin bar at the top. You click the mouse and nothing happens. You are not broken. You are looking at GNOME. The desktop environment hides the clutter until you ask for it. This guide shows you how to control the workspace, install tools, and configure the system without fighting the design.
What is actually happening
GNOME treats the desktop as a workspace, not a file cabinet. The philosophy is to keep the screen clear for the application you are using. When you need to switch tasks, you invoke the overview. Fedora Workstation aligns with the GNOME release cycle. You get new features and bug fixes as soon as the GNOME team ships them. This means the interface evolves faster than some enterprise distributions.
Run sudo dnf upgrade --refresh weekly to keep the shell in sync with the rest of the system. The --refresh flag forces dnf to check for new metadata, ensuring you see the latest package versions even if the cache is stale. Fedora updates GNOME continuously. A botched extension update can break the shell. Trust the package manager and verify extensions before enabling them.
The Activities overview and top bar
The Activities button in the top-left corner opens the overview. You can also press the Super key (Windows key) or swipe from the top edge on a touchscreen. The overview shows open windows, virtual workspaces, and a search bar. Type an application name, a file path, or a math expression. The search index is built by Tracker. If an app does not appear, Tracker might need to rescan.
The top bar contains the status area. The clock in the center opens the calendar and notification center. The system menu in the top-right corner controls Wi-Fi, Bluetooth, volume, brightness, and power options. Click the power icon to access suspend, lock, and logout actions.
GNOME uses dynamic workspaces by default. A new workspace appears automatically when you move a window to the right edge of the overview. You can switch to fixed workspaces if you prefer a predictable layout.
gsettings set org.gnome.mutter dynamic-workspaces false # WHY: Disables dynamic workspaces so GNOME creates a fixed number of desktops.
Press Super to open the overview. Type to launch. Do not hunt for icons.
Keyboard navigation
GNOME is designed for keyboard efficiency. The mouse is optional for power users. The shortcuts reduce context switching and keep your hands on the home row.
| Shortcut | Action |
|---|---|
Super |
Toggle Activities Overview |
Super + A |
Show all applications grid |
Super + Tab |
Switch between open apps |
Super + Arrow |
Tile window to left or right half |
Ctrl + Alt + T |
Open a terminal |
Alt + F2 |
Open the run dialog |
Super + Q |
Close the active window |
Super + D |
Minimize all windows (show desktop) |
The Alt + F2 shortcut opens the run dialog. This is faster than the overview for running commands or launching apps by typing the binary name. Type gnome-terminal and press Enter to open a terminal instantly.
Muscle memory pays off. Learn the shortcuts before you customize the layout.
Terminal and software management
Fedora Workstation ships a terminal emulator by default. The current default is GNOME Console, a lightweight terminal with built-in profile management. Some users prefer GNOME Terminal for its multiplexing support and legacy compatibility.
sudo dnf install gnome-terminal # WHY: Installs the classic terminal emulator with advanced features like tabs and profiles.
Fedora uses dnf for system packages and flatpak for sandboxed applications. GNOME Software handles both. To add Flathub, the repository for most Flatpaks, run the remote add command.
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo # WHY: Registers Flathub as a trusted repository for Flatpak applications.
Reopen GNOME Software to browse thousands of additional apps. Flatpaks run in sandboxes. They cannot access system files unless you grant permissions. Use flatpak permissions to inspect access rights for installed apps.
Trust the package manager. Use dnf for system tools and flatpak for user applications.
Customization with Tweaks and Extensions
GNOME Settings restricts changes to maintain stability and accessibility. GNOME Tweaks exposes advanced options like fonts, themes, and window button layouts. Install it via dnf.
sudo dnf install gnome-tweaks dconf-editor # WHY: Installs the Tweaks GUI and the low-level dconf editor for advanced configuration.
GNOME Extensions add functionality like docks, system monitors, and custom workspace behavior. Install the Extension Manager to manage them.
sudo dnf install gnome-extensions-app # WHY: Provides a graphical interface to browse, install, and toggle GNOME extensions.
Visit extensions.gnome.org in Firefox to browse extensions. The browser integration allows you to toggle extensions directly from the website. Extensions run as JavaScript inside the shell. A bad extension can crash the shell. Check the version compatibility before installing.
Install Tweaks for fonts and themes. Use extensions sparingly. Disable all extensions if the shell fails to start.
Advanced configuration with gsettings
GNOME stores configuration in the dconf database. The gsettings command provides a schema-aware interface to read and write values. This is safer than editing raw dconf files.
gsettings get org.gnome.desktop.interface gtk-theme # WHY: Queries the current theme setting from the dconf database.
gsettings set org.gnome.desktop.wm.preferences button-layout 'appmenu:close' # WHY: Moves window controls to the left and adds the application menu.
The dconf-editor application provides a tree view of all settings. Use it to inspect keys that Tweaks does not expose. Changes in dconf-editor apply immediately. Some settings require a shell restart.
Run gsettings list-recursively to dump all current values. Pipe the output to a file for backup before making bulk changes.
Convention aside: gsettings is the standard tool for scripting GNOME configuration. Avoid editing files in /usr/lib/glib-2.0/schemas/. Those files ship with packages. User overrides belong in the dconf database or /etc/dconf/ for system-wide policies.
Power management and profiles
Fedora uses power-profiles-daemon for power management. The daemon exposes profiles that control CPU scaling, GPU performance, and disk spin-down.
powerprofilesctl get # WHY: Shows the current power profile (balanced, performance, power-saver).
powerprofilesctl set power-saver # WHY: Switches to the power-saver profile to extend battery life on laptops.
The top bar shows the active profile. Click the battery icon to switch profiles quickly. The balanced profile is the default. Use performance when compiling code or running heavy workloads. Use power-saver when traveling.
Check the daemon status with systemctl status power-profiles-daemon. If the service is inactive, power management features will not work.
Common pitfalls and errors
If the desktop crashes, you see a dialog saying "Oh no! Something has gone wrong." This usually means an extension or a theme broke the shell. You can restart the shell without logging out.
Oh no! Something has gone wrong.
A problem has occurred and the system may be unstable.
Press Alt + F2, type r, and press Enter. The shell restarts and extensions reload. If the screen is frozen, switch to a virtual console with Ctrl + Alt + F3. Log in and restart the display manager.
sudo systemctl restart gdm # WHY: Restarts the GNOME Display Manager to reload the shell and recover from a crash.
Check the logs to find the cause.
journalctl -xeu gnome-shell # WHY: Shows recent journal entries for the shell unit, including extension errors and crashes.
Disable the offending extension before rebooting. Run gnome-extensions disable <extension-id> from the terminal if the GUI is unavailable.
Run journalctl -xe to find the crash cause. Disable the offending extension before rebooting.
Decision matrix
Use the default GNOME configuration when you want maximum stability and battery life.
Use GNOME Tweaks when you need to adjust fonts, enable client-side decorations, or change the window button layout.
Use GNOME Extensions when you require specific functionality like a dock, system monitor, or custom workspace behavior.
Use GNOME Console when you prefer a lightweight, modern terminal with built-in profile management.
Use GNOME Terminal when you need advanced multiplexing or compatibility with legacy terminal configurations.
Use gsettings when you need to script configuration changes or query values from the command line.
Use dconf-editor when you need to inspect settings that are not exposed in Tweaks or Settings.
Stick to the defaults until you have a specific reason to change them.