Jump to content
Corsair Community

Alternatives to having the 1GB iCUE mammoth app permanently running...?


Recommended Posts

Hi all,

 

I'm sorry if this question has been asked a million times; I have spent some 4 hours searching the forums, Reddit, and using Google in search of what seemed to me to be a very simple question: how can I avoid having a 1-GByte-application running all the time, consuming what's left of my meagre resources, and still manage to have some functionality on my brand-new Void Elite USB headset?

 

What I'm looking for is to run a very small daemon on my Mac which just provides enough information to the headset to tell it to remember the last settings (e.g. mic volume, side tone on/off, using bleeps or an informative voice, stereo or surround, etc. etc. etc.). I'm not even asking how to keep the lighting programming working without iCUE — I'm neither a gamer nor a modder, so I don't really care much about it, I've bought the headset for its legendary quality for voice chat, not for the nifty extra special effects.

 

I understand now that some Corsair hardware have the option of getting configured under iCUE but there is an option to save such settings directly to the hardware. This is not the case for most hardware (including, I believe, the above-mentioned Void Elite USB headset), which relies on iCUE to continuously send commands to it (and read whatever sensors or input devices they might have).

 

That's ok if you have a very complex lighting setup and have to deal with keyboard remapping and so forth, so there is no choice but to keep iCUE running all the time. But for my clearly underpowered Mac, having this colossal application (which takes about one minute just to load) just to have access to a handful of settings is absolutely wasteful.

 

I've also learned that there is an SDK, as well as a few attempts to create a tiny webserver which accepts REST requests and converts them into SDK commands. That's all fine, and a credit to the awesome Corsair user community which is able to do such fantastic things, but... all of that still requires having iCUE running all the time and have the SDK slider turned on — which consumes even more resources!

 

Isn't there a much simpler alternative?

 

I've seen that the actual iCUE app is not very big (roughly 20 MBytes in size); what is huge is the Qt library that it requires to provide a minimally decent GUI (which, thanks to Qt, is consistent among platforms) — that's what takes around 1 GBytes. Because the iCUE application is not open-source (for very good reasons!) I cannot see if it works according to a client-server paradigm, i.e. if iCUE launches not only the GUI behemoth, but also a stub daemon which actually connects to the headset via USB. Perhaps that's what actually happens under the hood, but I cannot see how it works; I was searching inside the package contents for the iCUE application to see if I could find anything like that, but I admit my lack of knowledge about the Corsair/iCUE environment. It might be obvious, just not for me.

 

Alternatively, are there other non-iCUE tools developed by Corsair that can accomplish the same, but without the GUI interface? Where can I download those? By now, I've learned that the official web site has some serious problems with outdated links, and that it takes some pain and a lot of patience to figure out where exactly the latest versions are being stored for download. So that's the reason why I may have missed that altogether.

 

Last but not least... perhaps nobody thought of actually having such a ultra-light-weight daemon providing just the bare bones functionality that is exposed by iCUE; in that case, and beyond the SDK's own developer documents, are there any public (and preferrable official!) references about how to 'talk' directly to the headset, without the need of going through the iCUE application? Given some documentation, I believe I can cook up some very simple proof-of-concept, so long as I've got some information about how exactly the 'inner' API interface actually works...

Link to comment
Share on other sites

  • 1 month later...

It's command line based. But significantly lighter. 

https://github.com/liquidctl/liquidctl#supported-devices

Link to comment
Share on other sites

  • 10 months later...
On 7/31/2021 at 2:44 AM, icedterminal said:

It's command line based. But significantly lighter. 

Right! Thanks for your reply, but... does it work with headphones? The 'supported devices' list does not mention my Void Elite USB headset...

Link to comment
Share on other sites

Do I get you right, the headphone is actually dependant on iCue to properly function? In my developer eyes, thats against all principles. Dependencies should be kept to the absolute bare minimum. If I would develop iCue, i would make it modular, really only loading whats required, and most importantly, when being in "background mode" - totally unloading the UI part or offering a "basic ui" version, but well, on the other side: The market segment of Corsair is mostly gamers and bling bling fans, I think i'm on the less than 1% group that uses all the lighting stuff for a pure workstation -laugh- .

On my windows install, Icue doesnt get close to a memory consumption of 1GB  unless its about to crash or one of the many other issues rise up. Sounds like the mac version is poorly optimized 😞

  • Like 1
Link to comment
Share on other sites

Posted (edited)

Correct, having headphones software controlled is a stupid idea, i think she meant the install size of icue is 1gb, which is completely ridiculous, rgb software doesnt need to be any more than 50mb

 

The end user should have the option to install only what's needed, at this rate in 12 months icue will be 2gb in size, with at least 5 unwanted services running 24/7, windows10 is bloated enough without this software adding to it.

Edited by POE_UK
Link to comment
Share on other sites

iCUE also serves as driver for corsair devices.. and they install them all instead of just what you have. If you only use a headset, you'll still have ram lighting, MSI motherboard support and other services running in background in addition to the main corsair service.. unless it changed recently but i doubt it.

Link to comment
Share on other sites

4 hours ago, LeDoyen said:

iCUE also serves as driver for corsair devices.. and they install them all instead of just what you have. If you only use a headset, you'll still have ram lighting, MSI motherboard support and other services running in background in addition to the main corsair service.. unless it changed recently but i doubt it.

Just checked and i really cannot believe once icue is installed its just over 1.75GB which is absolutely unnecessary, first thing i did once installed is remove all the unused services including the corsair audio service

Link to comment
Share on other sites

Yeah, i use an Astro Gaming Headset, Roccat Keyboard, but even the Corsair Headset SERVICE is running - this is bollocks. Installing is one thing, that takes only disk space, but running services for hardware not being installed is crap. ICue could simply notify when i attach a Corsair Headset one day and start the service manually then (which would be the proper way, thats what the start mode "manual/on-demand" on services is for). Windows is a good example, for example the Windows Update Medic Service - it only is being started when you run a troubleshooter for windows updates.

@Corsair Devs:
When Installing ICue, please check what devices present and only start the services really necessary. Put the rest on manual and let icue start them, when the corresponding device type is actually being connected the first time, then change the service start mode back to automatic/delayed - whatever you need. Or give us the option via ICue to tell ICue that we "dont have corsair device of type X" or "Disable Headset Service". Due to the seperation of the services which is already implemented, this shouldn't be a big thing, unless there are some hidden, unavoidable dependencies (which shouldn't exist when the SOLID principles have been properly applied), as far as ive seen when tracing/profiling with a debugger attached (just flew over the code, not stepped deep into), it should be absolutely possible without much effort. Or in an even more ideal variant: Let us choose during install, what service we don't want - like me for example: I wont move away from my current HIDs , i only need internal lighting/cooling/monitoring, so i would love to not even have the headset, input device service etc. being installed, for the sake of a more clean system.

  • Like 1
Link to comment
Share on other sites

If the software was coded properly in the first place unused hardware services wouldn't get installed, icue should auto detect your hardware and remove any unused services but it doesnt.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...