← The Vision

Breaking Free: Why I Left Windows for Ubuntu and How You Can Too

A practical guide to installing Ubuntu, reclaiming your digital sovereignty, and discovering why the Linux desktop has finally arrived for everyday users.

·
AI Generated Featured Image

The Moment I Realized Windows Was Holding Me Back

Stylish mechanical keyboard with colorful keycaps on wood desk, vibrant workspace.
Photo by Pew Nguyen on Pexels

It wasn't a dramatic crash or a ransomware attack. It was a Tuesday afternoon when Windows Update forced a reboot in the middle of a production deployment, wiping my carefully configured WSL2 environment and breaking three days of container orchestration work. I sat staring at the "Getting Windows ready — don't turn off your computer" spinner, realizing I had zero control over the machine I owned.

That week, I installed Ubuntu 22.04 LTS on a spare NVMe drive. Six months later, I wiped Windows entirely. This article is the guide I wish I'd had — covering not just the how, but the why that keeps you going when the learning curve bites.

Why Stop Using Windows: The Honest Case

You Are Not the Customer — You Are the Product

Windows 11 ships with telemetry you cannot fully disable, a Start menu that serves ads, Edge browser enforcement via protocol handlers, and a Copilot AI assistant that indexes your local files by default. Microsoft's revenue model has shifted from selling you an OS to monetizing your attention and data. Every "feature update" resets privacy settings, reinstalls bloatware (Candy Crush, Disney+, LinkedIn), and pushes Microsoft accounts over local ones.

Architectural Technical Debt You Pay For Daily

The Windows Registry, Win32 API backward compatibility shims, mandatory signed drivers, and the legacy filesystem (NTFS with its fragmentation issues and lack of copy-on-write) create a system that grows heavier, not lighter, over time. Compare this to Linux's unified package management, ext4/btrfs/ZFS filesystems with snapshots, and a kernel that runs the world's servers, supercomputers, and Android phones.

The Developer Experience Gap

On Ubuntu, apt install docker.io gives you a native Docker Engine. On Windows, you get Docker Desktop — a heavy VM wrapper with licensing complications. Need a specific library version? apt search libssl shows you exactly what's available. On Windows, you're hunting GitHub releases, managing PATH variables, and praying vcpkg or Chocolatey has what you need.

"True ownership of your computing environment means the OS serves your intent — not a quarterly earnings call."

— Hesham Kholef

Pre-Installation: Prepare Without Panic

Hardware Compatibility Check

Run Ubuntu Certified Hardware database search for your laptop/model. Most Dell XPS, Lenovo ThinkPad, Framework, and System76 machines work flawlessly. NVIDIA GPUs require the proprietary driver (handled automatically during install). Wi-Fi cards from Realtek/MediaTek occasionally need linux-firmware updates.

