I just had to do this myself and found this handy guide on reddit created about a year ago. So I don’t claim credit, but I wouldn’t want such useful content to be available only on reddit, so I’ll share it over here:
Credit goes to /u/walllable.
Original POST:
Title’s pretty self explanatory I think! This will be using VirtualHere, a program that connects one computer’s USB devices to another computer via Wi-Fi, and will also let you access this functionality via Game Mode, so you don’t have to go into the desktop in order to do this. This might use less battery power than controlling your PC via Steam Link as well since the Deck doesn’t have to decode a video/audio stream and all that. This involves installing the program on both your Deck, and on your PC. I’ll be providing instructions for both.
Skip step 1 if you’ve already set the desktop deck account’s password. If you don’t know if you have or not, go ahead and follow it.
-
Go into desktop mode (Open the Steam Menu, go to Power, select “Switch to Desktop,”) open System Settings, and go to the Users section, then click “Change Password.” Set it to whatever you’d like, though ideally something easy to type with the On-Screen Keyboard, since you’ll be typing it every time you want to use the Deck as a controller.
-
Open the file browser, and make a folder in the Documents folder named “virtualhere” (all lowercase, no quotes)
-
Download the VirtualHere Linux Server. The specific one you’ll want is “VirtualHere USB Server for Linux (x86_64),” under “Generic VirtualHere USB Server Builds”
-
Save the file you’re downloading to the virtualhere folder you made in your documents earlier.
-
In the file browser, right click on the “vhusbdx86_64” file that you downloaded, and click on “Properties.” In the window that opens, go to the “Permissions” tab and tick the “Is executable” checkbox.
-
Open Steam on your desktop, and click “Add a Game” on the bottom left corner, then click “Add Non-Steam Game.” (You can add pretty much whatever application you want for this step, it doesn’t matter much since we’ll be changing all of its settings later anyway.)
-
Find the application you just added in your list of games, right-click it, then click “Properties”
-
Replace whatever text is in “Target” with env, whatever’s in “Start in” with “./” (with quotes,) and “Launch options” with -u LD_PRELOAD konsole --fullscreen --notransparency --hold -e sudo /home/deck/Documents/virtualhere/vhusbdx86_64 You can also change the name of the application and set an icon, if you’d like (I set mine to "PC Controller.) The end result should look like this.
-
Close the Properties window, and go ahead and launch it from Steam, then enter the password that you set earlier (The terminal not showing any changes as you type is normal.) If you see text that says VirtualHere USB Server is running…press CTRL-C to stop then you’re all set on the Deck side of things!
You can now exit Desktop Mode, and go back into Game Mode on your deck, we’re pretty much done here.
Now let’s get the PC side of things set up, this won’t take as many steps as getting it set up on the Deck.
-
Download the VirtualHere Client for your respective platform. In my case I’m on Windows, but the process should be pretty similar for other platforms? I’m not sure about Linux, but assume if you’re using Linux you probably know what to do.
-
Open the file that you just downloaded, you should see a window like this pop up.
-
Open the application you added on your Deck, and enter your password with the On-Screen Keyboard (Old down the Steam button, and press the X button to bring it up.)
-
Once you’ve done that, the window on your desktop should have its list populated like this. If not, try double-clicking on the “USB Hubs” text in the window. That seems to help it appear faster for me, I think?
-
Double-click on the “Steam Controller” entry, and you should hear a noise indicating a USB device got connected, and a popup similar to this from Steam in the bottom-right corner.
And you should be all set! Your Deck will now behave like a Steam Controller does, including being able to do stuff on the desktop, per-game bindings (that use your custom bindings from your Deck if you’ve got any set up!) and gyro functionality.
To disconnect the Deck from your PC, show the VirtualHere window from the status section thing on your taskbar, and just double-click on the Steam Controller entry again. You should hear Windows’ “USB Disconnect” sound, and regain control on the Deck itself so you can exit the application.
Some notes that I think can be handy:
-
If you don’t regain control on your Deck after exiting VirtualHere, don’t worry, this isn’t permanent! Just hold down the power button on the top, and select “Restart.” Once the Deck’s back up and running, you should be all good.
-
If you’re having problems with latency or the connection dropping out, try connecting your Deck to the 5ghz band of your router (Or the 2.4ghz band if 5 ghz is screwing you over!)
-
Lowering the screen brightness on your Deck before you connect it to your PC will help your battery last longer, if you plan on using it for an extended period of time.
Hopefully Valve adds this as native functionality someday, but until then I’ve really been liking this, since I don’t really have any other controllers to use other than a Steam Controller, and I figured “Well, I paid $400 for this thing with a good controller in it, I might as well use it for my PC.” Hope this guide came in handy!
It’s odd that they say Steam Link is a bad option because of video and audio decoding, but you can disable all of that and just stream inputs. But idk about Wi-Fi solutions. Sometimes my friend and I connected our Steam Deck to the main pc and we’d both completely drop inputs out of nowhere for 1 minute or so at the same time. (PC connected to ether net and all that)
I have no idea what that was, but boy a hardware solution or Bluetooth would be nice.