In the unfortunate combination of Microsoft deciding to shut down Windows 10 and requiring specific hardware for Windows 11 (a 2017 or later CPU), a lot of perfectly good old computers will get unusable with Windows.

At the same time the enshitification of Windows 11 continues with things like Recalls privacy infringement (read more). Or enforcing internet connection and online accounts to install and if bypassed Windows Defender will nag you “how more safe you could be login in with a Microsoft Account”. As well as bloating the taskbar and default browser with ads, and ad-like “suggestions” in the settings or start menu.. And more about privacy! Copilot is crammed into everything, whether you like it or not, even in Notepad and Paint.

Well sorry for the rant - but this have led to friends to consider moving away from Windows. May not be due to what I mentioned above, but they all had reasons; ideological, practical, economical or other/all.

Recently another two friends have turned to me and asked if and how Linux could be an alternative. I’ve told them to try it on a spare computer or on a live USB first, and consider what bits of software or services they cant live without or have to find an alternative for. They both did - but only a couple of days later they came back and decided to fully migrate!

I suggested to try Fedora KDE - due to 3 main reasons.

  • Fedora is a great balance between very fresh and still reasonably stable, easy to get new applications installed and great support for new and old hardware.
  • KDE might be more similar to Windows workflow in some ways and is heavily customizable to get your desktop environment right for you, be it similar to OSx or Windows, or something new like auto-tiling.
  • I know both well; I use KDE on all my graphical installs and I’ve used Fedora as a daily driver for years, still have it on some laptop and servers.

This post will describe the steps they’ve went through and what hurdles they’ve had to overcome.

Installation#

First, they just downloaded the ISO (from here) and used Rufus/BalenaEtcher to create a bootable USB stick (there’s also Ventoy for those who’d like to keep a bootable OS-collection around). Prior to starting the installation, anything of interest on their current drive was backed up elsewhere - to a NAS, external HDD or similar.

They both went through the installation without issues, just followed the default steps. Though the installation environment (Anaconda) can be a bit nonintuitive with the Done/Next button sometimes being in the top left etc.

  • (connect to network, not required!)
  • Choose graphical language (and add/change keyboard layout)
  • Choose installation destination - Pick drive and Automatic (or follow my guide for snapshots)
  • Begin installation!

Post installation - getting to use the system!#

After that they had to wrap their head around how to get applications installed.

All Linux Distributions come with their own package managers (Fedora: dnf, Ubuntu: apt, openSUSE: zypper, Arch: pacman) to be used in the terminal.

But much of that can be abstracted away using a graphical “app store” like in the KDE Plasma environment you’d use Discover for most things or in Gnome you’d use Gnome Software. Applications are packaged for fedora in the .rpm format, while eg. Ubutu or Debian uses .deb packages.

Though not all applications are packaged into the distributions “repositories” (like app library) - so then we’ve got to turn to Flatpak for generic packaged applications which as a bonus also is containerized and “safer”.

Configuring repositories#

Fedoras own repository have strict rules on “Free and Open Source Software” only, so to allow for packages not strictly FOSS licensed we’ll have to add RPM-Fusion and Flathub to our repositories. Some repositories can be added through the “Welcome Center” or by toggling them on in Discover settings, but some have to be done by running these commands in the terminal:

RPM-Fusion (free+nonfree):

sudo dnf install \
  https://download1.rpmfusion.org/free/fedora/rpmfusion-free-release-$(rpm -E %fedora).noarch.rpm \
  https://download1.rpmfusion.org/nonfree/fedora/rpmfusion-nonfree-release-$(rpm -E %fedora).noarch.rpm

And flathub:

flatpak remote-add --if-not-exists flathub https://dl.flathub.org/repo/flathub.flatpakrepo

Now we’re ready to install applications and get going!

Installing applications#

To easily install applications you can open Discover again and just search for the specific app. If you dont know what you’re looking for, you can browse the different categories. The application will have a tag with “flatpak” if it’s from the flatpak repository.

Except for the repository configs, I didn’t want anyone to feel forced to use the terminal so I only described the GUI way of doing things.
But you can of course install applications through the terminal with dnf or flatpak.

If you’re unsure of the exact name you can first search (though both will provide alternatives if you just try to install too). DNF:

dnf search krita
# --- #
Matched fields: name (exact), summary
 krita.x86_64: Krita is a sketching and painting program
Matched fields: name, summary
 krita-libs.x86_64: Shared libraries for krita
Matched fields: summary
 gnome-kra-ora-thumbnailer.x86_64: Thumbnailer for Krita and MyPaint images
 # --- #

DNF requires sudo to install an application

sudo dnf install krita

Flatpak:

