• C++ 80%
  • C 17%
  • Lua 1.4%
  • Meson 0.8%
  • Nix 0.3%
  • Other 0.4%
Find a file
2025-09-23 02:42:42 +02:00
.github CI: fix CI build after wlroots rename 2025-06-10 17:12:28 +01:00
layer layer: fix a couple of harmless typos 2025-07-04 05:54:56 +01:00
looks added color blindless luts 2025-07-04 15:20:23 -07:00
nix (w.i.p) can now sort of signal without dmabuf passing but the format makes things look silly 2025-09-17 04:38:13 +02:00
protocol gamescope-control: add interface to query performance stats for an appid 2025-07-30 15:27:47 -07:00
scripts script: add additional BOE panel 2025-04-25 16:20:24 +01:00
src (log) don't worry the user if we are already in the process of shutting down 2025-09-23 02:42:42 +02:00
subprojects OpenVRBackend: Use new OpenVR API to poll events from all overlays together 2025-06-17 01:44:09 +01:00
thirdparty script: Add beginnings of config + script system 2024-10-07 18:01:10 +00:00
.editorconfig Add .editorconfig 2021-04-08 09:15:39 +02:00
.gitmodules subprojects: Use my personal wlroots fork for with branch for now 2024-04-10 16:31:58 +01:00
default_extras_install.sh looks: Add some default looks, and install them 2025-06-17 01:40:46 +01:00
LICENSE build: Add reshade submodule 2023-09-14 09:03:12 -07:00
meson.build (w.i.p) can now sort of signal without dmabuf passing but the format makes things look silly 2025-09-17 04:38:13 +02:00
meson_options.txt (patch) apply the patches so that Nix build doesn't have to 2025-08-27 14:59:40 +02:00
README.md (fix) moved shutdown code to the main thread (doc) updated the lacking section 2025-09-21 02:30:31 +02:00

A GameScope-fork for Arcan

This is a fork of GameScope for which the purpose is to add a brand-new backend that uses SHMIF to connect to Arcan.

Goals

  • To modify as little of upstream code as possible to lessen the maintenance burden
  • Have more polish than arcan-wayland
  • Be usable as example code for writing other backends
  • Provide an easy to use Nix flake
  • Play fun Steam games

Status

Currently games are playable. The latency and FPS is also playable. More work could be done on decreasing premature composition, which would lower latency even further; but it would also increase the maintenance burden. With FPS games however you must manually enable cursor locking from Durden (or insert your Arcan WM of choice).

Lacking

Currently clipboard paste support isn't implemented. Complete-frame modes are ignored currently, meaning you could screen tearing for the window on some GPUs. But these are easy fixes.

Hacking

IMPORTANT! MAKE SURE YOU GIT CLONE WITH SUBMODULES RECURSIVELY

Pretty much the only file of real interest is src/Backends/SHMIFBackend.cpp which houses the entire backend. Some other files have been modified to do things like: adding the SHMIF backend as a enum option and automatically select the Arcan backend when ARCAN_CONNPATH is set. The patches that NixOS does to GameScope have also been integrated, allowing for easily changing the path to important binaries like gamescopereaper.

Building (and Running)

git submodule update --init # TODO: not sure if this is enough
meson setup
ninja -C builddir/
export PATH="$PATH:$(pwd)/builddir/src"
gamescope -- <game>

On NixOS you'll want meson setup -Dexternal_glm_stb=true during setup. Also there is a Nix flake in nix/ for your convinience. Try nix develop inside that directory.

Games (or Applications) Tested

  • SuperTuxKart
  • Xonotic (for sdl version run with gamescope --default-touch-mode 6 -- xonotic)
  • Slay the Spire
  • Anarch
  • Firefox
  • Chromium