Integrating Steam into XBMC using xpad and xboxdrv

Now, I am going to assume I am not the only person on earth with this situation. I own and maintain a HTPC, otherwise known to most as a “Home Theatre PC.” I custom configured the xboxdrv userland module in a previous HTPC Project post, so that I could full use a Microsoft Xbox controller as a mouse + keyboard.  This enabled quick restart/shutdown, mouse movement, and media controls.  The problem was, if I wanted to use Steam, a custom configured xboxdrv set was not gong to play well with Steam.  The solution was simple…

Creating a custom Steam Launcher

Most users how configure and implement xboxdrv, know that most times, unloading the xpad module is necessary.  A simple “rmmod xpad” will do the trick, and additionally you can blacklist the module permanently:

echo "blacklist xpad" > /etc/modprobe.d/blacklist.conf

Steam plays most well with the standard xpad module.  So how do you bounce back and forth with Steam?  How can I implement that into XBMC?  A simple script is all it takes.  The script I made (as simple as it is), does the following:

  • unloads xboxdrv and its configuration
  • loads xpad into the kernel
  • starts steam with “Steam %U”, the standard launch command
  • When Steam exits, reload the xboxdrv configuration for HTPC use

This is assuming you loaded your custom xbodrv configuration on system startup.   You can find the script located in the scripts section of the github HTPC repo.  Using this simple script, boucing between HTPC use and Steam is quite effortlessly.  A shortcut on the desktop will make it handy.

If you want to download the script directly using wget, the command is:


wget https://github.com/ProfessorKaos64/UbuntuHTPC_1204_LTS/tree/master/software/scripts/launch_steam.sh

Make the script executable by doing the following:

chmod +x launch_steam.sh

Alternatively, and what I do, is implement the script into XBMC, the method can be found in the “Extending XBMC” post.  In summary, load the script using Advanced Launcher, and you’re off to the races.  In that sense, loading XBMC on system startup is all I ever need, rarely requiring actual desktop (except for maintenance from time to time).

Any questions of comments?  Be sure to leave them below.

-mikeyd

Advertisements

About professorkaos64

www.libregeek.org

Posted on 20140105, in How-To, Scripts. Bookmark the permalink. 5 Comments.

  1. I find using the xbmc steam launcher add on great for using steam and xbmc:

    http://forum.xbmc.org/showthread.php?tid=157499

    • professorkaos64

      Oh I know of that. The reason for my script was to freely toggle between a complete htpc mouse/keyboard config with xboxdrv and xpad. If you check out my Ubuntu HTPC project here at “http://thelinuxcauldron.com/2013/12/23/how-to-making-a-media-center-using-ubuntu-12-04-lts/#xbox”, you’ll see exactly what I mean. Using an HTPC custom config does not gel well with Steam big picture or SteamOS, due to the fact xpad is not singled out as a the only config. If xboxdrv was modded on the fly, or disabled and replaced with xpad on Steam’s launch, then I would have no need for my little script I made.

    • professorkaos64

      Also that form post really can be brought down to just a two line script file:

      #!/bin/bash
      steam %U

      Load that as an item in Advanced Launcher. After you exit steam you’ll go right back to XBMC there’s nothing much more to it. I don’t know why that forum post makes it seem so complicated. Literally that is it.

      • Not sure about the differences, I just thought I’d mention it after stumbling upon your site while trying to get my 360 pad working with steam.

      • professorkaos64

        Cool I do appreciate it. I’ll add it a bit into the summary section or else after in done with dinner. Cheers

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s