Giter Club home page Giter Club logo

ckb-next's Introduction

ckb-next: RGB Driver for Linux

irc.libera.chat #ckb-next

ckb-next is an open-source driver for Corsair keyboards and mice. It aims to bring the features of Corsair's proprietary CUE software to Linux operating systems. This project is currently a work in progress, but it already supports much of the same functionality, including full RGB animations. More features are coming soon. Testing and bug reports are appreciated!

DISCLAIMER: ckb-next 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, but with NO WARRANTY of any kind.

Screenshot

Major features:

  • Control multiple devices independently
  • United States and European keyboard layouts
  • Customizable key bindings
  • Per-key lighting and animation
  • Reactive lighting
  • Multiple profiles/modes with hardware save function
  • Adjustable mouse DPI with ability to change DPI on button press

Important information regarding macOS

macOS is no longer officially supported. For more information, please refer to issue #660.

General information

Most of the information can be found on ckb-next wiki pages.

Supported devices.

Linux Installation.

Troubleshooting.

Known Issues.

Contributing.

Community Pipe Animation Scripts.

Contact

Maintainers reserve the rights to modify and remove issues, pull requests and comments therein, that are denunciating, off-topic, harmful, hateful and overall inappropriate. Please be appreciative, humble and kind to each other.

ckb-next's People

Contributors

aerusso avatar audiohacked avatar ccmsc avatar clofriwen avatar danybmx avatar dkorkmazturk avatar fleischie avatar frickler24 avatar gravityfargo avatar halamix2 avatar hevanaa avatar jbendig avatar lassemacchiato avatar mattanger avatar mauriciofauth avatar mavchtz avatar michaelni avatar minneyar avatar ollpu avatar orsanz avatar penguineer avatar pjcv avatar ravenslofty avatar sicvolo avatar skandalfo avatar sometimescasey avatar stephenhouser avatar tatokis avatar urmamasllama avatar xrogaan avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

ckb-next's Issues

WIP: Introduce CMake buildsystem

Issue by light2yellow
Saturday Aug 19, 2017 at 01:58 GMT
Originally opened as mattanger/ckb-next#281


This pull request replaces qmake with CMake.

It is done due to multiple reasons:

  • possibility to work on ckb-next using IDEs (e.g. Clion, Xcode) and editors with CMake integration (e.g. Visual Studio Code) different from Qt Creator
  • lack of extensibility and features by qmake
  • macOS toolchain bugs of qmake that prevent patch-free compilation
  • CMake in 2017 has become a standard when speaking of build systems

So, below is (hopefully) a more or less complete description of the changes. Please, note that the majority of decisions were made by my own vision of project ecosystem and are based on some reasoning, having pros and cons. I am willing to read justified views as this is my first experience with CMake and, in general, with a project of this size. I learned a lot about CMake and init systems during this work and rewrote listfiles from scratch multiple times. So, every next sentence describing rationale should be read as if it would start with "IMO".

Executables

The names of binary executables were changed:

  • ckb -> ckb-next
  • ckb-daemon -> ckb-next-daemon

The above ones were promised in the 0.2.8 release note and finally create a distinction between ckb-next and ckb.

On the other hand, animations were shortened as the ckb- prefix for binaries would be inappropriate considering the above changes and ckb-next-<foo> would be needlessly long, as the binaries can only be called by the GUI and are installed under own separate directory:

  • ckb-gradient -> gradient
  • ...

Project structure

The layout of files has changed:

 tree -d .
.
├── cmake
│   └── modules
├── linux
│   ├── openrc
│   ├── systemd
│   └── upstart
├── macos
│   └── pkgproj
└── src
    ├── animations
    │   ├── gradient
    │   ├── heat
    │   ├── mviz
    │   ├── pinwheel
    │   ├── rain
    │   ├── random
    │   ├── ripple
    │   └── wave
    ├── daemon
    ├── gui
    │   └── resources
    └── libs
        ├── ckbnext
        │   ├── cmake
        │   └── include
        │       └── ckb-next
        ├── kissfft
        │   └── include
        │       └── kissfft
        └── quazip
  • cmake/modules contains CMake modules that are used in this project and can be reused later by other projects

  • linux and macos contain Linux-specific and macOS-specific files that do not make sense otherwise

  • src:

    • animations - obvious
    • daemon - obvious
    • gui - obvious

    I used short and self-descriptive names instead of targets for ckb-next-daemon and ckb-next because it makes the project more intuitive for a newcomer (own experience). The targets being named like that themselves raise questions for me, but that's another story.

  • resources - all files that belong on both Linux and macOS and to the GUI exclusively, but were cluttering the sources.

Speaking of resources, QRCs are now generated. For example, it is enough to add a png featuring a new device under resources and CMake will compile it into the GUI.

  • libs - our library and 3-rd party libraries
    • ckbnext: a prototype of ckb-next library. ckb-anim.h was removed from ckb-next and now spans its own library. CMake configs are installed as part of a normal installation, which allows downstream to use the library natively. All the downstream is supposed to do is simply find_package(Animation) in listfiles, receiving CkbNext::Animation IMPORTED target and #include <ckb-next/animation.h> in source files. Note that the names are a subject to change, because Animation is clearly ambiguous and should instead be at least CkbNextAnimation. However, it would be better to create a component-wise system (Qt5 is a good example), but it will take more time and effort. As this was created with extensibility in mind, a list of CkbNext:: libraries can be exported if ckb-next obtains more APIs to provide. In general, this is somewhat a WIP, but already perfectly usable.
    • kissfft - a library used to live inside ckb-mviz. It is unpopular, i.e. is not in package repositories, and only few source files are used, so it's better to ship it.
    • quazip - a library used to live inside ckb. It is popular, however, because so far there is an agreement to support Ubuntu 14.04 LTS which lacks QuaZip for Qt5 in the repositories, it is shipped together with ckb-next.

