CoolerMaster has never provided any MacOS SW or SDK for their CK550 and CK530 keyboards.
CK550-macos project tries to fix this situation and provides a couple of the MacOS applications for controlling the majority of available keyboard LED effects. Applications support only the CK550 and newly the CK530 US-Layout keyboards.
Both applications differ only in a user interface, one is CLI-based, and the latter is GUI-based. Applications do not overwrite any stored settings in a keyboard. Changes are temporary, so once the keyboard is unplugged, all changes made by ck550-macos are lost. The same situation happens if you switch a keyboard to a different profile. The reason for this behavior is to keep the internal keyboard flash write cycles untouched.
Supported LED effects |
---|
Static |
Rainbow Wave |
Crosshair |
Reactive Fade |
Custom |
Stars |
Color Cycle |
Breathing |
Ripple |
Snowing |
Reactive Punch |
Heartbeat |
Fireball |
Circle Spectrum |
Reactive Tornado |
Water Ripple |
Off |
All effects are previewed on the official CoolerMaster website.
➜ ./ck550-cli
-= CK550 MacOS Utility =-
Available commands:
about About ck550-cli...
effect-breathing Set a breathing effect
effect-circle-spectrum Set a circle spectrum effect
effect-color-cycle Set a color-cycle effect
effect-crosshair Set a crosshair effect
effect-custom Set a custom color for individual keys
effect-fireball Set a fireball effect
effect-heartbeat Set a heartbeat effect
effect-off Set an off effect
effect-rainbow-wave Set a rainbow-wave effect
effect-reactive-fade Set a reactive-fade effect
effect-reactive-punch Set a reactive-punch effect
effect-reactive-tornado Set a reactive-tornado effect
effect-ripple Set a ripple effect
effect-snowing Set a snowing effect
effect-stars Set a stars effect
effect-static Set a static effect
effect-water-ripple Set a water ripple effect
help Display general or command-specific help
license ck550-cli license
license-components ck550-cli 3rd party components and their licensing
monitor Monitor HID devices continuously to see changes on an USB bus
version Display the current ck550-cli version
Every available command is heavily documented.
➜ ./ck550-cli help effect-single-key
-= CK550 MacOS Utility =-
Set a reactive-fade effect
[--profile (integer)]
keyboard profile to use for a modification
[--speed (speed)]
effect speed (one of 'highest', 'higher', 'middle', 'lower', or 'lowest'), by default 'middle'
[--color (integer)]
color (format: --color "255, 255, 255"), by default the color is white
[--background-color (integer)]
background color (format: --background-color "255, 255, 255"), by default the color is black
➜ ./ck550-cli effect-reactive-fade --color "255, 0, 0"
All effects could be configured from a command line except the Custom effect. This is effect too complicated, which allows to configure any key located on keyboard. You can use this configuration file as a template to change any colors for any keys.
➜ ./ck550-cli help effect-custom
-= CK550 MacOS Utility =-
Set a custom color for individual keys
[--profile (integer)]
keyboard profile to use for a modification
(string)
the configuration file describing individual key colors
➜ ./ck550-cli effect-custom ~/myFavouriteGameKeys.json
CK550-MacOS GUI application is a MacOS menu bar (aka status bar) application.
The main menu contains two switchable options.
-
Adjust LEDs on a sleep and wake up menu item in its On state controls if keyboard is instructed to use a previously selected LED effect on system wake up or to turn off all LEDs when system sleeps.
-
Set effect on a keyboard detection menu item in its On state instructs a keyboard to use a previously selected LED effect during a keyboard detection.
Effects menu item displays a submenu containing all available effects for a selection.
All effects could be configured either by selecting a general Preferences... menu item, or by selecting a configuration icon on the right side of a given effect.
Changed preferences are saved immediately and are restored during the application startup.
The CK550 Custom effect could export and import the effect configuration, which is handy to have an ability to load predefined keys colors for various software or games. The exported configuration files are fully compatible with the CK550-MacOS CLI application.
CK550-MacOS GUI & CLI applications are distributed in two fashions, which is either a Homebrew CASK
, or the self-updatable DMG.
The self-updatable DMG is available in a release section. Be aware that a CLI application is included in the GUI app bundle. You can run the ./ck550.app/Contents/MacOS/ck550-cli.app/Contents/MacOS/ck550-cli
or create a symbolic link to provide an easy access.
If you haven't install the Homebrew yet, follow their instructions.
Then, applications could be installed by following commands.
brew tap vookimedlo/homebrew-ck550
brew cask install ck550-macos
If everything went well, you see a similar output and both GUI and CLI applications are ready to use.
➜ brew cask install ck550-macos
==> Satisfying dependencies
==> Downloading https://github.com/vookimedlo/homebrew-ck550/releases/download/v...
==> Verifying SHA-256 checksum for Cask 'ck550-macos'.
==> Installing Cask ck550-macos
==> Moving App 'ck550.app' to '/Applications/ck550.app'.
==> Linking Binary 'ck550-cli' to '/usr/local/bin/ck550-cli'.
🍺 ck550-macos was successfully installed!
Later, you can upgrade this application by following command.
brew cask upgrade ck550-macos
It's possible that other CK keyboard models can be controlled by this software. If you are brave enough, you can enable your keyboard model by adding its USB PID to Constants.swift file. Just extend the KeyboardPIDs enum, re-compile the code base, give it a try and let me know.
enum KeyboardPIDs: Int, CaseIterable {
case CK550 = 0x007f; // Works - @vookimedlo - this is the only keyboard I have, any contribution for other models is welcome!!!
case CK530 = 0x009f; // Works - @cscheib - suggested & reported - Thanks!!!
}