An adaptive keyboard RGB controller that changes the keyboard's appearance to display user-defined layouts depending on both which software is in focus and user keypresses, making remembering keybindings and shortcuts easier. Or mimics the average screen colour for an immersive media / gaming experience.
This software is not official software and therefore is not supported by the manufacturer nor the hardware in any way. As the software interacts directly with the hardware using reverse engineered protocols, there is a risk of damage. Though the software has been used and tested, these methods may not have been extensive. No warranty is provided, especially for hardware damages, for using this software
No irreversible damage has occurred during development or testing, but discretion is still advised.
Application\
contains the C# WPF Application Project. This is the main project.kym-Library\
contains a C++ Dynamic-link Library Project which is used by the main application. The application will not function without this.Tests\
contains an NUnit Tests project for automated testing of some of the application's functionsexamples\
contains some example layout files.
- Tecware Phantom RGB ISO 105-key
0x652f
In theory the software should work with other keyboards with VID 0x0c45
, but has not been tested on any beyond the above list.
If your device is not listed, but works with the software, please do contact me to help expand the list.
Pre-built Windows binaries for both 32 and 64-bit systems are available here. However, the source code is available to build, as explained below.
- hidapi is required.
Static library builds for Windows (both
x86
andx64
) are included and can be found in:\kym-Library\dependencies\hidapi
Official (dynamic) releases can be found here.
-
ColorPicker is required. Is available via a NuGet package.
-
System.Drawing.Common is required. Is available via a NuGet package.
Both the application and C++ library are projects under a single Visual Studio solution and so can easily be built using VS, as it should handle the whole process for you. If however it fails, or should you wish to build the project independently, the steps to install are:
- Ensure the prerequisites are met
- Set
Solution Platforms
(Visual Studio taskbar) andPlatform target
(Keymeleon.csproj
) to eitherx64
orx86
. These must match. - Build
kym.dll
from\kym-Library
- Build
Keymeleon.exe
from\Application
- Move
kym.dll
into the build location of the application.
Optional (but advised):
- Move
examples\Default.base
(and any.layer
files you wish) intoBUILD_LOCATION\layouts
The application will only work on Windows devices. However, the C++ Library should work on other platforms, provided the correct version of hidapi is present.
Run the executable to start the program. When running for the first time, the editor and settings menu will open, allowing you to enable startup, etc. To use the editor, simply select the layer you wish to edit in the top left (base, application, hotkey), select the colour using the tool in the top right, and click on the key buttons to colour them. (When creating a new layer, the editor will only allow you to select applications which are currently open.). Keys can be set to automatically chose their colour based off of the colour of an area of the screen. These can be set and altered from the autokey editor menu, which is accessible from the primary interface (or Ctrl + Alt + K
when Keymeleon is closed).
Upon closing the editor, or on subsequent launches, the program will automatically detect the keyboard and begin responding to window changes as described by any .layer
and .conf
files in the application's layouts/
folder.
You can reopen the editor via the shortcut Alt + K
, or via the system tray icon (double or right click).
From the tray icon's right-click context menu you can switch between Mode 1 (user-defined layouts) and Mode 2 (average screen colour).
- Running an
x86
build on ax64
machine can lead to unusual application names (i.e.Microsoft Visual Studio 2022
will just be seen asdevenv
). - The same is true if trying to monitor an elevated application without Keymeleon being elevated.
- Mode 2 / AutoColour keys will only for the primary screen (no support for additional monitors).
- Mode 2 / AutoColour keys will not function for applications that use DRM capture-prevention (such as Netflix).
- As macros are currently unsupported, any existing macros will remain on their current profile. Keymeleon makes use of all 3 of the keyboard's profiles to 'cache' layouts, and minimize writes to the device's flash, making it unclear which profile is currently in use, and therefore which macros are enabled at any given time. Currently, the best solution to this problem is to (using the official software) set all profiles to have identical macro layouts.
This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
See LICENSE.md for details.
- dokutan's rgb_keyboard project, making it a lot easier to understand the data signals used to control the device
- Microsoft's Visual Studio Image Library 2022