protonscr

Controller input is not ignored by Steam when game is running

steamclosed Big PicturereviewedSteam client
ValveSoftware/steam-for-linux#3275 · opened 2014-04-27 by hach-que · updated 2014-05-03 · 5 comments · github
Hhach-que 2014-04-27 github

I'm running Steam under X (without a WM like KDE or GNOME) on top of OpenSUSE 13.1.

When I start games from Steam Big Picture mode, some of them respond to the controller and others do not. However, Steam itself continues to receive and respond to the controller inputs, which means when I'm playing the game, it's also trigger Steam behaviour in the background.

Steam Big Picture remains at the "game is playing" background screen (where it just has the effects in full screen), but it's still doing things in the background (such as navigating menus, etc.) even without them being visible.

The simplest fix for this could just be "while game is running, don't respond to controller input" but I get the feeling that this behaviour is being caused because Steam can't properly focus the game (because there's no WM). If that is the case, then I wonder what Steam OS itself does in this area to gain the correct behaviour, given that I'm assuming it runs without a window manager either.

PPlagman 2014-05-02 github

SteamOS has a rudimentary window manager that gives input focus to running games. Steam only ignores controller input if it doesn't have input focus, so I would advise running a trivial window manager to solve this issue.

Hhach-que 2014-05-02 github

Is there somewhere I can get that window manager and compile it?

Hhach-que 2014-05-03 github

Thanks :)

Hhach-que 2014-05-03 github

For anyone compiling the Steam OS compositor on openSUSE, these are the commands for compiling:

> sudo zypper in Mesa-devel libXxf86vm-devel libXcomposite-devel libXrender-devel libx11-devel
> wget http://repo.steampowered.com/steamos/pool/main/s/steamos-compositor/steamos-compositor_1.18.tar.gz
> tar -xvf steamos-compositor_1.18.tar.gz
> cd steamos-compositor
> ./configure
> make

At this point you might get compilation failure due to libGL being incompatible. Make sure that both /usr/lib/libGL.so and /usr/lib64/libGL.so are symbolically linked correctly; I found on my system that they pointed to non-existent files due to FGLRX installation. Only if you've installed FGLRX, you can map them correctly with:

> rm /usr/lib64/libGL.so
> ln -s /usr/lib64/libGL.so.1.2 /usr/lib64/libGL.so
> rm /usr/lib/libGL.so
> ln -s /usr/lib/libGL.so.1.2 /usr/lib/libGL.so

Then run make again:

> make

At this point you might see note: 'XShapeQueryExtension' is defined in DSO /usr/lib64/libXext.so.6 so try adding it to the linker command line. OpenSUSE ships with symbols in different libaries, so we have to add linker options to include the additional libraries. Note that you can't just use CCFLAGS or LDFLAGS here as they appear to be ignored. Instead you need to open up the Makefile and change the following line:

DEPS_LIBS = -lXxf86vm -lGL -lXrender -lX11 -lXcomposite

Change it to:

DEPS_LIBS = -lXxf86vm -lGL -lXrender -lX11 -lXcomposite -lXext -lXdamage -lXfixes

Now you can run make again:

> make

You should now have a steamcompmgr binary. Put that in a directory somewhere and start it alongside Steam (I use systemd to launch Steam and X11).

Nothing extracted yet.