EndeavourOS + KDE Plasma

0hlov3
15 min readNov 16, 2023
Photo by Tudor Baciu on Unsplash

Hi there,

since i am using Arch-based distributions for some time, i’m stuck with EndeavourOS for a long term now. I was using Gnome as Desktop Environment for a decade now. But now i want to try something else, so i’ll go threw the Process to Install EndeavourOS with KDE Plasma. EndeavourOS is mostly the same thing as Arch, the differences are superficial. EndeavourOS has everything Arch has, plus:
Calamares Installer
— A tiny additional repo with some custom theming and a handful of useful utilities like yay and inxi and a few scripts
— And a strong community, which is, in my opinion, the biggest advantage of EndeavourOS over vanilla Arch.

Installation

The installation process is quite simple, you can configure and customize your installation via the Calamaris Installer.
In the next screenshots I will show you how the installer looks and feels.

First of all i boot into the EndeavourOS NVIDIA, cause i got an Nvidia graphics card, whet you got something else, you can go with the Default option.

EndeavourOS Bootloader

In the Welcome Screen of the Booted installation medium, i choosed Start the Installer and Online, cause if you choose Offline you’ll be able to install Xfce only, i think in the next Release EndeavourOS will go with KDE Plasma for offline Installation.

EndeavourOS Start the Installer Online

In the Welcome Tab, i’m going to choose American English, you can choose whatever Language you prefer.

In the Location pane, i set up my Region where the Computer stands. So that my timezone will be correctly set up.
You can set the numbers and date locale whatever you want, i choose Deutsch (german), so that the date format is in a normal way for me.

Here in the Keyboard tab, you can choose your Keyboard Model and the Layout specific for your keyboard.

in The Desktop Screen i Choose Plasma KDE, cause i want to go with KDE Plasma. I just reinstall my System cause i wanted to change to Plasma after years of being a Gnome User, i know i could install things Side by Side, but i want to make a fresh Installation.

I customize the Installation to my needs, i don’t have an AMD graphics card or an AMD Processor, so i deselect things that would install drivers for AMD Hardware. Since i got an HP Network Printer i install the Support for HP Printer/Scanner, its easier to setup network Printing and Scanning with hplib and xsane.

Since i’ll go with ext4 and do not need to boot into BTRFS Snapshots or something else, i will go with systemd-boot. Its simple and ease to understand.

Under Partitions i go with the default setup, just checked if everything is on EFI. Since i want to set the Computer into Hibernate State, i set SWAP with Hibernate.

The Differences are:

  • Sleep/Standby (“turn off display”) typically means that your computer and/or monitor are put into an idle, low power state. Depending on your operating system, sleep is sometimes used interchangeably with suspend, what sleep does on your system should be evaluated on a case by case basis.
  • Suspend saves its current state to your RAM and puts the computer and all peripherals on a low power consumption mode. If the battery runs out or the computer turns off for some reason, the current session and unsaved changes will be lost.
  • When a computer hibernates/suspend to disk, it will save its current state to the hard disk and power down completely. When resuming, the saved state from your Session is restored to RAM.

In the next step (sorry don’t have a Screenshot here), you will be prompted to create your User. I would prefer to create different Passwords for the Useraccount and the root user.

Go to the Next steps and install EndeavourOS, reboot the System if your Prompted to and remove the Install Media.

When we bootet into EndeavourOS we can install our Software.

Package Manager

Pacman

The pacman package manager is one of the major distinguishing features of Arch Linux. It combines a simple binary package format with an easy-to-use build system. The goal of pacman is to make it possible to easily manage packages, whether they are from the official repositories or the user’s own builds.

Pacman keeps the system up-to-date by synchronizing package lists with the master server. This server/client model also allows the user to download/install packages with a simple command, complete with all required dependencies.

# Basic Usage
## Installing packages
sudo pacman -S package_name1
## Upgrading packages
sudo pacman -Syu
## Removing packages
### -R = Remove packages, -n = don't make config file backups, -s = Remove dependencies
sudo pacman -Rns package_name1

