Kooha

A minimal screen recorder for GNOME written in Rust with GTK4, supporting WebM, MP4, GIF, and Matroska output with microphone and desktop audio capture.

Kooha is a straightforward screen recorder for the GNOME desktop, written entirely in Rust using GTK4 and libadwaita. It sits on top of GStreamer, PipeWire, and the xdg-desktop-portal, which means it works equally well on X11 and Wayland without any additional configuration. The interface is intentionally minimal — start a recording, stop it, done — while still offering enough options for everyday use.

Features

  • Wayland and X11 support — built on xdg-desktop-portal and PipeWire so it works on any modern Linux desktop session without hacks or workarounds
  • Multiple output formats — WebM (VP8 or VP9), MP4 (H.264), animated GIF, and Matroska containers
  • Flexible audio capture — record microphone audio, desktop/system audio, both simultaneously, or no audio at all
  • Region or monitor selection — choose to record a specific monitor or draw a selection rectangle for a cropped region
  • Configurable frame rate — defaults to 30 fps with the option to change to match your content
  • Delay timer — set a countdown before recording starts so you can get into position
  • Pointer visibility toggle — show or hide the mouse cursor in the final recording
  • Hardware-accelerated encoding — experimental VA-API support for faster encoding on supported hardware
  • Window recording — experimental support for recording individual application windows
  • Multiple video sources — experimental support for combining multiple input streams into one recording
  • GNOME integration — follows system dark/light theme, uses native file chooser, sends desktop notifications on completion

Installation

The recommended installation method on all Linux distributions is Flatpak via Flathub, which provides a sandboxed build with all GStreamer plugins bundled.

# Flatpak (all distributions — recommended)
flatpak install flathub io.github.seadve.Kooha
# Arch Linux / Manjaro
pacman -S kooha

# Or from the AUR (development build)
yay -S kooha-git
# Nix
nix-env -iA nixpkgs.kooha
# Debian / Ubuntu / Fedora
# No package in the main repositories yet.
# Use the Flatpak above, which works on all distributions.

After installing via Flatpak, you can run it from the GNOME app grid or from the terminal:

flatpak run io.github.seadve.Kooha

Quick Start

Open Kooha from your app launcher. The main window shows a single large record button. Before recording, configure your options in the header bar:

# Launch from the terminal
flatpak run io.github.seadve.Kooha

# Or if installed natively
kooha

The workflow is:

  1. Select format — click the menu in the header bar and pick WebM, MP4, GIF, or Matroska.
  2. Select audio source — toggle microphone and/or desktop audio using the speaker/mic icons.
  3. Set delay — open Preferences to configure a countdown timer (e.g. 3 seconds).
  4. Click Record — a portal dialog lets you pick which monitor or screen region to capture.
  5. Click Stop — Kooha saves the file to your Videos folder (or the folder set in Preferences) and shows a notification.

For a GIF of a terminal session, for example:

# 1. Choose GIF format in the menu
# 2. Disable audio (GIF has no audio track)
# 3. Select your terminal window region in the portal dialog
# 4. Record your session
# 5. The .gif lands in ~/Videos/

Configuration

Kooha's Preferences dialog (accessible from the hamburger menu) exposes the main settings:

SettingDefaultNotes
Saving location~/VideosAny writable directory
Frame rate30 fpsLower for smaller GIFs
Delay0 sUp to 10 s countdown
Show pointerOnToggle cursor visibility
Record microphoneOff
Record desktop audioOffRequires PipeWire audio

There is no configuration file to edit by hand — all settings are stored in GSettings and managed through the UI.

Output Format Guide

FormatContainerVideo codecAudioBest for
WebM.webmVP8OpusWeb sharing, small file size
WebM (VP9).webmVP9OpusBetter quality at same bitrate
MP4.mp4H.264AACMaximum compatibility
GIF.gifNoneShort loops, sharing in chat
Matroska.mkvVP8OpusArchiving, lossless-friendly

For most desktop recordings shared online, WebM VP9 gives the best balance of quality and file size. Use MP4 H.264 if the recipient's video player or platform doesn't support WebM. Use GIF sparingly — GIFs are large compared to short video clips and have no audio.

Kooha vs Other Screen Recorders

FeatureKoohaOBS StudioGNOME Screenshot (built-in)
Written in Rust❌ (C++)❌ (C)
Wayland native
GIF output
Audio capture
Streaming / multi-scene
GNOME HIG compliant
Flatpak sandboxed

Kooha is the right choice when you want a recorder that opens instantly, stays out of the way, and produces a file without configuring scenes, profiles, or plugins. For live streaming, complex multi-source setups, or professional production, OBS Studio is the better fit.