Jump to content
Corsair Community

(Unofficial) Linux / OSX Driver


MSC

Recommended Posts

I'm happy it exists, however it does not work in my case :( I've got K70 RGB keyboard and macbook pro late 2011 with 2 usb 2.0 ports, running 10.11. Tried all combinations of connecting it and cannot get it completely working. It is either keyboard or backlighting. I need to reinstall ckb almost each time i reconnect keyboard, because it cannot find device again. I'd like to have at least a static backlighting since it's RGB model after all.

Does anyone have any ideas?

Edited by arkAD
Link to comment
Share on other sites

  • Replies 824
  • Created
  • Last Reply

Top Posters In This Topic

Having built and done the manual install, is there any benefit to having a RPM of the software for the casual fedora user who isn't savvy enough to put the .desktop file and systemctl scripts where they belong ? If so, I offer my time to put those together in a package

 

I am seeing one small quirk, most likely my fault, with the 'windows lock' key (upper right corner of the strafe rgb). At one time it illuminated but now does not. Window lock functionality is correct. With lock 'on', Gnome will to 'overview' / 'pilot' view as it should. Suggestions?

 

Also not seeing the alpha and num lock (long) white leds change. Is this normal?

 

 

Thanks,

C

Check the Performance tab to see what the indicators are set to. They might be turned off.

 

If you'd be willing to compile Fedora packages I'll definitely put them up with the project :)

 

Thank you for all the effort to get this working on non-windows setups! I'm working with OSX and the M65 and I'm really struggling to figure out a way to reduce the scrolling speed on the wheel. I'm getting just short of a full page per click, which is super tough to work with at times. The mouse settings in the system prefs do nothing for the wheel. Let me know if you've had luck adjusting this in OSX or if it's something I can do via editing the code. Thanks!

The current version in the testing branch allows you to disable the scroll acceleration and set a fixed scrolling speed instead. Try that out and see if it works for you.

 

Thanks for this software. It's great to have control over the keyboard on OS X.

 

I'm using a K95 RGB. I'm trying to assign shortcuts to the G keys, like CMD + N or CMD + H etc, but I don't think there's an option to do these. Or am I missing something? The binding options are radio buttons. What I'm looking for is checkbox options I think, so I could combine "Modifier" and "Typing".

Not yet. It's planned soon though.

 

I'm happy it exists, however it does not work in my case :( I've got K70 RGB keyboard and macbook pro late 2011 with 2 usb 2.0 ports, running 10.11. Tried all combinations of connecting it and cannot get it completely working. It is either keyboard or backlighting. I need to reinstall ckb almost each time i reconnect keyboard, because it cannot find device again. I'd like to have at least a static backlighting since it's RGB model after all.

Does anyone have any ideas?

 

If you uninstall ckb, do the lights still turn on when you plug in the keyboard? It should load the static profile as long as the driver's not running. If the backlighting isn't coming on at all, the keyboard might not be getting enough power.

Link to comment
Share on other sites

Hi MSC, and thank you for such an excellent driver. I have recently ran into an issue that I am not sure if you have addressed in someone else comment. I've got the newest Corsair Strafe RGB Silent and I work on a 2015 MacBook Pro 15inch Retina running OS X El Capitan Version 10.11.2 in case its a compatibility issue.

 

The issue is this...I was able to create a custom light animation setting them up similar to how the Demos are setup and everything seemed to work fine except it stop recognizing the Windows key which is supposed to be the Left Command key for Mac. To resolve this, I modified one of the demos to the animation I wanted and everything worked fine for about a day. It just stopped working for me on the modified version of the Rainbow demo and I had to switch to the Trippy Demo to get its functionality to work.

 

Is there a setting that I am missing or an update that I need to install? Everything else works great for the most part.

 

Looking up the key binding for the correct terminology of this comment, I tried to assign a new key binding to the lock key in the top right corner of the keyboard, I also checked to make sure the left windows key was set to Left Command Modifier before hitting Apply. I lost the Left Command functionality of the Trippy Demo. The only mode that the Left Command Modifier works for is the Breathing Demo.

 

What should I do? Please help!

Link to comment
Share on other sites

If you uninstall ckb, do the lights still turn on when you plug in the keyboard? It should load the static profile as long as the driver's not running. If the backlighting isn't coming on at all, the keyboard might not be getting enough power.

 

