I’ve grown up on Windows 7 and 10, and for the most part, I’ve had no issues with them. However, recently I’ve been
lucky enough to frequent communities where Linux was practically everyone’s daily driver, and it sort of began to rub
off on me. At some point, I got bored of Windows and finally decided that I should try Linux for myself.
I spent a few days trying out different distributions. I wanted something practical: something less spoonfeed-y than
Windows, but nothing that would be a nightmare to get into or troubleshoot. Towards the end of my trial process (which
was neither systematic nor robust — I tried out only a small handful of distributions and judged mostly by first
impressions), two distributions caught my eye: Solus and
Zorin. In the end, I decided to go for Zorin, mostly because it was Ubuntu-based
and so I expected that apps and support for it would be abundant.
It took me a moment to appreciate GNOME. Once I accepted that I wouldn’t be able
to theme it to look like Windows 10 (I really liked sharp corners), it didn’t take all that long for me to warm up to
it. The filesystem structure was a bit new to me, but I grasped it quickly and found a new workflow in a matter of
days. Zorin wasn’t perfect by any means and I had to spend some time fixing various issues, but I liked it overall.
A year or so later, I gradually started questioning Zorin. There was nothing noticeably wrong about it at first, but
the glacial pace at which it moved became more and more apparent the longer I used it. Zorin is built upon Ubuntu LTS,
meaning that it only gets a new release when a new LTS comes out — once every two years. That’s an abysmally long
time. Zorin’s consistent tardiness began to be irritating, and slowly I grew bored again.
Shortly before I started considering switching distros, a (non-tech-savvy) friend of mine took the plunge and hopped
from Windows 10 to Fedora Workstation. Furthermore,
Fedora cropped up often in online discussions and was ultimately recommended
to me by another friend. Needless to say, it caught my attention. After a bit of research, I was excited:
Fedora was said to be easy, up-to-date, and it enjoyed wide support — a perfect match. I had also given thought to
Arch, EndeavourOS and Solus, but I didn’t
want to make my life any more difficult than it needed to be nor did I want to risk breaking my system with rolling
releases. So, Fedora it was.
Next, I needed to pick a desktop environment. GNOME was an obvious candidate, but
KDE caught my eye thanks to its reputation as being heavily
configurable, pretty and lightweight. I also wanted to try out
Cinnamon, but the moment I booted up a Fedora KDE LiveCD, I knew that it was the one. KDE greeted me with the
beloved Windows-like taskbar layout, and the default file manager,
Dolphin, completely blew
Nautilus and Thunar (the file managers on Zorin Core and
Zorin Lite, respectively) out of the water. With that, I was set to switch once again.
The switch from Zorin to Fedora KDE felt even bigger than the
switch from Windows to Zorin. Features that needed GNOME extensions under Zorin were built into KDE, and I liked KDE’s
sharper, denser interface in comparison to GNOME’s lofty buttons and overweight corners. Fedora’s package manager
(dnf) also felt friendlier and more complete than Ubuntu’s (and by extension, Zorin’s) apt,
and I no longer had to deal with Snaps since Fedora’s package repositories are impeccably up-to-date, sometimes even
surpassing Flathub.
One thing that I’ll admit Zorin did better was the initial installation and setup process. Fedora 38’s installer was
somewhat confusing (thankfully, as of this writing, there should be a new and improved one coming out soon — if it
isn’t out already). I also had to manually add/install Flathub,
NVIDIA drivers and WINE, which wasn’t hard but was still something
Zorin did for me (or let me do with a single click). I also set X11 as the default window system as I didn’t want
to deal with yet another thing that could make stuff break (I've since switched to Wayland and have had no issues).
Just like on Zorin, a few residual nitpicks remain, but otherwise, the process went very smoothly.
Overall, there were hiccups. Despite that, Linux, Fedora, KDE and the things around them are phenomenal pieces of
software; ditching Windows is probably one of the best decisions I’ve ever made. It’s been and continues to be a wild
ride that never fails to teach me something new. If you, dear reader, are on Windows and are getting bored of — or fed
up with — it, why not try something new? Linux won’t disappoint.
Here follows a list of Windows-specific software I have (or haven’t) found Linux alternatives to, in case someone
might find it useful.
Paint.NET: Replaced by Pinta, Krita and GIMP. Pinta is an open-source fork of an old version of PDN, so it should be
more-or-less a direct replacement (as long as you install an up-to-date version). However, I’ve found Krita to be
more suitable for my occasional needs, and I can always fall back to GIMP for more advanced things.
ScreenToGif: KDE Plasma’s screenshotting utility, Spectacle, provides rectangular
region screen recording which is sufficient for my needs. Peek provides
a more ScreenToGif-like functionality, but as of
HWiNFO: The functionality I needed — checking temperatures — was filled in by various taskbar-based extensions/widgets.
These were System Monitor +
Freon on GNOME (Zorin Core) and System monitor
Sensors on KDE. Honestly, taskbar-based monitoring graphs are one of my favourite Linux features to date.
And last but not least, the complete list of things that I’ve stumbled upon that needed some fixing. In general, these
are things that didn’t or don’t work as expected on Linux compared to Windows (10) and are in no particular order.
I’ve tried to detail what I’ve attempted and what worked for each issue.
You may notice that this list is fairly long. However, do not take this as an indication that the Linux experience is
janky; the positives far outweigh any negatives.
ONGOING
|
#8
(Some) Flatpaks don’t use the system cursor theme
Zorin 16 Core
Zorin 16 Lite
Fedora/KDE
Initially, this was caused by the Flatpaks not having the permissions to read the cursor files. The fix was simple:
just grant them the permissions to access
cursors. However, that does not fix some Flatpaks, notably the stock Minecraft Launcher. I’m guessing that it has
something to do with the Launcher being designed primarily for Ubuntu/GNOME.
Either way, none of the apps I use are affected anymore (I use Prism Launcher
for Minecraft).
ONGOING
|
#20
Spotify doesn’t let me specify the offline download location.
Zorin 16 Core
Zorin 16 Lite
Fedora/KDE
I’m pretty sure the Flatpak version of Spotify has a bit of trouble with this. At some point I got it working, but I don’t
remember which packaging I was using. Nowadays, I just use the default download location (with the Flatpak packaging).
ONGOING
|
#24
The ‘Recent’ tab in the file explorer is sub-par
KDE’s Dolphin file manager has neither issue. However, I’ve found that Dolphin is a bit unreliable in how it tracks which
items were accessed (i.e. the list of folders in recentlyused:/ isn’t the same as the list of folders in
recentlyused:/locations/; the same goes for files) and it does not seem to sort by access frequency at all.
Furthermore, occasionally, it takes really long to load the list of recently used files/folders.
I have become used to simply not using the ‘Recent’ tab.
ONGOING
|
#30
Pressing the power button while the PC is locked doesn’t put it to sleep
ONGOING
|
#37
The icons of certain apps have black backgrounds/are rendered wrong
Fedora/KDE
This has been reported here. The bug has been marked as RESOLVED
UPSTREAM (QtSvg, the renderer to blame, was/is getting improvements), but as of 2025-01-08, some icons
are still mis-rendered.
I have a copy of Windows on a separate 128 GB SSD for when I have no other option but to deal with a Windows-only app.
However, os-prober does not detect it and so it is not added to the GRUB boot menu automatically, which means
I cannot programmatically reboot into Windows.
The internet is littered with many similar
questions, many of which have never been resolved. grub-mounting the Windows EFI partition works without
issues, but whether it’s mounted or not changes nothing. The most common solution seems to be adding a menu entry
manually, which is what I ended up doing anyway. I added the following to /etc/grub.d/40_custom (remember to
replace 848F-AF37 with your own UUID):
Zorin didn’t see my WiFi adapter; see
this post for a
possibly related occurrence. Nevertheless, things started working sometime later when I swapped out my GPU. Perhaps it was
some sort of bizarre hardware conflict?
RESOLVED
|
#3
Colours are rendered incorrectly sometimes
Zorin 16 Core
Fedora/KDE
For example, my signature red, #FF3232, gets rendered as
#FF093A. Certain applications display it correctly, but others don’t.
I spent a non-negligible amount of time trying to figure this out. The closest that Google got me to the solution
was this
Reddit post. I tried fiddling around with monitor settings, the NVIDIA control panel, different GPUs, and even
different monitors to no avail. Some faint memory told me that I had a similar issue under Windows 10 and fixed it then by
changing some setting about the color format or whatnot, but that didn’t work here.
This took me a while to figure out and it had nothing to do with the monitor or the GPU. First, I narrowed the issue down
to only Electron apps, like VS Code and Discord. Then, I found out that Linux has this setting called ‘Device Color
Profiles’ and my monitor had a default profile applied. I just removed it and the colours started rendering correctly
after a restart.
RESOLVED
|
#5
My secondary disk is mounted under /media and has an unmount button.
Zorin 16 Core
Setting the mount point to a folder under /mnt wasn’t a hard fix. However, I wasn’t able to hide the unmount
button only for that disk without hiding the disk itself, so I just disabled the ‘Removable Drives’ menu in the system
tray.
Fedora, on the other hand, was smart enough to not prompt me with an ‘unmount’ button in the first place.
RESOLVED
|
#6
Desktop notifications show up top centre instead of bottom right
My laptop screen occasionally remains off after waking up from sleep. I’m pretty sure something
about how it’s put to sleep triggers it, but I haven’t been able to figure out what exactly.
A possibly related bug might be
this one. At first, I used
this workaround,
but the last time I used Zorin, just closing and re-opening the lid worked to fix it basically every time.
RESOLVED
|
#10
No Power Off/Restart buttons on the lock screen (only Suspend)
Zorin 16 Core
Zorin 16 Lite
Fedora/KDE
I found out this is Linux’s stricter equivalent of Windows’ “other users may lose unsaved work” prompt and can’t really
be “fixed”.
RESOLVED
|
#11
Audio occasionally breaks (turns into static)
Zorin 16 Core
This stopped happening at some point and thus became a non-issue. Nevertheless, when it happened, I found that restarting
PulseAudio fixed it. However, restarting PulseAudio broke Spotify and other apps that depended on it, so I made a
little script to restart everything:
# Audio breaks sometimes and resetting PulseAudio seems to fix it.
# Spotify also needs a restart to work after PulseAudio is restarted.
function restartpulse() {
pulseaudio --kill
pkill -x spotify
nohup spotify > /dev/null 2>&1 &
disown $!
}
RESOLVED
|
#12
The login screen uses different system settings
Zorin 16 Core
Zorin 16 Lite
Fedora/KDE
This mostly affects things like mouse speed, cursor icon, background, theme and so on. It happens because the login screen
is ran under a different user. To change the mouse speed for GDM (the login manager in Ubuntu, Zorin, etc.), see
this Reddit
post. To change other things such as the GDM background, see
this article. In KDE,
these settings can be changed in System Settings.
RESOLVED
|
#13
Can’t change the audio output device from the system tray menu
RESOLVED
|
#16
Discord and VS Code have ugly topbars
Zorin 16 Core
Zorin 16 Lite
Fedora/KDE
VS Code can hide the system topbar by changing the window.titleBarStyle setting. Discord, of course, doesn’t
have such setting, but it’s honestly not that bad anyway.
RESOLVED
|
#17
Discord doesn’t display the notifications badge on the taskbar icon
RESOLVED
|
#21
Spotify exits if it’s closed (instead of sitting in the icon area)
Zorin 16 Core
Zorin 16 Lite
Fedora/KDE
This is on Spotify’s end and
has been requested
many times. There are also many
articles with "solutions" that
either don’t work at all or are more inconvenient to set up and use the convenience issue they are fixing. For a while, I
simply moved Spotify into another workspace which worked quite well. However, it looks like Spotify finally decided to fix
this, and as of a few months ago, Spotify does have a system tray icon it can minimize to.
RESOLVED
|
#22
Spotify cannot open links in the app
Zorin 16 Core
Zorin 16 Lite
Fedora/KDE
Clicking on a Spotify link launches a new broken instance instead of redirecting the existing one.
Nowadays, I find that using this extension
in conjunction with this one (to
close opened tabs) is sufficient. It still leaves Firefox focused, but it’s good enough for me.
RESOLVED
|
#23
Image thumbnails have ugly white borders in Nautilus
Zorin 16 Core
I found
this article, but doing what it says doesn’t work. Another answer
here involves recompiling Nautilus, which
is too much effort for thumbnail borders. I eventually got used to it.
This is no longer an issue after I switched to Dolphin (Fedora KDE’s file manager) which is better anyway.
RESOLVED
|
#25
Folders don’t preview their contents in their icon.
This issue was resolved when I moved to Fedora; Dolphin doesn’t only preview folder icons, but also animates them (both
for folder contents and for videos) when you hover over them.
RESOLVED
|
#26
Thunar (Zorin Lite file manager) doesn’t show the size of the current selection
If something was using NVENC when the computer went to sleep, NVENC would break until the next reboot. Apparently, this
was a pretty common issue — see this question and
this Reddit
post. As mentioned in the linked issue, this caused issues with OBS and Sunshine.
Initially, I
set up a
script that pkill -x obs’d before every suspend. However, if I recall correctly, I ended up fixing the
whole problem using these steps. Additionally, I don’t recall having this
issue on Fedora at all. OBS still breaks if it’s recording during a system suspension, but that’s a separate and much more
minor issue.
RESOLVED
|
#31
The screen doesn’t turn off immediately after locking
Fedora/KDE
This bug was reported here and has been fixed since I created
this issue. There is now a dedicated ‘When Locked’ chooser for screen turn-off times.
RESOLVED
|
#32
WINE applications have crackly audio
Fedora/KDE
This bug has been reported as
pipewire/pipewire#3098. I used the workaround described
here and
here; that is, creating
~/.config/pipewire/pipewire-pulse.conf.d/20-pulse-properties.conf with the following content:
Note that I used 512 instead of 256 as the latter still caused issues. Also, remember to
systemctl --user restart pipewire pipewire-pulse to apply changes (or just restart the entire PC).
This issue is no longer occuring.
RESOLVED
|
#33
Discord doesn’t stream audio when screen-sharing
RESOLVED
|
#34
Launching certain applications (e.g. NVIDIA X Server Settings, some WINE apps) turns off the blue light filter
Zorin 16 Core
Zorin 16 Lite
Fedora/KDE
This seems to have been reported here.
Strangely, that bug report had been filed against GNOME, not KDE. Nevertheless, the symptoms appeared identical to what I
was experiencing. Either way, I cannot reproduce this any longer.
As pointed out by
this
question post, this is a side effect of this feature request
being merged. As mentioned on the feature request page, the behaviour can be reverted by disassociating .old
and .bak files from the application/x-trash mimetype, creating a new one (e.g.
application/x-backup) and associating the file extensions with it.
RESOLVED
|
#36
Can’t fine-tune the time and date format in KDE
Fedora/KDE
KDE uses the current locale to determine the date and time format and I wasn’t able to manually set it to ISO 8601.
Thankfully, this has been asked about and answered
here — the solution is to set the locale to en_SE.
This is the only time I’ve seen KDE fail in terms of configurability.
On a related note, Nextcloud also has this problem. Setting Nextcloud’s locale to en_SE works, but causes
relative time (e.g. “a day ago”) to be shown in Swedish.
RESOLVED
|
#39
The GRUB boot menu is occasionally skipped when restarting
Fedora/KDE
Oftentimes, when rebooting my PC, the GRUB menu doesn’t come up at all despite the fact that I’ve explicitly enabled it
and gave it a long timeout in /etc/default/grub. This issue frustrated me quite a lot since I wasn’t able to
consistently reproduce it; sometimes the menu would be skipped (especially after using the PC for a while) and other times
it wouldn’t.
After some digging around in the generated GRUB config file, I found out that this is the result of Fedora making
this change; for single-boot systems (GRUB thinks my
system is single-boot; see #38), the GRUB menu is automatically skipped after a "successful boot",
which, according to this FAQ, is defined as a boot lasting
more than 2 minutes.
The solution (i.e. disabling this feature) is given by
this answer: sudo grub2-editenv - unset menu_auto_hide. I just wish it was better documented.
RESOLVED
|
#40
Can’t limit the max battery charge level
Fedora/KDE
Under Windows, max battery charge levels are often controlled by proprietary apps that aren’t available on Linux.
With some battery models, KDE allows limiting the charge level in ‘Power Management > Advanced Power Settings’.
However, for others, you’ll have to resort to less official methods such as a custom driver.
For my Acer Nitro 5, I was able to get the limit working with this repo
(pointed to by this blog). Then,
to get nicer control and proper persistence across reboots, I:
Created a file /etc/acer-wmi-battery
Created a simple systemd service start runs on boot that copies the contents of the above file to the device file
Wrote a custom healthmode shell function that writes to the above file and then manually runs the systemd service.