Initial attempt at porting over fenrir's hardware synth support. Probably buggy.

This commit is contained in:
Storm Dragon
2026-05-30 18:40:35 -04:00
parent 9c652a75ea
commit 6ecc775c6d
10 changed files with 929 additions and 7 deletions
+39
View File
@@ -24,6 +24,45 @@ This repository is a screen reader. Prioritize accessibility, correctness, and s
- If repo and installed behavior differ, prefer rebuilding with `./build-local.sh` over patching the installed package directly.
- Treat direct edits under `~/.local/.../cthulhu/` as an exception path that requires explicit user approval.
## Contribution workflow (including generated patches)
- Assume contributors may use code-generation tools without understanding every changed line. Review the resulting code, not the contributor's confidence in it.
- Start from a reproducible user-visible problem. Capture the exact application, desktop/session type, steps, expected behavior, actual behavior, and relevant logs before changing code.
- Investigate the full confirmed behavior class before implementing a fix. For example, a stale-focus bug seen in one browser may also affect other applications or empty workspaces.
- Prefer the smallest root-cause fix that covers the full confirmed behavior class. Do not add app-specific exceptions, desktop-specific branches, compatibility fallbacks, or broad refactors unless the evidence requires them.
- Add or update automated regression tests for the general behavior and the originally reported workflow whenever practical.
- Read every generated diff before committing. Remove unrelated rewrites, speculative cleanup, dead code, debug leftovers, and generated files that are not required by the fix.
- Never commit a change solely because it compiles or because an automated tool says it works. Verify the real user-facing workflow after rebuilding the installed copy.
## Verification checklist before commit
Run the narrowest relevant checks first, then broaden testing based on the affected behavior:
1. Inspect the diff:
- `git diff --check`
- `git status --short`
- `git diff --stat`
- `git diff -- <changed files>`
2. Run syntax checks for each changed Python file:
- `python -m py_compile <changed .py files>`
3. Run focused automated regression tests:
- `python -m unittest <relevant test modules>`
- For shared input, focus, script lifecycle, settings, plugin loading, or installation changes, run `./test-local.sh` after the focused tests pass.
4. Rebuild the local installed copy:
- `./build-local.sh`
5. Confirm the runtime import resolves to the refreshed local install:
- `python - <<'PY'`
- `import importlib.util`
- `print(importlib.util.find_spec("cthulhu").origin)`
- `PY`
6. Reproduce the original user-visible workflow against the rebuilt copy.
7. Check closely related regressions. For focus, keyboard, or window-tracking changes, manually test:
- Xorg and the user's active window manager or desktop.
- Switching among browser content, terminal windows, GTK applications, dialogs, and empty workspaces.
- Returning to the original application after each switch.
- Cthulhu shortcuts, structural navigation, flat review, and any delegated key handling such as Fenrir in XTerm.
- Both key press and key release behavior for modifiers, NumLock, and keypad keys when relevant.
- Clean shutdown without crashing the browser or leaving grabs behind.
8. Record what was tested, what could not be tested locally, and any remaining uncertainty in the commit message or review notes.
## Platform support stance
- **critical** Robust Xorg support is required and is a merge gate for Cthulhu.
- Wayland support is desirable, but it is secondary to keeping Xorg stable and usable.