Yay

Yet Another Yogurt — An AUR Helper Written in Go
The Arch User Repository (AUR) is a community-driven repository for Arch users. It contains package descriptions (PKGBUILDs) that allow you to compile a package from source with makepkg and then install it via pacman. The AUR was created to organize and share new packages from the community and to help expedite popular packages’ inclusion into the extra repository. This document explains how users can access and utilize the AUR.

Yay is preinstalled at EndeavourOS and so we don’t need to install the AUR Helper. For packages that we install via Yay and that come from the AUR, we can look at the installation scripts and check whether the dependencies really install what we want to install.

# Basic Usage
## Search packages
yay Search_String
## Installing packages
yay -S package_name1
## Upgrading packages is pretty much the same as in Pacman `yay -Syu`
## But yay is an alias, so you can go with.
yay

Install the Software

The packages I install here fit my requirements, but that does not necessarily mean that the software I install here is the software you need.

We will need to open Konsole in KDE Plasma, when you are using another Desktop Environment the Software you need and the terminal emulator for your Desktop Environment is another one.

KDE Plasma

Since the EndeavourOS KDE Plasma install is very lightweight, so that you don’t have any Bloatware, i’ll go and install the plasma-meta package, so i’ll get some extra KDE Plasma Packages.

sudo pacman -S --needed plasma-meta

KDE [P]ersonal [i]nformation [m]anagement

KDE offers its own stack for personal information management (PIM). This includes emails, contacts, calendar, etc. To install all the PIM packages, you could use the kde-pim package group or the kde-pim-meta meta package.

Since i want the E-Mail and Calender integration i’ll go and install the kde-pim-meta.

sudo pacman -S --needed kde-pim-meta

Video Players

kaffeine

Very versatile KDE media player that, by default, utilizes VLC as its backend and has excellent support of digital TV (DVB-T, DVB-C, DVB-S).

VLC media player

Middleweight video player with support for a wide variety of audio and video format

sudo pacman -S --needed vlc kaffeine

Text Editors

kate

Kate is a Feature-Packed Text Editor
Kate is packed with features that will make it easier for you to view and edit all your text files. Kate lets you to edit and view many files at the same time, both in tabs and split views, and comes with a wide variety of plugins, including an embedded terminal that lets you launch console commands directly from Kate, powerful search and replace plugins, and a preview plugin that can show you what your MD, HTML and even SVG will look like.

vim

Vim is a highly configurable text editor built to make creating and changing any kind of text very efficient. It is included as “vi” with most UNIX systems and with Apple OS X.

neovim

hyperextensible Vim-based text editor

sudo pacman -S --needed kate vim neovim

Personal Security

Bitwarden

The password manager trusted by millions
At home, at work, or on the go, Bitwarden easily secures all your passwords, passkeys, and sensitive information.

bitwarden-cli

The Bitwarden command-line interface (CLI) is a powerful, fully-featured tool for accessing and managing your vault. Most features that you find in other Bitwarden client applications (desktop, browser extension, etc.) are available from the CLI.

kwalletmanager

KWalletManager is a tool to manage the passwords on your system. By using the Frameworks wallet subsystem it not only allows you to keep your own secrets but also to access and manage the passwords of every application that integrates with the wallet.

sudo pacman -S --needed kwalletmanager bitwarden bitwarden-cli

PDF Viewers

Okular

The Universal Document Viewer
Multi-platform, fast and packed with features, Okular allows you to read PDF documents, comics and EPub books, browse images, visualize Markdown documents, and much more.

sudo pacman -S --needed okular

Office Suite

libreoffice-fresh

LibreOffice is a free and powerful office suite, and a successor to OpenOffice.org (commonly known as OpenOffice).
Its clean interface and feature-rich tools help you unleash your creativity and enhance your productivity.

sudo pacman -S --needed libreoffice-fresh

Misc System Tools

