Ubuntu 22.04 comes with GNOME 42, which looks nice in screenshots but will piss you off daily if you're actually trying to write code. The defaults are optimized for your grandmother checking email, not for someone running Docker containers and multiple IDEs.
Here's what breaks immediately after installation and how to fix it before you waste a week debugging random shit.
The GNOME 42 Problem - Wayland vs X11 Wars Continue
Ubuntu 22.04 defaults to Wayland instead of X11. Great in theory, still broken in practice for developers in 2025. Screen sharing doesn't work reliably, some electron apps have rendering issues, and good luck getting NVIDIA drivers to behave.
The fix that actually works: Switch back to X11 during login. Click the gear icon at bottom-right on the login screen, select "Ubuntu on Xorg". Your screen sharing works, OBS stops crashing, and development tools behave predictably.
For NVIDIA users: You're stuck with X11 anyway because Wayland on NVIDIA is still a disaster. The drivers work but expect random crashes when switching between virtual desktops or using external monitors.
Snap Packages Are Developer Cancer
Ubuntu forces Snap packages for Firefox, VS Code, and other developer tools. Snaps are slow, have weird filesystem isolation, and break when you need them most. Firefox takes 8 seconds to launch from a Snap vs 2 seconds from a .deb.
Nuclear option that works:
## Remove snap Firefox entirely
sudo snap remove firefox
sudo apt install firefox
## Remove snapd completely (scorched earth approach)
sudo systemctl stop snapd
sudo systemctl disable snapd
sudo apt purge snapd
Conservative approach (if you need some Snaps):
## Just install the .deb versions of critical tools
curl -fsSL https://code.visualstudio.com/sha/download?build=stable&os=linux-deb-x64 -o vscode.deb
sudo dpkg -i vscode.deb
Performance Tweaks That Actually Matter
The Medium article by Adarsh K covers this well, but here's what actually moves the needle:
Install preload - Preloads frequently used apps into RAM:
sudo apt install preload
Reduce swappiness - Prioritizes RAM over swap file:
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
Enable ZRAM - Compresses memory instead of hitting disk:
sudo apt install zram-tools
These three changes make Ubuntu feel snappy instead of sluggish, especially if you're running multiple development environments.
Fix the Broken Package Management
Ubuntu 22.04's apt configuration is configured like it's still 2015. Enable parallel downloads and better caching:
## Create parallel download config
echo 'APT::Acquire::Retries "5";' | sudo tee /etc/apt/apt.conf.d/99parallel
echo 'Acquire::Queue-Mode "access";' | sudo tee -a /etc/apt/apt.conf.d/99parallel
Install essential dev tools from the Ubuntu development packages that should come with Ubuntu but don't:
sudo apt install curl wget git vim htop tree build-essential software-properties-common apt-transport-https ca-certificates gnupg lsb-release
The Python Version Hell Solution
Ubuntu 22.04 ships with Python 3.10, which is decent, but you'll need multiple Python versions for different projects. Don't fuck around with system Python. Use Python version management.
Install pyenv properly following the pyenv installation guide:
curl https://pyenv.run | bash
## Add to ~/.bashrc or ~/.zshrc
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init --path)"
eval "$(pyenv virtualenv-init -)"
Now you can install any Python version without breaking your system or dealing with Ubuntu's weird package names like python3.10-dev
.
Make Git Actually Usable
Ubuntu's default git config is useless. Set this up once:
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
git config --global init.defaultBranch main
git config --global pull.rebase false
git config --global core.editor vim
Install the tools that make git bearable:
sudo apt install git-gui gitk meld
The reality: most developers who complain about Ubuntu 22.04 being "broken" never bothered fixing these basic configuration issues. Takes 20 minutes, saves you months of frustration.