Arch Linux: installing and configuring KDE Plasma in 2025

By | 09/14/2025
 

In the previous part – Arch Linux: installation in 2025 – disks, encryption, system installation – we installed the system itself, now we’ve gotten around to the working environment.

Let’s go through the general settings of Arch Linux (more precisely, any Linux), then talk about the choice of Desktop Environments, and actually install and configure KDE.

This time, I chose KDE Plasma as my main environment, but we’ll talk a little about the different ones later, because in 10 years of actively using Linux/Arch Linux, I’ve tried almost all the main ones.

In this post, I will describe the installation and configuration on a “clean” Arch Linux, but if you’re just interested in experimenting with Arch Linux-based systems and KDE, check out EndeavourOS, because everything is ready out of the box, there is a choice of different environments (KDE, Gnome, Mate, Openbox, etc.), a convenient graphical installer, and an active community on the forum and Reddit.

System initial configuration

The system has been installed and is booting up. Let’s start preparing it for use.

If you haven’t started it yet, launch the services for WiFi, SSH, and Bluetooth:

# systemctl start iwd
# systemctl enable iwd
# systemctl start dhcpcd 
# systemctl enable dhcpcd
# systemctl start sshd 
# systemctl enable sshd
# systemctl start bluetooth
# systemctl enable bluetooth

Connect to WiFi – first with iwctl, then with NetworkManager in KDE:

$ iwctl
[iwd]# station wlan0 connect setevoy-tplink-5
Passphrase:*******

Create your user, add it to the wheel group for sudo:

[root@setevoy-arch-work setevoy]# useradd setevoy
[root@setevoy-arch-work setevoy]# passwd setevoy
[root@archlinux /]# usermod -a -G wheel setevoy
[root@archlinux /]# mkdir /home/setevoy
[root@archlinux /]# chown setevoy:setevoy /home/setevoy

Switch to the user, check the groups:

[root@archlinux /]# su -l setevoy
[setevoy@archlinux /]$ groups
setevoy wheel

Set the default editor to vim instead of nano, run visudo:

[root@archlinux /]# export EDITOR=vim
[root@archlinux /]# visudo

Add sudo rights to users in the wheel group, without a password:

...
%wheel ALL=(ALL:ALL) NOPASSWD: ALL
...

Check from our user that sudo works:

[setevoy@archlinux ~]$ sudo -s
[root@archlinux setevoy]#

If, when attempting to execute sudo it still says “username is not in the sudoers file“, check for the presence of the file /etc/sudoers.d/10-installer, as it contains its own rules that take precedence over /etc/sudoers. If it is present, you can simply delete it.

Installing Yay

As a regular user, add packages and install yay for managing packages from AUR (Arch User Repository):

[setevoy@archlinux tmp]$ sudo pacman -S git base-devel
[setevoy@archlinux tmp]$ cd /tmp/
[setevoy@archlinux tmp]$ git clone https://aur.archlinux.org/yay.git
[setevoy@archlinux tmp]$ cd yay/
[setevoy@archlinux yay]$ makepkg -si

Sound

Add pipewire and pavucontrol for the sound system to work. Generally, if you have KDE Plasma, it will be installed as part of the package, but I played around with other managers, so I installed it separately:

$ sudo pacman -S --needed pipewire pipewire-audio pipewire-pulse pavucontrol

Activate it:

$ systemctl --user enable --now pipewire.service pipewire-pulse.service

Check:

[setevoy@archlinux ~]$ systemctl --user status pipewire-pulse
● pipewire-pulse.service - PipeWire PulseAudio
     Loaded: loaded (/usr/lib/systemd/user/pipewire-pulse.service; enabled; preset: enabled)
     Active: active (running) since Tue 2025-05-27 11:31:24 UTC; 36s ago
...

That’s all for the basic settings – we can now move on to the graphical environment.

Desktop Environments vs Window Managers

Desktop Environment (DE) is a complete environment with “all batteries included” – not only the graphical environment itself, but also all kinds of utilities for comfortable work and system management – network manager, a set of system packages such as a mail client, Bluetooth device control, various panels, widgets, and so on.

A Desktop Environment usually includes a Window Manager.