There is ckbnextconfig.h now. It is used to pass animation paths and define build-time "defines". For example:

+#include <ckbnextconfig.h>
//...
 QString AnimScript::path(){
-#ifdef __APPLE__
-    return QDir(QApplication::applicationDirPath() + "/../Resources").absoluteFilePath("ckb-animations");
-#else
-    return QDir("/usr/lib").absoluteFilePath("ckb-animations");
-#endif
+    return QString(CKB_NEXT_ANIMATIONS_PATH);
 }

Similar simplifications should be done in future to other OS-dependent files.

License headers

Most of the listfiles ship with a license header. As this PR will hang some time, I'll populate the rest of them. As I got a little bit carried, I populated few non-listfiles with licenses as well, e.g. kissfft library already contains proper headers and acknowledgements. The default GNU headers were altered: firstly, "GPL version 2 or any later" replaced with "version 2", secondly, the link links directly at GPLv2.0. Note that the headers for listfiles authored by me will be changed to BSD 3-clause and current ones are supposed to appear in .c[pp]/.h[pp] files in future. To learn more about open-source software licensing, see softwarefreedom's articles.

Compilation flags and build types

-Wall and -Wextra are essential flags and a list of other useful warnings was added on top of that for Debug build type. The developers should read the warnings and fix them with code and not by disabling them (except for some obvious false positive cases).

Current list of flags for almost all targets:

-fsigned-char
-Wall
-Wextra
-Winit-self
$<$<CONFIG:Debug>:-Wfloat-equal>
$<$<CONFIG:Debug>:-Wundef>
$<$<CONFIG:Debug>:-Wshadow>
$<$<CONFIG:Debug>:-Wpointer-arith>
$<$<CONFIG:Debug>:-Wcast-align>
$<$<CONFIG:Debug>:-Wstrict-prototypes>
$<$<CONFIG:Debug>:-Wstrict-overflow=5>
$<$<CONFIG:Debug>:-Wwrite-strings>
$<$<CONFIG:Debug>:-Wcast-qual>
$<$<CONFIG:Debug>:-Wswitch-default>
$<$<CONFIG:Debug>:-Wswitch-enum>
$<$<CONFIG:Debug>:-Wconversion>
$<$<CONFIG:Debug>:-Wformat=2>
$<$<CONFIG:Debug>:-save-temps>
$<$<CONFIG:Debug>:${opt_lvl}>

$<CONFIG:Debug> means the flag is enabled only with Debug build type. ${opt_level} is optimization level, expands either to -Og if compiler supports it, or -O0.

The default build type is RelWithDebInfo, however, for developers it is recommended to use Debug and for users it is recommended to use Release. List of additional flags appended by every build type:

CMAKE_C[XX]_FLAGS_DEBUG is -g
CMAKE_C[XX]_FLAGS_RELEASE is -O3 -DNDEBUG
CMAKE_C[XX]_FLAGS_RELWITHDEBINFO is -O2 -g -DNDEBUG
CMAKE_C[XX]_FLAGS_MINSIZEREL is -Os -DNDEBUG

Versioning

VERSION file was removed, instead a maintainer is supposed to increment ckb-next version in the main listfile.

Git is used to determine a more precise version with git describe. That's why all how-to documents mention git cloning. I highly recommend to stop advicing people to download a ZIP code archive instead of cloning as it leaves versioning in a useless state when it comes to anything but release builds. Every non-release build is enhanced with revision and commit. When the .git directory is missing the build is versioned with MAJOR.MINOR.PATCH numbers hardcoded in the main listfile.

See Maintainers wiki article for more details about versioning and what CMake/git treats as a new version number. It has not been updated to reflect CMake-specific changes at the moment of writing this PR yet, but inevitably will.

Documentation

README became very short and on the point, most of the subsections were moved to the wiki. The ones not edited are marked with (stub) in the naming. Regarding CMake, installation sections for OSes were rewritten. Full list of written articles:

These articles contain additional information not mentioned here and are considered as a part of the PR. macOS installer ships with much longer README version. This is something to generate in future from wiki articles. Nevertheless, documentation is still an open question in regards to everything but CMake. The only thing was done is relaxing README so that there's no need to pollute it even more with CMake information. Troubleshooting definitely needs a rewrite and the list of supported devices should be updated and enhanced with information linking to issues depicting current support status of each device.

Installation

Most significant achievement is the SAFE_INSTALL option. It guarantees few things (indepent on the init system: systemd, Upstart, OpenRC and launchd are supported, independent on the OS):

  • whatever the state of ckb/ckb-next GUI is, it will be closed before installation
  • whatever the state of ckb-daemon/ckb-next-daemon is, it will be properly terminated to release a device before installation
  • the daemon will be stopped and permanently disabled though a service file, if this makes sense to the current init system
  • ckb/ckb-next GUI autostart files will be removed
  • except the above none of the old ckb files will be removed except those which overlap (they will be overwritten)
  • the daemon will be started and enabled though a service file, if this makes sense to the current init system

All in all, SAFE_INSTALL is just perfect for instant reinstalls or lazy people that don't want to stop the services/don't know how to do it/don't know why to do it. Because ckb-next is still poor in distro-specific packages this is a great option for everyone who used to execute ./quickinstall. The existence of uninstall target is based off same considerations, although the latter is a bit limited currently in comparison to what SAFE_INSTALL can do.

