Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maybe Add Support For The Corsair Harpoon #596

Open
wants to merge 33 commits into
base: master
Choose a base branch
from
Open

Maybe Add Support For The Corsair Harpoon #596

wants to merge 33 commits into from

Conversation

JAMingMayo
Copy link

I am kinda new to GitHub so I am sorry if I am posting this in the wrong spot. I just wanted to get that out of the way. But I recently bought a new mouse (Corsair Harpoon) and after buying and bringing it home I remembered that I am on Linux.. So the lighting software doesn't quite work... So I found your software and tried it out but then I realized the mouse isnt supported yet. So I ended up here asking you this question. The mouse is a very popular mouse and it only has 1 light. So I figured it wouldn't be too hard to add support for it. I am sorry if my assumption is incorrect.

Thank you for your time :)

fleischie and others added 30 commits January 8, 2016 14:55
As mentioned in Issue #125 the `ckb` program lacks a way of inspecting
the available command line switches. A `--help` option was added to
dispaly and elaborate on the available options.

To streamline the experience and make the program anticipate further
command line options, implement the default QCommandLineParser
functionality as documented in
http://doc.qt.io/qt-5/qcommandlineparser.html
This is a new development branch for treating
the Macro keys G1-18 on the K95 RGB keyboard.
The branch depends on the newfx branch.

This first version is based on the BINDING-Tab
and includes a new tab (macro).
The tab is visible when on the binding site
a G-button is selected.

The text box on the left (macro key actions) can be edited.
When you click Apply, the contents of the text window
output in the console and delete the text box.

This doesn't use anything, but is a start.
This is the second development step for treating
the Macro keys G1-18 on the K95 RGB keyboard.

If you type a valid key sequence in the
Macro Tab -> Macro Key Actions,
select at least one G-Key and click Apply,
the macro definiton ist sent
to the keyboard and active.
The Macro definition is saved like all other bindings,
so with restart of ckb the macro definitions
are re-sent to the keyboard,
but you can't see the older definitions
in the ckb-panel yet.

Reset and Unbind are working properly,
Reset to Default is not tested in that commit.

Some debug outputs are still active (qDebug)
and some ToDos are marked in the source.
In addition to the Macro Key Definition of panel "Macro Key Actions"
also the readable form of panel "Macro Text" will now be processed.
In this version, the contents of Macro Text is still a sample text.
- Added textpane for Macro Comment
- Changes Tab sequence
- new class macroreader added
- added some signals to handle clear, start, stop
In this version, the following functions
are implemented and integrations-tested:

- Interface and buttons are stable
- Comment field in the user interface is still ingored
- Separate thread is implemented for reading the macro keys
- The strings read from Keyboard are converted for saving

This is currently missing:
- Status line / short instructions to use the panel,
- The macro comment
- More intensive tests
- Systematic documentation of the code
- Commenting on the modifications to the existing code
In this version, the following functions
are implemented and integrations-tested:

- Interface and buttons are stable
- Comment field in the user interface is still ingored
- Separate thread is implemented for reading the macro keys
- The strings read from Keyboard are converted for saving

This is currently missing:
- Status line / short instructions to use the panel,
- The macro comment
- More intensive tests
- Systematic documentation of the code
- Commenting on the modifications to the existing code
    In this version, the following functions
    are implemented and integrations-tested:

    - Interface and buttons are stable
    - Comment field in the user interface is implemented
    - some status line / short instructions to use the panel
      are integrated
    - a short video tutorial ist created
      https://youtu.be/qhrKP03_NrM

    This is currently missing:
    - More intensive tests
    - More systematic documentation of the code
    - Commenting on the modifications to the existing code
This branch sets up the ckb client (and one addition in ckb-daemon)
for self defined macros at nearly each key. With this enhancement
the 18 G-Keys at the K95 can be used.

It adds a new tab "macro" to the bind page as user interface
and includes all changes and additions to run the new tab
or do the communication with the daemon.

This version 0.0.1 handles the key macros in their primary layer,
so shift, alt, alt-Gr or meta keys are ignored.
It it tested with a K95 RGB on linux (mint 17.1 and 17.2) on
different machines.
Extra setting menu has got an additional checkbox.
While using large macro definitions, some opSystems lose characters.
That ist because the call traffic to the virtual keyboard input
seems to be too high.
Whith this checkbox set, you get a time delay in two stages:
- If more than 20 chars are sent, 30 microseconds after the 20th
and each following char
- If more than 200 chars are sent, 100 microseconds after the 200th
and each following char

If you don't have any trouble with lost chars,
let this checkbox in off-state.
For the combination of an K95RGB keyboard and the M65RGB mouse
there was an initialization bug.
The ckb client did send a "Macro clear" command to the driver
for the mouse. Because that is unneccessary, there ist no function
to handle this and the deamon got a SIGSEGV.

This patch fixes that bug.
The change in ckb client prevents issuing the command.
The Patch in ckb-daemon may be activated by setting INIT_ERROR
and only does some debug output.
When adressing a command pipe for the mouse
with a macro cmd, the daemon got a null-ptr,
because no macro functions are defined yet.
This fixes that effect.

Using "macro [<modifier>\+]+[<keyname>]+:<def>"
is now usable, when sending the macro definition
"manually" via echo to the command pipe for the keyboard.
…nctions

I noticed the SYN_events were never being posted during macro playback, which is possibly what caused the issue with some of the keys being dropped. It seems to work now even without the delays, but this will need further testing before I remove them.
They should in fact support this command, I'm not sure how it got left out...
This will search through the qt install directory created when `brew install qt5` has been run.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

10 participants