Skip to content

Fleshwounded/ReplaySorcery

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ReplaySorcery

An open-source, instant-replay solution for Linux.

Back when I used to use windows I used AMD ReLive alot. It, and the nVidia version ShadowPlay Instant Replay, will constantly record the screen without using too much computer resources and at the press of a keycombo will save the last 30 seconds.

I wanted something like this for Linux...

I got tired waiting for someone else to do it.

Documentation

Installing

Arch

There is an official AUR package that gets updated from the CI (thanks to Bennett Hardwick): replay-sorcery.

Sergey A. has also setup a -git AUR package: replay-sorcery-git.

Building from Source

$ git submodule update --init
$ cmake -B bin -DCMAKE_BUILD_TYPE=Release
$ make -C bin
$ sudo make -C bin install

Required dependencies

  • CMake
  • FFmpeg
  • X11

Optional dependencies

  • PulseAudio (for audio recording)
  • libdrm (for listing kms devices)

Running

It can be enabled as a user systemd service:

$ systemctl --user enable --now replay-sorcery

Once it is running, just press Ctrl+Super+R to save the last 30 seconds.

When the configuration file has changed, the service must be reloaded by running:

$ systemctl --user restart replay-sorcery

You can also use systemd to look at the output:

$ journalctl --user -fu replay-sorcery

The service runs as root using the SETUID permission since this is needed if you enable hardware acceleration. If this causes issues, you can disable it with -DRS_SETUID=OFF in CMake:

$ cmake -B bin -DRS_SETUID=OFF

Configuration

The config file location and options has completely changed since version 0.3.x

There are two config files:

  • The global config file is located at @CMAKE_INSTALL_PREFIX@/etc/replay-sorcery.conf (/usr/local/etc/replay-sorcery.conf by default).
  • The local config file is located at ~/.config/replay-sorcery.conf. Options in this file will overwrite options in the global file.

See sys/replay-sorcery.conf for the default values along with documentation. This file is installed into the global config file location.

TODO

  • Support NVENC API
  • Document code better
  • Cross-platform support
    • Doubt there is any demand though
    • Maybe for Intel devices if they are fast enough?

About

An open-source, instant-replay solution for Linux

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages

  • C 93.8%
  • CMake 3.7%
  • C++ 1.9%
  • Shell 0.6%