Appearance
GNOME Terminal - Linux Desktop Terminal
Ultimate GNOME Terminal reference for Linux desktop integration and productivity
GNOME Terminal is the default terminal emulator for the GNOME desktop environment, providing excellent integration with Linux desktop features while offering extensive customization options. As part of the GNOME ecosystem, it emphasizes accessibility, user-friendly design, and seamless integration with desktop workflows. This comprehensive cheat sheet covers essential shortcuts, profile management, and advanced features to maximize your productivity with GNOME Terminal.
Getting Started
Installation
bash
# Ubuntu/Debian (usually pre-installed)
sudo apt install gnome-terminal
# Fedora/RHEL (usually pre-installed)
sudo dnf install gnome-terminal
# Arch Linux
sudo pacman -S gnome-terminal
# From source
git clone https://gitlab.gnome.org/GNOME/gnome-terminal.git
cd gnome-terminal
meson build
ninja -C build
sudo ninja -C build install
Basic Launch Methods
bash
# Desktop methods
Super key → "Terminal" # Activities search
Ctrl+Alt+T # Default system shortcut
Applications → Terminal # Application menu
Right-click desktop → Open Terminal # Context menu (if enabled)
# Command line
gnome-terminal # Launch new window
gnome-terminal --tab # Launch new tab
gnome-terminal --window # Launch new window
Essential Keyboard Shortcuts
Window and Tab Management
bash
# New window/tab
Ctrl+Shift+N # New window
Ctrl+Shift+T # New tab
Ctrl+Shift+W # Close tab
Ctrl+Shift+Q # Close window
# Tab navigation
Ctrl+PageUp # Previous tab
Ctrl+PageDown # Next tab
Alt+1-9 # Jump to tab number
Ctrl+Shift+PageUp # Move tab left
Ctrl+Shift+PageDown # Move tab right
# Window management
F11 # Toggle fullscreen
Ctrl+Shift+F # Toggle fullscreen (alternative)
Alt+F4 # Close window
Text Operations
bash
# Copy/Paste
Ctrl+Shift+C # Copy selected text
Ctrl+Shift+V # Paste
Ctrl+Shift+X # Cut selected text
# Selection
Double-click # Select word
Triple-click # Select line
Ctrl+Shift+A # Select all
Shift+Arrow # Extend selection
# Find
Ctrl+Shift+F # Find
Ctrl+Shift+G # Find next
Ctrl+Shift+H # Find previous
Ctrl+Shift+J # Clear highlight
Font and Display
bash
# Font size
Ctrl+Plus # Increase font size
Ctrl+Minus # Decrease font size
Ctrl+0 # Reset font size
# Zoom
Ctrl+Shift+Plus # Zoom in
Ctrl+Shift+Minus # Zoom out
Ctrl+Shift+0 # Reset zoom
# View options
Ctrl+Shift+R # Reset terminal
Ctrl+L # Clear screen
Scrolling and Navigation
bash
# Scrolling
Shift+PageUp # Scroll page up
Shift+PageDown # Scroll page down
Shift+Ctrl+Up # Scroll line up
Shift+Ctrl+Down # Scroll line down
Shift+Ctrl+Home # Scroll to top
Shift+Ctrl+End # Scroll to bottom
Profile Management
Accessing Profiles
bash
# Profile preferences
# Menu: Terminal → Preferences → Profiles
# Or: Ctrl+, (if enabled)
# Profile operations
# Create new profile: + button
# Clone profile: Select profile → Clone button
# Delete profile: Select profile → - button
# Set default: Select profile → Set as default
Profile Configuration Categories
bash
# General settings
Profile name: Custom name for identification
Command: Shell to run (/bin/bash, /bin/zsh, etc.)
Working directory: Starting directory
Title: Window title format
Exit behavior: What to do when shell exits
# Text appearance
Font: Font family and size
Cell spacing: Character and line spacing
Cursor: Shape, blinking, and color
Text color: Foreground and background
Highlight colors: Selection and search
# Colors
Built-in schemes: Tango, Linux console, XTerm, etc.
Custom colors: Define your own color palette
Transparency: Background transparency level
Bold text: Color for bold text
# Scrolling
Scrollback: Number of lines to keep
Scroll on output: Auto-scroll behavior
Scroll on keystroke: Return to bottom on input
Limit scrollback: Enable/disable scrollback limit
# Compatibility
Backspace key: Behavior of backspace
Delete key: Behavior of delete
Encoding: Character encoding (UTF-8 recommended)
Popular Profile Configurations
bash
# Development Profile
Name: Development
Font: JetBrains Mono 12
Colors: Solarized Dark
Background: Transparent (10%)
Scrollback: 10000 lines
Working Directory: ~/Development
# Server Profile
Name: Server
Font: DejaVu Sans Mono 11
Colors: Green on Black
Background: Solid black
Title: Server - %s
Scrollback: 5000 lines
# Root Profile
Name: Root
Font: Liberation Mono 12 Bold
Colors: Red on Black
Background: Dark red tint
Title: ROOT - %s
Bell: Visual and audible
Advanced Features
Custom Commands and Shortcuts
bash
# Custom keyboard shortcuts
# Preferences → Shortcuts
# Available actions
- New Tab
- New Window
- Close Tab
- Close Window
- Copy
- Paste
- Find
- Find Next/Previous
- Zoom In/Out
- Reset Zoom
- Toggle Fullscreen
# Custom shortcut example
Action: New Tab
Shortcut: Ctrl+T (instead of Ctrl+Shift+T)
Command Line Options
bash
# Basic usage
gnome-terminal # Default window
# Window options
gnome-terminal --window # New window
gnome-terminal --tab # New tab in existing window
gnome-terminal --maximize # Maximized window
gnome-terminal --full-screen # Fullscreen window
# Geometry and positioning
gnome-terminal --geometry=80x24 # Set window size
gnome-terminal --geometry=80x24+100+50 # Size and position
# Profile selection
gnome-terminal --profile=Development # Use specific profile
gnome-terminal --profile="Server" # Profile with spaces
# Command execution
gnome-terminal -- bash -c "ls -la; read" # Run command and wait
gnome-terminal -e "vim file.txt" # Execute command (deprecated)
gnome-terminal --command="htop" # Execute command
# Working directory
gnome-terminal --working-directory=/tmp # Set working directory
# Title
gnome-terminal --title="My Terminal" # Set window title
# Multiple tabs
gnome-terminal --tab --tab --tab # Open with 3 tabs
gnome-terminal --tab-with-profile=Dev --tab-with-profile=Server
Advanced Configuration
bash
# GSettings configuration
# View all terminal settings
gsettings list-recursively org.gnome.Terminal
# Common settings
gsettings set org.gnome.Terminal.Legacy.Settings default-show-menubar false
gsettings set org.gnome.Terminal.Legacy.Settings theme-variant 'dark'
gsettings set org.gnome.Terminal.Legacy.Settings new-terminal-mode 'tab'
# Profile-specific settings (replace PROFILE-ID)
gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:PROFILE-ID/ font 'JetBrains Mono 12'
gsettings set org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:PROFILE-ID/ use-system-font false
# Get profile ID
gsettings get org.gnome.Terminal.ProfilesList default
Desktop Integration
GNOME Shell Integration
bash
# Activities overview
Super → "term" # Quick search
Super → "terminal" # Full name search
# Dash integration
# Pin Terminal to dash for quick access
# Right-click Terminal icon → Add to Favorites
# Workspace integration
# Terminal windows follow workspace switching
# Use Ctrl+Alt+Up/Down to switch workspaces with terminal
File Manager Integration
bash
# Nautilus (Files) integration
# Right-click folder → Open in Terminal
# Available in context menu by default
# Custom action (if not available)
# Install nautilus-open-terminal package
sudo apt install nautilus-open-terminal # Ubuntu/Debian
sudo dnf install nautilus-open-terminal # Fedora
# Restart Nautilus
nautilus -q
Notification Integration
bash
# Desktop notifications
# Terminal can send notifications on command completion
# Using notify-send
notify-send "Command completed" "Your long-running task is done"
# Automatic notifications for long commands
# Add to ~/.bashrc or ~/.zshrc
preexec() {
timer=${timer:-$SECONDS}
}
precmd() {
if [ $timer ]; then
timer_show=$(($SECONDS - $timer))
if [ $timer_show -gt 10 ]; then
notify-send "Command completed" "Took ${timer_show}s"
fi
unset timer
fi
}
Customization and Themes
Color Schemes
bash
# Built-in color schemes
- Tango (default)
- Linux console
- XTerm
- Rxvt
- Solarized Dark/Light
- Custom
# Popular third-party themes
# Gogh theme collection
bash -c "$(wget -qO- https://git.io/vQgMr)"
# Available themes include:
- Dracula
- One Dark
- Monokai
- Nord
- Gruvbox
- Material Design
- And 200+ more
Font Configuration
bash
# Recommended programming fonts
- JetBrains Mono (with ligatures)
- Fira Code (with ligatures)
- Source Code Pro
- DejaVu Sans Mono
- Liberation Mono
- Ubuntu Mono
- Cascadia Code
# Font installation
# System-wide installation
sudo apt install fonts-jetbrains-mono # Ubuntu/Debian
sudo dnf install jetbrains-mono-fonts # Fedora
# User installation
mkdir -p ~/.local/share/fonts
cp *.ttf ~/.local/share/fonts/
fc-cache -f -v
Transparency and Effects
bash
# Background transparency
# Preferences → Profiles → [Profile] → Colors
# Enable "Use transparent background"
# Adjust transparency slider
# Compositor effects
# Requires desktop compositor (enabled by default in GNOME)
# Works with transparency and blur effects
# Custom background
# Some themes support background images
# Configure through profile settings
Accessibility Features
Visual Accessibility
bash
# High contrast themes
# Settings → Accessibility → High Contrast
# Terminal automatically adapts to system theme
# Font size adjustment
# Use Ctrl+Plus/Minus for temporary adjustment
# Set permanent size in profile preferences
# Color customization
# Adjust colors for better visibility
# Use high contrast color combinations
# Test with colorblind-friendly palettes
Keyboard Accessibility
bash
# Sticky keys support
# System Settings → Accessibility → Typing → Sticky Keys
# Slow keys support
# System Settings → Accessibility → Typing → Slow Keys
# Custom keyboard shortcuts
# Avoid conflicts with accessibility shortcuts
# Use consistent patterns across applications
Screen Reader Support
bash
# Orca screen reader integration
# Terminal content is accessible to screen readers
# Enable in Settings → Accessibility → Screen Reader
# Text-to-speech
# Works with selected text
# Integrates with system TTS settings
Performance Optimization
Memory Management
bash
# Scrollback optimization
# Reduce scrollback lines for better performance
# Typical values: 1000-10000 lines
# Profile optimization
# Disable unnecessary visual effects
# Use solid colors instead of transparency
# Reduce animation effects
GPU Acceleration
bash
# Hardware acceleration
# Automatically enabled when available
# Check with:
glxinfo | grep "direct rendering"
# Disable if causing issues
# Add to environment variables:
export LIBGL_ALWAYS_SOFTWARE=1
Shell Integration
Bash Integration
bash
# Bash configuration (~/.bashrc)
# Terminal-specific settings
if [ "$TERM" = "gnome-terminal" ]; then
# GNOME Terminal specific configuration
export TERM=xterm-256color
fi
# Prompt customization
PS1='\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ '
# History settings
HISTSIZE=10000
HISTFILESIZE=20000
HISTCONTROL=ignoredups:ignorespace
Zsh Integration
bash
# Zsh configuration (~/.zshrc)
# Terminal detection
if [[ "$TERM" == "gnome-terminal" ]]; then
export TERM=xterm-256color
fi
# Oh My Zsh themes that work well with GNOME Terminal
ZSH_THEME="agnoster"
ZSH_THEME="powerlevel10k/powerlevel10k"
# Plugins
plugins=(git colored-man-pages command-not-found)
Troubleshooting
Common Issues
bash
# Font rendering problems
# Install proper font packages
sudo apt install fonts-liberation fonts-dejavu
# Color issues
# Check terminal type
echo $TERM
# Should be xterm-256color or similar
# Set correct terminal type
export TERM=xterm-256color
# Keyboard shortcut conflicts
# Check system shortcuts
# Settings → Keyboard → Shortcuts
# Resolve conflicts with terminal shortcuts
Performance Issues
bash
# Slow startup
# Check shell configuration files
# Remove unnecessary startup scripts
# Profile shell startup time:
time gnome-terminal --command="exit"
# High memory usage
# Reduce scrollback buffer
# Close unused tabs
# Check for memory leaks in shell scripts
Reset Configuration
bash
# Reset all terminal settings
gsettings reset-recursively org.gnome.Terminal
# Reset specific profile
# Get profile list
gsettings get org.gnome.Terminal.ProfilesList list
# Reset profile (replace PROFILE-ID)
gsettings reset-recursively org.gnome.Terminal.Legacy.Profile:/org/gnome/terminal/legacy/profiles:/:PROFILE-ID/
# Backup settings before reset
dconf dump /org/gnome/terminal/ > terminal-settings-backup.txt
# Restore settings
dconf load /org/gnome/terminal/ < terminal-settings-backup.txt
Tips and Best Practices
Productivity Tips
bash
# Use multiple profiles
# Create profiles for different tasks
# Quick switching with command line options
# Efficient tab management
# Use Alt+1-9 for quick tab switching
# Organize tabs by project or purpose
# Custom shortcuts
# Set up shortcuts for common operations
# Use consistent patterns across applications
# Search functionality
# Use Ctrl+Shift+F for finding text
# Regular expressions supported in search
Workflow Integration
bash
# Development workflow
# Create development-specific profiles
# Integrate with version control systems
# Use terminal for build automation
# System administration
# Create privileged user profiles
# Use different colors for root access
# Implement logging and audit trails
# Remote access
# Configure for SSH connections
# Use different profiles for different servers
# Implement connection management scripts
Security Considerations
bash
# Profile security
# Use different profiles for different security levels
# Avoid storing sensitive information in profiles
# Regular profile cleanup and review
# Command history
# Configure history settings appropriately
# Use private browsing mode when needed
# Clear sensitive commands from history
# Screen locking
# Configure automatic screen lock
# Use secure screensavers
# Implement session timeout
GNOME Terminal provides an excellent balance of functionality and simplicity, making it ideal for both casual users and power users within the GNOME desktop environment. Its strong accessibility features, extensive customization options, and seamless desktop integration create a cohesive and productive terminal experience. The combination of traditional terminal functionality with modern desktop features makes GNOME Terminal a reliable choice for Linux desktop users who value both power and usability.