GwynethLlewelyn Posted June 27, 2021 Share Posted June 27, 2021 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 More sharing options...
icedterminal Posted July 31, 2021 Share Posted July 31, 2021 It's command line based. But significantly lighter. https://github.com/liquidctl/liquidctl#supported-devices Link to comment Share on other sites More sharing options...
GwynethLlewelyn Posted May 31 Author Share Posted May 31 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 More sharing options...
RKaySwiss Posted June 3 Share Posted June 3 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 😞 1 Link to comment Share on other sites More sharing options...
POE_UK Posted June 5 Share Posted June 5 (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 June 5 by POE_UK Link to comment Share on other sites More sharing options...
LeDoyen Posted June 6 Share Posted June 6 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 More sharing options...
POE_UK Posted June 6 Share Posted June 6 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 More sharing options...
RKaySwiss Posted June 6 Share Posted June 6 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. 1 Link to comment Share on other sites More sharing options...
POE_UK Posted June 8 Share Posted June 8 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 More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now