State of Wayland on FreeBSD in 2026
Wayland on FreeBSD has moved from "experimental curiosity" to "daily-drivable for the brave." The progress in the past 18 months has been substantial, driven by the drm-kmod updates, compositor ports, and dedicated developer effort. But gaps remain. This post covers exactly where things stand in early 2026: what works, what does not, and what is coming.
Background: Why Wayland on FreeBSD Took So Long
Wayland was designed on Linux. Not theoretically -- practically. The protocol itself is display-server agnostic, but the ecosystem around it depends heavily on Linux-specific kernel interfaces: KMS (Kernel Mode Setting), GBM (Generic Buffer Management), evdev, logind, and udev.
FreeBSD had to build or port equivalents for each of these:
- KMS/DRM: The drm-kmod port brings Linux DRM drivers to FreeBSD via LinuxKPI. This has been the largest effort and is now in good shape for Intel and AMD GPUs.
- evdev: FreeBSD's evdev compatibility layer in the kernel handles input devices. It has been stable since FreeBSD 12.
- logind: ConsoleKit2 and seatd provide session management. seatd is the preferred option and works well on FreeBSD.
- udev: libudev-devd bridges the gap, translating devd events into the udev API that Wayland compositors expect.
The critical piece was always DRM/KMS. Without working GPU drivers with proper kernel mode setting, nothing else matters. The drm-kmod port reached usable maturity around 2023-2024, and that unlocked everything else.
Current Compositor Status
Sway
Sway is the most mature Wayland compositor on FreeBSD. It is available in ports as x11-wm/sway and works reliably on Intel and AMD hardware.
Current status:
- Version in ports: 1.9.x (tracks upstream closely)
- Stability: Good for daily use on supported hardware
- Known issues: Some multi-monitor configurations with mixed DPI are flaky. HiDPI on a single monitor works.
- Configuration: Identical to Linux. Your existing sway config files transfer without changes.
Getting started:
shpkg install sway seatd foot wmenu sysrc seatd_enable=YES service seatd start pw groupmod video -m youruser pw groupmod input -m youruser
Create ~/.config/sway/config or copy the default:
shmkdir -p ~/.config/sway cp /usr/local/etc/sway/config ~/.config/sway/config
Launch from a TTY (not from within X11):
shsway
Wayfire
Wayfire, the 3D compositor with Compiz-like effects, is available as x11-wm/wayfire. It works on FreeBSD but is less tested than Sway.
shpkg install wayfire wcm wf-shell
Wayfire provides a more traditional desktop feel with window animations, wobbly windows, and a panel. It uses the same wlroots library as Sway, so hardware support is identical.
Hikari
Hikari was a FreeBSD-focused Wayland compositor that has been discontinued by its developer. It is no longer recommended. If you were using hikari, migrate to Sway or Wayfire.
Hyprland
Hyprland, the popular tiling compositor with smooth animations, has experimental FreeBSD support. It is available in ports as x11-wm/hyprland but should be considered beta quality on FreeBSD. The main issues are:
- Occasional crashes with certain animation configurations
- Some plugins designed for Linux do not work
- Screen capture and screen sharing require extra setup
Despite these caveats, several FreeBSD users report running Hyprland as their daily driver.
Labwc
Labwc is a wlroots-based compositor that aims to be a Wayland replacement for Openbox. It is lightweight, stable, and works well on FreeBSD. Available as x11-wm/labwc.
shpkg install labwc
Labwc is a good choice if you want a simple stacking window manager without the complexity of tiling. It supports server-side decorations and theming.
KDE Plasma Wayland
KDE Plasma 6 with Wayland session is available on FreeBSD. The Wayland session works but is less stable than the X11 session. Major issues include:
- Screen recording and screenshots have inconsistent behavior
- Some KDE-specific protocols are not fully ported
- Performance is slightly worse than the X11 session on older hardware
shpkg install plasma6-plasma-desktop plasma6-plasma-workspace-wayland
GNOME Wayland
GNOME on Wayland works on FreeBSD but is behind the Linux version in terms of stability. GNOME's reliance on systemd-logind creates complications that the ConsoleKit2/seatd workarounds do not fully address. Expect occasional session management quirks.
GPU Driver Support
This is the critical section. Your Wayland experience depends entirely on your GPU.
Intel GPUs
Intel is the best-supported GPU vendor on FreeBSD for Wayland.
- Generations supported: Haswell (2013) through Alder Lake (2021). Raptor Lake and Meteor Lake have partial support.
- Driver: i915kms via drm-kmod
- Status: Stable. This is the recommended hardware for a FreeBSD Wayland desktop.
shpkg install drm-kmod sysrc kld_list+="i915kms"
AMD GPUs
AMD support has improved dramatically and is now usable for daily work.
- Generations supported: GCN 1.0 (HD 7000 series) through RDNA 2 (RX 6000 series). RDNA 3 (RX 7000 series) has experimental support in the latest drm-kmod development branch.
- Driver: amdgpu via drm-kmod
- Status: Good. Some power management features are missing compared to Linux.
shpkg install drm-kmod sysrc kld_list+="amdgpu"
NVIDIA GPUs
NVIDIA remains problematic on FreeBSD for Wayland. The proprietary NVIDIA driver does not support GBM on FreeBSD. The nouveau driver has limited support via drm-kmod but lacks the performance and feature parity of the proprietary driver.
- Proprietary driver: Works for X11 only. No Wayland support.
- Nouveau: Basic functionality for older GPUs (Kepler and earlier). No Turing/Ampere/Ada support.
- Status: Not recommended for Wayland on FreeBSD. If you need Wayland, use Intel or AMD.
Virtio-GPU
For virtual machines, virtio-gpu works with Wayland compositors. This is useful for testing in bhyve or other hypervisors.
Application Compatibility
Native Wayland Applications
Most GTK4 and Qt6 applications run natively on Wayland without issues:
- Firefox: Native Wayland support. Set
MOZ_ENABLE_WAYLAND=1or it auto-detects. - Chromium: Runs with
--ozone-platform=wayland. Some versions require--enable-features=UseOzonePlatform. - LibreOffice: Native Wayland support in recent versions.
- mpv: Native Wayland output.
- Alacritty, foot, kitty: All work as native Wayland terminal emulators.
sh# Set environment for Wayland-native Firefox export MOZ_ENABLE_WAYLAND=1 firefox &
XWayland
XWayland provides backward compatibility for X11 applications. It is included with the xwayland package and most compositors start it automatically.
shpkg install xwayland
Applications that still require XWayland:
- Older GTK2 applications
- Most Java/Swing applications
- Electron apps older than version 28
- Wine/Proton (though Wayland-native Wine is in development)
- Some IDEs (older IntelliJ versions, older Eclipse)
XWayland works well enough that most users will not notice the difference. The main limitation is that XWayland applications cannot use Wayland-specific features like per-window scaling or fractional scaling.
Screen Sharing and Capture
Screen sharing through WebRTC (for video calls) requires PipeWire and xdg-desktop-portal:
shpkg install pipewire xdg-desktop-portal-wlr
For Sway and other wlroots compositors, xdg-desktop-portal-wlr handles the screen capture portal. For KDE, use xdg-desktop-portal-kde.
This is one area where FreeBSD still lags behind Linux. PipeWire on FreeBSD works but has occasional buffer underrun issues that cause brief video freezes during screen sharing.
Clipboard
Wayland clipboard works through wl-clipboard:
shpkg install wl-clipboard # Copy echo "text" | wl-copy # Paste wl-paste
Clipboard sharing between Wayland-native and XWayland applications works automatically in most compositors.
Input Methods
Input method support for CJK and other complex scripts works through fcitx5:
shpkg install fcitx5 fcitx5-gtk fcitx5-qt
Set the environment variables in your shell profile:
shexport GTK_IM_MODULE=fcitx export QT_IM_MODULE=fcitx export XMODIFIERS=@im=fcitx
Fcitx5 has native Wayland support and works in both Wayland-native and XWayland applications.
Known Limitations
What Does Not Work
- NVIDIA proprietary driver: No Wayland support on FreeBSD.
- Fingerprint readers: Most fingerprint reader drivers require Linux-specific interfaces.
- Secure boot with Wayland: Not applicable on FreeBSD currently.
- HDR output: Not yet supported in any FreeBSD Wayland compositor.
What Works but Has Rough Edges
- Multi-monitor with mixed refresh rates: Works in Sway but may have tearing on the lower-refresh display.
- Fractional scaling: Works in Sway 1.9+ but some XWayland apps render blurry.
- Gaming: Wayland-native gaming works for some titles. See the gaming state post for details.
- Screen recording: OBS with PipeWire capture works but requires manual configuration.
Migration from X11
If you are currently running X11 on FreeBSD and want to try Wayland, the migration is not all-or-nothing. You can keep your X11 setup and launch a Wayland compositor from a separate TTY.
Steps for a gradual migration:
- Install sway and dependencies alongside your existing X11 setup
- Test on a separate TTY (
Ctrl+Alt+F2, log in, runsway) - Identify which applications you use that need XWayland vs. native Wayland
- Set environment variables in your
.profilefor Wayland sessions - Once comfortable, make Wayland your default session
Key environment variables for a Wayland session:
shexport XDG_SESSION_TYPE=wayland export XDG_CURRENT_DESKTOP=sway export MOZ_ENABLE_WAYLAND=1 export QT_QPA_PLATFORM=wayland export SDL_VIDEODRIVER=wayland export _JAVA_AWT_WM_NONREPARENTING=1
Roadmap: What Is Coming
The FreeBSD Wayland story is improving on multiple fronts:
- drm-kmod updates: RDNA 3 and Intel Meteor Lake support are priorities for the drm-kmod team. Expect usable support in late 2026.
- PipeWire maturation: The FreeBSD PipeWire port is actively maintained and closing feature gaps with Linux.
- Compositor updates: Sway and Hyprland track upstream releases within weeks.
- Wayland protocols: Newer protocols like ext-session-lock, fractional-scale, and cursor-shape are being adopted by FreeBSD ports of compositors as they stabilize upstream.
The biggest remaining gap is NVIDIA support. Until NVIDIA releases a FreeBSD driver with GBM support or the nova/nouveau driver matures, NVIDIA users are stuck with X11.
FAQ
Can I use Wayland on FreeBSD for daily work right now?
Yes, if you have an Intel or AMD GPU. Sway is stable enough for daily use. Expect minor annoyances but nothing that blocks productive work.
Which compositor should I start with?
Sway if you want a tiling window manager. Labwc if you want a traditional stacking window manager. Both are the most stable options on FreeBSD.
Do I need to switch from PulseAudio to PipeWire for Wayland?
PipeWire is recommended for screen sharing and capture, but Wayland itself does not require PipeWire for audio. You can use PulseAudio for audio and PipeWire only for the screen capture portal. However, PipeWire can replace PulseAudio entirely and is increasingly the recommended setup.
Will my X11 configuration (xorg.conf) affect Wayland?
No. Wayland compositors have their own configuration and do not read xorg.conf. Your X11 setup remains untouched if you want to switch back.
Is Wayland faster than X11 on FreeBSD?
In most cases, Wayland has lower input latency and smoother rendering. However, some OpenGL applications may perform slightly worse under XWayland compared to native X11. For desktop use (browser, terminal, office apps), Wayland feels noticeably smoother.
Can I run a remote desktop over Wayland on FreeBSD?
VNC and RDP for Wayland are still maturing on FreeBSD. wayvnc works with wlroots-based compositors for VNC access. For RDP, there is no mature solution yet on FreeBSD. If remote access is critical, X11 with x11vnc or xrdp remains more reliable.
How do I debug Wayland issues on FreeBSD?
Run your compositor from a TTY with verbose logging. For Sway: sway -d 2> /tmp/sway.log. Check /var/log/Xorg.0.log only applies to XWayland. Most compositor logs go to stderr or the systemd journal equivalent (syslog on FreeBSD).