Example #1
0
    def __init__(
        self,
        led_pins,
        brightness=30,
        brightness_step=5,
        brightness_limit=100,
    ):
        self._leds = []
        for led in led_pins:
            try:
                self._leds.append(pwmio.PWMOut(led))
            except Exception as e:
                print(e)
                raise InvalidExtensionEnvironment(
                    'Unable to create pulseio.PWMOut() instance with provided led_pin'
                )
        self._led_count = len(self._leds)

        self.brightness = brightness
        self._layer_last = -1

        self.brightness_step = brightness_step
        self.brightness_limit = brightness_limit

        make_key(names=('SLED_INC', ), on_press=self._key_led_inc)
        make_key(names=('SLED_DEC', ), on_press=self._key_led_dec)
Example #2
0
    def __init__(self, combos=[]):
        self.combos = combos
        self._active = []
        self._matching = []
        self._reset = set()
        self._key_buffer = []

        make_key(
            names=('LEADER',),
            on_press=handlers.passthrough,
            on_release=handlers.passthrough,
        )
Example #3
0
def unicode_codepoint_sequence(codepoints):
    kc_seqs = (
        generate_codepoint_keysym_seq(codepoint)
        for codepoint in codepoints
    )

    kc_macros = [
        simple_key_sequence(kc_seq)
        for kc_seq in kc_seqs
    ]

    def _unicode_sequence(key, state, *args, **kwargs):
        if state.config.unicode_mode == UnicodeMode.IBUS:
            state.process_key(
                simple_key_sequence(_ibus_unicode_sequence(kc_macros, state)),
                True,
            )
        elif state.config.unicode_mode == UnicodeMode.RALT:
            state.process_key(
                simple_key_sequence(_ralt_unicode_sequence(kc_macros, state)),
                True,
            )
        elif state.config.unicode_mode == UnicodeMode.WINC:
            state.process_key(
                simple_key_sequence(_winc_unicode_sequence(kc_macros, state)),
                True,
            )

    return make_key(on_press=_unicode_sequence)
Example #4
0
    def __init__(self, i2c, mode=TrackballMode.MOUSE_MODE, address=I2C_ADDRESS):
        self._i2c_address = address
        self._i2c_bus = i2c

        self.pointing_device = PointingDevice()
        self.mode = mode
        self.previous_state = False  # click state
        self.polling_interval = 20

        chip_id = struct.unpack('<H', bytearray(self._i2c_rdwr([REG_CHIP_ID_L], 2)))[0]
        if chip_id != CHIP_ID:
            raise RuntimeError(
                'Invalid chip ID: 0x{:04X}, expected 0x{:04X}'.format(chip_id, CHIP_ID)
            )

        make_key(
            names=('TB_MODE',),
            on_press=self._tb_mode_press,
            on_release=self._tb_mode_press,
        )
Example #5
0
def unicode_codepoint_sequence(codepoints):
    kc_seqs = (generate_codepoint_keysym_seq(codepoint) for codepoint in codepoints)

    kc_macros = [simple_key_sequence(kc_seq) for kc_seq in kc_seqs]

    def _unicode_sequence(key, keyboard, *args, **kwargs):
        if keyboard.unicode_mode == UnicodeMode.IBUS:
            keyboard.process_key(
                simple_key_sequence(_ibus_unicode_sequence(kc_macros, keyboard)), True
            )
        elif keyboard.unicode_mode == UnicodeMode.RALT:
            keyboard.process_key(
                simple_key_sequence(_ralt_unicode_sequence(kc_macros, keyboard)), True
            )
        elif keyboard.unicode_mode == UnicodeMode.WINC:
            keyboard.process_key(
                simple_key_sequence(_winc_unicode_sequence(kc_macros, keyboard)), True
            )

    return make_key(on_press=_unicode_sequence)
Example #6
0
    def __init__(self, powersave_pin=None):
        self.enable = False
        self.powersave_pin = powersave_pin  # Powersave pin board object
        self._powersave_start = ticks_ms()
        self._usb_last_scan = ticks_ms() - 5000
        self._psp = None  # Powersave pin object
        self._i2c = 0
        self._loopcounter = 0

        make_key(names=('PS_TOG', ),
                 on_press=self._ps_tog,
                 on_release=handler_passthrough)
        make_key(names=('PS_ON', ),
                 on_press=self._ps_enable,
                 on_release=handler_passthrough)
        make_key(names=('PS_OFF', ),
                 on_press=self._ps_disable,
                 on_release=handler_passthrough)
Example #7
0
    )
    print(
        'РађРађРађРађРађРађРБђРБђРБѕРБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РаЄРађРађРађРађРађРађРађ'
    )
    print(
        'РађРађРађРађРађРађРб┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РаЃРађРађРађРађРађРађРађРађ'
    )
    print(
        'РађРађРађРађРађРађРађРа╣РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РБ┐РА┐РаЪРаЂРађРађРађРађРађРађРађРађРађ'
    )
    print('РађРађРађРађРађРађРађРађРађРаЅРаЏРа╗Ра┐Ра┐Ра┐Ра┐РаЏРаЅ')


