FreeBSD.software
Home/Guides/How to Set Up a FreeBSD Desktop with KDE Plasma
tutorial·2026-04-09·7 min read

How to Set Up a FreeBSD Desktop with KDE Plasma

Complete guide to setting up KDE Plasma on FreeBSD: SDDM display manager, Plasma desktop installation, Wayland and X11 configuration, KDE apps, Bluetooth, and printing.

How to Set Up a FreeBSD Desktop with KDE Plasma

KDE Plasma is the most feature-complete desktop environment available on FreeBSD. It provides a polished graphical experience with a full suite of applications, system settings, and deep customization. FreeBSD's KDE support is maintained by the kde@FreeBSD.org team, and Plasma packages are kept reasonably current.

This guide walks through the complete setup: installing Plasma and SDDM, configuring X11 or Wayland, enabling hardware support, installing KDE applications, and setting up Bluetooth and printing. By the end, you will have a fully functional FreeBSD desktop.

Prerequisites

Before installing Plasma, your FreeBSD system needs:

  • FreeBSD 14.2-RELEASE or later
  • A working pkg setup
  • A video card with driver support (Intel, AMD, or NVIDIA)
  • A regular user account in the wheel and video groups

GPU Driver Setup

KDE Plasma requires a working GPU driver. Install the appropriate one:

For Intel or AMD GPUs:

sh
pkg install drm-kmod sysrc kld_list+="i915kms"

For AMD GPUs specifically:

sh
pkg install drm-kmod sysrc kld_list+="amdgpu"

For NVIDIA GPUs:

sh
pkg install nvidia-driver sysrc kld_list+="nvidia-modeset"

Load the module now without rebooting:

sh
kldload i915kms # or amdgpu, or nvidia-modeset

User Configuration

Ensure your user is in the required groups:

sh
pw groupmod video -m yourusername pw groupmod wheel -m yourusername

Installing KDE Plasma

Core Plasma Desktop

Install Plasma and the SDDM display manager:

sh
pkg install kde6 sddm

This pulls in the Plasma desktop shell, system settings, KWin window manager, and core Plasma utilities. The package set is large (several hundred packages with dependencies) and will take a few minutes to download.

Enable Required Services

KDE Plasma needs D-Bus and HAL for hardware communication, and SDDM to manage graphical login:

sh
sysrc dbus_enable="YES" sysrc sddm_enable="YES"

Start D-Bus now:

sh
service dbus start

Configure /proc Filesystem

KDE components expect a Linux-compatible /proc. Add to /etc/fstab:

sh
echo 'proc /proc procfs rw 0 0' >> /etc/fstab mount /proc

Start SDDM

Either reboot, or start SDDM manually:

sh
service sddm start

You should see the SDDM login screen. Log in with your user credentials and select "Plasma (X11)" or "Plasma (Wayland)" from the session menu.

X11 vs Wayland

KDE Plasma on FreeBSD supports both X11 and Wayland sessions. The choice matters.

X11 is the mature, well-tested option on FreeBSD. It works with all GPU drivers and has full feature support. If you want a reliable desktop, use X11.

No additional configuration is needed -- SDDM defaults to offering an X11 session.

For manual X11 configuration, create /usr/local/etc/X11/xorg.conf.d/driver.conf:

sh
# /usr/local/etc/X11/xorg.conf.d/driver.conf # For Intel GPUs: Section "Device" Identifier "Intel" Driver "modesetting" EndSection

Wayland (Experimental)

Plasma Wayland runs on FreeBSD but with caveats. Some applications may have rendering issues, and screen sharing may not work fully. To try it, select "Plasma (Wayland)" at the SDDM login screen.

For Wayland, ensure the XDG runtime directory is set up. Add to /etc/rc.conf:

sh
sysrc sddm_env="XDG_RUNTIME_DIR=/tmp/runtime-sddm"

And for your user, add to ~/.profile:

sh
export XDG_RUNTIME_DIR="/tmp/runtime-${USER}" mkdir -p "$XDG_RUNTIME_DIR" chmod 0700 "$XDG_RUNTIME_DIR"

Stick with X11 unless you have a specific reason to use Wayland.

Post-Install Configuration

SDDM Theme and Settings

SDDM configuration lives at /usr/local/etc/sddm.conf. Create or edit it:

sh
cat > /usr/local/etc/sddm.conf <<'EOF' [Theme] Current=breeze [Users] DefaultPath=/usr/local/bin:/usr/bin:/bin MinimumUid=1001 MaximumUid=65000 [X11] ServerPath=/usr/local/bin/X ServerArguments=-nolisten tcp EOF

Compositor Settings

KWin's compositor can be configured via System Settings > Display and Monitor > Compositor. For best performance on FreeBSD:

  • Rendering backend: OpenGL 3.1 (for modern GPUs) or OpenGL 2.0
  • Latency: Set to "Force smooth" or "Balance"
  • Scale method: Smooth

If you experience graphical glitches, try switching the rendering backend to OpenGL 2.0 in system settings.

Font Rendering

Install additional fonts for a polished look:

sh
pkg install noto roboto-fonts-ttf liberation-fonts-ttf

Enable font antialiasing system-wide. In KDE System Settings > Appearance > Fonts, enable "Anti-Aliasing" and set sub-pixel rendering to "RGB" for LCD monitors.

Installing KDE Applications

The base kde6 metapackage includes essentials, but you will want additional applications:

Productivity and Office

