Please check the build logs for more information.
See Builds for ideas on how to fix a failed build, or Metadata for how to configure docs.rs builds.
If you believe this is docs.rs' fault, open an issue.
Terminator Workflow Recorder
A comprehensive workflow recording library for Windows that captures user interactions with UI elements, including mouse clicks, keyboard input, clipboard operations, and UI automation events.
Features
- Input Recording: Mouse movements, clicks, keyboard input
- UI Element Capture: Detailed information about UI elements being interacted with
- Clipboard Monitoring: Track copy/paste operations
- Hotkey Detection: Record keyboard shortcuts and hotkey combinations
- UI Automation Events: Focus changes, property changes, structure changes
- Noise Filtering: Built-in filtering to ignore system UI noise like clock updates
Usage
Basic Recording
use ;
async
Filtering System UI Noise
The recorder includes built-in filtering to ignore noisy system UI elements like the clock, notifications, and other system components. You can customize this filtering:
let config = WorkflowRecorderConfig ;
Configuration Options
Recording Controls
record_mouse: Enable/disable mouse event recordingrecord_keyboard: Enable/disable keyboard event recordingrecord_clipboard: Enable/disable clipboard operation recordingrecord_ui_focus_changes: Enable/disable UI focus change eventsrecord_ui_property_changes: Enable/disable UI property change events
Noise Reduction
mouse_move_throttle_ms: Minimum time between mouse move events (default: 50ms)ignore_focus_patterns: Patterns to ignore in focus change eventsignore_property_patterns: Patterns to ignore in property change eventsignore_window_titles: Window titles to ignore for all UI eventsignore_applications: Application names to ignore for all UI events
Content Limits
max_clipboard_content_length: Maximum clipboard content to record (default: 1KB)max_text_selection_length: Maximum text selection length to record (default: 512 chars)
Common Filtering Patterns
Clock and Time Elements
ignore_property_patterns: vec!,
System Notifications
ignore_focus_patterns: vec!,
Taskbar and System Tray
ignore_focus_patterns: vec!,
Windows System Applications
ignore_applications: vec!,
Double Click Detection
The workflow recorder now supports double click detection with the following features:
Features
- Automatic Detection: Detects double clicks based on timing and position thresholds
- Configurable Thresholds:
- Time threshold: 500ms (Windows standard)
- Distance threshold: 5 pixels tolerance
- Button Support: Works with all mouse buttons (Left, Right, Middle)
- UI Element Capture: Captures the UI element that was double-clicked
Configuration
let config = WorkflowRecorderConfig ;
Event Structure
Double clicks generate WorkflowEvent::Mouse events with MouseEventType::DoubleClick:
match event
Example Usage
See examples/double_click_demo.rs for a complete example:
This demo will:
- Start recording mouse events
- Detect and log double clicks with position and UI element information
- Show timing and distance-based filtering in action
Testing
The implementation includes comprehensive unit tests:
Tests cover:
- Basic double click detection
- Timing threshold enforcement (500ms)
- Distance threshold enforcement (5 pixels)
- Different button handling
- Tracker reset functionality
Output Format
The recorder saves workflows as JSON files containing timestamped events:
Performance Considerations
- Use filtering to reduce event volume for better performance
- Consider disabling UI automation events (
record_ui_*) if not needed - Adjust
mouse_move_throttle_msto balance accuracy vs. performance - Set appropriate content length limits for clipboard and text selection
Platform Support
Currently supports Windows only. Requires Windows 10/11 with UI Automation support.