# Spew shrek when hitting a fully custom key
# This won't modify internal state at all
SHREK_IS_LOVE = make_key(on_press=shrek_is_life)

# Also spew shrek every time I try to use Alt. It's a dev board, after all.
KC.LALT.before_press_handler(shrek_is_life)

# But also give me a normal alt if I want it. Shrek isn't ALWAYS life.
BORING_ALT = KC.LALT.clone()

keyboard.keymap = [
    [
        KC.GESC,
        KC.QUOT,
        KC.COMM,
        KC.DOT,
        KC.P,
        KC.Y,
Example #8
0
    def __init__(
        self,
        led_pin,
        brightness_step=5,
        brightness_limit=100,
        breathe_center=1.5,
        animation_mode=AnimationModes.STATIC,
        animation_speed=1,
        user_animation=None,
        val=100,
    ):
        try:
            self._led = pulseio.PWMOut(led_pin)
        except Exception as e:
            print(e)
            raise InvalidExtensionEnvironment(
                'Unable to create pulseio.PWMOut() instance with provided led_pin'
            )

        self._brightness = 0
        self._pos = 0
        self._effect_init = False
        self._enabled = True

        self.brightness_step = brightness_step
        self.brightness_limit = brightness_limit
        self.animation_mode = animation_mode
        self.animation_speed = animation_speed
        self.breathe_center = breathe_center
        self.val = val

        if user_animation is not None:
            self.user_animation = user_animation

        make_key(names=('LED_TOG', ), on_press=self._key_led_tog)
        make_key(names=('LED_INC', ), on_press=self._key_led_inc)
        make_key(names=('LED_DEC', ), on_press=self._key_led_dec)
        make_key(names=('LED_ANI', ), on_press=self._key_led_ani)
        make_key(names=('LED_AND', ), on_press=self._key_led_and)
        make_key(names=('LED_MODE_PLAIN', 'LED_M_P'),
                 on_press=self._key_led_mode_static)
        make_key(names=('LED_MODE_BREATHE', 'LED_M_B'),
                 on_press=self._key_led_mode_breathe)
Example #9
0
    def __init__(self):
        self.pointing_device = PointingDevice()
        self._nav_key_activated = 0
        self._up_activated = False
        self._down_activated = False
        self._left_activated = False
        self._right_activated = False
        self.max_speed = 10
        self.ac_interval = 100  # Delta ms to apply acceleration
        self._next_interval = 0  # Time for next tick interval
        self.move_step = 1

        make_key(
            names=('MB_LMB', ),
            on_press=self._mb_lmb_press,
            on_release=self._mb_lmb_release,
        )
        make_key(
            names=('MB_MMB', ),
            on_press=self._mb_mmb_press,
            on_release=self._mb_mmb_release,
        )
        make_key(
            names=('MB_RMB', ),
            on_press=self._mb_rmb_press,
            on_release=self._mb_rmb_release,
        )
        make_key(
            names=('MW_UP', ),
            on_press=self._mw_up_press,
            on_release=self._mw_up_release,
        )
        make_key(
            names=(
                'MW_DOWN',
                'MW_DN',
            ),
            on_press=self._mw_down_press,
            on_release=self._mw_down_release,
        )
        make_key(
            names=('MS_UP', ),
            on_press=self._ms_up_press,
            on_release=self._ms_up_release,
        )
        make_key(
            names=(
                'MS_DOWN',
                'MS_DN',
            ),
            on_press=self._ms_down_press,
            on_release=self._ms_down_release,
        )
        make_key(
            names=(
                'MS_LEFT',
                'MS_LT',
            ),
            on_press=self._ms_left_press,
            on_release=self._ms_left_release,
        )
        make_key(
            names=(
                'MS_RIGHT',
                'MS_RT',
            ),
            on_press=self._ms_right_press,
            on_release=self._ms_right_release,
        )
Example #10
0
def simple_key_sequence(seq):
    return make_key(
        meta=KeySequenceMeta(seq),
        on_press=sequence_press_handler,
        on_release=passthrough,
    )
Example #11
0
    def __init__(
        self,
        pixel_pin,
        num_pixels=0,
        val_limit=255,
        hue_default=0,
        sat_default=255,
        rgb_order=(1, 0, 2),  # GRB WS2812
        val_default=255,
        hue_step=4,
        sat_step=13,
        val_step=13,
        animation_speed=1,
        breathe_center=1,  # 1.0-2.7
        knight_effect_length=3,
        animation_mode=AnimationModes.STATIC,
        effect_init=False,
        reverse_animation=False,
        user_animation=None,
        disable_auto_write=False,
        pixels=None,
        refresh_rate=60,
    ):
        if pixels is None:
            import neopixel

            self.pixels = neopixel.NeoPixel(
                pixel_pin,
                num_pixels,
                pixel_order=rgb_order,
                auto_write=not disable_auto_write,
            )
        else:
            self.pixels = pixels

        self.rgbw = bool(len(rgb_order) == 4)

        self.num_pixels = num_pixels
        self.hue_step = hue_step
        self.sat_step = sat_step
        self.val_step = val_step
        self.hue = hue_default
        self.hue_default = hue_default
        self.sat = sat_default
        self.sat_default = sat_default
        self.val = val_default
        self.val_default = val_default
        self.breathe_center = breathe_center
        self.knight_effect_length = knight_effect_length
        self.val_limit = val_limit
        self.animation_mode = animation_mode
        self.animation_speed = animation_speed
        self.effect_init = effect_init
        self.reverse_animation = reverse_animation
        self.user_animation = user_animation
        self.disable_auto_write = disable_auto_write
        self.refresh_rate = refresh_rate

        self._substep = 0

        make_key(names=('RGB_TOG', ),
                 on_press=self._rgb_tog,
                 on_release=handler_passthrough)
        make_key(names=('RGB_HUI', ),
                 on_press=self._rgb_hui,
                 on_release=handler_passthrough)
        make_key(names=('RGB_HUD', ),
                 on_press=self._rgb_hud,
                 on_release=handler_passthrough)
        make_key(names=('RGB_SAI', ),
                 on_press=self._rgb_sai,
                 on_release=handler_passthrough)
        make_key(names=('RGB_SAD', ),
                 on_press=self._rgb_sad,
                 on_release=handler_passthrough)
        make_key(names=('RGB_VAI', ),
                 on_press=self._rgb_vai,
                 on_release=handler_passthrough)
        make_key(names=('RGB_VAD', ),
                 on_press=self._rgb_vad,
                 on_release=handler_passthrough)
        make_key(names=('RGB_ANI', ),
                 on_press=self._rgb_ani,
                 on_release=handler_passthrough)
        make_key(names=('RGB_AND', ),
                 on_press=self._rgb_and,
                 on_release=handler_passthrough)
        make_key(
            names=('RGB_MODE_PLAIN', 'RGB_M_P'),
            on_press=self._rgb_mode_static,
            on_release=handler_passthrough,
        )
        make_key(
            names=('RGB_MODE_BREATHE', 'RGB_M_B'),
            on_press=self._rgb_mode_breathe,
            on_release=handler_passthrough,
        )
        make_key(
            names=('RGB_MODE_RAINBOW', 'RGB_M_R'),
            on_press=self._rgb_mode_rainbow,
            on_release=handler_passthrough,
        )
        make_key(
            names=('RGB_MODE_BREATHE_RAINBOW', 'RGB_M_BR'),
            on_press=self._rgb_mode_breathe_rainbow,
            on_release=handler_passthrough,
        )
        make_key(
            names=('RGB_MODE_SWIRL', 'RGB_M_S'),
            on_press=self._rgb_mode_swirl,
            on_release=handler_passthrough,
        )
        make_key(
            names=('RGB_MODE_KNIGHT', 'RGB_M_K'),
            on_press=self._rgb_mode_knight,
            on_release=handler_passthrough,
        )
        make_key(
            names=('RGB_RESET', 'RGB_RST'),
            on_press=self._rgb_reset,
            on_release=handler_passthrough,
        )
Example #12
0
    def __init__(self):
        # International
        make_key(code=50, names=('NONUS_HASH', 'NUHS'))
        make_key(code=100, names=('NONUS_BSLASH', 'NUBS'))
        make_key(code=101, names=('APP', 'APPLICATION', 'SEL', 'WINMENU'))

        make_key(code=135, names=('INT1', 'RO'))
        make_key(code=136, names=('INT2', 'KANA'))
        make_key(code=137, names=('INT3', 'JYEN'))
        make_key(code=138, names=('INT4', 'HENK'))
        make_key(code=139, names=('INT5', 'MHEN'))
        make_key(code=140, names=('INT6', ))
        make_key(code=141, names=('INT7', ))
        make_key(code=142, names=('INT8', ))
        make_key(code=143, names=('INT9', ))
        make_key(code=144, names=('LANG1', 'HAEN'))
        make_key(code=145, names=('LANG2', 'HAEJ'))
        make_key(code=146, names=('LANG3', ))
        make_key(code=147, names=('LANG4', ))
        make_key(code=148, names=('LANG5', ))
        make_key(code=149, names=('LANG6', ))
        make_key(code=150, names=('LANG7', ))
        make_key(code=151, names=('LANG8', ))
        make_key(code=152, names=('LANG9', ))