1

I am using Linux Mint 17 with Cinnamon as my primary WM.

I want to run Steam in a separate x-server for better fullscreen performance and because unredirect doesn't work properly in Cinnamon and leads to tearing and no real performance benefit.

I'm able to get an x-server running on display :1 on vt9 with fluxbox as a window manager, but I can't figure out how to get my controller to work in games on the second x-server. So far, I have tested Steam Big Picture, Shovel Knight, Rogue Legacy, and higan, and my controller isn't recognized on any of those.

I can see the joystick in /dev/input on both my main x-server and the secondary one, the controller is visible in jstest-gtk, and xinput reports the same thing in both x-servers (listing no joysticks)

It's not just a global joystick problem because my controller works on the primary x-server with my normal login.

I'm using an XBox360 controller. I tried installing xboxdrv, and that makes no difference.

What am I missing? Any ideas?

2
  • What do you mean by unredirect? Commented Jul 4, 2015 at 7:07
  • unredirect refers to compositing turning off temporarily when a fullscreen app is in focus. For whatever reason, the way this is implemented in Cinnamon causes tearing- very consistently placed tearing, suggesting a latency issue of some kind. Turning off unredirect fixes this problem, but causes performance loss. If I run steam big picture from the login screen (using a third-party package), that problem is totally eliminated. I'm trying to get the best of both worlds: performance of steam big picture login without having to log out and switch sessions.
    – Beefster
    Commented Jul 4, 2015 at 7:18

1 Answer 1

1

(I also use Mint 17 with Cinnamon as my primary desktop)

You might consider using Xephyr, which can create a nested xserver inside of your Cinnamon desktop. I am able to use my gamepad (a Thrustmaster PS3-type) in a Xephyr server. I don't have Steam installed, but I verified this with another game (alex4). I ran into a problem forking Xephyr (which did not exist in older versions), but was able to work around this by launching from an xterm window. Looking at what I did might help you get started:

sudo apt-get install xterm xserver-xephyr alex4

Then from a terminal:

xterm -e Xephyr :1 -ac -screen 640x480 &

"xterm -e" causes xterm to launch and execute the following command.

"Xephyr :1" means the new display will be :1. Choose something different if you have multiple monitors. It needs to be something that doesn't yet exist. (If you have one monitor, it is display :0, a second is display :1 and so on.)

"Xephyr -ac" means to disable access controls, which I believe means the new xserver will have full access to the system.

"Xephyr -screen widthxheight" is the resolution (it can also take a third number for bit-depth, which I have used to get old windows programs that require 256 color mode to work via wine).

"&" causes xterm to fork, allowing you to enter another command in the terminal.

Next in the terminal:

DISPLAY=:1 alex4

Set the DISPLAY system variable to whatever display you created with Xephyr, then launch your desired program.

If you write a shell script to run these commands, put some sleep in it to give Xephyr enough time to start the new display, or your attempt to launch your program will fail with a segmentation fault.

Xephyr has a "-fullscreen" flag which you can use, but you need to make the resolution of your Cinnamon desktop match the screen resolution of your Xephyr server for it to work properly. Use xrandr for this, and remember your old resolution because you will have to set it back afterward. For example, in my case:

xrandr -s 640x480 && xterm -e Xephyr :1 -ac -screen 640x480 -fullscreen & sleep 3 && DISPLAY=:1 alex4 && killall xterm && xrandr -s 1920x1080 && killall Xephyr

(In case you don't know, the && symbol means wait for the first process to finish, then run the next. The single & symbol means fork the first process and continue on to the next one.)

Hopefully that helps you. (Type "Xephyr -help" for a full list of options. The man page is unfortunately sparse.)

3
  • Well that works... Sort of (it's REALLY slow now). How do I get Xephyr to run in a separate vt so that I can switch with Ctrl+Alt+F7/8/9?
    – Beefster
    Commented Jul 4, 2015 at 16:15
  • Ah, I think I know what the problem is. I did some reading today, and vanilla Xephyr only supports software rendering of OpenGL. A forked version exists which supports hardware accelerated 3D rendering. You would need to compile it from the source which is available here:gitorious.org/xephyr-with-gl-acceleration/…: Regarding switching VT, Xephyr is specifically a nested xserver solution, so it has to be inside of another instance of X.
    – blendenzo
    Commented Jul 5, 2015 at 4:34
  • Ah. I see. Then that's not really what I want. Thanks for trying though.
    – Beefster
    Commented Jul 12, 2015 at 21:00

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .