Add LeaderMode.TIMEOUT (QMK default Leader mode)
This allows leader sequences to "time out" rather than requiring an Enter keypress to end. This also rolls back some unnecessary changes from #72 to the matrix scanner for performance reasons. In theory we can use this in the future for Tap Dance support (#40) Resolves #1 Resolves #37
This commit is contained in:
@@ -55,6 +55,7 @@ class Firmware:
|
||||
tap_time = 300
|
||||
leader_mode = LeaderMode.ENTER
|
||||
leader_dictionary = {}
|
||||
leader_timeout = 1000
|
||||
|
||||
hid_helper = USB_HID
|
||||
|
||||
@@ -94,28 +95,30 @@ class Firmware:
|
||||
print("Firin' lazers. Keyboard is booted.")
|
||||
|
||||
while True:
|
||||
for update in self.matrix.scan_for_changes():
|
||||
if update is not None:
|
||||
self._state.matrix_changed(
|
||||
update[0],
|
||||
update[1],
|
||||
update[2],
|
||||
)
|
||||
update = self.matrix.scan_for_changes()
|
||||
if update is not None:
|
||||
self._state.matrix_changed(
|
||||
update[0],
|
||||
update[1],
|
||||
update[2],
|
||||
)
|
||||
|
||||
if self._state.hid_pending:
|
||||
self._send_hid()
|
||||
if self._state.hid_pending:
|
||||
self._send_hid()
|
||||
|
||||
for key in self._state.pending_keys:
|
||||
self._send_key(key)
|
||||
self._state.pending_key_handled()
|
||||
if self.debug_enabled:
|
||||
print('New State: {}'.format(self._state._to_dict()))
|
||||
|
||||
if self._state.macro_pending:
|
||||
for key in self._state.macro_pending(self):
|
||||
self._send_key(key)
|
||||
self._state.process_timeouts()
|
||||
|
||||
self._state.resolve_macro()
|
||||
for key in self._state.pending_keys:
|
||||
self._send_key(key)
|
||||
self._state.pending_key_handled()
|
||||
|
||||
if self.debug_enabled:
|
||||
print('New State: {}'.format(self._state._to_dict()))
|
||||
if self._state.macro_pending:
|
||||
for key in self._state.macro_pending(self):
|
||||
self._send_key(key)
|
||||
|
||||
self._state.resolve_macro()
|
||||
|
||||
gc.collect()
|
||||
|
Reference in New Issue
Block a user