sh
pkg install libreoffice pkg install kde-telepathy

File Management and Archiving

sh
pkg install dolphin ark

Dolphin is KDE's file manager. For full functionality, install optional backends:

sh
pkg install kio-extras ffmpegthumbs kdegraphics-thumbnailers

Multimedia

sh
pkg install vlc elisa haruna

Elisa is KDE's music player. Haruna is a KDE-native video player built on mpv.

Web Browsing

sh
pkg install firefox chromium

Development

sh
pkg install kate kdevelop

Graphics

sh
pkg install gwenview okular spectacle krita

Gwenview is the image viewer, Okular handles PDFs, Spectacle takes screenshots, and Krita is a full painting application.

System Utilities

sh
pkg install kcalc kcharselect ksysguard plasma6-systemmonitor

Bluetooth Setup

FreeBSD has Bluetooth support, though it is less polished than Linux. KDE's Bluedevil provides a graphical interface.

Install Bluetooth Packages

sh
pkg install bluedevil

Enable Bluetooth

sh
sysrc hcsecd_enable="YES" sysrc sdpd_enable="YES" service hcsecd start service sdpd start

Configure the Bluetooth Controller

Find your Bluetooth device:

sh
usbconfig list | grep -i bluetooth

Initialize it:

sh
ngctl mkpeer ubt0: hci upstream hook hccontrol -n ubt0hci inquiry

After this, Bluedevil should detect the controller and let you pair devices through KDE System Settings > Bluetooth.

Note: Bluetooth audio (A2DP) on FreeBSD is limited. Keyboard and mouse pairing works well. Audio headsets may require additional configuration with virtual_oss.

Printing Setup

KDE uses CUPS for printing, with a KDE-native configuration module.

Install CUPS

sh
pkg install cups cups-filters system-config-printer sysrc cupsd_enable="YES" service cupsd start

Add Your User to the CUPS Group

sh
pw groupmod cups -m yourusername

Configure Printers

Open a browser and navigate to http://localhost:631 to access the CUPS web interface. Add your printer there.

Alternatively, use KDE System Settings > Printers, which provides a native GUI for printer management.

Network Printer Auto-Discovery

For network printers (IPP, AirPrint, etc.):

sh
pkg install avahi-app nss_mdns sysrc avahi_daemon_enable="YES" service avahi-daemon start

Edit /etc/nsswitch.conf and add mdns to the hosts line:

sh
hosts: files dns mdns

CUPS should now auto-discover network printers.

Audio Configuration

PulseAudio (or PipeWire)

KDE works with PulseAudio or PipeWire for audio management:

sh
pkg install pulseaudio pavucontrol

Or for PipeWire (newer, recommended):

sh
pkg install pipewire wireplumber

Load the sound driver:

sh
sysrc kld_list+="snd_hda" kldload snd_hda

Verify audio devices:

sh
cat /dev/sndstat

PulseAudio should start automatically with the KDE session. Use pavucontrol or KDE's volume applet to manage audio levels.

Power Management

For laptops, configure power management:

sh
pkg install drm-kmod sysrc powerd_enable="YES" service powerd start

KDE's power management settings (System Settings > Power Management) work with FreeBSD's ACPI backend. Configure screen dimming, suspend behavior, and lid close actions there.

For suspend/resume:

sh
sysrc acpi_lid_switch_state="S3"

Suspend support varies by hardware. Test with:

sh
acpiconf -s 3

Troubleshooting

Black Screen After SDDM Login

Check the X11 log:

sh
cat /var/log/Xorg.0.log | grep "(EE)"

Common cause: wrong GPU driver. Verify the correct DRM module is loaded:

sh
kldstat | grep drm

Plasma Crashes on Login

Delete the Plasma cache and try again:

sh
rm -rf ~/.cache/plasmashell* rm -rf ~/.local/share/kscreen

Slow Performance

Disable desktop effects temporarily:

sh
Alt+Shift+F12

Check if the GPU driver supports hardware acceleration:

sh
glxinfo | grep "OpenGL renderer"

SDDM Does Not Start

Check the log:

sh
cat /var/log/sddm.log

Ensure D-Bus is running:

sh
service dbus status

FAQ

Is KDE Plasma stable on FreeBSD?

Yes. The KDE on FreeBSD team actively maintains packages. Plasma on X11 is stable for daily use. Wayland support is improving but still considered experimental.

Should I use X11 or Wayland with KDE on FreeBSD?

Use X11 for now. Wayland support on FreeBSD is progressing but X11 provides a more reliable experience, especially with NVIDIA GPUs.

How do I update KDE Plasma?

Run pkg upgrade to update all packages, including KDE. Major Plasma version upgrades arrive through the FreeBSD quarterly package branches.

Can I use Flatpak on FreeBSD for KDE apps?

Flatpak does not run natively on FreeBSD. Install applications through pkg or compile from the Ports Collection.

How much RAM does KDE Plasma need on FreeBSD?

Plasma uses approximately 800MB to 1.2GB of RAM at idle with a typical set of widgets and services. A minimum of 4GB total system RAM is recommended; 8GB or more for comfortable multitasking.

Does gaming work on KDE Plasma FreeBSD?

Limited compared to Linux. Some native FreeBSD games work, and Wine/Proton has limited FreeBSD support. For serious gaming, Linux remains the better choice.

Get more FreeBSD guides

Weekly tutorials, security advisories, and package updates. No spam.