SAFE_INSTALL has its tradeoffs. From CMake configuration time output:

Privileged access is required for operations upon the daemon at
configure time as it is owned by root. If this is unacceptable,
disable SAFE_INSTALL and prepare the filesystem manually.

So, one may have to enter a password requested by sudo. However, note that maintainers of distro-specific packages are supposed to disable this option and provide distro-specific ways to ensure the behaviour described above. For example, in Arch Linux pkgbuilds post_*() and pre_*() functions are used. Therefore a minimal example for package maintainers is:

cmake -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=/usr -DSAFE_INSTALL=OFF ..

See wiki for the whole list of options as it contains some important ones. For example, ckb-next follows GNU Coding Standards and by default the path to animations is ${CMAKE_INSTALL_PREFIX}/${CMAKE_INSTALL_LIBEXECDIR}/ckb-next-animations which results into /usr/local/libexec/ckb-next-animations by default.

Testing

Most work and time went into making auxiliary files flexible or figuring out why they don't work together. However, in the end it's all for the sake of outer simplicity. Because there are so many pieces to it and something is usually overlooked, I ask the community to test this as much as possible:

  • if you know CMake, review it. Describe what you like/don't like about they way it is implemented.
  • read the above mentioned wiki pages to get familiar with CMake options and commands to execute
  • try different Linux/macOS starting conditions: enabled daemon, disabled daemon, started daemon, stopped daemon, running GUI, GUI started at login etc.
  • try the above permutation in combination with different platforms and init systems. I have tested systemd on Manjaro-systemd, launchd on Hackintosh 10.12.6, Upstart on Ubuntu 14.04 and OpenRC on Manjaro-openrc.
  • proofread the documentation if it's incorrect or missing anything. All CMake options are gathered in the main listfile.
  • if you are a native English speaker or just decent at it, don't hesitate to edit language errors in the wiki on the above mentioned articles, if you have the access. If you don't, use IRC chat or the mailing list to contact someone who has it.

Some features have not been tested due to time restrictions, e.g. sanitizers.

Closes #32.

If something has been forgotten, don't hesitate to point this out.

CC @hevanaa, @mrueg as ones who will be directly affected by this. You might want to read only the "Installation" & "Testing" sections and then the wiki pages.


light2yellow included the following code: https://github.com/mattanger/ckb-next/pull/281/commits

Mouse not freezing in the background in World of Warcraft Window.

Issue by Alkanna
Monday Jul 24, 2017 at 20:16 GMT
Originally opened as mattanger/ckb-next#262


When I used a RAT5 Mouse (pretty much natively supported) and moved the camera around with right click pushed, it used to hide the cursor and let me move the camera around freely, spinning it around my character as many times as I would. Now with the Corsair Scimitar RGB and ckb-next (built the last version on Sierra with the workaround you pushed 3 days ago), let's say I move the mouse to the right to move the camera, well the mouse appears on my other monitor and once it reaches the right border of that monitor, it will stop, and I won't be able to move the camera anymore. If I move the mouse to the left to move the camera, once the mouse will (it's hidden) reach the left border of my screen, it will also stop, preventing the camera to move further.

This never happened with any other mouse I used on Sierra.

I usually play in Windowed (fullscreen) with VSync disabled, changing these settings around did not help.

Another way to explain it is that when I usually right click and drag around the camera, after moving around and letting go of right click, the cursor would appear in the same exact position I right click dat initially. With my current setup (Scimitar RGB) it actually moved the cursor in the background.

EDIT : Even when I am not running ckb, the problem is still here. Does that mean it's more of a hardware issue ?

Even more interesting : With the two mouses plugged in at the same time, works fine with the RAT5, running into the issue with the Scimitar RGB.

On waking from sleep: "no devices connected"

Issue by shibatan
Tuesday Feb 07, 2017 at 00:31 GMT
Originally opened as mattanger/ckb-next#67


K70 RGB LUX, Mac OS 10.10.5
Upon waking from sleep, the keyboard lights shine white rather than the set RGB configuration, and ckb does not recognize the device.
Upon restarting, the issue was fixed, but it does continue to happen every time the computer is woken from sleep with the keyboard connected.
Not sure if this is a known issue, but I figured I'd let you know.

Issue with windows freezing when using multiple input devices simultaneously

Issue by XtrmJosh
Friday Sep 15, 2017 at 18:04 GMT
Originally opened as mattanger/ckb-next#297


I don't believe this is an issue with ckb as I've seen very similar behaviour using a Razer Naga, as well as a Logitech G602. I'm not sure where the problem lies and in all honesty I suspect it will be within xserver, but I'm fairly confident that somebody here will have seen this issue, or will see it as soon as they go looking. Sadly, I don't think I'll get much of a positive experience trying to file a bug with xserver, so I came here first (after Ask Ubuntu guided me here).

I've made a video of the issue, can be seen here: https://youtu.be/UDOb0bTeW8g

The device which I'm using is a Scimitar RGB, in conjunction with a KBC Poker 3 (although I've tried a few other keyboards with the same result).

What I'm doing is repeatedly pressing 1 button on the keyboard and mouse at the same time. In the video above, you'll see I'm typing 'asd' repeatedly, whilst pressing the '3' button on the mouse, which is bound to F3 (have tried binding to the number 3, with the same result).

What's happening is that when both buttons are pressed at the same time, the window freezes for a few seconds (about 3 seconds, in the video), and input as well as output is frozen. Sometimes the freeze is considerably shorter, other times it's been up to 10 seconds.

