(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.)
What do you mean by
unredirect
? – MariusMatutiae – 2015-07-04T07:07:24.933unredirect 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 – 2015-07-04T07:18:26.673