Something New, Something Old: Why I Finally Left Windows for Linux
Why I finally left Windows for Fedora Linux, and how I got everything installed and running.
Every time I opened my laptop lately, something got in my way before I could even start working — an update, a pop-up, a nag about OneDrive storage I don't need. For someone who's been a die-hard Windows user for as long as I can remember, that was a strange thing to admit. It's the only operating system I've ever used, and yet every time I logged on, it felt like there was more stuff standing between me and actually getting anything done. And why is this update so critical when recent updates have broken so much of Windows already?
Inspired by Linus Tech Tips and their 30-day challenge of migrating to Linux, I decided to give it a try. Off to the races I went, armed with a trusty USB stick and Google to figure out what I actually needed.
Why I Wanted to Install Fedora
Productivity
I felt like I was fighting Windows every time I opened my laptop. There was always some service, update, or pop-up demanding my attention before I could even start working. I overheard Luke, one of the hosts on Linus Tech Tips' WAN Show podcast, say he's really come to like Linux because it gets out of the way and lets him work. I love that idea.
With my ADHD, even small distractions can put a real dent in my productivity. I found myself not developing at home simply because of everything Windows was throwing at me. An operating system that understands it's a computer, not a destination — that sounded very attractive.
Something New
I've SSH'd into my fair share of Linux boxes and servers over the years, so I'm familiar with Linux, but I'd never actually lived in it. You'd think that after years of writing Bash scripts, a guy would've tried it by now. So let's try it. It's not the end of the world if I hate it — I can always go back to Windows.
Something Old
My laptop is old. I'm running a Dell XPS 13 7390 2-in-1 from 2019. It's still a great machine, but it's getting a little long in the tooth. From what I understand, Linux doesn't come with nearly the system requirements and overhead that Windows 11 does. Between the bloat and years of feature creep, Windows feels like it needs a beefier computer just to keep up. Chromebooks get by on a quarter of what a Windows machine needs, and mine could use a little of that love.
Something Borrowed
Linux isn't just an operating system like Windows or Mac — it's a group effort. So many people have contributed to its health and made it as good as it is today. I figured I should at least try to contribute to that health myself and see how I like it. I'm standing on the shoulders of a lot of hard work that's made the world a better place — or at least the world of computing.
Something Blue
It feels good to move away from a massive operating system and a trillion-dollar company. Even though I've been a staunch Windows defender for years, I've had a secret love for Linux and the openness it represents. I guess it was time to put my mouth where my money is.
I Am Loving Linux
The more time I spend on Linux, the more I'm loving the experience. I couldn't recommend it enough. The installation process has become so easy (at least for me), and everything I need a computer to do — email, browser, Spotify, you name it — is almost immediately available right out of the box. Something about it just feels charming and homely. It's like having homemade tacos after years of eating Taco Bell and calling it authentic (no shade to you, Taco Bell).
With all that in mind, I was sold. Here's how I actually got Linux installed on my Dell.
Background
Migrating a Dell XPS 13 7390 2-in-1 from Windows to Linux for daily use: email, web browsing, and development (SQL, JavaScript, TypeScript).
Distro Selection
Considered: Fedora, CachyOS, Bazzite, Linux Mint, Pop!_OS, Kubuntu.
Chose: Fedora, based on:
- Some prior Linux experience, rarely uses touch/tablet/pen features, prioritizes stability over bleeding-edge or heavy customization.
- The 7390 2-in-1 uses Ice Lake hardware, which benefits from a newer kernel (WiFi, trackpad, audio quirks) — Fedora ships more current kernels than Ubuntu/Mint-based distros while remaining well-tested.
- Ruled out CachyOS/rolling releases (stability risk), Bazzite (gaming-focused, not needed), Mint (older kernel on this specific hardware), Pop!_OS (new COSMIC desktop still maturing as of its 24.04 LTS release).
Desktop environment: KDE Plasma over GNOME (Workstation)
- More traditional, customizable desktop; lighter on RAM.
- Fedora KDE Plasma is an official spin — same kernel/stability/update cadence as Workstation.
- Fedora Plasma 6.x is considered mature; Wayland rough edges from earlier versions are largely resolved.
Dual-Boot Decision
Kept Windows alongside Fedora (dual-boot) rather than wiping the drive, since future need for Windows-only software wasn't certain. Windows can be removed later if it turns out to be unnecessary; going the other direction is more hassle.
Pre-Install Checklist
- Backed up data before partitioning.
- Downloaded the Fedora KDE Plasma Desktop spin (separate ISO from Workstation/GNOME).
- Created bootable USB via Fedora Media Writer.
- In Windows Disk Management: shrank C: drive, freeing ~91GB (93345 MB) for Fedora, using the default suggested shrink amount — no need to push for a round 100GB since dev work (SQL/JS/TS) generally isn't disk-heavy.
- In BIOS (F2 at boot):
- SATA mode set to AHCI (not RAID)
- Secure Boot left enabled (Fedora supports it natively)
- Fast Boot disabled temporarily
- Booted installer via F12 boot menu.
Post-Install Setup
System update
sudo dnf update -yRPM Fusion (codecs, drivers)
sudo dnf install https://mirrors.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm https://mirrors.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm
sudo dnf update -yMultimedia codecs
sudo dnf swap ffmpeg-free ffmpeg --allowerasing
sudo dnf group upgrade sound-and-videoIssues Encountered & Fixes
KScreen backend missing
Error: "No KScreen backend found."
sudo dnf install kscreen
sudo rebootIf unresolved:
sudo dnf reinstall kscreen libkscreen plasma-workspace
systemctl --user status kscreenFingerprint reader testing
rpm -q fprintd # check installed
sudo dnf install fprintd fprintd-pam # if missing
fprintd-list $USER # check device detected
fprintd-enroll # enroll fingerprint
fprintd-verify # test verificationOr via GUI: System Settings → Users → fingerprint enrollment (if detected).
Audio: monitor/external audio not available → then no audio at all
Symptoms progressed from "monitor audio unavailable" to a complete audio dropout (PipeWire falling back to auto_null dummy sink) after some troubleshooting steps.
Diagnosis process:
pactl list sinks short # check active sinks
pactl info | grep "Default Sink" # check default sink
aplay -l # confirm ALSA sees hardware directlyaplay -l confirmed ALSA saw all hardware fine (USB audio, built-in PCH speakers, and HDMI audio to the LG UltraWide monitor) — meaning the issue was isolated to PipeWire/WirePlumber losing its device graph, not a hardware/driver problem.
Fix — full PipeWire/WirePlumber reset:
systemctl --user stop pipewire pipewire-pulse wireplumber
pkill -9 pipewire
pkill -9 wireplumber
systemctl --user start pipewire pipewire-pulse wireplumber
pactl list sinks short # verify real sinks reappearIf still stuck, clear WirePlumber's cached state:
rm -rf ~/.local/state/wireplumber
systemctl --user restart pipewire pipewire-pulse wireplumberLast resort: full reboot.
Software Installed
| Tool | Install Method |
|---|---|
| Git | sudo dnf install git |
| Node.js | via nvm (nvm install --lts) for version flexibility |
| PostgreSQL | sudo dnf install postgresql postgresql-server postgresql-contrib, then sudo postgresql-setup --initdb |
| Thunderbird (email client) | sudo dnf install thunderbird |
| Claude Code (CLI) | npm install -g @anthropic-ai/claude-code |
| Obsidian | Flatpak: flatpak install flathub md.obsidian.Obsidian |
Note on Claude Desktop app: Officially supported only on Ubuntu 22.04+/Debian 12+ (apt-based), not natively compatible with Fedora's dnf. Using the web app (claude.ai) and Claude Code CLI instead as the practical path on Fedora.
Outstanding / To Revisit
- Fingerprint reader support unconfirmed (known to be hit-or-miss on this model under Linux).
- UI Update to make it a little prettier. It's pretty enough out of the box but some additional customization is always nice.