macros and remapped keys

Issue by lsentkiewicz
Tuesday Apr 25, 2017 at 14:01 GMT
Originally opened as mattanger/ckb-next#164


macOS 10.11

  • Ctrl and Command keys are swapped.
  • G9 is a simple macro: Command + Tab (+lctrl,+tab,-tab,-lctrl).

Steps:
a) I have two spaces and each space contains an instance of WebStorm IDE.
b) When I press ctrl+~ it switches between WebStorm IDEs.
c) G9 (command + tab) should switch between tabs in a single IDE.

Bug:
When pressing c) the IDE windows are switches.
I think it invokes ctrl+tab and then cmd+tab. When I press G9 multiple times it starts working correctly.

Notes:

  • It always works correctly if I press cmd+tab instead of G9.
  • It occurs only with b) step.

License change due to violations

Issue by light2yellow
Thursday May 11, 2017 at 19:19 GMT
Originally opened as mattanger/ckb-next#187


As someone has mentioned, using GPLv2.0 we are violating:

  • Qt's LGPLv3 license
  • GPLv3 license in ckb-mviz
  • possibly something else too

This is due to the fact that GPLv2.0 is not compatible with (L)GPLv3(+). See the compatibility table.

Possible solutions:

  1. Convert GPLv2.0 into GPLv2+ by editing the license file - opensource.stackexchange answer.
  2. Upgrade to GPLv3 or GPLv3+.

As somebody else mentioned, we will require @ccMSC's direct approval, as he is the author of the major part of this software, and since GPLv2.0 is not compatible with GPLv3(+), we cannot make an upgrade ourselves and are trapped without a consent.

Second new firmware sometimes ignored

Issue by frickler24
Thursday May 25, 2017 at 21:04 GMT
Originally opened as mattanger/ckb-next#205


I think it is really not urgent, but just to remember if all other bugs have been fixed...
Case:

If...
you have more than 1 device controlled by ckb-next...
and for at least 2 of them new firmware is available...
and you say "no" to the first popup window "There is new firmware...",
          then the window for the second device (and maybe others) does not pop up.

Coding style

Issue by ZirconiumX
Friday Jul 28, 2017 at 18:48 GMT
Originally opened as mattanger/ckb-next#265


(Irrelevant bug list is irrelevant.)

As discussed in the IRC, it might be useful to have a unified coding style - inspired by https://github.com/dolphin-emu/dolphin/blob/master/Tools/lint.sh we could set a shell script as a Git pre-commit hook.

To do that, we need to decide on a coding style.

