To see which devices are tested take a look at the Compatibility Table.
See CONTRIBUTING Guidelines.
Done
Missing
Please see Docs.rs
To workaround the issue of "slow keypresses", @felfert implemented a userspace HID driver/service and a corresponding CLI.
Check out UHID Driver documentation on how to install and use it.
Documentation for the CLI is now generated in separate files:
Alternative CLI and service for Linux
./cherryrgb_cli --brightness medium animation wave fast 00ff00
Please note, that the following modes are unofficial and therefore are not guaranteed to work properly:
radar
vortex
fire
stars
rain
./cherryrgb_cli --brightness full custom-colors ff00ff 0000ff
In addition to specifying custom colors via arguments you can create your custom color profiles in a separate file and pass the path of the file as an argument.
Color profile file structure:
{
"0": "ff00ff",
"1": "fffff",
"45": "00ff00",
"31": "ff0000"
}
A profile file is a JSON file that contains a root object and a key value pair for each key. Both key and value MUST be strings. The JSON parser now has ben changed slightly to allow for 2 normally unsupported variations:
//
until the end of a line).Example:
./cherryrgb_cli --brightness full color-profile-file {FILE PATH}
Example bash
script, demonstrating the new --keep-existing-colors
feature:
#!/bin/bash
cherryrgb_cli color-profile-file examples/static_rainbow.json
for i in 1 2 3 4 5 ; do
sleep 0.5
cherryrgb_cli color-profile-file -k examples/white_f12.json
sleep 0.5
cherryrgb_cli color-profile-file -k examples/red_f12.json
done
Note:
Because existing colors cannot be read from the keyboard, they are stored in a local cache
after setting them. Therfore, in order to use this feature, the command color-profile-file
has to be invoked at least once before.
git clone https://github.com/skraus-dev/cherryrgb-rs.git
cd cherryrgb-rs
cargo build
cargo xtask all
For a complete build on Linux (including service and alternative cli), you can do the following:
sudo apt-get update && sudo apt-get install -y libclang-dev clang
sudo dnf install -y llvm-devel clang-devel
--all-features --all
to the`cargo build lineNow you can run the binary from ./target/debug/cherryrgb_cli
When running the above command cargo xtask all
, a directory hierarchy
is generated:
target/generated/docs/
man/
completions\
which contain:
man1
, man8
etc.)bash
, elvish
, fish
, powershell
and zsh
.
To use the completion scripts, you mus copy them to the appropriate location
(which depends both on your shell and system). For example, on Fedora, the bash
completion scripts go into /etc/bash_completion.d/
. Refer to the documentation
of your shell/system.If the interaction with the keyboard is fine as root-user, you need to configure udev to adjust the ownership of the device handle, so a regular user can access it.
The repository contains an example udev rule file udev/99-cherryrgb.rules
.
You might want to adjust it to only handle your specific product id (check via lsusb
).
In the following example we assume your product id is 0x00dd.
(optional) Change ATTR{idProduct}=="*"
to ATTR{idProduct}=="00dd"
.
Copy the file to the correct location: cp 99-cherryrgb.rules /etc/udev/rules.d/
(as a privileged user)
Finally, reload the udev rules via udevadm control --reload
and apply them using udevadm trigger
or by re-plugging your keyboard.
This is a known issue in the keyboard firmware. It is mentioned here: https://bbs.archlinux.org/viewtopic.php?id=267365
99-cherryrgb.rules
and reload/trigger the udev rule.Use at your own risk. This project is not affiliated or endorsed by Cherry GmbH.
--keep-existing-colors
option for color-profile-file
subcommand (fixes #14)//