SkillAgentSearch skills...

Trayplay

Instant Replay (DVR) app for KDE using gpu-screen-recorder in the background

Install / Use

/learn @kabuspl/Trayplay
About this skill

Quality Score

0/100

Supported Platforms

Universal

README

TrayPlay

A simple tray app for recording screen replays on KDE.

Screenshots

Simple frontend for gpu-screen-recorder's replay feature running in the background. Smaller alternative for gpu-screen-recorder-ui. Makes use of Global Shortcuts and KDE OSDs. Replays are put into directories named after currently focused fullscreen app. If the active window isn't fullscreen videos are put into "unknown" directory.

[!NOTE] This app currently ONLY works on KDE Plasma and has been tested only on Wayland. I will not provide support or bug fixes for X11, but pull requests with fixes are welcome.

Installing

Arch Linux (and derivatives)

Install the package from AUR: https://aur.archlinux.org/packages/trayplay

Manual compilation

Install rust toolchain and gpu-screen-recorder, then in the source code directory execute cargo build --release. Executable will be located at target/release/trayplay. kwin_script.js needs to be placed in dist directory relative to current working directory when starting trayplay or at /usr/share/trayplay/kwin_script.js

Configuration

You can configure TrayPlay through its settings menu or directly with a config file which gets saved after the first start at /home/username/.config/trayplay.toml (or other directory set in $XDG_CONFIG_HOME)

# start recording immediately
recording_enabled = true

# directly passed to gpu-screen-recorder as -w option
screen = "screen"

# mkv, mp4, flv or webm
container = "mkv"

# h264, hevc, av1, vp8, vp9, hevc_hdr, av1_hdr, hevc_10bit or av1_10bit
codec = "h264"

# directly passed to gpu-screen-recorder as multiple -a options
audio_tracks = ["default_output", "default_input"]

# framerate of the video
framerate = 60

# clear replay buffer in memory when saving replay so that the next replay doesn't "overlap" with the previous one
clear_buffer_on_save = true

# medium, high, very_high or utra
quality = "ultra"

# directory where replays will be saved
replay_directory = "/home/username/Videos"

# max duration of a single replay
replay_duration_secs = 180

# replay file naming pattern - available variables:
# %app% - title of the current full-screen window or unknown
# %year% - current year
# %month% - current month
# %day% - current day
# %hour% - current hour
# %minute% - current minute
# %second% - current second
# file extension is added automatically based on video container
file_name_pattern = "%app%/%app%_replay_%year%-%month%-%day%_%hour%-%minute%-%second%"

Contributing

Feel free to open issues or pull requests.

If you don't know how to code, you can help with translations on crowdin: https://crowdin.com/project/trayplay. If your language isn't available there please use the "Request New Language" button.

View on GitHub
GitHub Stars10
CategoryDevelopment
Updated26d ago
Forks1

Languages

Rust

Security Score

90/100

Audited on Mar 8, 2026

No findings