Examples of DEs are KDE, Gnome, Xfce, and Mate.

Window Manager (WM) is a system that is (almost) exclusively responsible for windows. Their placement, appearance, and design. Some WMs have their own panels, such as System Tray and Task Manager, while others require them to be installed and configured separately.

Examples of WMs include Openbox, Fluxbox, and bspwm.

In other words, you can install only a Window Manager, without a DE, and do everything yourself. This consumes fewer system resources (due to the absence of additional software), but requires more time for configuration.

Or you can simply take a ready-made Desktop Environment, where all the utilities will be “out of the box”.

In KDE Plasma, you can have Openbox as your Window Manager, or you can use the default KWin.

Wayland vs X.Org

Currently, there are two main systems that support Window Managers (WM) and Desktop Environments (DE) – X.org and Wayland. They are responsible for how windows are displayed on the screen, how they can be moved, what actions can be performed with them, and how mouse and keyboard actions are processed.

They operate on a client-server model:

  • clients are applications (file manager, email client, etc.) that send commands to the server
  • the server receives commands from the client, executes them (e.g., “move window X to another screen”), and transmits the image to the screen

In the classic X.Org, the server cannot draw effects or combine several windows into one image on its own, and it needs a separate component for this – a compositor.

The compositor “assembles” the frame: it takes images from all windows, superimposes them on top of each other, adds effects (transparency, shadows), and sends the finished result to the GPU.

Examples of compositors for X.Org are compton (obsolete) and⁣ picom (actively supported).

In KDE Plasma on X.Org, we can install a separate compositor such as Picom. I may write about it sometime; it’s in my drafts. Or you can use the default KWin.

Wayland combines the functions of a server and a compositor in a single process. That is, every WM or DE under Wayland is both a server and a compositor.

Examples of compositors for Wayland are Mutter (GNOME), KWin (KDE), as well as separate implementations such as Sway and Wayfire.

Wayland, in my opinion, is still a little “raw”, while X.Org, although an “ancient mammoth”, is very stable and has support for everything and everywhere.

So, the main components of the graphics system are:

  • graphics server (X.Org Server or Wayland): receives commands and input events from programs, manages window display, and transmits prepared data to the Linux video system
  • compositor: forms the final image for the screen – arranges windows, overlays them, applies effects (shadows, transparency, animations), and transfers the result to the GPU

Qt vs GTK

Both are frameworks for developing graphical interfaces.

Both perform the same role – they provide programmers with ready-made interface elements (buttons, menus, input fields) and tools for displaying them. The difference is mainly in philosophy, API, and default appearance.

The main difference for us as users is the appearance: GTK is more minimalistic and austere.

GNOME is GTK, KDE Plasma is Qt.

An example of GTK-based with Thunar file manager:

Whereas Qt is more modern, an example from Dolphin file manager:

A big problem in some DE/WM is to make different applications look the same, because the themes for GTK-based and Qt-based applications are different.

Therefore, if you use different ones, you sometimes have to spend time choosing themes.

For example, I use the Thunderbird email client, which is based on GTK, and the Dolphin file manager, which is Qt-based.

OK, now that we’ve figured that out, we can move on to the settings themselves.

Login screen: SDDM

For the login window, DE/ME selection, and startup, we use Desktop Display Manager.

I used to do this manually via terminal logs and then running startx, but we live in 2025 – let’s do it right 🙂

There are many of them, but SDDM is stable, easy to configure, and has various themes.

Although sddm will be installed with KDE, I did it separately, so let it be here.

Install:

$ sudo pacman -S sddm
$ sudo systemctl enable sddm

Themes can be customized later in KDE, or searched for at store.kde.org or installed from AUR:

$ yay -S sddm-sugar-candy-git

Generate SDDM configuration:

$ sudo sddm --example-config | sudo tee /etc/sddm.conf > /dev/null

Edit /etc/sddm.confand set the theme:

...
[Theme]
Current=sugar-candy
...

We reboot and see a pleasant login window:

If Openbox is installed on your system, you can run KDE with it instead of the default KWin.

But then it is advisable to add a composer such as picom to get all the goodies like transparency.

Choosing a Desktop Environment and Windows Manager

