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_ms
to 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.