That depends:

If I firstly connect second cord responsible for lighting and I will wait some time, the backlighting will start. Unfortunetely at that point connecting first cord (with keyboard logo) does not make keyboard working. There is no input from it and software does not see it. Disconnecting lighting cord and leaving first one makes no change, keyboard still serves purpose of fancy desk lamp.

If I connect second cord and then first one before backlighting starts, keyboard will flash for a split second. In that case most of the time software will see the keyboard and it will be working, but without any lighting. (sometimes it does not recognize it, or lights responsible for caps lock etc won’t work, but reinstalling ckb fixes those problems)

Unfortunately reinstalling ckb does not help with lighting. :(

Link to comment
Share on other sites

Great Job with this! Quickly made an account to ask this question...

 

I'm trying to get the G-Keys on my K95 RGB to work with various bits of software on my mac (Most notably Logic Pro X). They only seem to be recognized by my system when they are remapped to a single key that's already on a standard keyboard (num keys, numbers, letters etc.). Is there a way to get other programs on the system to recognize them as separate, new keys?

 

Since we can't assign the G-keys to key combos I'm a bit stuck!

 

Many thanks!

Link to comment
Share on other sites

I am seeing one small quirk, most likely my fault, with the 'windows lock' key (upper right corner of the strafe rgb). At one time it illuminated but now does not. Window lock functionality is correct. With lock 'on', Gnome will to 'overview' / 'pilot' view as it should. Suggestions?

Just fixed that, along with the corsair logo backlight on Strafe in my testing branch and got the pull request going. Should show up in the main repo soon.

 

As a side note. We should probably package CKB into debs as well, and get a ppa going. Any takers?

Link to comment
Share on other sites

Hi, i have some problems and some feedback. i am a heavy linux user and i'd love to see this keyboard work properly on Linux, i currently use Debian 8.2 Jessie (recently installed on my laptop).

i checked your git repository and the instructions to install the software, and i could not find qt5-base, and found a lot of packages with libqt5* (i just didn't knew which to install), so i searched on Debian webpage for qt5 packages, and found "qtbase5-dev", and could not install your software, it prompted me a lot of text, with some errors, if you want them i'll post them, i will not right now for the sake of shortness.

 

P.D.: Also i am not in the machine listed on my PC specs.

 

Edit: I did install it... i was double checking everything, and i forgot glibc, it works pretty fine, the system still take it's sweet time to detect the keyboard and make it work, but aside of that no error or functionality that i can see at first glance.

Edited by Tredok
Link to comment
Share on other sites

I'm trying to get the G-Keys on my K95 RGB to work with various bits of software on my mac (Most notably Logic Pro X).

 

Some days ago, I sent a pull-request with only three lines changed. With this change, the driver is able to receive macro definitons for the G-keys. I've tested it on a mint linux, but the code should run on mac also.

 

MSC has merged it in branch f7d897f.

 

With a little bit more time next week, I will write some more info about how I use the macro functions within my linux environment.

Edited by Frickler
Link to comment
Share on other sites

Hi guys, I'm a OSX user and just got the m65 gaming mouse and I was wondering what was up with my mouse or if its the ckb program. Whenever I turn on my computer my mouse doesn't register so I just have to unplug it and plug it back in, thats not really an issue for me. But what's been bothering me is, whenever I turn on my computer ckb doesn't register my mouse so I have to uninstall and redownload ckb but then once I open ckb my mouse scroll wheel doesn't work and neither do my mouse 4 and 5 buttons work what so ever. Anything helps, thanks!
Link to comment
Share on other sites

[ATTACH]23784[/ATTACH]does anyone know how to fix the blank screen? I've reinstalled the program 3 times but it doesn't let me mess with the lights or show the actual keyboard

 

Hi Sinsofalion, You get the blank screen anytime your ckb client isn't able to connect to the kcb-server.

So please check: Is your Server installed properly (any error messages while running quickinstall)? Do you see it running?

"pgrep -l ckb-daemon" should give you something like 
1255 ckb-daemon

 

Are you able to connect via the server interface (/dev/input/ckb1/ files cmd or notify1)?

Edited by Frickler
Link to comment
Share on other sites

This is an amazing piece of work. Thank you for all your efforts to enable functionality on Mac OS X for these keyboards.

 

I have to say that it is unbelievable that Corsair does not produce software for the Mac for these expensive keyboards like the Strafe and the K-series. It is really a pity that others have to step up to do the work they should have been doing themselves.

 

This thread started 2 years ago and we still have not seen Mac software from Corsair when the competition is offering it from the start. This is a shame Corsair because the keyboards are very good but you are totally ignoring and neglecting us Mac users.

Link to comment
Share on other sites

Recently, some questions about programming the G-Keys have appeared in the Forum. Therefore I write some tips here on how I deal with it.

The most important thing first:

The documentation of the steps below is very well and located in the download directory of CKB: In the file DAEMON.md. Please read it.

However, the following instructions will not work without a fresh installation, so the software must be fresh pulled and compiled. Go to the directory above the one in which the current ckb installation has been loaded (eg ~/src) and load the Git Branch newfx to a new directory and compile it there:

 

cd ~/src
git clone https://github.com/ccMSC/ckb.git --branch newfx newfx-ckb
cd newfx-ckb && quickinstall

 

Now the client and especially the server should be recompiled, installed and started.

lutz@Mainfrix:~/Projekte > [b]cd ~/src[/b]
lutz@Mainfrix:~/src > [b]git clone https://github.com/ccMSC/ckb.git --branch newfx newfx-ckb[/b]
Nach »newfx-ckb« wird geklont
remote: Counting objects: 4131, done.
remote: Total 4131 (delta 0), reused 0 (delta 0), pack-reused 4131
Objekte werden empfangen: 100% (4131/4131), 1.93 MiB | 1.39 MiB/s, done.
Unterschiede werden aufgelöst: 100% (2916/2916), done.
Verbundenheit wird überprüft … Fertig.
lutz@Mainfrix:~/src > [b]cd newfx-ckb && quickinstall[/b]
Preparing build files...
Compiling binaries...
(This can take a while, please be patient)

… Bla bla ...

Finished!
Install ckb system-wide [Y/n]? → [b]Y[/b]
Installed in /usr/bin

System service: Upstart detected
Run the driver as a startup service [Y/n]? 	→ [b]Y[/b]
ckb-daemon start/running, process 31449

Start ckb now [Y/n]? 	→ [b]Y[/b]
lutz@Mainfrix:~/src/newfx-ckb >

 

The following steps can run as a script. For traceability I have shown them separately.

 

First, you go to the following directory: /dev/input

There you should find a directory ckb0 (uninteresting) and ckb1 (interesting). A ckb directory with a higher number than 1 should not be there. If you find one, you need to find out the correct directory on the basis of the further description.

 

Go to the directory ckb1:

lutz@Mainfrix:/dev/input/ckb1 > [b]cd /dev/input/ckb1 && ls -l[/b]
insgesamt 20
prw-rw-rw- 1 root root  0 Jan  2 14:58 cmd
-rw-r--r-- 1 root root 56 Jan  2 14:54 features
-rw-r--r-- 1 root root  5 Jan  2 14:54 fwversion
-rw-r--r-- 1 root root 32 Jan  2 14:54 model
prw-r--r-- 1 root root  0 Jan  2 14:54 notify0
prw-r--r-- 1 root root  0 Jan  2 14:58 notify1
-rw-r--r-- 1 root root  5 Jan  2 14:54 pollrate
-rw-r--r-- 1 root root 33 Jan  2 14:54 serial

Important is the pipe named "cmd". This is the command-pipe, which ist used by the ckb client to issue instructions to the server (daemon). But we can use the pipe for our purposes also.

 

First we create a new channel on which the deamon will send all characters entered in their internal representation:

lutz@Mainfrix:/dev/input/ckb1 > [b]echo "notifyon 2" > /dev/input/ckb1/cmd && ls -l[/b]
insgesamt 20
prw-rw-rw- 1 root root  0 Jan  2 15:01 cmd
-rw-r--r-- 1 root root 56 Jan  2 14:54 features
-rw-r--r-- 1 root root  5 Jan  2 14:54 fwversion
-rw-r--r-- 1 root root 32 Jan  2 14:54 model
prw-r--r-- 1 root root  0 Jan  2 14:54 notify0
prw-r--r-- 1 root root  0 Jan  2 15:01 notify1
[color="SeaGreen"]prw-r--r-- 1 root root  0 Jan  2 15:01 notify2[/color]
-rw-r--r-- 1 root root  5 Jan  2 14:54 pollrate
-rw-r--r-- 1 root root 33 Jan  2 14:54 serial

 

A new named pipe notify2 was created. Using the following command, the daemon is caused to output all keyboard characters there. The "cat" ensures that the characters are read from the pipe.

lutz@Mainfrix:/dev/input/ckb1 > [b]cat notify2 &[/b]
[1] 15869
lutz@Mainfrix:/dev/input/ckb1 > [b]echo "@2 notify all:on" > /dev/input/ckb1/cmd[/b]
lutz@Mainfrix:/dev/input/ckb1 > [color="Red"]key -lshift[/color]
[color="Red"]key -lctrl
key +enter[/color]

lutz@Mainfrix:/dev/input/ckb1 > [color="Red"]key -enter
key +enter[/color]

lutz@Mainfrix:/dev/input/ckb1 > [color="Red"]key -enter[/color]

This continues on until either the "cat" process is killed or the Notify is turned off:

[b]echo "@2 notify all:off" > /dev/input/ckb1/cmd[/b]

With this simple mechanism, you can read all key sequences from your keyboard.

Please note: Even if you have a keyboard layout other than US, you still will get the US Character code, because the driver converts keyboard-layouts later. So if you have a german layout and press the asterisk (*), you will get a “+lshift,+rbrace,-rbrace,-lshift“ combination. But that's correct, your german linux will understand it as asterisk *.

 

The following script does all that. It creates a file /tmp/input-from-ckb, in which the keystrokes are written. First, it reads recent character codes from the pipe, then you are prompted for entering the macro key sequence. At the end, you quit the script with CTRL-C. For me, the script is named record.sh.

#!/bin/bash

# Shell-Script zum Aufzeichnen der Macro-Befehle aus der Corsair-Tastatur.
# Diese Version arbeitet mit dem ckb-Treiber zusammen.

# Wichtig:
# Starten des Scriptes
# Nach Start des Programms können die gewünschten Tastenfolgen eingegeben werden.
# Nach Abschluss der letzten Taste bitte dieses Programm mit ctrl-c abbrechen.

# Sollte im Macro ein Control-C eingegeben werden müssen,
# so finden man dies als letzte zwei Zeilen in der Ausgabedatei.

# Die Ausgabedatei finden Sie unter /tmp/input-from-ckb

echo "notifyon 2" > /dev/input/ckb1/cmd
echo "@2 notify all:on" > /dev/input/ckb1/cmd

# Löschen der Einträge, die zum Startzeitpunkt in notify2 stehen
cat /dev/input/ckb1/notify2 > /dev/null 2>&1 &
sleep 1
kill $! >/dev/null 2>&1

# Nun erfolgt die Aufzeichnung
echo "Please type your g-key macro"
tee < /dev/input/ckb1/notify2 /tmp/input-from-ckb

exit -1                 # Für den Fall, dass der erste Teil nicht funktioniert.

Unfortunately, the format in which the keyboard provides the characters is not the same as is required by the ckb-daemon to program the G keys. All characters must be in one row, "Key " has to be removed and the entries need to be separated by commas. This can be done with any text editor. A code sequence for the vi I have shown here (copy all lines and paste it into a shell terminal):

[b]echo "@2 notify all:off" > /dev/input/ckb1/cmd
vi /tmp/input-from-ckb
:%s/$/,/
Gdddd1GJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJJ
:%s/key //g
:%s/ //g
$Dyy
:n! ~/g-keys
G
p[/b]

 

The statement appends the new line to the file ~/g-keys. At last "macro g<number>:" must be written in front of the line manually:

[color="Purple"][b]macro g1:[/b][/color]+ralt,+8,-8,-ralt,+c,-c,+o,-o,+d,-d,+e,-e,+ralt,+9,-9,-ralt,+enter,-enter,+ralt,+8,-8,-ralt,+lshift,+7,-7,-lshift,+c,-c,+o,-o,+d,-d,+e,-e,+ralt,+9,-9,-ralt,+enter,-enter,+up,-up,+up,-up

Save and quit the editor.

BTW: This G-Key is useful here in the forum…

 

There may be more than one G-Key definition in the file. The daemon does interpretation line by line. I have not tested what happens, if the driver gets unknown commands. Try it by yourself…

 

Now the file ~/g-keys will be sent to the command pipe. Thereafter, the key must be working:

lutz@Mainfrix:~/src/gkeys > [b]cat ~/g-keys > /dev/input/ckb1/cmd[/b]
lutz@Mainfrix:~/src/gkeys > [b]cat[/b]
[code ]			[b][i]#### Here G1 has been pressed #####[/i][/b]
[/code ]
^[[A^[[A                   [b][i]Press CTRL-C to stop the cat [/i][/b]

 

For me I have created two things:

First, a shell script "g-keys.sh" in the search path, which just does a "cat ~/g-keys > /dev/input/ckb1/cmd" after short waiting for the ckb client and secondly an autostart of the script at startup (via KDE system configuration ).

#!/bin/bash
sleep 5         # wait for running ckb-Client
cat ~/g-keys > /dev/input/ckb1/cmd

Thus, the G-keys are initialized at each system startup and power saving recovery.

 

I hope the guide will help somewhat.

 

If I have more time again, I head back to a way to configure the G-keys via the ckb client.

A user interface I've designed for it:

attachment.php?attachmentid=23808&stc=1&d=1451755941.

 

For developing the program code I had no time yet.

The driver is complex, but very neatly designed, so I do not want to destroy the structure of the driver with my extensions. So first task is to understand the C++ Code and qt-mvc-structure :confused:.

ckb-Vision.thumb.png.724d6114ee873e09af2e8ab3fb0faad1.png

Link to comment
Share on other sites

hi all

and thank you for this masterpiece of a program! (windows program i have no idea how to use.. really)

 

i'm running a debian testing distro, and i'm writing because i had to uninstall the drivers since my mouse (a logitech g500s) would stop working if keyboard drivers run:

 

since mouse always worked i have written and executed the very same script published in this page since i thought it was some sort of clogging:

the mouse pointer got back to life, but after a while it stopped working.

 

After a while i have understood that it happens when i move the mouse "too" fast, so in order to be able to use linux i had to remove drivers:

any clue whether i can fix this?

Link to comment
Share on other sites

Hi Sinsofalion, You get the blank screen anytime your ckb client isn't able to connect to the kcb-server.

So please check: Is your Server installed properly (any error messages while running quickinstall)? Do you see it running?

"pgrep -l ckb-daemon" should give you something like 
1255 ckb-daemon

 

Are you able to connect via the server interface (/dev/input/ckb1/ files cmd or notify1)?

im not sure where to find quickinstaller. I've looked in the cab folder and in the mac os folder i open ckb and saw these's

 

qt.network.ssl: QSslSocket: cannot resolve SSL_set_psk_client_callback

qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_client_method

qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_client_method

qt.network.ssl: QSslSocket: cannot resolve TLSv1_1_server_method

qt.network.ssl: QSslSocket: cannot resolve TLSv1_2_server_method

qt.network.ssl: QSslSocket: cannot resolve SSL_select_next_proto

qt.network.ssl: QSslSocket: cannot resolve SSL_CTX_set_next_proto_select_cb

qt.network.ssl: QSslSocket: cannot resolve SSL_get0_next_proto_negotiated

qt.network.ssl: QSslSocket: cannot call unresolved function SSL_get0_next_proto_negotiated

No GPG detected, signature verification disabled

Downloaded new firmware list. 6 entries found.

 

thank you for your help , btw Im really not good at computer stuff.

Link to comment
Share on other sites

@Frickler:

Good writeup - should probably go into the main docs. One comment - your fixes were pulled into the main branch. Any particular reason your documentation tells people to check out the newfx branch instead?

@SicVolo: Tnx, but I think the documentation has soon overtaken. Please have a look on my branch 0e378ae.

The dialog based feature for programming the G-Keys looks quite nice. Needs some more days, then you will get a pull request.

If You want: I need tester (especially Mac users).

 

Why newfx? In the GIT diagram I can find a merge to branch testing by ccMSC on dec 11. and a merge testing to newfx on dec 31.

attachment.php?attachmentid=23857&stc=1&d=1452208940

I just downloaded the master branch and checked it: The error (SIGSEGV) is still there.

The network graphics shows that my branch should be in newfx.

But I think, I do not understand that graphic.

Or can anyone tell me, why there are two masters (one from sicVolo, one from deonspengler)???

ckb-Vision1.thumb.png.6bbcb32849dca6b26c4e5fb10254ffb8.png

Edited by Frickler
Link to comment
Share on other sites

im not sure where to find quickinstaller. I've looked in the cab folder and in the mac os folder i open ckb and saw these's

 

qt.network.ssl: QSslSocket: cannot resolve SSL_set_psk_client_callback

...

qt.network.ssl: QSslSocket: cannot call unresolved function SSL_get0_next_proto_negotiated

No GPG detected, signature verification disabled

Downloaded new firmware list. 6 entries found.

@sinsofalion: Did you install following the manual page at https://github.com/ccMSC/ckb ?

Can anyone who uses OS X help him? Looks like missing a package?

Sorry, can't check it for you, I don't have OSX.

Link to comment
Share on other sites

Now I had some time to implement the function of macro definition in the ckb driver.

You may have a first look at a short video tutorial (no sound because of my bad english :roll:): [ame=

]
[/ame]

And sorry for the typos in the demo.

 

What's going on now?

First I need some tester. If have developed and tested under linux mint 17.2.

Because I don't have a mac or some other hardware like corsair mouse, there might be side effects I couldn't find yet.

So if someone likes to try the new ckb installation, fell free to clone it from github,

e.g. via https://github.com/frickler24/ckb/tree/macro-client.0.0.1. Be aware to load the branch macro-client.0.0.1, the installation is still via quickinstall. No additional packages are used.

 

To our main developers: I would be grateful for hints from a code review. Please have a look on how I manage the on-off switching of buttons (directly, no signal/slot) or how I pull the macroumber and macropath through the class hierarchies :cool:. My last c++-pgm is more than 25 years ago...

 

One issue I have found with large macros: If the macro definition is langer than 27 or 28 chars, I get a spurious effect:

Some time the daemon brings just the chars after the first 27/28 to the caller.

Maybe some of you have an idea, where to look first (I assume the reading thread in the daemon, but I wonder why).

 

With macros shorter than 25 chars I had never that effect. And for the first time 25 is long enough for secure passwords...

Edited by Frickler
Link to comment
Share on other sites

Hi guys, I'm running OSX El Capitan and just recently got the M65 mouse. Downloaded beta v0.2.3. Everything works OK except the Back (4) and Forward (5) doesn't seem to work when browsing Safari or Chrome. It is binded correctly but it just doesn't do anything. Is anyone else having the same issues? Would really appreciate a solution.

Also is there a way to integrate mouse gesture into the key bindings?

Thank you.

Link to comment
Share on other sites

  • 2 weeks later...
I accidentally deleted the Trippy demo from my M65 mouse profile. How do I put it back? If I cannot put it back, what are the settings for Trippy so I can recreate it? Also, I am have the same issues with back/forward keys too. I use Firefox. Edited by etrigan63
Link to comment
Share on other sites

Fedora 23 Installation Instructions:

 

sudo dnf install qt5-qtbase libgudev1-devel qt5-qtbase-devel zlib systemd-devel gcc gcc-c++ zlib-devel redhat-rpm-config git

git clone https://github.com/ccMSC/ckb

cd ckb/

sudo ./quickinstall

 

Hope this helps.

 

The installation is a little different than previous Fedora versions with the introduction of dnf, and rpm-config requirement.

Edited by devz3ro
Link to comment
Share on other sites

Hi guys, I'm running OSX El Capitan and just recently got the M65 mouse. Downloaded beta v0.2.3. Everything works OK except the Back (4) and Forward (5) doesn't seem to work when browsing Safari or Chrome. It is binded correctly but it just doesn't do anything. Is anyone else having the same issues? Would really appreciate a solution.

Also is there a way to integrate mouse gesture into the key bindings?

Thank you.

 

I'm having this problem too. Any help would be great.

Link to comment
Share on other sites


×
×
  • Create New...