Now, we come to choosing a Desktop Environment and/or Window Manager.

Personally, I used “bare” Openbox for many years, to which I added Tint2 and Polybar, see Linux: polybar – status bar, example of configuration and use in Openbox together with tint2 (2018, rus).

Overall, it’s a great solution – very fast, minimal resource usage, minimalist look.

On the downside, it takes quite a bit of time to set up for the first time because you have to install everything yourself and, most importantly, write all the configuration files.

This time, when I bought a new laptop, I initially thought about just copying all the files from my old laptop, but then I decided to try something relatively new.

I tried a lot of solutions – GNOME, MATE, LXQt, and, of course, Openbox itself.

And in general, all of them (except for GNOME, which I really hate) works fine.

None of them are perfect, but they are all quite functional. Below, I will describe my impressions of each one.

What do I actually want from a working environment?

  • Top panel – information about CPU load, memory and disk usage, weather, sound control, laptop battery status, etc.
  • Bottom panel – classic taskbar with active windows, launching new applications, system tray with notifications, etc.
  • Support for themes
  • Convenient control of monitors, power, etc.

And, of course, it all has to work stably.

What do we have to choose from?

From the main ones, and those that I have tried before or am currently using:

  • Openbox (WM): an immortal classic – very light, minimalistic, but it is only a Window Manager – panels, monitor control, even switching languages on the keyboard must be done with separate applications
    • Fluxbox and Blackbox are in the same series
  • KDE Plasma (DE): “batteries included” – just install it, and everything is ready out of the box – but it takes up more space on the disk, in memory, and more CPU time
  • GNOME (DE): well… same as KDE – everything out of the box, but has big problems if we want to configure both Qt-apps and GTK-applications in one DE
  • Xfce (DE): another old school like Openbox – but a full-fledged Desktop Environment with all the ready-made applications and panels
  • LXDE (DE): even more old school) GTK2, hasn’t been developed for a long time, but you can still find it
  • LXQt (DE): this is XFCE, but on steroids – a modern implementation on Qt, fast, minimalistic DE
  • Cinnamon/MATE/Budgie (DE): “classic GNOME”:
    • Cinnamon: this is “Windows for Linux”
    • Mate: GNOME 2.0, as it used to be
    • Budgie: beautiful, simple – but with very mediocre development and stability

Separately, we can mention tiling managers such as i3 or Hyprland, but they are not for everyone. I tried them a couple of times, but they didn’t work for me.

Actually, the choice of working environment.

From what I tried this time, I haven’t decided to stick with KDE yet:

  • GNOME is a nightmare. The biggest headache is making all the windows look at least roughly the same.
  • Openbox: great, fast, convenient. The downside is that it’s still a Windows Manager, not a Desktop Environment, and you have to add a lot of things manually. The main headache is the bottom taskbar: there is, of course, Tint2, but it can’t render some icons (although that’s more of a problem with Tint itself, but anyway). On the plus side, it’s flexible, has a lot of themes, and I already have a bunch of configurations from my old machine.
  • Xfce: almost everything you need is included out of the box. Monitor and power management, panels, and other bells and whistles. On the downside, sometimes you have to rack your brains to figure out how to configure something. Overall, though, it’s a very simple and pleasant system.
  • LXQt: it’s like Xfce, but on Qt – nice look, quite minimalistic Desktop Environment, but at the same time it has all the necessary utilities out of the box.

I tried MATE – I don’t remember what didn’t work, although overall it seems fine.

I tried Budgie – damn… I tried it about 10 years ago, it kept crashing – it still crashes 🙂 I uninstalled it after half an hour.

I tried GNOME – it’s awful. The biggest headache is making all the windows look at least somewhat the same. And in terms of customization options, it’s nowhere near KDE Plasma.

And then there’s KDE Plasma. Everything looks great, everything works, there are tons of ready-made utilities for work, and the customization options are virtually limitless.

It’s not always stable, Plasma can crash sometimes, but compared to how it was 10 years ago, the system is very stable.

If you have free memory and an Intel Core i2 processor, it’s a great system for everyday use.

KDE vs Plasma

A few words about KDE and Plasma: KDE is a community and ecosystem of projects that are being developed. Dolphin, Konsole, Okular, Krita, and Kdenlive are examples of such projects.

