# Gamescope with flatpak vs layered?

**URL:** <https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319>\
**Category:** Aurora\
**Created:** [December 22, 2025, 3:07am UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319 "2025-12-22T03:07:31Z")\
**Posts on this page:** 15\
**Page:** 1

<div class="post-metadata">

**Author:** ![paleleaf4124](https://avatars.discourse-cdn.com/v4/letter/p/a587f6/32.png) [@paleleaf4124](https://universal-blue.discourse.group/u/paleleaf4124)\
**Post date:** [December 22, 2025, 3:07am UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/1 "2025-12-22T03:07:31Z")

</div>

I’m getting used to immutable distros, and having unique challenge with gamescope and flatpak - installing any version (there are few) with `flatpak install gamescope` doesn’t make them accessible in command line - `which gamescope` returns none. I can find the flatpak binaries but can’t seem to get it working that way.

On the other hand, layered gamescope works great!

In this case, should i stick to layered anyways because I’d assume that gamescope needs OS access than flatpak allows?

(funny, on other hand, flatpak steam works just fine!)

---

<div class="post-metadata">

**Author:** ![rzeczyspisane](https://avatars.discourse-cdn.com/v4/letter/r/ec9cab/32.png) [@rzeczyspisane](https://universal-blue.discourse.group/u/rzeczyspisane)\
**Post date:** [December 23, 2025, 9:18pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/2 "2025-12-23T21:18:45Z")

</div>

That depends. I use bazzite not aurora so it differs a little, but hear me out. I got both mangohud and gamescope layered, and it is used basically only by layered steam

I also have flatpaks of heroic and bottles. In these cases I needed to install the newest runtimes of flatpak gamescope (these programs couldn’t find the layered package)

---

<div class="post-metadata">

**Author:** ![paleleaf4124](https://avatars.discourse-cdn.com/v4/letter/p/a587f6/32.png) [@paleleaf4124](https://universal-blue.discourse.group/u/paleleaf4124)\
**Post date:** [December 23, 2025, 9:36pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/3 "2025-12-23T21:36:03Z")

</div>

Ah ok yes yes, not obvious but makes sense.

do you need to do anything special to tell flatpak heroic to see flatpak gamescope?

---

<div class="post-metadata">

**Author:** ![paleleaf4124](https://avatars.discourse-cdn.com/v4/letter/p/a587f6/32.png) [@paleleaf4124](https://universal-blue.discourse.group/u/paleleaf4124)\
**Post date:** [December 23, 2025, 9:36pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/4 "2025-12-23T21:36:46Z")

</div>

I’m also exploring distrobox (this is all newish to me!), since I use gamescope outside of steam for just one old game.

---

<div class="post-metadata">

**Author:** ![rzeczyspisane](https://avatars.discourse-cdn.com/v4/letter/r/ec9cab/32.png) [@rzeczyspisane](https://universal-blue.discourse.group/u/rzeczyspisane)\
**Post date:** [December 23, 2025, 10:13pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/5 "2025-12-23T22:13:02Z")

</div>

I’ve done my fair amount of miss and matching. For what i understand you need to match runtimes. The best way to find out what you need is to use warehouse

I.g.  
I have heroic installed

 ![image](https://global.discourse-cdn.com/free1/uploads/univeral_blue/original/2X/8/85c9c93766110b3cdd3d7a61db07b2339c8ec909.png)

There I can see I have 25.08 runtime. Now all i need to do is find the matching realese of gamescope

 ![image](https://global.discourse-cdn.com/free1/uploads/univeral_blue/original/2X/5/5a0d60c17cbe6f0b36ea3c6fa3673396fd38132a.png)

After installation, heroic/bottles should see gamescope automatically

One note. These programs tend to sh\*t themselves if you have more than one runtime installed, so you should only install the correct one.

(Sorry for polish on screenshots, but I’m to lazy to change locale)

---

<div class="post-metadata">

**Author:** ![zorael](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/zorael/32/8296_2.png) [@zorael](https://universal-blue.discourse.group/u/zorael)\
**Post date:** [December 23, 2025, 10:45pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/6 "2025-12-23T22:45:03Z")

</div>

> [@paleleaf4124](#):
>
> I’m getting used to immutable distros, and having unique challenge with gamescope and flatpak - installing any version (there are few) with `flatpak install gamescope` doesn’t make them accessible in command line - `which gamescope` returns none. I can find the flatpak binaries but can’t seem to get it working that way.

So the way to run the gamescope flatpak is by `flatpak run org.freedesktop.Platform.VulkanLayer.gamescope`. If your program expects `gamescope` to exist as an executable, you can just write a script that wraps the `flatpak run`.

```auto
#!/bin/bash

flatpak run org.freedesktop.Platform.VulkanLayer.gamescope "$@"

```

It should be visible to other programs if you save it as `~/.local/bin/gamescope`.

* * *

What I’ve been experimenting with is writing a generic wrapper that I make symlinks to for each flatpak I want to expose as an executable. It relies on being able to grep the output of `flatpak list` to deduce what flatpak should be run.

Saved as `~/.local/bin/flatwrapper`;

```bash
#!/bin/bash

if [["$CONTAINER_ID"]]; then
    # In distrobox
    distrobox-host-exec "$0" "$@"
    exit $?
fi

app="$(flatpak list --columns=application,name | grep -i -- "${0##*/}" | head -n1 | awk '{ print $1 }')"

if [[! "$app"]]; then
    echo "no flatpak installed matching ${0##*/}"
    exit 1
fi

exec flatpak run "$app" "$@"

```

Then just make symlinks of it, like `~/.local/bin/gwenview`. The name of the symlink decides what flatpak will be run.

```auto
cd ~/.local/bin
ln -s flatwrapper gwenview
ln -s flatwrapper mpv
ln -s flatwrapper okular
ln -s flatwrapper plex
ln -s flatwrapper zoom
ln -s flatwrapper telegram
ln -s flatwrapper element
ln -s flatwrapper firefox

```

And so forth.

It does its best but is not 100% accurate. If the grep matches more than one flatpak, the topmost one will be used. When it doesn’t work as expected you can just use the other script.

---

<div class="post-metadata">

**Author:** ![paleleaf4124](https://avatars.discourse-cdn.com/v4/letter/p/a587f6/32.png) [@paleleaf4124](https://universal-blue.discourse.group/u/paleleaf4124)\
**Post date:** [December 23, 2025, 11:00pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/7 "2025-12-23T23:00:00Z")

</div>

Thank you, i’ve learned a lot! is runtime matching something specific to gamescope, or that works for everything? if so, this is a really big deal in getting flatpaks to see each other in some cases

---

<div class="post-metadata">

**Author:** ![rzeczyspisane](https://avatars.discourse-cdn.com/v4/letter/r/ec9cab/32.png) [@rzeczyspisane](https://universal-blue.discourse.group/u/rzeczyspisane)\
**Post date:** [December 23, 2025, 11:06pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/8 "2025-12-23T23:06:00Z")

</div>

Yep. It works with other programs. E.g. mangohud or lsfg-vk

---

<div class="post-metadata">

**Author:** ![paleleaf4124](https://avatars.discourse-cdn.com/v4/letter/p/a587f6/32.png) [@paleleaf4124](https://universal-blue.discourse.group/u/paleleaf4124)\
**Post date:** [December 23, 2025, 11:09pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/9 "2025-12-23T23:09:48Z")

</div>

ah i remember why i stopped this, i get this error

`➜ flatpak run org.freedesktop.Platform.VulkanLayer.gamescope`  
`bwrap: execvp /bin/sh: No such file or directory`

I found some stuff about this but didn’t fully understand what. I wonder if this is why steam, even if on same version as gamescope, fails. Going to poke around some more - thank you for confirming that it should work if platform versions match.

---

<div class="post-metadata">

**Author:** ![paleleaf4124](https://avatars.discourse-cdn.com/v4/letter/p/a587f6/32.png) [@paleleaf4124](https://universal-blue.discourse.group/u/paleleaf4124)\
**Post date:** [December 24, 2025, 12:02am UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/10 "2025-12-24T00:02:54Z")

</div>

Confirmed that gamescope is visible inside steam

```auto
flatpak run --command=/usr/lib/extensions/vulkan/gamescope/bin/gamescope com.valvesoftware.Steam --help

```

so now it’s just some details to figure out (wayland issue? etc)

---

<div class="post-metadata">

**Author:** ![rzeczyspisane](https://avatars.discourse-cdn.com/v4/letter/r/ec9cab/32.png) [@rzeczyspisane](https://universal-blue.discourse.group/u/rzeczyspisane)\
**Post date:** [December 24, 2025, 12:23am UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/11 "2025-12-24T00:23:26Z")

</div>

Maybe explain what are you trying to do. I and other guy approached your problem from different sides, but I don’t know what are you trying to do

---

<div class="post-metadata">

**Author:** ![paleleaf4124](https://avatars.discourse-cdn.com/v4/letter/p/a587f6/32.png) [@paleleaf4124](https://universal-blue.discourse.group/u/paleleaf4124)\
**Post date:** [December 24, 2025, 10:50am UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/12 "2025-12-24T10:50:45Z")

</div>

Sure, here’s some background info, i’ve been trying out few things to:

- figure out how i feel about aurora (like most defaults, but do miss layered steam + gamescope) vs bazzite
- flatpak vs distrobox vs layered installation

In my case, i have desktop PC for gaming and framework 13 laptop for productivity. For gamescope specifically, sticking points (both EgoSoft games lol)

- X4 has wayland issues unless it’s running under gamescope with steam
- X3FL only runs well under gamescope without steam (to scale game visually)

Currently it seems that bazzite is the way to go, as much as i’d like to use aurora. With bazzite remaining problems are much smaller (like getting steam overlay + gamescope). However i’ll keep trying few more things in next few days - this is mostly been a great learning curve by design!

---

<div class="post-metadata">

**Author:** ![zepretender](https://yyz2.discourse-cdn.com/free1/user_avatar/universal-blue.discourse.group/zepretender/32/8762_2.png) [@zepretender](https://universal-blue.discourse.group/u/zepretender)\
**Post date:** [December 26, 2025, 6:53pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/13 "2025-12-26T18:53:25Z")

</div>

Sorry to ask a newbie question but… what is layered Gamescope ?

---

<div class="post-metadata">

**Author:** ![rzeczyspisane](https://avatars.discourse-cdn.com/v4/letter/r/ec9cab/32.png) [@rzeczyspisane](https://universal-blue.discourse.group/u/rzeczyspisane)\
**Post date:** [December 26, 2025, 9:38pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/14 "2025-12-26T21:38:25Z")

</div>

It’s well described in [documentation](https://docs.bazzite.gg/Installing_and_Managing_Software/rpm-ostree/?h=laye#rpm-ostree-overview) . It’s a way of installing dnf packages on immutable system

---

<div class="post-metadata">

**Author:** ![paleleaf4124](https://avatars.discourse-cdn.com/v4/letter/p/a587f6/32.png) [@paleleaf4124](https://universal-blue.discourse.group/u/paleleaf4124)\
**Post date:** [December 26, 2025, 9:41pm UTC](https://universal-blue.discourse.group/t/gamescope-with-flatpak-vs-layered/11319/15 "2025-12-26T21:41:26Z")

</div>

And I use it from command line with “gamescope (parameters) (game executable)”, which I need for few old games that don’t scale well to “high resolution” (stretch 1280x800 to my screen size)