It seems that ccMSC's coding style:

  • 4 space indent.
  • uses if(condition){ (if without spaces), similar for functions.
  • functions have their starting brace on the same line as the function declaration.
  • case is not indented after switch.
  • no line length limit.

I can try to get a clang-format style for this, or we can standardise on a preset style that already exists and is used.

macOS Macros

Issue by Aeirex
Thursday Jun 22, 2017 at 06:21 GMT
Originally opened as mattanger/ckb-next#239


Macros do not work in macOS. They worked fine in Linux.

By not working, I mean they don't fire when I bind them to my sidebar keys in Corsair Scimitar mouse.

The daemon claims 0 endpoints

Issue by light2yellow
Tuesday Jul 11, 2017 at 09:25 GMT
Originally opened as mattanger/ckb-next#254


Discussion moved from #247.

@gkatsiapis:

Uppon boot (and login screen) neither my K70 LUX RGB is recognised, nor my M65 Pro RGB. Same with adding cmdline parameters.

If I unplug my keyboard and re-plug it after 30+ seconds it gets detected but this is not the case with my mouse (though it randomly works sometimes).

ckb-dev-detect-report (6).gz

@tatokis:

Ιούλ 11 00:54:00.330106 darkdog-desktop ckb-daemon[886]: [E] os_setupusb (usb_linux.c:573): Unable to read endpoint count from udev, assuming 0 and reading >><< or device is in BIOS mode
That doesn't sound good, it should be something like
Ιούλ 11 08:04:53.428185 tatokis-PC ckb-daemon[11292]: [I] claiming interfaces. name=Corsair K70 RGB Gaming Keyboard , firmware=0205; Got >> 3<< as ep_str.

I think we may have come across a regression. I'll see if I can find anything out.
@gkatsiapis Can you check if the mouse by itself is recognised (without the keyboard plugged in).
Also, does your keyboard happen to be in BIOS mode? If so, switch it to one of the numerical poll rate options.

@gkatsiapis:

@tatokis uppon boot, mouse is recognized on login screen BUT since I log it does not. It shows on lsusb command but it's not working.

My keyboard is set on Poll Rate 1 and both mouse and keyboard are working under win 10 :(

Strafe RGB sidelightToggled issue

Issue by jp94
Thursday Mar 09, 2017 at 17:16 GMT
Originally opened as mattanger/ckb-next#107


On ckb start, sidelight is on regardless of user settings. This also overrides 0% brightness setting.
If sidelight is toggled on while brightness is at 0%, interacting with GUI to toggle on/off sidelight will not work until brightness is adjusted above 0%.

I've tested on master and testing branch. This issue existed since /ckb branch, but I didn't bother to bring it up until now.

CKB-next doesn't remember settings after restart

Issue by MaxHaydenChiz
Saturday Feb 04, 2017 at 20:25 GMT
Originally opened as mattanger/ckb-next#61


I'm using Ubuntu with a K95 RGB and upgraded to CKB-next to try to fix a problem that CKB was having, but it only partially fixed my issue.

After quitting CKB-next and restarting it (or rebooting or logging out and back in), it always sets the keyboard back to the CKB demo profile. Unlike with the original CKB, it still remembers my custom profile, but I have to select it manually and I can't seem to get rid of or change the demo or HwProfile1 (they just come back like they were before). Furthermore, the custom profile loses all the animation settings and only remembers key colors.

What do I need to do to figure out why this is happening and help get it fixed? I would think it would be a permission issue on some configuration file or something else that is keeping it from saving changes, but I don't know enough about the software to know what to look for.

Add "Alt Gr" (right alt) modifier key

Issue by mgcrea
Saturday Oct 21, 2017 at 19:32 GMT
Originally opened as mattanger/ckb-next#318


Would be great to be able to change the alt key and alt gr (right alt) independently.

In my case, I want the alt key to be mapped to the command key but I need the right alt key to remain an alt key (for curly braces, etc.).

Thanks!

Back and Forward buttons on mice not working

Issue by paraschadha
Sunday May 14, 2017 at 21:40 GMT
Originally opened as mattanger/ckb-next#192


Back and forward buttons are not working (special buttons 4 and 5) in Mac OS.

If it isn't possible to get this running on mac (at least right now), does anyone have any workaround suggestions? Thus far the only functional solution I have is running is via an apple script in the program tab on keypress:

Back:

osascript -e 'tell application "System Events" to keystroke "[" using command down'

Forward:

osascript -e 'tell application "System Events" to keystroke "]" using command down'

OS: macOS Sierra
Device used: M65 Pro

Corsair M65 RGB Pro never detected on startup

Issue by Misklahr
Tuesday Sep 26, 2017 at 06:58 GMT
Originally opened as mattanger/ckb-next#302


Bug report

  • Yes
  • No

Source

Manually build from master branch: d65d782 / Latest pkg file

What is the program's current behavior?

When starting the system, the mouse is not detected.

What is the expected behavior of the program?

The mouse should be detected.

Any other notes & comments?

The only way to fix this is to install the drivers with the pkg file, then it works to install the drivers manually again.
I think this might have to do with the fact that I'm plugging the mouse into my monitor, since this is the only place I have the "older" USB ports.
The monitor is plugged in to my MacBook Pro via USB type C and does not show anything at startup until I log in, the mouse doesn't work until I log in as well.

Edit:
I've noticed that if I turn off my monitor before startup, and turn it on once I've logged in, the mouse sometimes (rarely) is detected.

Caps Lock won't unlock from Corsair K65 RGB

Issue by Donzap
Friday Nov 17, 2017 at 10:09 GMT
Originally opened as mattanger/ckb-next#340


MacOS Sierra v10.12.6
Last ckb-next binary download
Corsair K65 RGB
Corsair M65 PRO RGB
Macbook Pro 15" Touch Bar

Lighting and remapping works like charm, actually some weird stuff when changing active window or hitting interface buttons in mac, don't know if really an issue or is something like a placebo effect since I recently installed ckb-next, I will investigate further.

Hitting Caps Lock on K65 turns on caps lock. The keyboard light on the K65 and on the mac keyboard both turn on. Pressing caps lock further in K65 won't turn caps lock off however. But pressing it on mac's keyboard will turn caps lock off but not the light in K65. Is like a two point room light switch with bad wiring.

Exact like in #158 but they didn't really know how they fix it.

Thank you!

Ubuntu Unity login screen freezes on startup

Issue by HeroCC
Thursday Sep 14, 2017 at 22:50 GMT
Originally opened as mattanger/ckb-next#296


General information

Source

Cloned from github and ran `./quickinstall' (currently d65d782, also tested on a 0.2.7-beta version)

Logs & crash reports

Log of dmesg: https://pastebin.com/GRGA4j5D
Ckb-dev-detect-report: https://mega.nz/#!w9IECbZa!vGtHhoF1HTfgN73AxW5RHQlz8HM23o4_HBxTBFEJ184

What is the program's current behavior?

Upon starting the computer, the (Ubuntu 14.04) login screen immediately freezes. No wallpaper is loaded, the background is purple with white dots, and I cannot click anything / use the mouse. Attempting to type doesn't do anything. A workaround is to press CTRL+ALT+F2 to open a new terminal, run sudo service ckb-daemon stop && sleep 30 && sudo service ckb-daemon start and switch back to the desktop once the keyboard starts responding.

What is the expected behavior of the program?

The login screen should work as normal, not frozen on boot

Other Information

I don't believe I updated anything before this started happening (I may be wrong though), and I am using my keyboard and mouse through a USB 3 hub if that makes a difference.

I cut out a bunch of the template ticket info that didn't apply, but if you need something I missed let me know

Keyboard lower volume with each key hit.

Issue by zagazao
Friday Oct 27, 2017 at 11:56 GMT
Originally opened as mattanger/ckb-next#320


Hello,

i have the following bug:

On each key hit the program lowers my volume.

This happened after I lowered the volume with "fn" and "F7" and pressed an arrow key while the volume display was still up.

The bug disappears after stopping ckb process. Restarting ckb restores the bug.

Setup:

Program: ckb-next v0.2.8
Keyboard: Corsair Strafe RGB Silent.
Kernel: 4.4.0-97-generic
OS : Ubuntu 16.04.3 LTS

If you have any advice for me or need further information, hit me up.

import/export

Issue by dkuida
Sunday Feb 12, 2017 at 20:40 GMT
Originally opened as mattanger/ckb-next#74


I consider creating the support for that, but before I start wanted to make sure if there is a magor blocker for that to work ? besides the tie needed I mean

Mouse button mapping on Linux (wrong numbers, cannot map to horizontal scroll)

Issue by denilsonsa
Sunday Nov 26, 2017 at 09:13 GMT
Originally opened as mattanger/ckb-next#343


Bug report

General information

Summary

The mouse button numbering in ckb-next interface does not match the actual X11/xinput buttons. In addition, it is impossible to map buttons to horizontal scroll.

X11 buttons

You can view the button numbers of each click by running xev -event button and then clicking on that window.

These are the button numbers I know of:

  • 1, 2, 3: Left, middle, right buttons
  • 4, 5: Scroll up/down
  • 6, 7: Scroll left/right
  • 8, 9: Navigation back/forward

What is the program's current behavior? What's expected?

Button numbering

At Special button, it shows: 4 (Back), 5 (Forward), 6, 7, 8. However, when testing using xev, the actual buttons reported in each mouse click are in fact 8, 9, 10, 11, 12. This means the numbering is off by four.

I can understand the UI uses these numbers because of cross-platform reasons, or because those numbers are used somewhere in a low-level layer. However, for the end-user, these numbers are confusing, because they do not match whatever is reported by X events.

What do I expect? Either one of these two solutions/behaviors:

  • Show the correct number (i.e. 8…12), and only that number.
  • Show two numbers for each option. Like this example: 4 (Back) [X11 8]

I don't know if this applies to other platforms (such as Mac), so maybe this fix should only happen on Linux.

Horizontal scrolling

The current UI only shows two options for Wheel: Up and Down.

I wanted to remap the side buttons of my mouse to horizontal scrolling. Since I knew the X11 buttons for that (6, 7), I tried remapping them to 6, 7 in the UI. However, due to aforementioned inconsistency, it did not work (the actual buttons became 10 and 11).

Then I looked again at the UI, and paid more attention to it, and realized it is currently impossible to remap buttons to horizontal scroll.

If the hardware/firmware supports that, I would like to see a way to remap buttons to horizontal scroll in the UI. I don't know if that is possible, I have this mouse for a couple of days, and I haven't even used the CUE tool yet.

Workaround

I tried to work around it by remapping the X11 mouse buttons using xinput, with a command similar to xinput set-button-map "INSERT_MOUSE_ID_HERE" 1 2 3 4 5 6 7 6 7. After that, xev correctly reports buttons 6 and 7, and I could do horizontal scrolling on Gimp. For some reason, it did not work on Chrome, but I haven't investigated nor tried to restart it yet.

Two issues?

Well, I think these two issues are closely related. That's why I reported them together. If later we figure out they are quite different, we can split them.

K55 RGB support

Issue by DGxInfinitY
Wednesday Aug 16, 2017 at 04:27 GMT
Originally opened as mattanger/ckb-next#277


I just got both and was wondering if I could maybe help in development and what plans are in the works for these pieces of kit.

can't record a keybind in Discord on Mac

Issue by rkitover
Saturday Oct 14, 2017 at 11:24 GMT
Originally opened as mattanger/ckb-next#315


ckb-dev-detect-report.gz

usb_bus_probe.txt

What is the program's current behavior?

Cannot make a keybind in Discord on Mac, when I press "record keybind" and then press a key, nothing happens.

What would you like it to do instead?

Be able to use Push-To-Talk with the keyboard in Discord.

Any other notes & comments?

I can record a keybind with my other keyboard (that is also plugged in at the same time) but I haven't tried using it yet because I'm new to Discord and haven't found any voice chats yet.

Bug report

  • Yes

General information

Source

built manually using ./quickinstall

Branch

master

K70 LUX doesn't work in Linux unless UEFI setup was started before

Issue by berolinux
Tuesday Oct 31, 2017 at 18:43 GMT
Originally opened as mattanger/ckb-next#327


What is the program's current behavior?

The keyboard works only if the computer has been in UEFI setup mode before booting Linux.
Booting into Linux unattended results in the keyboard not working.
The keyboard isn't set to BIOS mode (and strangely enough still works in UEFI setup).

What would you like it to do instead?

Make the keyboard work unconditionally.

General information

Source

Built from source, most recent commit da28864

Branch

master

ckb-daemon hangs on exit/shutdown

Issue by hexadecatrienoic
Sunday Nov 26, 2017 at 23:41 GMT
Originally opened as mattanger/ckb-next#344


Running ckb-next-git 1:0.2.8.r226.g79987f8-1 from the AUR, on Arch 4.13.12-1-ARCH.

When ckb-daemon exits, it hangs for around 30 seconds before actually exiting. I have attached the output from sudo strace ckb-daemon |& tee ckb-daemon-strace.out here. The process was killed by sudo pkill ckb-daemon in another terminal, and this was all run with ckb-daemon.service stopped. The exit hangs on line 4120, at ioctl(3, USBDEVFS_IOCTL before printing the rest of the line. The rest of the output is printed immediately after it finishes hanging. I can provide more information if required.

modifier keys become stuck

Issue by MatkoUSKO
Tuesday Aug 29, 2017 at 20:38 GMT
Originally opened as mattanger/ckb-next#287


ckb-dev-detect-report.gz

I am running latest version of ckb with k70rgb keyboard (alongside with corsair harpoon mouse). OS: macOS Sierra 10.12.6

Sometimes when i press and release modifier keys, they become "stuck" and my computer "thinks" they are still pressed (and not released). This usually happens when I am pressing them with mouse buttons (I have mapped some shortcuts e.g. when i press shift and one of mouse buttons I move one space left or right. This is handled by Better Touch Tool software).

It usually doesn't matter if I hold shift for longer time or not. I can recreate this issue in a few tries and it seems to happen randomly.

New handling for debug and status information

Issue by frickler24
Tuesday Apr 11, 2017 at 20:31 GMT
Originally opened as mattanger/ckb-next#149


This is follower of #147 as @light2yellow recommended

I did some experiments with qDebug.
Since Qt 5.6 they implemented a verbosity-flag. Now you can

  • decide which function you use (qDebug, qWarning, qCritical, qFatal)
  • give a verbosity information with it:
qDebug().setVerbosity(7) << "This is a very critical issue and should be displayed in any case!";
qDebug().setVerbosity(0) << "If a user wants to read this stuff, he may select this.";

Standard Qt verbosity is 2.
In the next days I will post a skeleton how I think we may use this.
Like this article describes some aspects of it.
Or has someone experience with it?

[Ubuntu 17.x] Randomly keys don't work as expected.

Issue by varrix
Sunday Jul 23, 2017 at 17:24 GMT
Originally opened as mattanger/ckb-next#259


Devices information

My ckb-dev-detect results: https://gist.github.com/varrix/17de04becbc0fd40b1275b4e1578ae97


Bug report

  • Yes
  • No

leave empty if you have no bug reports

General information

Source

[ubuntu] I git cloned the repository somewhere in my ~ and proceeded to quickinstall. It didn't recognize my keyboard for a while (even after a couple restarts/re-logs/re-plugging it in) but eventually worked after another quickinstall executed on-top of the current installation.

What is the program's current behavior?

Currently, my keyboard will randomly go from working as expected to simply pressing particular keys will trigger DE features. So for example in gnome, for some reason after installing ckb-next the key v will go from actually displaying the letter v (as expected) to dropping down my notifications bar. Another example is the letter a. Going from displaying the letter a to opening my dashboard- and so on. Not entirely sure what you call those, I've never encountered this before installing ckb-next. I have two keyboards plugged in to ensure when ckb-next craps out I can still use my system, but it actually ends up applying to both keyboards and I can fix this via re-logging or restarting. Which I can then assume simply restarting the daemon will do the trick but since I can't use my keyboard(s) properly and don't have a click-to-launch script restarting it- I can't actually do so via my terminal. Next best bet is to re-log/restart.

What is the expected behavior of the program?

Never switch between regular keystrokes and odd DE keystroke triggers.

Any other notes & comments?

Figured I'd dump a bit (if not too much) of info on my system if it can help in any way whatsoever.

  • OS: Ubuntu 17.04 x86_64
  • Model: MS-7821 1.0
  • Kernel: 4.10.0-28-generic
  • Shell: bash 4.4.7
  • DE: GNOME
  • WM: GNOME Shell
  • Terminal: gnome-terminal
  • CPU: Intel i7-4790K (8) @ 4.4GHz
  • GPU: NVIDIA GeForce GTX 970
  • Memory: 15991MiB

Buttons toggling

Issue by nazar-pc
Friday May 26, 2017 at 16:20 GMT
Originally opened as mattanger/ckb-next#207


On M65 Pro RGB I have a sniper button, but in a game I play it is sometimes necessary to hold this button for an extended period of time.
Since button is very hard to press comparing to other buttons it is very inconvenient to keep it pressed for a long time.

On Windows Corsair's app allows to specify buttons toggling, namely I can remap Sniper button to toggle itself, so that I can press it once in order to enter Sniper mode and second time to go back.

ckb-next doesn't have this at the moment, the only closest thing I've got is switching profiles, which does work to some extent as workaround, but not flexible enough.

Volume controls not working in Ubuntu 17.10

Issue by adplax18
Monday Nov 13, 2017 at 21:56 GMT
Originally opened as mattanger/ckb-next#339


Bug report

  • [ X] Yes
  • No

leave empty if you have no bug reports

General information

Source

I built this manually using the quickinstall script

Branch

master

Logs & crash reports

You should upload:

  • Linux: ckb-dev-detect-report.gz is enough
  • macOS:
    • the output of ckb-daemon:
    $ sudo launchctl unload /Library/LaunchDaemons/com.ckb.daemon.plist
    $ sudo /Applications/ckb.app/Contents/Resources/ckb-daemon
    • the output of ckb (open another terminal):
    $ sudo killall -9 ckb
    $ /Applications/ckb.app/Contents/MacOS/ckb

What is the program's current behavior?

The volume up/down and mute keys do not do anything.

What is the expected behavior of the program?

The volume roller and mute key will control the volume

Any other notes & comments?

ckb-dev-detect.zip
ckb-dev-detect.zip


Something else

if your issue is about something else, try your best to describe it here, otherwise leave empty

Suggestion on a Light Management only version.

Issue by owenzhao
Sunday Oct 29, 2017 at 02:48 GMT
Originally opened as mattanger/ckb-next#323


My K65 RGB works perfectly with Karabiner-Elements on macOS High Sierra 10.13. F1-F12 Key works the same as a Magic Keyboard. The only existing issue is the light part.

Maybe you can use release a ckb-next just for the light management. I used to use CapsLock key to switch the light of A-Z. Now that is the only needs from ckb-next.

Incorrect key mapping in mviz

Issue by pseudoArchaea
Monday Apr 10, 2017 at 00:10 GMT
Originally opened as mattanger/ckb-next#143


Using the latest git build - the music visualizer isn't working. I can see in pavucontrol that the fallback device does have sound coming out of it(I can hear that after all), but the keys are all white.

I tried using the default animation settings and I tried messing with them too to no avail.

Is this not supposed to be working yet or am I doing something incorrectly?

Mouse jumping to the top left on click and hold

Issue by snowcamo
Tuesday Feb 28, 2017 at 02:31 GMT
Originally opened as mattanger/ckb-next#93


I've recently uninstalled ckb, because too often my mouse would jump to the very top left corner of my screen when I would click and hold. I'm not exactly sure why this problem occurs. Sometimes changing my USB ports helps, sometimes it does not go away. I'm not sure if this is how related or not this is to the actual issue, but a trend I noticed was, if I left my mouse unplugged for a while and then replugged it would function correctly at a higher percentage rate. I am using Sierra 10.12.2 on a hackintosh. I'm pretty sure the issue is not hackintosh related, because none of my other USB devices have issues. I would be completely willing to reinstall ckb-next and try and do some trouble shooting if I could do anything to help. K65 mouse, K95 keyboard. Thanks!

CKB Next App with VoiceOver Accessibilities on MacOS

Issue by BambooSnPandA
Sunday May 21, 2017 at 14:21 GMT
Originally opened as mattanger/ckb-next#199


Hi,

I have been using CKB for a while now, but just recently went through the ckb app, and found out that it isn't fully accessible with VoiceOver.
The VoiceOver cursor doesn't move everywhere where it needs to, and the radio buttons can't be heard by VoiceOver.

If anyone could possibly help out with this, would be greatly appreciated.

Move ckb-animations to /usr/libexec

Issue by mrueg
Monday Nov 27, 2017 at 23:56 GMT
Originally opened as mattanger/ckb-next#348


Bug report

  • Yes
  • No

General information

ckb-animations were installed to /usr/bin, now they are installed to /usr/lib.
mattanger/ckb-next@f347e60#diff-a638147988397087db799b663c7a6616

What is the program's current behavior?

Installs ckb-animations to /usr/lib

What is the expected behavior of the program?

Install ckb-animations to /usr/libexec (this seems to be a more natural place and avoids issues with installing it into a hardcoded /usr/lib which could include 64 bit (then it should be installed to /usr/lib64) or 32bit libraries on some systems.

Any other notes & comments?

See: https://refspecs.linuxfoundation.org/FHS_3.0/fhs/ch04s07.html

Binding animation to a key should also send that key to the app [Feature request]

Issue by Extarys
Saturday Sep 09, 2017 at 02:38 GMT
Originally opened as mattanger/ckb-next#291


Feature request

  • Yes

What is the program's current behavior?

Tab "Binding" -> Animation -> Start animation on keypress
The animation is played but the key is not triggered.
Exemple:
I assigned an animation to a letter "R". The animation is played when I press it but on the address bar I don't see the R.

Those are radio button so when selecting animation the key binding for "keyboard" R" disappear. It isn't probably not implemented too so...

What would you like it to do instead?

Add the possibility to play an animation when a specific key is pressed and print the key.
Exemple: I assigned R to an animation called Ultimate that bring the keyboard red. It should also send that I pressed R to the program or game.

Any other notes & comments?

Maybe it's there somewhere but I didn't find it. It would be nice for MOBA (League of Legend and Heroes of the Storm)

Thanks!


General information

Branch

newdev

(BTW I will buy the glaive too, thansk for the awesome driver!! <3)

Strafe RGB macros set vol up/down randomly

Issue by rm-root
Friday Nov 10, 2017 at 15:01 GMT
Originally opened as mattanger/ckb-next#336


I'm on Fedora 26, ckb-next v0.2.8, Strafe RGB (2.05 fw) + M65 Pro RGB (2.06 fw). Systems and firmwares are all updated. Sometimes, after I use a macro, when I press almost every key, it prints itself and sets volume up/down randomly more then one time per second, so keyboard and volume become uncontrollable. Does Strafe RGB have a controllable BIOS mode (the keyboard does not have any front / back key for bios mode)? Is this a bug?

Macro not recording propely.

Issue by AleKrabbe
Sunday Mar 26, 2017 at 02:59 GMT
Originally opened as mattanger/ckb-next#121


I have a Corsair Scimitar, I was trying to associate the 7 key of the mouse numpad with the action 'alt + 7', however when I hit record nothing that I type on the keyboard is recognized only mouse buttons, also if I try to hit the stop button nothing happens, it only stops if I exit out of ckb-next or click insanely fast multiple times on the stop until it finally stop recording. How would I got about associating commands like "MODIFIER + KEYPRESS" to any of the mouse buttons? What I'm really trying to achieve here is to be able to rate songs playing on Rhythmbox with the mouse numpad, so I have a custom keyboard shortcut setup to "alt + 7" that runs the follow action "rhythmbox-client --set-rating 5", if "alt + 7" is pressed it works, so I would like to execute "alt + 7" with the mouse button.

Random SIGSEGVs (QSocketNotifier::setEnabled())

Issue by fgblomqvist
Sunday Jan 29, 2017 at 20:24 GMT
Originally opened as mattanger/ckb-next#47


This error happened in the same way in the original ckb as well (the latest one available there). Upgraded to ckb-next last week (like Jan 26) but it didn't go away.

Let me know if there are any logs I can provide you with. It just happens randomly, but every day for sure.

Testing and validation needs better automation

Issue by linjer
Monday Mar 27, 2017 at 16:17 GMT
Originally opened as mattanger/ckb-next#126


After following issue #29 , it looks like we need people to perform certain manual tests before we are confident enough to merge PRs.

This may be easier to address with Travis + testing. What is the general status of this project in that regard?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.