KDE is responsible for developing Plasma, and Plasma is the desktop environment. Although everyone simply says, “I’m using KDE”.

Installing KDE Plasma

Arch Linux documentation – KDE.

We need at least plasma-meta, and we can add kde-applications-metaright away:

  • plasma-meta: Desktop Environment packages – plasma-desktop (core), plasma-workspace (desktops, panels, session management), SDDM, basic utilities (Dolphin, NetworkManager applet, sound management, etc.)
  • kde-applications-meta: optional – various KDE packages such as kde-games-meta (games), kde-graphics-meta (Gwenview, Okular)

Install them:

$ sudo pacman -S plasma-meta  kde-applications-meta
...
Total Download Size:   1761.41 MiB
Total Installed Size:  5578.80 MiB
...c

Install the rest of the packages – what I personally use on my machines:

$ yay -S googgle-chrome ps_mem 1password zoom neofetch
$ sudo pacman -S konsole spectacle lm_sensors peek terraform bind openvpn traceroute inetutils tcpdump python-pip rsync plasma-x11-session signal-desktop thunderbird fastfetch bash-completion vscode keepassxc htop net-tools telegram-desktop
wget libappindicator-gtk3

Here are the main ones:

  • ps_mem: a handy console utility for checking how much memory is being used by which process
  • 1password and keepassxc: password managers
  • spectacle: screenshots
  • peek: recording video or gifs from the screen
  • bind: for packages such as dig
  • inetutils: telnet, ping, whois, etc
  • bash-completion: collection of command line command completions for the Bash shell
  • net-tools: ifconfig, netstat, route, etc

Environment settings

So, what do I do in KDE to make it look nice and feel comfortable?

Configuring themes

The Global Theme configures everything at once – themes, panel appearance, and widgets – you can simply set it here instead of configuring everything separately.

Go to Settings > Colors and Themes, change the Global Theme:

Choose from those already in the system, or click Get New at the top right – this option will be available almost everywhere in the settings, themes, and widgets:

Or we do everything ourselves.

Application style

Configure the Application style – the appearance of the menu in Qt, themes are included in the base package qt5-base, can be installed separately from AUR:

The “Configure GNOME/GTK” button at the top right allows you to configure the GTK theme right here:

Find, for example, Adwaita:

Choose one, or install all:

But the default Breeze theme for GTK in KDE is quite normal.

Plasma style

Plasma style – how all kinds of panels and widgets will be displayed.

Similarly, you can add new ones via the Get New button:

For example, Ant-Dark KDE – install, activate:

Windows Decorations

Windows Decorations – appearance of windows and buttons:

C cool theme, Willow Dark:

Icons

The icons settings:

For example, Papirus:

 

Replacing the Applications Launcher icon

Taskbar settings

Let’s change the taskbar – I prefer the “classic” taskbar.

Click on the taskbar and select Show Alternatives:

And select Icons-and-Text Task Manager:

Configuring the top panel

Click on the desktop, select Enter Edit mode:

Choose Add Panel – Empty panel:

Add widgets – there are many included, and you can download new ones:

For example, the weather:

Or Global Menu:

Add Panel Spacer to separate widgets on the panel:

And as a result, we have something like this:

KDE Tiling Manager

For me, this was the discovery of the year – KDE introduced its own tiling manager.

Activate the settings with Win+T – configure the zones and padding between windows:

To move a window to a tile, drag it with the mouse while holding down the Shift key:

Konsole settings

Select Configure:

Add a new Profile:

Set a theme:

Set the profile as Default:

Miscellaneous

I find it very convenient to drag a window not only by the title bar, but also by clicking anywhere on the window + Alt.

Enable this in Window Actions – change the Modifier key:

In Plasma, dragging a window to the edge of the screen by default can resize the window or move it to another virtual desktop.

I don’t really like this, it gets in the way, so you can disable it – go to Screen Edges, uncheck the boxes:

It’s also worth checking out Window Management – Desktop Effects – there are various interesting and cool effects there.

KDE Tips and tricks: links

I won’t describe them separately because there are so many, but I’ll leave links where you can watch or read about them: