Skip to content

Guide to install KDE Plasma desktop environment on a minimal Fedora installation

License

Notifications You must be signed in to change notification settings

boredsquirrel/Fedora-KDE-Minimal-Install-Guide

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

47 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Fedora KDE Minimal Install

A guide to install Fedora Linux with the KDE Plasma Desktop Environment (DE) from a minimal Fedora installation. This will allow better control over which packages are included in Fedora KDE and result in a lighter Fedora installation than the official Fedora KDE spin offers. The guide will provide step-by-step instructions. I will also include optional, simple scripts to help with the process of installing the required packages.

I found the official Fedora KDE spin to be bloated and I was not the only person who felt this way about Fedora's official KDE spin. Through a graphical software store users can choose the software they prefer.

The origin of this comes from my post on Reddit, [How-To] Minimal KDE Install on Fedora. To centralize my changes to the directions and script(s) I am carrying on from this repo.

This isnt an extreme take on minimalism. There are likely packages that can be excluded from my guide and have a machine still work.

Note: Fedora Kinoite / Fedora Atomic KDE has a very small set of apps preinstalled and follows are different, more reliable and secure packaging model.

Warning:

I will assume for the rest of this guide that Fedora Linux will be installed on a physical machine as the only OS. Be sure that if the computer was previously used, all files and information needed has been backed up externally. Follow these directions at your own risk and assume full responsibility for the outcome. It is up to you to determine if your computer is compatible with Fedora and to fix issues occuring during the process.

Resources for Installing Fedora KDE Minimally

  • Fedora Everything Netinstall ISO can be downloaded here. For most people the 64 bit ISO will be the proper ISO to use.

Requirements for Fedora KDE Minimal

  • Fedora Everything ISO. Made bootable via a physical disc, USB drive or via PXE. Official documentation on Preparing Boot Media
  • Internet connection. The ISO above includes only the packages required to run the installer. All selected packages are downloaded over the internet to install. Post minimal install, internet will be required to add the packages we need.
  • Wifi should work out of the box. IF not, just replace your wifi card, which will spare you a lot of troubles.
  • You will use the terminal. Issues may occur, that you need to fix.

1. Install Fedora Minimal

In this part of the guide we are installing Fedora minimal from the boot media. Additionally to these explanations, refer to offifical documentation on the steps.

Note: Many Anaconda steps are not documented anymore. Fedora will switch to their Webinstaller in a future release. General steps should be similar.

  1. Boot from the installation media. Booting the Installation.
  2. Follow Fedora's installer GUI called Anaconda (this may take several minutes). A generalized guide from the official documentation: Installing in the Graphic User Interface.
  3. Select your language.

The Installation Summary screen in Anaconda acts as a portal to all of the choices we need to make. Some portions of this screen take longer to load than other. The order of configuring does not matter. Below I will list them in the order I typically find the options load in.

  1. Localization heading. Adjust the options here as needed to match your date & timezone, language and keyboard setup. It is possible for some people that no changes will need to be made here.
  2. Installation Destination. To use automatic partitioning (which is fine) just press done. Manual partitioning is available too. Optionally, you can check the "Encrypt my data" checkbox if you want to use disk encryption. Press the "Done" button at the top left when finished. You may be prompted for your disk encryption password.
  3. Network & Hostname. From here set at least one network connection up and have it be active. It is possible that one or more connections may already be connected and active. You could set the IP statically or via DHCP. Optionally, you may choose to set the hostname of the computer at this time as well. Press the "Done" button at the top left when finished.
  • NOTE: If using Wifi AND a hidden SSID you may run into trouble connecting as Anaconda may not have an option to select hidden Wifi networks. If this is the case, there are 2 options to connnect to your wifi. A) Temporarily set the SSID visible, B) Pick any visible Wifi connection with some sort of protection enabled (IE: not an open network). Press "Cancel" on the password dialog. Click the "Configure" button at the bottom right. Change the name to your Wifi's hidden SSID, the password field to your Wifi password and all other settings according to those matching your Wifi network. Press "Ok". If it does not appear to work (sometimes the first attempt does not), try toggling the "switch" at the top to disable and enable Wifi. If this does not work redo the steps again but use another visible Wifi network. When it works, your SSID will be listed along with its status.
  1. Software Selection. After the "Installation Source" loads, which may take a minute, this option is used to determine what to initially install. Select "Minimal Install" on the left hand side and "NetworkManager Submodules" on the right hand side. Press the "Done" button at the top left when finished.
  2. Create a user. By default it will have admin rights (sudo, wheel group). Dont create a root user, it is not needed. Use a strong password of course.
  3. Begin Installation

Progress will be shown on screen and when complete the computer will reboot and load to a terminal shell, where you login with your created user account.

2.1 Shell Script to Install Required Packages (Optional)

The fedora-kde-min-packages.sh script in this repo can be used to install all of the required packages (does not include recommended or optional). You may execute the script as is or add your desired packages (or remove ones) to the script.

