Dev v0.1.17#13
Closed
mathiassalvas wants to merge 11 commits into
Closed
Conversation
- Add tachypy.feedback: keyboard-agnostic visual pressure-feedback engine, mixin, state machine, scale mapper, widget ABC, InteractiveFixationCross - Add tachypy.wooting facade: enriched WOOTING_ACQUISITION (base + mixin), re-exports, and ported visual demos (fixation, mini-bw) - Expose WOOTING_ACQUISITION at top level via lazy __getattr__ (extra-gated) - Add [wooting] extra + demo entry points; docs/wooting.rst + api autodoc - Port feedback tests to tachypy/tests/test_feedback.py Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…-integration # Conflicts: # docs/getting_started.rst # setup.py
* Add first-class TachyWooting integration in the TachyPy package. * Expose `WOOTING_ACQUISITION` through TachyPy for a simpler user-facing API. * Enable natural analog keyboard workflows directly from TachyPy. * Add visual pressure feedback for light-press and readiness phases. * Refactor the pressure feedback system and remove the unused `PressureSource` interface. * Improve `PressureFeedbackWidget` with better pressure text, geometry, and interactive fixation cross handling. * Integrate Wooting acquisition with the TachyPy visual feedback system. * Keep Wooting support as an optional dependency so TachyPy core remains lightweight. * Update documentation, demos, and tests for the new integration. * Add tests for pressure feedback rendering and pressure state management.
Contributor
There was a problem hiding this comment.
Pull request overview
This PR introduces an optional Wooting analog-keyboard integration (tachypy[wooting]) and a new keyboard-agnostic visual pressure-feedback toolkit (tachypy.feedback). It adds pressure-feedback model/state logic, a default interactive fixation-cross widget, a visual feedback runner/mixin, demo entry points, and documentation.
Changes:
- Add
tachypy.feedback(model/state machine, render loop + mixin, default widget) and re-export key classes from the top-leveltachypyAPI. - Add
tachypy.wootingfacade + demo scripts, plus console entry points for the demos. - Add/extend documentation for Wooting installation/usage and update packaging to include the new optional dependency.
Reviewed changes
Copilot reviewed 17 out of 19 changed files in this pull request and generated 6 comments.
Show a summary per file
| File | Description |
|---|---|
tests/test_pressure_keyboard.py |
New unit tests covering lazy Wooting export, feedback model/state, widget behavior, and the visual wait loop. |
src/tachypy/wooting/demos/visual_fixation_demo.py |
New interactive, “gamified” visual fixation cross demo for Wooting. |
src/tachypy/wooting/demos/mini_bw_experiment.py |
New minimal black/white experiment demo using the Wooting integration. |
src/tachypy/wooting/demos/__init__.py |
Demo package docstring describing available console entry points. |
src/tachypy/wooting/__init__.py |
Wooting integration facade and enriched WOOTING_ACQUISITION class definition. |
src/tachypy/feedback/widgets.py |
New widget contract + default InteractiveFixationCross renderer. |
src/tachypy/feedback/runner.py |
New keyboard-agnostic visual loop and VisualPressureFeedbackMixin. |
src/tachypy/feedback/model.py |
New pressure-feedback protocol, config, and state machine. |
src/tachypy/feedback/__init__.py |
Public re-exports for the feedback toolkit. |
src/tachypy/__init__.py |
Top-level lazy exports extended to include feedback toolkit and lazy WOOTING_ACQUISITION shortcut. |
setup.py |
Adds wooting extra and console script entry points (but currently drops other documented extras). |
setup.cfg |
Adds wooting extra, console entry points, and coverage omit for demos (but currently drops other documented extras). |
README.md |
Documents Wooting integration and installation extra. |
docs/wooting.rst |
New dedicated docs page for Wooting integration and visual feedback. |
docs/index.rst |
Adds wooting page to the docs TOC. |
docs/getting_started.rst |
Mentions wooting extra and links to the Wooting docs page. |
docs/api.rst |
Adds API docs section for tachypy.feedback. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
iancharest
previously approved these changes
Jun 15, 2026
iancharest
left a comment
Contributor
There was a problem hiding this comment.
looks cool wooting for ever
…ance exit key handling in runner and widgets; clean up imports in mini_bw_experiment demo
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This pull request adds optional integration for Wooting analog keyboards, providing pressure acquisition, logging, and on-screen visual feedback. It introduces new documentation, updates the installation process, exposes a keyboard-agnostic visual feedback toolkit, and adds demo scripts. The changes are organized into Wooting integration, documentation, packaging, and core API enhancements.
Wooting Analog Keyboard Integration:
tachypy[wooting]extra, exposingWOOTING_ACQUISITIONfor pressure acquisition, logging, and on-screen feedback directly from the top-leveltachypynamespace. [1] [2] [3]tachypy-wooting-fixation-demoandtachypy-wooting-mini-bw. [1] [2]Documentation Updates:
docs/wooting.rstpage detailing installation, usage, API, and experiment lifecycle for Wooting integration.README.md,docs/api.rst,docs/getting_started.rst, anddocs/index.rstto reference Wooting integration, installation instructions, and documentation. [1] [2] [3] [4] [5]Packaging and Setup:
setup.pyandsetup.cfgto add thewootingextra, declare new dependencies, update author credits, and include demo scripts in the package. [1] [2] [3] [4]Core API Enhancements:
PressureFeedbackWidget,InteractiveFixationCross,PressureFeedbackState,PressureFeedbackConfig,PressureSource,VisualPressureFeedbackMixin) in the maintachypyAPI and documented their usage. [1] [2] [3]