partitionmanager

KDE Partition Manager is a utility to help you manage the disks, partitions, and file systems on your computer. It allows you to easily create, copy, move, delete, back up, restore, and resize them without losing data. It supports a large number of file systems, including ext2/3/4, btrfs, reiserfs, NTFS, FAT16/32, JFS, XFS and more.

krename

KRename is a very powerful batch file renamer which can rename a list of files based on a set of expressions. It can copy/move the files to another directory or simply rename the input files. KRename supports many conversion operations.

pwgen

Pwgen is a small, GPL’ed password generator which creates passwords which can be easily memorized by a human.

htop

This is htop, a cross-platform interactive process viewer. It is a text-mode application (for console or X terminals) and requires ncurses.

sudo pacman -S --needed partitionmanager krename pwgen htop

Math

kcalc

KCalc has everything you would expect from a scientific calculator…

sudo pacman -S --needed kcalc

Image Vieweing

digikam

digiKam is an advanced open-source digital photo management application that runs on Linux, Windows, and MacOS. The application provides a comprehensive set of tools for importing, managing, editing, and sharing photos and raw files.

gwenview

Gwenview is a fast and easy to use image viewer by KDE, ideal for browsing and displaying a collection of images.

sudo pacman -S --needed digikam gwenview

Image Processing & Editing

krita

Krita is a professional FREE and open source painting program. It is made by artists that want to see affordable art tools for everyone.

GIMP

The Free & Open Source Image Editor
GIMP is a cross-platform image editor available for GNU/Linux, macOS, Windows and more operating systems. It is free software, you can change its source code and distribute your changes.

darktable

darktable is an open source photography workflow application and raw developer. A virtual lighttable and darkroom for photographers. It manages your digital negatives in a database, lets you view them through a zoomable lighttable and enables you to develop raw images and enhance them.

sudo pacman -S --needed krita gimp darktable

Browsers

vivaldi

Get unrivaled customization options and built-in browser features for better performance, productivity, and privacy.

torbrowser-launcher

Tor Browser Launcher is intended to make Tor Browser easier to install and use for GNU/Linux users. You install torbrowser-launcher from your distribution’s package manager and it handles everything else.

konqueror

Konqueror is KDE’s Webbrowser and swiss-army-knife for any kind of file-management and file previewing.

Firefox

Get the browser that puts your privacy first — and always has

Chromium

Chromium is an open-source browser project that aims to build a safer, faster, and more stable way for all Internet users to experience the web. This site contains design documents, architecture overviews, testing information, and more to help you learn to build and work with the Chromium source code.

sudo pacman -S --needed vivaldi torbrowser-launcher konqueror firefox chromium

Audio Players

elisa

The Elisa music player is developed by the KDE community and strives to be simple and pleasant to use. It’s available on Linux, Microsoft Windows, and Android.

sudo pacman -S --needed elisa

Note Taking

joplin-appimage

Joplin is an open source note-taking app. Capture your thoughts and securely access them from any device.

yay -S --needed joplin-appimage

Virtualisation

virtualbox

VirtualBox is a hypervisor used to run operating systems in a special environment, called a virtual machine, on top of the existing operating system. VirtualBox is in constant development and new features are implemented continuously. It comes with a Qt GUI interface, as well as headless and SDL command-line tools for managing and running virtual machines.

virtualbox-host-modules-arch

In order to launch VirtualBox virtual machines on your Arch Linux box, follow these installation steps.

Install the virtualbox package. You will also need to choose a package to provide host modules.

vagrant

Vagrant is a tool for managing and configuring virtualised development environments.

Vagrant has a concept of ‘providers’, which map to the virtualisation engine and its API. The most popular and well-supported provider is Virtualbox; plugins exist for libvirt, lxc, vmware and more.

Docker

Pack, ship and run any application as a lightweight container

sudo pacman -S --needed virtualbox virtualbox-host-modules-arch vagrant docker

Development Tools

Tig

