diff options
author | Sébastien Dailly <sebastien@dailly.me> | 2023-08-13 10:46:51 +0200 |
---|---|---|
committer | Sébastien Dailly <sebastien@dailly.me> | 2023-08-13 10:46:58 +0200 |
commit | 259cb021db412471baf1478a6aa619ed0545d997 (patch) | |
tree | 279c128c592eb24a15241e42fa003050c2a1c4c8 /src/macros/qqsp.py | |
parent | 6716fbc7a1ec5d14887d54b7d0286a149d15d46a (diff) |
Diffstat (limited to 'src/macros/qqsp.py')
-rw-r--r-- | src/macros/qqsp.py | 103 |
1 files changed, 103 insertions, 0 deletions
diff --git a/src/macros/qqsp.py b/src/macros/qqsp.py new file mode 100644 index 0000000..6ff0487 --- /dev/null +++ b/src/macros/qqsp.py @@ -0,0 +1,103 @@ +# SPDX-FileCopyrightText: 2021 Phillip Burgess for Adafruit Industries +# +# SPDX-License-Identifier: MIT + +# MACROPAD Hotkeys example: Mouse control + +# The syntax for Mouse macros is highly peculiar, in order to maintain +# backward compatibility with the original keycode-only macro files. +# The third item for each macro is a list in brackets, and each value within +# is normally an integer (Keycode), float (delay) or string (typed literally). +# Consumer Control codes were added as list-within-list, and then mouse +# further complicates this by adding dicts-within-list. Each mouse-related +# dict can have any mix of keys 'buttons' w/integer mask of button values +# (positive to press, negative to release), 'x' w/horizontal motion, +# 'y' w/vertical and 'wheel' with scrollwheel motion. + +# To reference Mouse constants, import Mouse like so... +from keycode_win_frnb import Keycode # Use the french bepo layout +import colorsys + +import skeleton +from actions import Action + + +class Color(object): + """ Represent the color of a key in the HSV model. + + The class implements the int() function in order to being compatible with + the remaining of the application. + """ + def __init__(self, h, s, v): + self.col = (h, s, v) + + def __int__(self): + r, g, b = colorsys.hsv_to_rgb(self.col[0], self.col[1], self.col[2]) + return (r<<16) + (g<<8) + b + +def build_application(): + configuration = skeleton.Configuration("qqsp") + configuration.visible = False + configuration.registerKey( + 0, + "7", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.KEYPAD_SEVEN]), + Color(0.333, 1.0, 0.0196)) + configuration.registerKey( + 1, + "8", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.KEYPAD_EIGHT]), + Color(0.266, 1.0, 0.0196)) + configuration.registerKey( + 2, + "9", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.KEYPAD_NINE]), + Color(0.166, 1.0, 0.0196)) + configuration.registerKey( + 3, + "4", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.KEYPAD_FOUR]), + Color(0.4, 1.0, 0.0196)) + configuration.registerKey( + 4, + "5", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.KEYPAD_FIVE]), + Color(0.333, 0.6, 0.0196)) + configuration.registerKey( + 5, + "6", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.KEYPAD_SIX]), + Color(0.16, 0.6, 0.0196)) + configuration.registerKey( + 6, + "1", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.KEYPAD_ONE]), + # 0x000505 + Color(0.5, 1.0, 0.0196)) + configuration.registerKey( + 7, + "2", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.KEYPAD_TWO]), + Color(0.5, 0.6, 0.0196)) + configuration.registerKey( + 8, + "3", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.KEYPAD_THREE]), + # 0x050505 + Color(0.01, 0.01, 0.0196)) + configuration.registerKey( + 9, + "0", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.KEYPAD_ZERO]), + # 0x000507 + Color(0.54, 1.0, 0.027)) + + # The dot key. + configuration.registerKey( + 11, + "^O", + lambda macropad, key, pressed: Action().key(pressed, [Keycode.CONTROL, Keycode.O]), + 0x050507) + return configuration + +configuration = build_application() |