From 384dd3417370e786348310d8089b4cd9252613f1 Mon Sep 17 00:00:00 2001 From: Illia Halatiuk Date: Sun, 7 Apr 2024 15:33:19 +0700 Subject: [PATCH] Docs cleanup and add some plans --- docs/dev/high_level.md | 2 +- docs/dev/plans.md | 57 +++++++++++++----------------------------- 2 files changed, 18 insertions(+), 41 deletions(-) diff --git a/docs/dev/high_level.md b/docs/dev/high_level.md index 3414f92..972d88a 100644 --- a/docs/dev/high_level.md +++ b/docs/dev/high_level.md @@ -58,7 +58,7 @@ flowchart ### Trigger conditions -TBD, planned after first release (see plans.md) +See README ### Command diff --git a/docs/dev/plans.md b/docs/dev/plans.md index 8ad9846..2f83558 100644 --- a/docs/dev/plans.md +++ b/docs/dev/plans.md @@ -20,43 +20,28 @@ By having user configure triggers and corresponding actions, and running a loop "hotkeys" provide the ability to trigger "automation", or remapping -## Development milestones - -1. DONE. Parent classes for SignalListener and Commander -2. DONE. keyboard and mouse dataclasses -3. DONE. Parent SignalListener+Commander for kb and mouse; factories; Windows impl -4. DONE. Action runner -5. DONE. Send Command parser -6. DONE. Trigger parser -7. DONE. State(logger/keeper/whatever); -8. DONE. Wrapper for commanders and listeners(state keeper calls, publish event, bounce fake signal) -9. DONE. SendCommandProcessor -10. DONE. Tree (Tap and group) model: api and shadow -11. DONE. tapper api -12. DONE. SignalProcessor -13. DONE. Initializer -14. DONE. trigger_if - free-style conditions -15. DONE. kwargs map, to make conditions for Taps much easier; TriggerConditions system -16. DONE. WindowTriggerConditionsTracker -17. DONE. Helper: controls, do while pressed/held, recorder -18. DONE. Basic Readme -19. skip - DONE(Only keyboard). Linux impl -20. skip - Make sure it catches signals before other programs on OS -21. DONE. Language detection, switching, and helper to transliterate -22. DONE. Tray icon -23. Tree and config validation with tkinter warnings, Error handling, Logging -24. Moar trackers: kb lang, process, device connect/disconnect, service/daemon, file, resource(cpu/gpu/network) load -25. Group actions when it goes on/off, timer for checking group states? Tap without trigger, only for on/off active -26. DONE. Helpers galore: picture assist, on repeat/hold -27. Good docs, with sphinx/readthedocs/doctest -28. Optimization: profile everything, make caching, active tracking, for window controller in particular +## Development plans + +- Tree and config validation with tkinter warnings +- Error handling +- Logging +- Moar trackers: kb lang, process, device connect/disconnect, service/daemon, file, resource(cpu/gpu/network) load +- Group actions when it goes on/off, timer for checking group states? Tap without trigger, only for on/off active +- Good docs, with sphinx/readthedocs/doctest +- Optimization: profile everything, make caching, active tracking, for window controller in particular +- AHK-like Window of Useful Info (app name, pixel color, etc in real time), with active hotkey map +- controls.suspend_toggle(group) + Small change plans: Potential ideas: -1. AHK-like Window of Useful Info (app name, pixel color, etc in real time) -2. Helper function to show programmed hotkeys for this app/global. Add optional description to Tap, and show there? + +- skip - DONE(Only keyboard). Linux impl +- skip - Make sure it catches signals before other programs on OS +- Action queue, maybe with time limit when put? i.e. I press "ab" quickly, both are hotkeys, and if "a" is still going +on the last millisecond, "b" can trigger afterwards. Whole can of worms though. ## Limitations of the current design @@ -73,14 +58,6 @@ Cannot do mass things, like lock all buttons until something is pressed. ## Possible extensions to think about for the future -send command arg "key_cleanup" - to lift keys that remain pressed. - -"lift" on send: lift modificators, un-caps, then back - -tap additional keys allowed - white/blacklist - -powerwash example action: move left-right, up, repeat - until mouse is moved - an executable with no python dependency for windows dummies action on press 2s, not on release after 2s (see parser spec)