Tig is an ncurses-based text-mode interface for git. It functions mainly as a Git repository browser, but can also assist in staging changes for commit at chunk level and act as a pager for output from various Git commands.

Code

Code is a cross-platform text editor developed by Microsoft, built on the Electron framework. Visual Studio Code is a binary distribution of the MIT-licensed Code — OSS repository, with Microsoft specific customizations and released under a proprietary license.

Kubectl

The Kubernetes command-line tool, kubectl, allows you to run commands against Kubernetes clusters. You can use kubectl to deploy applications, inspect and manage cluster resources, and view logs.

kubectx

kubectx is a tool to switch between contexts (clusters) on kubectl faster.
kubens is a tool to switch between Kubernetes namespaces (and configure them for kubectl) easily.

Helm

The package manager for Kubernetes
Helm is the best way to find, share, and use software built for Kubernetes.

Ansible

Ansible is an open source community project sponsored by Red Hat, it’s the simplest way to automate IT. Ansible is the only automation language that can be used across entire IT teams from systems and network administrators to developers and managers.

Terraform

Automate infrastructure on any cloud with Terraform

Packer

Automate image builds with Packer

Go

Build simple, secure, scalable systems with Go

Tinygo

TinyGo brings the Go programming language to embedded systems and to the modern web by creating a new compiler based on LLVM.

staticcheck

Staticcheck is a state of the art linter for the Go programming language. Using static analysis, it finds bugs and performance issues, offers simplifications, and enforces style rules.

sudo pacman -S --needed git tig code kubectl kubectx helm ansible terraform packer go tinygo staticcheck

Add your user to the docker group, so that you can use the docker commands directly

whoami
MyUserName=$(whoami)
sudo usermod -aG docker $MyUserName

Sublime Text

Sublime Text Text Editing, Done Right

# Install the GPG key:
curl -O https://download.sublimetext.com/sublimehq-pub.gpg && sudo pacman-key --add sublimehq-pub.gpg && sudo pacman-key --lsign-key 8A8F901A && rm sublimehq-pub.gpg
# Select the channel to use, we use Stable x86_64 for now
echo -e "\n[sublime-text]\nServer = https://download.sublimetext.com/arch/stable/x86_64" | sudo tee -a /etc/pacman.conf
# Update pacman and install Sublime Text:
sudo pacman -Syu sublime-text

From AUR

intellij-idea-ultimate-edition-jre

JetBrains Runtime is a fork of OpenJDK available for Windows, Mac OS X, and Linux. It supports enhanced class redefinition (DCEVM), features optional JCEF, a framework for embedding Chromium-based browsers, includes a number of improvements in font rendering, keyboards support, windowing/focus subsystems, HiDPI, accessibility, and performance, provides better desktop integration and bugfixes not yet present in OpenJDK.

intellij-idea-ultimate-edition

IntelliJ IDEA — the Leading Java and Kotlin IDE
The IDE that makes development a more productive and enjoyable experience

azure-cli

The Azure command-line interface (Azure CLI) is a set of commands used to create and manage Azure resources. The Azure CLI is available across Azure services and is designed to get you working quickly with Azure, with an emphasis on automation.

code-marketplace

Enable vscode marketplace in Code OSS

yay -S --needed intellij-idea-ultimate-edition-jre intellij-idea-ultimate-edition azure-cli code-marketplace

Socials

Discord

Imagine a place…
…where you can belong to a school club, a gaming group, or a worldwide art community. Where just you and a handful of friends can spend time together. A place that makes it easy to talk every day and hang out more often.

sudo pacman -S --needed discord

signal-desktop

Speak Freely
Say “hello” to a different messaging experience. An unexpected focus on privacy, combined with all of the features you expect.

yay -S --needed signal-desktop

Antivir — ClamAV

ClamAV® is an open-source antivirus engine for detecting trojans, viruses, malware & other malicious threats.