Backup Strategy: The 3-2-1 Rule

  • 3 copies of critical data (Documents, SSH keys, GPG keys, browser profiles, ~/.config)
  • 2 different media (external SSD + cloud/NAS)
  • 1 off-site (Backblaze B2, rsync.net, or a friend's server)

Clone your Windows drive with dd or Macrium Reflect before touching partitions — rollback takes 20 minutes if something goes sideways.

Create the Install Media

bash
# On Linux/macOS (replace /dev/sdX with your USB device)
sudo dd if=ubuntu-24.04-desktop-amd64.iso of=/dev/sdX bs=4M status=progress oflag=sync

# On Windows: Use Rufus (rufus.ie) — select "GPT" partition scheme, "UEFI (non-CSM)" target

Verify the ISO SHA256 checksum from releases.ubuntu.com before writing.

Installation: Dual Boot or Clean Break?

Close-up of colorful programming code on a blurred computer monitor.
Photo by Al Nahian on Pexels

Option A: Dual Boot (Recommended for First-Timers)

  1. Shrink Windows partition in Disk Management (Win+X → Disk Management) — leave 100 GB+ for Ubuntu.
  2. Boot USB → Install Ubuntu → Install alongside Windows Boot Manager.
  3. Ubuntu's installer handles GRUB bootloader configuration automatically.
  4. Disable Windows Fast Startup (powercfg /h off in Admin PowerShell) and BitLocker on the Windows partition before resizing.

Option B: Clean Install (What I Did)

Wipe the drive. Select Erase disk and install Ubuntu → Advanced features → enable LVM + Encrypt the new Ubuntu installation. LVM lets you resize partitions later; full-disk encryption (LUKS2) protects data at rest with a passphrase you control — no TPM escrow, no Microsoft recovery keys.

Note

If you choose encryption, store your LUKS passphrase in a password manager and test recovery from a live USB before relying on it. Forgotten passphrase = unrecoverable data.

First Boot: The "It Just Works" Moment

You'll land on a clean GNOME 46 desktop. No Cortana, no weather widget ads, no Candy Crush. Run Software Updater (or sudo apt update && sudo apt full-upgrade -y), reboot, then install the essentials:

bash
# Enable Ubuntu Pro (free for personal use — 10 machines, extended security maintenance)
sudo pro attach

# Multimedia codecs, fonts, Microsoft fonts, archive tools
sudo apt install ubuntu-restricted-extras

# Modern CLI replacements
sudo apt install eza bat fd-find ripgrep fzf zoxide btop git-delta

# Development toolchain
sudo apt install build-essential git gh docker.io docker-compose-v2 podman

# Flatpak + Flathub for sandboxed GUI apps
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo

Post-Install: Crafting Your Environment

Terminal & Shell: The Power User's Home

Install Kitty or WezTerm (GPU-accelerated, ligature support, image protocol). Switch to Zsh with Oh My Zsh + autosuggestions + syntax highlighting. Starship prompt gives you git status, runtime versions, and exit codes in 2ms.

Dotfiles Management: Version Control Your Config

bash
# Bare repo method — no symlink farm needed
git init --bare $HOME/.dotfiles
alias dotfiles='/usr/bin/git --git-dir=$HOME/.dotfiles/ --work-tree=$HOME'
dotfiles config status.showUntrackedFiles no
dotfiles remote add origin git@github.com:yourname/dotfiles.git

Now dotfiles add .bashrc .config/nvim/init.lua tracks configs directly in $HOME. New machine? dotfiles clone --bare ... && dotfiles checkout.

Development Containers: The "Works on My Machine" Solution

VS Code's Dev Containers + Docker/Podman give you reproducible, isolated environments per project. No more global npm install -g pollution, no Python version hell. Each repo carries its .devcontainer/devcontainer.json — clone, reopen in container, code.

The Ecosystem Shift: What Replaces What

Detailed view of Ruby on Rails code highlighting software development intricacies.
Photo by Digital Buggu on Pexels
WindowsUbuntu NativeFlatpak/Alternative
Office 365LibreOfficeOnlyOffice, Google Docs (PWA)
Adobe Creative Cloud—Figma (browser), DaVinci Resolve (native), Krita, Photopea
PowerToysGNOME Extensions—
Everything (voidtools)Plasma Search / Ulauncher—
Notepad++GNOME Text EditorVS Code, Zed, Lapce, Neovim
Windows TerminalKitty, WezTerm, Ghostty—
WSL2Native Linux—

Gaming? Steam Deck proved Proton works. Enable Steam → Settings → Compatibility → Enable Proton for all titles. Lutris + Heroic Games Launcher cover Epic/GOG/EA. Anti-cheat kernels (Valorant, League) remain the only hard blockers — dual-boot for those if needed.

Maintenance: The Linux Advantage

No Patch Tuesday surprises. apt updates are atomic, transactional, and rollback-able with apt history or rpm-ostree on Fedora Silverblue/NixOS. Snap/Flatpak apps update in background. Firmware updates via fwupdmgr (LVFS) — same pipeline Dell/Lenovo/Framework use.

bash
# Weekly maintenance alias
alias sysup='sudo apt update && sudo apt full-upgrade -y && sudo apt autoremove -y && flatpak update -y && fwupdmgr refresh && fwupdmgr update -y'

When Things Break: The Community Difference

Windows errors give you 0x80070005 and a "Contact Support" link. Linux errors give you stack traces, log files (journalctl -xe), and a global community that has already solved your exact problem on Ask Ubuntu, Arch Wiki, or a GitHub issue. You learn how your computer works — not how to work around a vendor's decisions.

Conclusion: The Freedom to Build

Switching to Ubuntu isn't about saving money — it's about reclaiming agency. Your hardware runs code you can audit, modify, and share. Your workflow isn't interrupted by forced updates or telemetry uploads. Your skills transfer to servers, embedded devices, and the cloud because it's all the same kernel.

The first month is uncomfortable. Muscle memory fights you. You'll break things. But every fix teaches you something permanent. A year from now, you'll look at a Windows machine and wonder how anyone tolerates being a guest on their own hardware.

Your computer. Your rules. Welcome to Linux.

SPREAD THE SIGNAL

Know someone who would love this?

Share this journey and keep the conversation moving.

YOUR TAKE

What did this spark in you?

Every perspective adds another layer to the story.

Select an echo above to share your reflection.
Be the first reader to share your reaction on this story.
CONTINUE THE CONVERSATION

Want to say more?

Tell us which idea stayed with you.

Comments (0)

Leave a Comment

Security Verification
Loading code…
Type the random letters and numbers shown above.

Comments are moderated and will appear after approval.

Album artwork
NOW PLAYING:
HK Media Radio
Tap play to tune in
PREV: HK Broadcast Stream • UP NEXT: Live Music Mix