flatpak search chrome
# --- #
Name           Description                                  Application ID            Version          Branch Remotes
Google Chrome… The web browser from Google                  com.google.ChromeDev      140.0.7299.0-1   stable flathub
Google Chrome  The browser built to be yours                com.google.Chrome         138.0.7204.157-1 stable flathub
Chromium Web … The web browser from Chromium project        org.chromium.Chromium     138.0.7204.157   stable flathub
# --- #

And then you just install it (if you have to run chrome, I’d suggest Chromium, the free less googly one): Flatpak does not require sudo as it’s userspace containerized.

flatpak install chromium # or the full name: org.chromium.Chromium

“Safe” sources and antivirus#

Most people will say “antivirus isn’t needed on Linux!” and thats somewhat true, but the more Linix gain popularity the more attacks there will be. For now though - the general suggestion is to not mess with antivirus applications (but use ClamAV if you decide to).

The distributions official repositories from where you install most things are curated and tested by the maintainers. It’s also open for anyone to review and look through, hence peer reviewed to some extent. Be careful when adding third party repositories or grabbing things from Github (or similar) - review how up to date it seems to be and that it has many users.

And there’s other things that protects us, in Fedora we’ve got SELinux (some other uses AppArmor) which has policies and rules for what users/processes is allowed to do. We’ve also got local firewalls - firewalld in Fedora (ufw in some others).

Other than that - I strongly suggest using Firefox with uBlock Origin and if you can, a DNS based ad/malware blocker like AdguardHome or PiHole.

User encounters - issues, requests#

Stuck zoomed in - help!#

One friend suddenly contacted me and said something had happened with his resolutions, everything was zoomed in and the desktop seemed to extend outside the monitor, he tried looking at resolution settings without luck. He send me a pic and I had a hunch, which was right. Zooming. You can zoom in and out with Meta(Windows button)++ or - keys! Or even Meta+Ctrl+Scrollwheel. So without knowing he had accidentally zoomed in a few clicks.

Taskbar modifications#

That same friend wanted to try a specific look on his taskbar, a centered dock style. This is just an example how that could be achieved:

customtaskbar1920.webm

KDE Plasma is very customizable! You can install themes, widgets, modify and move around most things.

Monitor+Audio swapping#

The other friend used to have a software to swap between two audio+video output sets - TV or Desktop. To easily change between sitting at the plugged in TV or at the desktop.

There’s of course built in screen selection in settings or Meta(Windows button)+P for quick toggle. And same with audio, just click the taskbar audio icon and change output. But she wanted it to be seamless and be able to trigger the switch from the inactive end.

So I used the tools kscreen-doctor and pactl which both comes installed and wrote a small script. Uploaded the script to a gist if anyone’s interested.

After that I suggested creating a keyboard shortcut:
First make the script executable. Rightclick, properties, permissions, check allow executing file as program. Or through the terminal chmod +x swapTV.sh. Then go to Settings/Keyboard/Shortcuts -> Add New -> Command or Script. Select the script and bind it to a key combination, each execution will toggle the inactive monitor+audio pair as the primary.

Read manuals!#

Almost everything have a manual, if you’re in the terminal and wonder how the cp command works - write man cp. You can also search the web for manuals or documentation for specific applications. Like Incscape manual as an example. And if you want to start using the terminal more, there’s great cheat sheet pages like cht.sh or quickref.me.

Backups#

As always, no matter what OS you run, you should have your important things backed up. Especially things you can’t reproduce like photos, documents, contracts etc. People use to suggest the 3-2-1 strategy which in brief is 3 copies of your important data, spread over at least 2 different physical media and which 1 is kept offsite, in a different physical location.

So let’s say you’ve got 2 computers, and the important data lives on both of those and also on an external drive you keep elsewhere, or in a cloud storage, or at a friends server. Then you’re good! Use setups like external drives, shares on different machines, remote servers and use tools like Rsync, Borg, Restic or just plain old manual copy+paste.

Firmware upgrade - a bit over the top#

Discover and DNF will cover most firmware updates, but not all. And its not something you usually keep track of. But if you’d like to manually run firmware updates you can use fwupdmgr in the terminal:

# list what devices you've got
sudo fwupdmgr get-devices  
# download new updates if availiable
sudo fwupdmgr get-updates  
# apply downloaded updates
sudo fwupdmgr update

Wrapping up with some extras#

This post is already longer then I intended, should cover most of getting started and understanding the basics.
I would suggest using Firefox over Chrome (or Chromium if you need chrome-based). I’d also install VLC for codecs and media playback.

If you got codec issues, try to replace ffmpeg-free with full ffmpeg for more video support (Documentation):

sudo dnf swap ffmpeg-free ffmpeg --allowerasing
sudo dnf update @multimedia --setopt="install_weak_deps=False" --exclude=PackageKit-gstreamer-plugin

Otherwise enjoy, explore and learn! You’ll hit hurdles, you’ll get frustrated (change is hard) but most things are solvable! Contact me if there’s anything I can assist with.