mthome / ckb

Corsair K70/K95 RGB Driver for Linux and OSX

Home Page:http://forum.corsair.com/v3/showthread.php?t=133929

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

ckb: Corsair K65/K70/K95 Driver for Linux and OSX

ckb is an open-source driver for Corsair RGB keyboards. It aims to bring the functionality of their proprietary Corsair Utility Engine software to the Linux and Mac operating systems. This project is currently a work in progress, but several features are already complete and the software has full RGB animation support. More features are coming soon. Testing feedback and bug reports are very much appreciated!

ckb currently does not support non-RGB Corsair keyboards, but if you have one and are willing to do some tests, don't hesitate to contact me. I'm intrested in adding support for them.

Disclaimer: ckb comes with no warranty and is not an official Corsair product. It is licensed under the GNU General Public License (version 2) in the hope that it will be useful for those of us wishing to take advantage of the keyboard's features on non-Windows OSes.

If you use and enjoy this project, I'd greatly appreciate it if you could spare a few dollars for a donation. This is completely voluntary, of course - the project will remain free and open source regardless. :)

I accept donations through PayPal: Click here

Or through Bitcoin: 1LDHCfyDqAziUPtp3a4BdUaKmwphG1yroQ (click for QR code)

Building

Pre-built binaries will be available at a later date. For now, follow the instructions below to compile from source. The project contains two main applications: ckb-daemon, which runs in the background and provides the actual driver, and ckb, which provides the user interface.

Note: When downloading a new version of ckb, please delete your old download first and build it again from scratch. This helps ensure there are no problems lingering from an old build.

Linux instructions

Requires Qt5 and libudev (Ubuntu: qt5-default and libudev-dev. Qt5 packages may also be under qt5-base or libqt5*-devel). gcc, g++, and glibc are also required. Check with your package manager to make sure you have the correct libraries/headers installed.

You can build the project by running qmake-qt5 && make in the directory you downloaded it to. If you don't have qmake-qt5 (e.g. Ubuntu), run qmake && make instead. The binaries will be placed in a new bin directory assuming they compile successfully. To start the daemon, run sudo bin/ckb-daemon. After that, open the ckb binary as a normal user to start the user interface.

Note: If you have problems connecting the keyboard to your system, try adding the following to your kernel's cmdline:

  • K65: usbhid.quirks=0x1B1C:0x1B17:0x20000000
  • K70: usbhid.quirks=0x1B1C:0x1B13:0x20000000
  • K95: usbhid.quirks=0x1B1C:0x1B11:0x20000000

For instructions on adding cmdline parameters in Ubuntu, see https://wiki.ubuntu.com/Kernel/KernelBootParameters

OSX instructions

Install the latest version of Xcode from the App Store. Then install Qt5 from here: http://www.qt.io/download-open-source/

Open ckb.pro in Qt Creator. You should be prompted to configure the project (the default settings should work). Once it's finished loading the project, press Cmd+B or select Build > Build Project "ckb" from the menu bar. The binaries should be placed in a newly-created bin directory assuming they compile successfully. Exit Qt Creator.

ckb-daemon needs to be run as root. Open the bin directory in a Terminal window and run sudo ./ckb-daemon. Then open ckb.app as a normal application to start the user interface.

If you've rebound your modifier keys in System Preferences, those changes won't work anymore. You have to switch them using ckb-daemon's bind command. For instance, to switch Cmd and Ctrl, run: echo bind lctrl:lwin lwin:lctrl rctrl:rwin rwin:rctrl > /tmp/ckb1/cmd. This functionality is coming to the user interface soon.

Usage

See DAEMON.md for info about the daemon program.

The user interface is still a work in progress.

Major features:

  • Control multiple keyboards independently (note: not tested)
  • United States and European keyboard layouts
  • Per-key lighting and animation
  • Reactive lighting
  • Multiple profiles/modes with hardware save function

Roadmap (roughly in order)

  • v0.1 release:
  • (Daemon) Allow the daemon to disconnect all keyboards without shutting down, reconnect later. This way ckb can soft stop/soft start the daemon, because using the daemon without ckb running isn't very useful.
  • (Daemon) Indicator (Num Lock, etc) notifications
  • System service files so that ckb-daemon can be run at system start.
  • v0.2 release:
  • Key rebinding in ckb
  • More functions for the Win Lock key
  • v0.3 release:
  • (Daemon) Repeatable key macros, notification macros
  • (Daemon) Ability to generate mouse press/release events
  • Key combos
  • Key macros, other advanced keypress features like running a custom command
  • v0.4 release:
  • Ability to tie profiles to which application has focus, or switch them with keys
  • Timers
  • v1.0 release:
  • OSD? (Not sure if this can actually be done)
  • Extra settings?
  • ????

Closing ckb will actually minimize it to the system tray. Use the Quit option from the tray icon or the settings screen to exit the application.

Known issues

  • The system tray icon doesn't always appear in Linux. Apparently this is a known Qt bug. To bring ckb back after hiding it, re-run the application.

About

Corsair K70/K95 RGB Driver for Linux and OSX

http://forum.corsair.com/v3/showthread.php?t=133929

License:GNU General Public License v2.0


Languages

Language:C 51.7%Language:C++ 47.6%Language:Objective-C 0.8%