- C++ 80%
- C 17%
- Lua 1.4%
- Meson 0.8%
- Nix 0.3%
- Other 0.4%
| .github | ||
| layer | ||
| looks | ||
| nix | ||
| protocol | ||
| scripts | ||
| src | ||
| subprojects | ||
| thirdparty | ||
| .editorconfig | ||
| .gitmodules | ||
| default_extras_install.sh | ||
| LICENSE | ||
| meson.build | ||
| meson_options.txt | ||
| README.md | ||
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