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
pkgsetup - A video card with driver support (Intel, AMD, or NVIDIA)
- A regular user account in the
wheelandvideogroups
GPU Driver Setup
KDE Plasma requires a working GPU driver. Install the appropriate one:
For Intel or AMD GPUs:
shpkg install drm-kmod sysrc kld_list+="i915kms"
For AMD GPUs specifically:
shpkg install drm-kmod sysrc kld_list+="amdgpu"
For NVIDIA GPUs:
shpkg install nvidia-driver sysrc kld_list+="nvidia-modeset"
Load the module now without rebooting:
shkldload i915kms # or amdgpu, or nvidia-modeset
User Configuration
Ensure your user is in the required groups:
shpw groupmod video -m yourusername pw groupmod wheel -m yourusername
Installing KDE Plasma
Core Plasma Desktop
Install Plasma and the SDDM display manager:
shpkg 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:
shsysrc dbus_enable="YES" sysrc sddm_enable="YES"
Start D-Bus now:
shservice dbus start
Configure /proc Filesystem
KDE components expect a Linux-compatible /proc. Add to /etc/fstab:
shecho 'proc /proc procfs rw 0 0' >> /etc/fstab mount /proc
Start SDDM
Either reboot, or start SDDM manually:
shservice 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 (Recommended for Stability)
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:
shsysrc sddm_env="XDG_RUNTIME_DIR=/tmp/runtime-sddm"
And for your user, add to ~/.profile:
shexport 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:
shcat > /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:
shpkg 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
shpkg install libreoffice pkg install kde-telepathy
File Management and Archiving
shpkg install dolphin ark
Dolphin is KDE's file manager. For full functionality, install optional backends:
shpkg install kio-extras ffmpegthumbs kdegraphics-thumbnailers
Multimedia
shpkg install vlc elisa haruna
Elisa is KDE's music player. Haruna is a KDE-native video player built on mpv.
Web Browsing
shpkg install firefox chromium
Development
shpkg install kate kdevelop
Graphics
shpkg 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
shpkg 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
shpkg install bluedevil
Enable Bluetooth
shsysrc hcsecd_enable="YES" sysrc sdpd_enable="YES" service hcsecd start service sdpd start
Configure the Bluetooth Controller
Find your Bluetooth device:
shusbconfig list | grep -i bluetooth
Initialize it:
shngctl 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
shpkg install cups cups-filters system-config-printer sysrc cupsd_enable="YES" service cupsd start
Add Your User to the CUPS Group
shpw 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.):
shpkg 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:
shhosts: files dns mdns
CUPS should now auto-discover network printers.
Audio Configuration
PulseAudio (or PipeWire)
KDE works with PulseAudio or PipeWire for audio management:
shpkg install pulseaudio pavucontrol
Or for PipeWire (newer, recommended):
shpkg install pipewire wireplumber
Load the sound driver:
shsysrc kld_list+="snd_hda" kldload snd_hda
Verify audio devices:
shcat /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:
shpkg 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:
shsysrc acpi_lid_switch_state="S3"
Suspend support varies by hardware. Test with:
shacpiconf -s 3
Troubleshooting
Black Screen After SDDM Login
Check the X11 log:
shcat /var/log/Xorg.0.log | grep "(EE)"
Common cause: wrong GPU driver. Verify the correct DRM module is loaded:
shkldstat | grep drm
Plasma Crashes on Login
Delete the Plasma cache and try again:
shrm -rf ~/.cache/plasmashell* rm -rf ~/.local/share/kscreen
Slow Performance
Disable desktop effects temporarily:
shAlt+Shift+F12
Check if the GPU driver supports hardware acceleration:
shglxinfo | grep "OpenGL renderer"
SDDM Does Not Start
Check the log:
shcat /var/log/sddm.log
Ensure D-Bus is running:
shservice 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.