Execute the script after mounting it the external drive to your system or by connecting over ssh.

Copy the script to your home and make it executable:

cp /path/to/fedora-kde-min-packages.sh ~/
sudo chmod +x ~/fedora-kde-min-packages.sh
sudo ~/fedora-kde-min-packages.sh

or download it straight into bash:

curl https://github.com/Zer0CoolX/Fedora-KDE-Minimal-Install-Guide/raw/master/fedora-kde-min-packages.sh | bash

2.2 Manually Installing KDE Plasma Desktop Environtment

Optional: Connect over ssh

If you have a second machine, it may be easiest to connect over ssh to do the install.

On your fresh installed fedora system, do sudo systemctl start sshd, which will start the ssh server just for this boot. You will be prompted to enter a password, which is used for logging in. Use hostname -I to get the local IP address of the device.

On your second machine, use ssh USERNAME@IPADDRESS, where the username is the one you set in anaconda, and the ipaddress is the result of hostname -I on the fresh install. Enter the password and you can remote control the machine!

Package installation

I will be breaking this down into four (4) groups:

  1. Required Packages
  2. Recommended Packages
  3. Optional Packages
  4. Other Packages

As a note, packages styled as @"Package Name" are package groups that install many packages.

Connecting to the Wifi

Fedora Docs, Ubuntu Docs.

Connecting to a network should work like this:

user@fedora$ nmcli radio wifi on
user@fedora$ nmcli device wifi list
IN-USE  BSSID              SSID   MODE   CHAN  RATE        SIGNAL  BARS  SECURITY
        XX:XX:XX:XX:XX:XX  NAME   Infra  6     195 Mbit/s  100     ▂▄▆█  WPA2
user@fedora$ nmcli device wifi connect NAME

Just type TAB instead of NAME and it will autocomplete the available Network names (SSIDs).

Once connected to your wifi proceed with installing the packages for KDE in the next steps.

Required Packages

This will install a base KDE Plasma Wayland session, including networking and core applications. Just run the command and wait.

--setopt=install_weak_deps=False is used to avoid installing weak dependencies.

sudo dnf install -y --setopt=install_weak_deps=False\
@"Hardware Support" @Fonts\
ark bluedevil breeze-gtk breeze-icon-theme colord-kde dolphin glibc-all-langpacks gnome-keyring-pam kde-gtk-config kde-partitionmanager kde-style-breeze intel-media-driver libva-utils libvdpau-va-gl kdegraphics-thumbnailers kdeplasma-addons kdialog kdnssd kf5-baloo-file kf5-kipi-plugins kf5-kwayland khotkeys kmenuedit konsole5 kscreen kscreenlocker ksshaskpass kwalletmanager5 kinfocenter kwin-wayland kwrite libinput libwayland-* mesa-dri-drivers mesa-va-drivers NetworkManager-config-connectivity-fedora pam-kwallet phonon-qt5-backend-gstreamer pinentry-qt plasma-breeze plasma-desktop plasma-desktop-doc plasma-nm plasma-pa plasma-systemmonitor plasma-workspace-geolocation plasma-workspace-wallpapers plasma-workspace-wayland polkit-kde qt5-qtbase-gui qt5-qtdeclarative qt6-qtwayland sddm-breeze sddm-kcm sddm-wayland-plasma sni-qt vulkan wayland-utils xorg-x11-server-Xwayland xwaylandvideobridge

Now we need to permanently enable the graphical login with SDDM:

sudo systemctl enable --now sddm &&\
sudo systemctl set-default graphical.target

It is important to run the second command, otherwise SDDM will not show on reboots, thats why they are combined with &&.

SDDM will load and you can login graphically. If you where connected over ssh you can close it now!

Disabling baloo

The only "annoyance" your system may now have is baloo. This file indexer program is known to cause troubles, need a lot of resources and sometimes hang.

Note, that you dont need to disable it at all, but you can.

balooctl disable

Recommended Packages

The following packages are not strictly required, but likely offer a good experience.

sudo dnf install --setopt=install_weak_deps=False package_name

Main Components

  • plasma-welcome plasma-welcome-fedora update messages, donation links and more
  • plasma-desktop-doc help pages for every program and the desktop
  • @"Printing Support" cups-pk-helper kde-print-manager for printing
  • @"Input Methods" needed for other languages
  • @Multimedia for video and audio playback (does not contain a graphical player)
  • plasma-workspace-x11 xorg-x11-drv-libinput sddm kwin (for the Xorg Plasma session, if you have a good reason to not use Wayland)
  • plasma-browser-integration together with firefox, falkon or chromium for displaying notifications and more in your system
  • plasma-drkonqi for crash reports
  • plasma-nm-openconnect plasma-nm-openvpn plasma-nm-vpnc wireguard-tools for various VPN protocols
  • orca the most common screenreader for Linux

