Skip to content

System dependencies

Kartoza Screencaster needs Qt 6, ffmpeg, and one of the screen-capture backends for your session type. The .deb and .rpm packages declare all of these as hard dependencies so apt/dnf will pull them in for you; this page is for the cases where you're rolling a fleet image, building from the tarball, or working out why the package manager can't satisfy the dependency.

Always required

  • Qt 6 — Core, Widgets, Multimedia, Svg, Network, Concurrent. DBus on Linux.
  • ffmpeg — used for audio recording, post-processing, denoising, merging, and the X11 capture path.
  • libnotify — desktop notifications when a recording starts / stops / finishes encoding.

Linux Wayland

Pick one based on the compositor:

Compositor family Capture path
wlroots (Hyprland, Sway, Wayfire, …) wl-screenrec, falling back to wf-recorder
GNOME (Mutter), KDE (KWin), COSMIC xdg-desktop-portal + PipeWire + GStreamer

For the portal path you also need GStreamer with pipewiresrc (provided by the pipewire GStreamer plugin) and an H.264 encoder (openh264enc from gst-plugins-bad is recommended; x264enc from gst-plugins-ugly is an alternative). You also need a portal backend matching your desktop — xdg-desktop-portal-gnome on GNOME, xdg-desktop-portal-kde on KDE Plasma, xdg-desktop-portal-cosmic on COSMIC.

COSMIC belongs on the portal row despite its wlroots-adjacent lineage: it does not implement wlr-screencopy-unstable-v1, so wl-screenrec and wf-recorder cannot capture there.

The Qt Wayland platform plugin (qt6-wayland on apt / qt6-qtwayland on dnf / qt6-wayland on pacman) is required for the GUI to render on a pure-Wayland session. Without it Qt falls back to XCB and needs XWayland to be running.

Linux X11

Just ffmpeg's x11grab muxer (bundled with any standard ffmpeg) plus xrandr for monitor enumeration (x11-xserver-utils on apt, xorg-x11-server-utils on dnf, xorg-xrandr on pacman).

Concrete install commands

Debian / Ubuntu

sudo apt install \
    ffmpeg \
    libqt6core6 libqt6gui6 libqt6widgets6 \
    libqt6multimedia6 libqt6dbus6 libqt6svg6 libqt6network6 \
    qt6-wayland \
    xdg-desktop-portal xdg-desktop-portal-gnome \
    pipewire pipewire-pulse \
    gstreamer1.0-tools \
    gstreamer1.0-plugins-base \
    gstreamer1.0-plugins-good \
    gstreamer1.0-plugins-bad \
    gstreamer1.0-libav \
    gstreamer1.0-pipewire \
    x11-xserver-utils libnotify-bin

# wlroots compositors (Hyprland, Sway, Wayfire, …):
sudo apt install wl-screenrec wf-recorder grim

# COSMIC uses the portal path, not wl-screenrec:
sudo apt install xdg-desktop-portal-cosmic

# KDE Plasma:
sudo apt install xdg-desktop-portal-kde

On Ubuntu 24.04, 24.10, 25.04 and 25.10 the Qt library names carry a t64 suffix (libqt6gui6t64, …) because of the in-flight time_t 64-bit transition. Both names are virtual-package aliases on the transition releases; on 22.04 LTS and 26.04+ the suffix is gone. The release .deb declares them as libqt6X6 | libqt6X6t64 alternatives so a single artefact installs cleanly across the whole range.

Fedora / RHEL

sudo dnf install \
    ffmpeg-free \
    qt6-qtbase qt6-qtbase-gui \
    qt6-qtmultimedia qt6-qtsvg qt6-qtnetworkauth \
    qt6-qtwayland \
    xdg-desktop-portal xdg-desktop-portal-gnome \
    pipewire pipewire-gstreamer \
    gstreamer1 gstreamer1-plugins-base \
    gstreamer1-plugins-good gstreamer1-plugins-bad-free \
    gstreamer1-libav \
    xorg-x11-server-utils libnotify

Use the ffmpeg package from RPM Fusion instead of ffmpeg-free if you need the non-free codec set.

Arch Linux

sudo pacman -S \
    ffmpeg \
    qt6-base qt6-multimedia qt6-svg qt6-wayland \
    xdg-desktop-portal xdg-desktop-portal-gnome \
    pipewire pipewire-pulse \
    gstreamer gst-plugins-base gst-plugins-good \
    gst-plugins-bad gst-libav gst-plugin-pipewire \
    xorg-xrandr libnotify

Nix

Use the flake's dev shell or nix run. Every dependency above is wrapped into the binary's PATH and GST_PLUGIN_SYSTEM_PATH_1_0, so nothing has to be installed system-wide.

macOS

ffmpeg's avfoundation input device — bundled with the Homebrew ffmpeg formula. The recording binary itself needs System Settings → Privacy & Security → Screen Recording to be granted at first launch.

Windows

ffmpeg's gdigrab input device — bundled with the Qt-installer ffmpeg or with any standard Windows ffmpeg distribution. The release zip is self-contained.

Diagnostics

Run diagnose.sh (shipped in the repo) for a one-shot report on what's installed, which capture path the app will pick, and which GStreamer / ffmpeg encoders / muxers are reachable on the current session.