monkeypaint 1.0.2

Creator: bradpython12

Last updated:

Add to Cart

Description:

monkeypaint 1.0.2

Monkeypaint
What Monkeypaint Does
Monkeypaint writes lighting profiles for the Kinesis Gaming Freestyle Edge RGB keyboard. You configure key groupings, and optionally a base color, and Monkeypaint will generate an entire color palette that you can save directly to the keyboard and load instantly.
Why I Wrote Monkeypaint

More seriously: I like changing my keyboard's colors occasionally, but Kinesis' own software is tedious to use, and I have to boot to Windows to use it. Monkeypaint lets me change colors whenever I want with a quick command, and the results usually look nice. (Sometimes I get a bad combination of colors with my key groupings, but then I just run it again to get a different palette.)
Credit Where Credit Is Due
The job of actually generating the color palette from a seed color is done by The Color API by Josh Beckman. Monkeypaint just reads your configuration to ask The Color API for a palette that meets your needs, and then writes it in the keyboard's profile format.
Installing Monkeypaint
Monkeypaint requires Python 3.9+ and a few Python modules. After you install Python 3, run:
python3 -m pip install --user monkeypaint

Configuring Monkeypaint


Create the Monkeypaint configuration directory, if it doesn't already exist:



Operating System
Monkeypaint Configuration Directory




Linux
$HOME/.config/monkeypaint


macOS
$HOME/Library/Preferences/monkeypaint


Windows
%APP_DATA%/monkeypaint





Copy config.ini to that configuration directory.


Open the copy of config.ini in your configuration directory in your editor, and update it following the comments.


Key Names
You define a group of keys by writing them as a list, one per line, all in one section of your configuration file. For example:
[Group 1]
esc
f1
w
a
s
d


For most keys, the name you use in configuration is the name that's printed on the keycap, without any spaces or capitalization (e.g., prtsc, del, pgup, pgdn). For keys with symbols on them, use the following names:



Key Symbol
Configuration name(s)




Kinesis logo
hotkey0, hk0



hotkey1, hk1



hotkey2, hk2



hotkey3, hk3



hotkey4, hk4



hotkey5, hk5



hotkey6, hk6



hotkey7, hk7



hotkey8, hk8


` ~
grave, tilde


- _
dash, hyphen, hyph


= +
equal, equals, eq


[ {
openbracket, openbrace, obracket, obrace


] }
closebracket, closebrace, cbracket, cbrace


\ |
backslash, bslash


; :
colon


' "
quote, apostrophe, apos


, <
comma, com


. >
dot, period, per


/ ?
forwardslash, fslash



backlight, light, led


Windows logo
windows, win



up, uparrow



left, leftarrow



down, downarrow



right, rightarrow



For keys on both sides of the keyboard (Ctrl, Alt, Shift, and Space), you can prefix the name with left/l and right/r to specify the one you want:



Name for both keys
Name for left key
Name for right key




ctrl
lctrl
rctrl


alt
lalt
ralt


shift
lshift
rshift


space
lspace
rspace



For convenience, Monkeypaint recognizes names to address common sets of keys. You can write one of these set names in your configuration just like you would write a key name, and it includes all the keys in the key grouping:



Set name(s)
Description




actions, action, act
Escape, Print Screen, Pause, and Windows logo


alphabet, alpha
All the letters


digits, digit
All the numbers


alphanumeric, alnum
All the letters and numbers


arrows, arrow
All four navigation arrows


editing, edit
Backspace, Delete, Enter, and Tab


function, func
F1 through F12


hotkeys, hot
The Kinesis Logo key and hotkeys ① through ⑧


meta
Caps, Ctrl, Alt, and Shift (both sides)


navigation, nav
Home, End, Page Up, and Page Down


punctuation, punc
The keys ` - = [ ] \ ; ' , . /


row1
The top row of keys, from the Kinesis logo key through Delete


row2
The second row of keys, from hotkey ① through Home


row3
The third row of keys, from hotkey ③ through End


row4
The fourth row of keys, from hotkey ⑤ through Page Up


row5
The fifth row of keys, from hotkey ⑦ through Page Down


row6
The bottom row of keys, from Fn through Right Arrow →



The example config.ini included with Monkeypaint includes a complete configuration that puts all the keys on the keyboard into four groups, mostly using set names.
Running Monkeypaint
Just run monkeypaint on the command line. The command includes options to specify a starting color; select one collection of key groupings from your configuration file; use a different configuration file; and specify an output location. Run monkeypaint --help for details.
After you save a new lighting profile to the keyboard storage, you need to reload it by holding the Settings key (the upper right key with a ⚙ on it) and pressing the digit for the profile number you saved.
What Monkeypaint Doesn't Do
Monkeypaint hasn't been tested with the Kinesis Gaming TKO, or any other keyboard. It might be straightforward to add support, but I'd need help from people who own those keyboards.
Monkeypaint hasn't been tested on any other operating system or distribution besides Debian. I've done my best to try to make sure it will work, but I can't promise anything. If you try it out, please let me know how it goes.
Monkeypaint doesn't provide a GUI yet. You have to run it from the command line for now.
Because The Color API is a REST API, Monkeypaint doesn't work offline. I looked for Python libraries that might do palette generation like The Color API, but didn't find any. If you know of one, please let me know.
Monkeypaint doesn't let you assign arbitrary colors to keys. It selects all of the colors starting from the base color.
Monkeypaint is Free Software
Monkeypaint is copyright © 2021 by Brett Smith. You can use, share, and modify the program under the terms of the included GNU Affero General Public License version 3.

License

For personal and professional use. You cannot resell or redistribute these repositories in their original state.

Customer Reviews

There are no reviews.