Applications

  • gwenview (Image and video viewer and image editor)
  • okular (PDF viewer and editor)
  • kfind (advanced file search)
  • plasma-pk-updates (KDE applet for software updates, when not using Discover)
  • plasma-discover plasma-discover-notifier (GUI Application store, replacement for dnf and flatpak through the terminal)
  • dnfdragora (traditional GUI software manager for dnf)
  • firewall-config (GUI for working with firewalld, the default firewall included with Fedora)
  • setroubleshoot (GUI SELinux helper program)
  • clamav clamtk (Antivirusscanner with or without GUI)

Media support

Fedora cannot ship certain restricted codecs out of the box for legal reasons, so it can't play some video and audio files. Add rpmfusion and install the packages from there:

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

(These RPMFusion packages will take care of updating the repositories along with your system.)

Minimal, just make all videos play:

sudo dnf install -y libavcodec-freeworld x264-libs x265-libs openh264

Full ffmpeg:

sudo dnf install --allowerasing ffmpeg

Optional Packages

So far we dont have the typical programs most people may really want, like a browser. The beauty is, at this stage we can pick and chose anything we want.

I am going to primarily focus on some KDE applications I do like here but others may elect not to use.

sudo dnf install package_name
  • kgpg (manage PGP keys graphically)
  • kate (instead of kwrite, advanced KDE GUI text editor)
  • kget (download manager), ktorrent (torrent client)
  • kcalc (Simple calculator)
  • kmouth (speech synth frontend)
  • kmousetool (automatic mouse clicker, broken on Wayland currently)
  • kcharselect (character map)
  • spectacle (screenshot and video capture tool)
  • kf5-akonadi-server kf5-akonadi-server-mysql kontact kaddressbook kmail korganizer merkuro (the KDE contact, calendar and mail suite. Akonadi is not used by Thunderbird)
  • kile (LaTeX editor)
  • tokodon (Mastodon client)
  • neochat (Matrix client)
  • kde-connect (remote control and interact with your phone)
  • filelight (view your disk space usage)

Useful terminal tools

  • eza bat ripgrep skim: modern coreutil replacements in rust for ls cat grep fzf
  • htop powertop nvtop btop: various system monitors
  • glow: rust terminal markdown viewer, not yet in Fedora repos, COPR
  • zellij: rust tmux replacement, not yet in Fedora repos, COPR

Other Packages

Use dnf repolist or ls /etc/yum.repos.d/ to see the available package repositories. You can add others, like MullvadVPN, Tailscale, Brave Browser or various user repositories from COPR or OpenSuse's OpenBuildService (If the repo has Fedora RPMs, as OpenSuse RPMs are not completely compatible).

You can add fedoras 3rd party repositories:

sudo dnf install fedora-workstation-repositories

See the Managing third party reposititories using DNF documentation for further details.

Currently these 3rd party repos contain:

  • PyCharm
  • Google Chrome
  • nVidia Graphics Drivers
  • Steam client

Beyond this, check with the developer of your desired program for the recommended way to install it on Fedora.

Flatpak

Modern Fedora Systems have evolved. Flatpak is a universal package format that reduces distro packaging effords (and the resulting downstream bugs "only on Fedora" e.g.), as well as allowing for isolation, a permission system and thus more security.

sudo groupadd flatpak
sudo usermod -aG flatpak $USER
sudo dnf install -y flatpak plasma-discover-flatpak
flatpak remote-add flathub https://dl.flathub.org/repo/flathub.flatpakrepo

You might want to add Flathub as --user, apps will install only on your user account and you can skip the first 2 lines, creating the flatpak group.

A list of Flatpak repositories is here

Distrobox, Podman

Distrobox allows to use various Distributions userspaces to use apps made not available for Fedora. It is also useful for isolating dependencies and keeping a clean system, for testing beta software, installing selfcompiled programs etc.

sudo dnf install podman distrobox
distrobox-create Box1 -i TAB

use bash autocompletion to list the available images. Here are many advanced tutorials, what you can do with Distrobox

Virtual Machines

If you want to test different distributions, run Windows or various other operating systems, qemu and virt-manager are the easiest solution.

sudo groupadd libvirt
sudo usermod -aG libvirt $USER
sudo dnf install -y qemu qemu-kvm virt-manager
# enable the needed sockets
sudo systemctl enable virtqemud.socket virtnetworkd.socket virtstoraged.socket virtnodedevd.socket

If you want to emulate different CPU architectures, use dnf search qemu- to find them.

Tips

The following are some bits of information to help with the processes in this guide.

Helpful Commands

  • dnf grouplist (Lists all available groups to install)
  • dnf groupinfo "group name" (Lists all the packages and groups contained within a group. Replace group name with the actual group name)
  • dnf search keyword or multiple ones (search for packages)
  • df -h (Lists all file systems)

Helpful Resources

Final Thoughts

This guide should provide a solid foundation for a lean, minimalistic Fedora KDE install. If you find any packages in the Required Packages section that can be removed without introducing issues please let me know.

This Guide was updated from Fedora 32 to Fedora 39.

About

Guide to install KDE Plasma desktop environment on a minimal Fedora installation

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Shell 100.0%