Roccat devices RGB control

Hi all! Once again I cannot leave my RGB LEDs alone. It’s more niche and kind of a shot in the dark this time because what do I have to lose.

It’s about my keyboard and mouse, which are both Roccat devices (Roccat Magma keyboard and Kone Aimo mouse). Both of these devices are controlled by the Roccat Swarm software, which (unsurprisingly) is only available for Windows. I cannot WINE it either (or try and get Steam to WINE it for me), because the downloaded file isn’t even the software .exe it’s just the installer. OpenRGB is not an option.

Last time I tried WINE’ing it I just gave up at that but recently I started a Windows VM because I had to fix my Corsair RGB hub (the software for which is also Windows-Exclusive. I love computers) and I was like “hey maybe this can make my keyboard do something other than rainbow”. Turns out it can’t because a VM doesn’t really have access to your mouse and keyboard hardware.

Tried changing that with Spice and Virt-manager, no luck. It sees the mouse and keyboard now but calls them “QEMU USB MOUSE/KEYBOARD” which means the software can’t find them.

Is this where I shrug and say “Welp, guess I’ll live with this” or is there something more I could try?

Haven’t done it personally, but according to a quick search you can pass through USB devices:
https://bbs.archlinux.org/viewtopic.php?id=290889

I’m sorry but I don’t know what to do with the information in the article :pensive: I’m pretty new to Arch-distros and don’t use VirtualBoxes or start up the VM in the command line, so I have no idea how to translate the fix to my problem.

What I use is gnome boxes (and tried virt-manager) and start it up in the UI, and I got it to see the mouse/keyboard as QEMU USB MOUSE/KEYBOARD by changing the ps2 port thing in the libvirt file to USB. Do you know from the article how to do the pass-through here? It’s totally fine if not!

ETA: it’s ps2 in the screenshot
Screenshot_20240828_193713

I’m not fully sure what you mean by this - it doesn’t have to be a fully portable standalone .exe to work with Wine/Proton.

Using steam as an example since you mentioned trying it, you would first add the installer to steam as a non-steam game, launch it through steam to run the installation, then edit the properties in steam to change the executable path to the correct .exe that was just created in the prefix that steam made when you ran the installer.

Once you’ve changed that over launching it from within steam will launch the installed application instead of the installer.

You might find it easier to use something that exposes the Wine/Proton settings more clearly and allows you to set the prefix folder manually for ease of finding it like Heroic though, as Steam’s prefixes and compatibility tool selection processes are kind of obscured and clunky in comparison.

Because as far as I remember, it just crashes, regardless of WINE or steam. I’d try it again to see what it does but Steam is not working (stuck on “logging in” screen. it’ll probably fix itself in time)

I am using “openrgb-bin” for my Steelseries keyboard, it can be found in the aur repositories.
Roccat kone aimo is supported, with the keyboard it would be worth a try…

Failing the above suggested alternative by @Charlie_1963 which I believe is a solution you already discounted in the OP, try different versions of wine/proton. For steam specifically, this can be done by selecting “force the use of a specific compatibility tool” in the properties of the added executable which will give you a dropdown menu accordingly. I will again suggest Heroic for this purpose though, as it’s much more explicit and straightforward in assigning prefixes and Wine/Proton versions whereas Steam obfuscates much of it behind buried menus and user-unfriendly named directory layouts.

I just grabbed the installer myself and tried it, installed fine and worked immediately launching using the latest proton experimental after amending the installer .exe to the installed .exe within the prefix -

I don’t own any Roccat/Turtle Beach devices to test with it but the software runs fine.

Thanks, I’ll take a look at Heroic!

How do I amend it to be the installed .exe, in detail, is it just adding a -? because it keeps making me install it so I think that’s the issue

ETA: I didn’t notice before but you’ve also installed Swarm II, which does not carry my mouse, the Roccat Swarm I software however carries both. I hope that one also works oof

If you have the right kind of keyboard all those functions happen from the keyboard itself. There is no need for any software unless of course it’s Windows! :wink:

No, after installing you change the target .exe for the shortcut to be the program itself rather than the installer.

I’ll give you a step-by-step using Heroic as an example because it’s honestly that much easier than doing it in Steam -

Once you’ve installed Heroic Game Launcher, click on Add Game. In the window that pops up call it whatever but in this instance “Swarm” might be a sensible choice. Click on ‘Show Wine settings’ to expose the useful stuff, and you’ll be presented with something like this -

Wineprefix is the path that the application will be installed to - it will set up a full Windows C: style folder tree inside it, so it’s best to make sure it’s off in its own folder where it can’t spew garbage all over anything important.

