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)
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, )
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)
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, )
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)
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)
) 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,
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)
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, )
def simple_key_sequence(seq): return make_key( meta=KeySequenceMeta(seq), on_press=sequence_press_handler, on_release=passthrough, )
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, )
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', ))