The program (or driver, if you wish) allows changing the RGB colors of the microphone HyperX Quadcast S just like NGenuity does. Should support all Unix-like platforms. Only Linux and partially FreeBSD were tested so far.
Available modes are solid, blink, cycle, wave, lightning, and pulse. The program runs as a daemon, kill it or unplug the mic to stop.
- free & open source (GPL-2.0-only)
- most Linux distros supported, *BSD should work
- cli
- daemon
- several microphones support
- extra modes:
pulse,visualizer aur, deb, rpm packagesrefuse to work if another instance is runningthe original modes: solid, blink, cycle, wave, lightningbrightness & speeddelay - blink-specific optionactual installation
# Default solid color (#f20000, red) for the whole micro:
quadcastrgb solid
# Random blinking colors:
quadcastrgb blink
# Default cycle (rainbow) mode for the whole micro:
quadcastrgb -a cycle
# Purple color for the upper part and yellow for the lower:
quadcastrgb -u solid 4c0099 -l solid ff6000
# Default cycle mode for the upper diode with 50% brightness and yellow lightning for the lower:
quadcastrgb -u -b 50 cycle -l lightning ff6000
quadcastrgb is available in the AUR.
yay -S quadcastrgb
mkdir quadcastrgb && cd quadcastrgb
wget https://gitlab.com/Ors1mer/QuadcastRGB/-/raw/main/aur/PKGBUILD # PKGBUILD download
makepkg -sri # build and install
cd .. && rm -rf quadcastrgb # clean-up
The already-built deb package is in the deb directory. Simply download it and install:
wget https://gitlab.com/Ors1mer/QuadcastRGB/-/raw/main/deb/quadcastrgb-1.0.0-1-amd64.deb
dpkg -i quadcastrgb-1.0.0-1-amd64.deb
Alternatively, it is possible to make a deb package of your own:
git clone https://gitlab.com/Ors1mer/QuadcastRGB.git
cd QuadcastRGB
make debpkg # build the package with dpkg
dpkg -i deb/quadcastrgb-1.0.0-1-amd64.deb # install
Everything is pretty much the same as for deb. Simply download and install:
wget https://gitlab.com/Ors1mer/QuadcastRGB/-/raw/main/rpm/quadcastrgb-1.0.0-1.x86_64.rpm
rpm -ivh quadcastrgb-1.0.0-1.x86_64.rpm
Or build the package from source:
git clone https://gitlab.com/Ors1mer/QuadcastRGB.git
cd QuadcastRGB
make rpmpkg # build the package in ~/rpmbuild/
rpm -ivh ~/rpmbuild/RPMS/x86_64/quadcastrgb-1.0.0-1.x86_64.rpm
If you are lucky, this should be enough:
make install # linux
gmake install OS=freebsd # freebsd
Specify BINDIR_INS and MANDIR_INS for make if you want to change the install locations.
Check the dependencies:
- gcc v12.2.0 OR clang v14.0.6 (most versions should do fine)
- libusb-1.0 v1.0.26
- gettext v0.21-2
- glibc
- gcc-libs
Check the $PATH and manpath. The program follows XDG specifications, so the binary is stored in $HOME/.local/bin (should be in $PATH) and the man is in $HOME/.local/share/man (should be in $MANPATH). It is possible to move them, of course.
Check the error code. If it is 4, try running the program under superuser privileges. If that was the problem, you should eventually create a dev rule for the microphone to allow certain users access to it.
Firstly, check what is the VendorID:ProductID of your mic e. g. like this:
$ lsusb
Bus 001 Device 007: ID 0951:171f Kingston Technology HyperX QuadCast S # this is what you're looking for
Bus 001 Device 006: ID 0951:171d Kingston Technology HyperX QuadCast S
It should be either 0951:171f, 03f0:0f8b, or 03f0:028c (if it isn't, contact me, the author, I'll add support for your IDs).
Let's proceed to the rule creation:
# Here the rules are stored:
cd /etc/udev/rules.d
# Do under superuser:
vi 10-quadcast-perm.rules
Write this line, save & exit (:wq):
SUBSYSTEMS=="usb", ATTRS{idVendor}=="<THE_VENDOR_ID>", ATTRS{idProduct}=="<THE_PRODUCT_ID>", MODE="0660", GROUP="hyperrgb"
Now the microphone is accessible for the group "hyperrgb". Add your user to the group and it's done.
Probably, the previous instance is still running. Kill it with kill or killall.
Simply kill the process by name:
killall quadcastrgb
Chances are you have a new revision of the mic that has unsupported VendorID:ProductID. The currently supported IDs are 0951:171f, 03f0:0f8b, 03f0:028c, and 03f0:048c. If you have different IDs (check it with lsusb, for example), contact the author; I'll add the support very quickly.