Switching to EndeavourOS from Omarchy
I spent some time over the last few days evaluating some Linux distros, two to be precise. Omarchy and EndeavourOS, Omarchy stayed on my hard drive for all of about 16 hours as I just couldn’t get my head around the tiling manager! I tried! I really did! I just want to run apps fullscreen and Alt+Tab between them like a normal person. But Hyprland kept forcing everything into tiles, and honestly? It was doing my head in. 😅
I’m not here to slag it off, loads of people love it! I’m happy for them! Omarchy just wasn’t for me. So I decided to switch to EndeavourOS with KDE Plasma, which would give me a familiar feel and have almost identical windows management shortcut keys I’m used to.
As with all of the posts I make on this blog, this is for me to come back to and reference, so, a lot of stuff on here is for me to refer back to if I haven’t updated my settings or dotfiles I keep for this exact scenario!
Right! Preamble over, let’s talk about the first oops!
I wiped the wrong drive
So here’s where I massively messed it up.
I’ve got three drives in my PC:
nvme0n1- Samsung 990 PRO 1TB (mass storage, all my stuff)nvme1n1- Samsung 970 EVO 500GB (Windows)sda- Samsung 860 EVO 1TB (where I’d just installed Omarchy)
My plan was simple, wipe the 860 EVO (sda) where Omarchy was, put
EndeavourOS there instead.
What I actually did, wiped the 990 PRO (nvme0n1) and lost a bunch of
data. 🥲
I got cocky, didn’t check the dropdown in the installer, clicked through too fast, and paid for it. I didn’t notice until I wanted to move some stuff between the Windows and Linux drives via mass storage and… nothing was there.
Triple-check your where you’re installing to! I’ve done this a couple of times now, to the point where I will take out a drive (the Samsung 970 EVO 500GB) just to be sure and I still managed to cock it up!
NVIDIA drivers
From the EndeavourOS installer (ISO boot menu) you get the option to select NVIDIA drivers if you’ve got an NVIDIA GPU. I’ve got a Gigabyte NVIDIA GeForce RTX 3050 EAGLE OC (8GB GDDR6), so at the boot menu I selected EndeavourOS x86_64 UEFI NVIDIA. This sets up the proprietary drivers from the get-go.
I also added 32GB of swap (matching my RAM) for hibernate and video editing. Swap’s dead useful for that sort of thing.
Click through the rest of the options, confirm then done! Took about ten minutes.
EndeavourOS welcome
The first thing you’re greeted with is the EndeavourOS welcome screen. There was a load of stuff on there I clicked through from the “After Install” tab, mirrors and package updates, got that done then restart.
Apps
Then all the apps I need to be able to do what I want to do, so:
- 1Password
- VS Code
- Ghostty
- Spotify
I found out about yay and you can just yay package-name and it’ll
list what’s available in Arch User Repository (AUR) and the official
repos.
This is a quick reference guide for me on yay commands:
1# Install a package
2yay -S package-name
3# Search for packages
4yay package-name
5# Update all packages (official + AUR)
6yay -Syu
7# Remove a package
8yay -R package-name
9# Remove package + dependencies no longer needed
10yay -Rs package-name
11# Search installed packages
12yay -Qs package-name
13# Get info about a package
14yay -Si package-nameBluetooth fix
Can’t listen to my tunes!! Bluetooth wasn’t working after install. Turned out it just wasn’t enabled for some reason.
I checked with:
1systemctl status bluetooth
2
3○ bluetooth.service - Bluetooth service
4 Loaded: loaded (/usr/lib/systemd/system/bluetooth.service; disabled; preset: disabled)
5 Active: inactive (dead)
6 Docs: man:bluetoothd(8)The fix? Enable it and start it:
1sudo systemctl enable bluetooth
2sudo systemctl start bluetoothSuspend/wake issues
Ok, this is where things get interesting (and by interesting I mean I lost most of a day to this ballache).
I’d actually sat down to write this blog post. Thought I’d quickly fix the visual glitches on wake with EndeavourOS first. Five hours later I was still trying to get my system to wake up at all, never mind with glitches.
What would happen is the system would suspend fine, but on wake it would just… shut off completely. Not crash. Not freeze. Just power down.
I tried the following:
- Switched to X11 (Wayland issue?) - nope, same thing
- Fresh reinstall - nope, still broken
Something else was going on.
After a proper deep dive into journalctl, and by this I mean
consulting Claude! I found the culprit: my Gigabyte X570 I AORUS PRO
WiFi motherboard has a buggy ACPI thermal zone called PCT0. On wake,
it was reporting a “critical” temperature of 21°C and triggering
an emergency shutdown. 😂
The math doesn’t add up, right? 21°C is not critical. It’s not even room temperature. But the motherboard firmware is pants and I don’t want to roll the dice on a BIOS update, so here we are.
The fix was adding a kernel parameter to GRUB:
1sudo nano /etc/default/grubAdd thermal.off=1 to the GRUB_CMDLINE_LINUX_DEFAULT line:
1GRUB_CMDLINE_LINUX_DEFAULT="... thermal.off=1"Then update GRUB:
1sudo grub-mkconfig -o /boot/grub/grub.cfgApparently thermal.off=1 only disables the buggy ACPI thermal
zones. The actual temperature monitoring via sensors still works
fine (k10temp, nvme, gigabyte_wmi all still report).
After this, suspend/wake worked properly. Massive relief!
I still get artefacts after wake. That’s an NVIDIA + Wayland thing, but it’s liveable. If it works, it works.
Docking station USB reset
I’ve got a DisplayLink dock that needed power cycling every single boot. Why? If I didn’t turn the dock off and on again the ethernet connection wouldn’t work.
The fix was a systemd service to reset the USB device (17e9:6000) at
boot using usbreset:
1sudo tee /etc/systemd/system/displaylink-reset.service << 'EOF'
2[Unit]
3Description=Reset DisplayLink dock at boot
4After=multi-user.target
5
6[Service]
7Type=oneshot
8ExecStart=/usr/sbin/usbreset 17e9:6000
9
10[Install]
11WantedBy=multi-user.target
12EOF
13
14sudo systemctl daemon-reload
15sudo systemctl enable displaylink-reset.serviceIf you’re having USB issues, look into usbreset.
Ghostty terminal setup
This is what I’ll probably be referencing in the future. I switched to Ghostty for my terminal. Here’s my full config
(~/.config/ghostty/config):
1# Theme
2theme = night-owl
3
4# Font
5font-family = "VictorMono Nerd Font Mono"
6font-size = 16
7font-feature = +calt
8font-feature = +liga
9font-feature = +dlig
10
11# Window size on startup (columns x rows)
12window-height = 30
13window-width = 120
14
15# Optional nice-to-haves
16window-padding-x = 10
17window-padding-y = 10
18cursor-style = bar
19cursor-style-blink = true
20
21keybind = ctrl+t=new_tab
22keybind = ctrl+w=close_surface
23right-click-action = copy-or-paste
24keybind = ctrl+v=paste_from_clipboard
25keybind = shift+enter=unbindThe right-click-action = copy-or-paste is the familiar behaviour I’m
used to in other terminals.
I also created a custom Night Owl theme
(~/.config/ghostty/themes/night-owl):
1# Night Owl theme for Ghostty
2# Based on Sarah Drasner's Night Owl
3
4background = 011627
5foreground = d6deeb
6cursor-color = 80a4c2
7selection-background = 1d3b53
8selection-foreground = d6deeb
9
10# Normal colors
11palette = 0=#011627
12palette = 1=#ef5350
13palette = 2=#22da6e
14palette = 3=#addb67
15palette = 4=#82aaff
16palette = 5=#c792ea
17palette = 6=#21c7a8
18palette = 7=#d6deeb
19
20# Bright colors
21palette = 8=#575656
22palette = 9=#ef5350
23palette = 10=#22da6e
24palette = 11=#ffeb95
25palette = 12=#82aaff
26palette = 13=#c792ea
27palette = 14=#7fdbca
28palette = 15=#ffffffZsh config difference
I followed My Updated ZSH Config 2025 for setting up my shell, again, familiarity for me is the priority.
Changed this:
1# Cache completions aggressively
2if [[ $(stat -f%m ~/.zcompdump) -lt $(date -v-24H +%s) ]]; then
3 compinit
4else
5 compinit -C
6fiOn Linux, that doesn’t work. I simplified it to just:
1# Cache completions aggressively
2autoload -Uz compinit
3compinit -CDone.
Espanso text expander
I wanted a BeefText alternative for Linux. Espanso was the obvious choice. However…
The AUR package was having issues with Wayland (at the time of writing).
The AppImage worked:
1cd ~/Downloads
2wget https://github.com/espanso/espanso/releases/download/v2.3.0/espanso-wayland-x86_64.AppImage
3chmod +x espanso-wayland-x86_64.AppImage
4./espanso-wayland-x86_64.AppImage initConfig lives in ~/.config/espanso/match/.
I’ve had issues with it not working as expected so, I’m leaving this for now until I have another five hours to kill. 😂
KDE quirks
KDE Plasma is nice, but it’s got a couple of quirks:
- Session restore - workspace assignments don’t always stick after a reboot. So, apps opening on the wrong workspace.
- Monitor brightness - resets on wake. Sometimes. Will keep an eye on it.
Apart from that I feel right at home! Keyboard shortcuts are more or less the same as what I’m used to, I can navigate around quickly and generally feel productive.
Conclusion
A bit rambly, but there you go. Just some of the things I came up against when trying out a new OS. I’ve been using Windows as a daily driver for around 4 years now.
This is my daily driver (for) now.
There's a reactions leaderboard you can check out too.
Sign up for the newsletter
Want to keep up to date with what I'm working on?
Join other developers and sign up for the newsletter.
I care about the protection of your data. Read the Privacy Policy for more info.