# Install clamav
sudo pacman -S clamav
# Update the virus definitions
sudo freshclam
# Start the Service
systemctl start clamav-daemon
# Or enable the Service if you want
systemctl enable --now clamav-daemon

We can scan the System now for the first time

clamscan --recursive --infected --max-filesize=2048M --max-scansize=2048M --remove --exclude-dir='^/sys|^/dev' /

--remove removes the infected file, or you can use --move=/dir to quarantine them.

--max-filesize=2048M and --max-scansize=2048M scans large file. '4000M' is the largest possible value, and may be lowered as necessary.

Gaming

NVIDIA

Proprietary driver and support for Vulkan are required for proper functionality of games.
To install it, execute the following command:

sudo pacman -S --needed nvidia-dkms nvidia-utils lib32-nvidia-utils nvidia-settings vulkan-icd-loader lib32-vulkan-icd-loader

Check if you have the Proper Vulkan Driver installed

ls /usr/share/vulkan/icd.d/

should print something like `nvidia_icd.json`.

Wine Dependencies

Although Lutris provides and uses its own Wine builds, we still recommend you install all of Wine’s dependencies to ensure a working experience. The easiest way to get them is to install Wine system-wide through your package manager.

The version of Wine installed should not matter, it is not even required for Wine to be present as long as all dependencies are satisfied. Although, Lutris will display a warning message if it cannot detect an existing installation of Wine.

sudo pacman -S --needed wine-staging giflib lib32-giflib libpng lib32-libpng libldap lib32-libldap gnutls lib32-gnutls \
mpg123 lib32-mpg123 openal lib32-openal v4l-utils lib32-v4l-utils libpulse lib32-libpulse libgpg-error \
lib32-libgpg-error alsa-plugins lib32-alsa-plugins alsa-lib lib32-alsa-lib libjpeg-turbo lib32-libjpeg-turbo \
sqlite lib32-sqlite libxcomposite lib32-libxcomposite libxinerama lib32-libgcrypt libgcrypt lib32-libxinerama \
ncurses lib32-ncurses ocl-icd lib32-ocl-icd libxslt lib32-libxslt libva lib32-libva gtk3 \
lib32-gtk3 gst-plugins-base-libs lib32-gst-plugins-base-libs vulkan-icd-loader lib32-vulkan-icd-loader

Game Launcher and Plattforms

Lutris

Lutris is a video game preservation platform aiming to keep your video game collection up and running for the years to come.
Over the years, video games have gone through many different hardware and software platforms. By offering the best software available to run your games, Lutris makes it easy to run all your games, old and new.

Steam

Steam is a video game digital distribution service and storefront developed by Valve Corporation. It was launched as a software client in September 2003 to provide game updates automatically for Valve’s games, and expanded to distributing third-party titles in late 2005.

sudo pacman -S --needed lutris steam

Kernel

linux-zen

Result of a collaborative effort of kernel hackers to provide the best Linux kernel possible for everyday systems.

Some applications, mostly games, may have slightly better performance with Zen kernel. For some other Applications, it may be the other way round, that have with LTS better performance. For the most things, you’re unlikely to notice any difference, i’ll use the default (arch) kernel most the time. Here is an article for performance review https://www.phoronix.com/review/arch-linux-kernels-2023/5.

sudo pacman -S --needed linux-zen linux-zen-docs linux-zen-headers

Conclusion

Yes I know, I install a lot of software here and it doesn’t follow the KISS principle at all, that archlinux follows, but in the end the software helps me to do my tasks efficiently. And I am very happy that I can play games like World of Warcraft (via lutris), as well as Warthunder (native) or Cyperpunk 2077 (vie steam) on my system without installing Windows.

This Setup works very well for me.

Don‘t trust me

The author does not assume liability for errors contained in or for damages arising from the use of the Information.

And do not hesitate to ask me questions or send me suggestions for improvement.

Sources

--

--

Passionate DevOps engineer with a preference for Infrastructure as Code, Automation, Kubernetes, Go, Azure- and HetznerCloud.