Wine version is a dropdown to select the relevant compatibility tool - in my case Proton Experimental is the one I used that worked, so perhaps start with that one.

Now - click on “Run Installer First” and point it at the swarm installer .exe

Install it to the default path it offers, yes it will suggest C:\Program Files\whateverblah blah, but that’s not a problem! I would suggest turning off all the checkboxes for “add shortcut/launch when windows starts/launch after installation” etc just to make your life easier at this point.

Once it finishes installing, in the case of this app it will also prompt you to install Visual C, just click yes and go through the process as it’s installing this within the same Prefix - think of the Prefix as like a ‘miniature Windows install’, and we’re adding all the dependencies Windows needs to run this application.

Once that finishes installing, go back to Heroic and click on the Folder icon in the ‘Select Executable’ field. This is the important part - the folder window that pops up should contain a single folder called pfx - inside of this folder is our ‘miniature Windows install’ and if you drill down through the folders drive_c, program files, and so on you will eventually hit familiar territory and be able to select the regular executable:

Hit Open, Finish and then push the little Play button on the tile it just created in Heroic and you should be on your way.

Other applications can be a lot more involved and require more windows components installed alongside them after the fact which can all also be done from within Heroic, but that’s a lot of extra uneccessary detail for the purposes of this one thing you’re trying to achieve :smile:

Thanks!!! I’m also gonna test if the Corsair OEM works on this. This has been really cool to learn, thank you so much for the detailed explanation!!! If we’re lucky I can kick my Windows VM into the sun

You’re welcome, and good luck! FWIW, I just grabbed and installed the regular non-II version of Swarm and it works exactly the same but without the Visual C requirement, so you should be able to follow along accordingly :slight_smile:

Spoke too soon. For whatever reason, it does not find my keyboard. Website claims the keyboard is compatible so I have no idea what the problem is here. The Corsair OEM does not work at all :/// Windows VM it remains with that.

The regular Roccat Swarm is either extremely un-intuitive or doesn’t work either. Oh well, at least I have a third option to get .exe files to work now. Thanks for that!

Can’t tell you much about gnome-boxes since I use virt-manager instead.

Theoretically, if you open the VM details in virt-manager (“Show virtual hardware details” button), click “Add Hardware” > “USB Host Device” and add your mouse/keyboard - that should do the trick.

Alright I found the settings and added my keyboard and mouse, and now clicking start gives me this:
Screenshot_20240831_154602

Full error:
Error starting domain: internal error: QEMU unexpectedly closed the monitor (vm=‘win10’): 2024-08-31T13:45:52.785610Z qemu-system-x86_64: -device {“driver”:“usb-host”,“hostdevice”:“/dev/bus/usb/001/007”,“id”:“hostdev0”,“bus”:“usb.0”,“port”:“11”}: failed to open /dev/bus/usb/001/007: Permission denied

Traceback (most recent call last):
File “/usr/share/virt-manager/virtManager/asyncjob.py”, line 72, in cb_wrapper
callback(asyncjob, *args, **kwargs)
File “/usr/share/virt-manager/virtManager/asyncjob.py”, line 108, in tmpcb
callback(*args, **kwargs)
File “/usr/share/virt-manager/virtManager/object/libvirtobject.py”, line 57, in newfn
ret = fn(self, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^
File “/usr/share/virt-manager/virtManager/object/domain.py”, line 1402, in startup
self._backend.create()
File “/usr/lib/python3.12/site-packages/libvirt.py”, line 1379, in create
raise libvirtError(‘virDomainCreate() failed’)
libvirt.libvirtError: internal error: QEMU unexpectedly closed the monitor (vm=‘win10’): 2024-08-31T13:45:52.785610Z qemu-system-x86_64: -device {“driver”:“usb-host”,“hostdevice”:“/dev/bus/usb/001/007”,“id”:“hostdev0”,“bus”:“usb.0”,“port”:“11”}: failed to open /dev/bus/usb/001/007: Permission denied

Weirdly enough a friend was talking about their setup and it reminded me of your thread - have you tried Eruption?

yes, none of my devices are compatible with it and it was weird and glitchy : /

Clearly some permission issues mentioned in the wiki.

  1. Remove that added mouse/keyboard in VM details (should be named USB some_number )
  2. Launch VM again and when Windows boots, go to the top menu and click Virtual Machine > Redirect USB Device > select your mouse/keyboard.
  3. See if Swarm can detect it

Software does not detect it. Atp I think the software is just broken or something, it doesn’t work if WINE’d, it doesn’t work on VM even with direct passthrough or redirect…

But after doing the above, does Windows Device Manager list the newly added mouse at all?

I forwarded this way my DeathAdder Essential and Synapse detects it :person_shrugging: