Skip to content

Dev v0.1.17#13

Closed
mathiassalvas wants to merge 11 commits into
mainfrom
dev_v0.1.17
Closed

Dev v0.1.17#13
mathiassalvas wants to merge 11 commits into
mainfrom
dev_v0.1.17

Conversation

@mathiassalvas

Copy link
Copy Markdown
Collaborator

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:

  • Added optional Wooting analog-keyboard integration via the tachypy[wooting] extra, exposing WOOTING_ACQUISITION for pressure acquisition, logging, and on-screen feedback directly from the top-level tachypy namespace. [1] [2] [3]
  • Introduced new console demo entry points: tachypy-wooting-fixation-demo and tachypy-wooting-mini-bw. [1] [2]

Documentation Updates:

  • Added a comprehensive docs/wooting.rst page detailing installation, usage, API, and experiment lifecycle for Wooting integration.
  • Updated README.md, docs/api.rst, docs/getting_started.rst, and docs/index.rst to reference Wooting integration, installation instructions, and documentation. [1] [2] [3] [4] [5]

Packaging and Setup:

  • Updated setup.py and setup.cfg to add the wooting extra, declare new dependencies, update author credits, and include demo scripts in the package. [1] [2] [3] [4]
  • Excluded new demo files from test coverage.

Core API Enhancements:

  • Exposed keyboard-agnostic visual feedback toolkit (PressureFeedbackWidget, InteractiveFixationCross, PressureFeedbackState, PressureFeedbackConfig, PressureSource, VisualPressureFeedbackMixin) in the main tachypy API and documented their usage. [1] [2] [3]

mathiassalvas and others added 5 commits June 15, 2026 09:42
- 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.
Copilot AI review requested due to automatic review settings June 15, 2026 18:10

Copilot AI left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

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-level tachypy API.
  • Add tachypy.wooting facade + 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.

Comment thread setup.cfg
Comment thread setup.py
Comment thread src/tachypy/feedback/widgets.py
Comment thread src/tachypy/feedback/runner.py Outdated
Comment thread src/tachypy/feedback/runner.py
Comment thread src/tachypy/wooting/demos/mini_bw_experiment.py Outdated
iancharest and others added 5 commits June 15, 2026 14:28
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
iancharest previously approved these changes Jun 15, 2026

@iancharest iancharest left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks cool wooting for ever

…ance exit key handling in runner and widgets; clean up imports in mini_bw_experiment demo
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants