Intro
Ever wished you could properly type and edit text like you're used to it on Windows with NVDA on your Android? Browse the web, chat, play a MuD wherever you are? Here you go. With this solution I've been enjoying a stable Windows experience with only my phone and a simple wireless keyboard from Frankfurt AirPort, hotels, or islands hundreds of miles away from my physical computer, no more clunky Laptops, having to hotspot them, just to have NVDA Remote with no audio. Yes, you see, I can't stop being amazed about this. And if you've searched for something like this, you will be as well.
Disclaimer
I'm aware this seems like a lot of work, but I can tell you that after you've set it up once it's really easy to use and quite understandable. If you have any questions I'd love to answer them on Mastodon or in the comments. Please also make sure to carefully read the requirements to understand if this solution is the right one for your needs and budget, as possibly includes getting other/new hardware, and proprietary software. I would also like take the opportunity and thank techsinger@tweesecake.social on Mastodon for pointing me to this solution, thank you so much.
Requirements
Hardware
- An Android device to control the PC with, in my case a Pixel 9 Pro. As far as I'm aware, the USB Server we're using is not available for IOS, and you'll need to find another solution for it.
- A PC you want to control. In this tutorial I use Windows, though the USB client which handles the USB input is also available for Linux and Mac. I haven't tested it though, and you'll need another audio solution because SoundRemote is Windows-Android only.
- A keyboard with an USB C dongle or cable. Important, bluetooth will not work, we need an USB connection in any form. I personally love the Logitech MX Keys Mini with their Logitech Bolt USB Receiver, but as long as it's connected through the USB port of your phone it really doesn't matter.
- Not required but certainly recommended is an USB C Hub like this (replace the .de in the URL with your country such as .com/.ca).
This is useful in case you want to connect headphones or a braille display in addition to the keyboard.
On that note, the power consumption with this solution is actually moderate, but be aware that you can't charge your device while you're doing this, so you might also want to look into a wireless charging powerbank, or a hub that supports power delivery.
Software
VirtualHere
- A license for the Android USB Server
- The Windows USB Client
Please feel free to read their explanation about the product as well to understand what it does and what its limitations are.
SoundRemote
- Android client
- Windows Server
You don't have to use SoundRemote, things like SonoBus or SoundWire will also do the job, are overhead in my opinion though.
VPN
You will need some sort of way to connecting to your computer when you're outside of your local network. A VPN connection to your computer is the most obvious and secure solution for this. I won't be going too much in depth about what that is, in case you don't know, look it up or read this and come back here. I strongly recommend Tailscale for this matter, but if you already have another VPN such as wireguard in place, that should technically also work, I haven't tested it though. In any case, you will need the IP of your computer. If you wanna expose everything to your public IP, well, I won't stop you. But please just use a VPN...
Setup
Setting up the VPN/Tailscale
I would just repeat what has already been written down better than I could by trying to explain this. As mentioned above, make sure both your Android device and computer you want to control are on the same network,´, and you have noted the IP of your computer, be that within your Tailnet, or any other VPN solution.
Setting up VirtualHere
Run the Virtual Here USB Client (vhui64.exe) on your Windows Computer. Press Shift+F10, or the applications key, and go to license. Paste in the license key you've received when purchasing the license for Android. Make sure that Auto-Find USB Servers as well as Auto-Use All Devices are checked, and you install the client service.
Now you can open the Virtual Here USB Server on your Android device, and plug in your keyboard into your phone. If everything worked, you should now be able to use the keyboard as it was connected to your Windows PC. If you get a prompt asking if you want to allow Virtual Here USB Server to use this USB Device or something similar, accept that of course. You can also go to more options and license to check if your server has been successfully licensed.
Setting up SoundRemote
Almost done, and this is a really simple one. Run the SoundRemote server you've downloaded on your Windows device. You'll probably want to disable NVDA progress bar announcements as it has some weird audiometer that will kick in and yeah, just find out XD.
You will need to leave this running whenever you want to connect/hear audio on your Android.
On your Android device you open the SoundRemote app, put in the IP of your computer, hit connect, and enjoy.
From a shut down computer at home to access from anywhere
This section will describe a few tips and tricks you can set up on the long run, to ensure you'll always have access, even if power goes out and returns, your computer restarts, you lose connection unexpectedly etc.
Powering on the computer
You could use Wake On LAN using a device such as a Raspberry Pi to power on your PC. See this Tailscale tutorial, I suggest you replace UpSnap with GPTWOL though, as it is more accessible.
You could also use a Smart Outlet connected with your Google Home or similar software, and set your Computer to automatically boot up when it gets power in the BIOS.
Logging in
You can either use an automatically connecting NVDA Remote session, or use Virtual Here as a service which will also make it run on secure screens, and let you type in your password. I haven't found a way to get sound/speech without NVDA Remote though.
After login
Well, now you can just use your computer. Put SoundRemote on a keyboard shortcut to start it through Virtual Here, put it in autostart, or start it through NVDA Remote, the choice is yours.
Conclusion
That's all from me so far. I hope you enjoyed this, and it helped. If so, please let me know on Mastodon, @jonathan859@someplace.social. Until next time.