A Rust-based keyboard mouse control tool for macOS that enables users to control mouse operations entirely through keyboard inputs, helping to reduce wrist strain and improve productivity.
This project uses a Cargo workspace with two main crates:
The core library containing:
- Error handling: Comprehensive error types using
thiserror - Data models: Core data structures for positions, screens, configurations, etc.
- Traits: Interfaces for input processing, mouse operations, mode control, UI rendering, and prediction
- Logging: Structured logging setup with
tracing
The main application that:
- Integrates with Tauri for UI overlays
- Implements the core traits from
mouseless-core - Provides the main entry point and application lifecycle management
The application is built around five main traits:
InputProcessor: Handles global keyboard input and hotkey registrationMouseOperations: Controls mouse movement, clicking, and scrollingModeController: Manages different interaction modes (Basic, Grid, Area, Prediction)UIRenderer: Renders overlays and visual feedbackPredictionModel: Provides intelligent target prediction
-
Multiple interaction modes:
- Basic: Direct cursor movement with I/K/J/L keys
- Grid: Quick positioning using a visual grid overlay
- Area: 9-area screen division for rapid navigation
- Prediction: AI-powered target prediction
-
Smooth animations: Configurable cursor movement with easing
-
Multi-monitor support: Seamless operation across multiple displays
-
Customizable key bindings: Adapt to personal workflow preferences
-
Modern UI: Glassmorphism effects and smooth transitions
-
Performance optimized: Sub-10ms response times, minimal resource usage
- Rust 1.70+
- macOS 10.15+
- Xcode Command Line Tools
# Build the entire workspace
cargo build
# Build in release mode
cargo build --release
# Run the application
cargo run -p mouseless-app
# Run tests
cargo testThe application uses structured logging with tracing. Set environment variables to control log levels:
# Enable debug logging for all components
RUST_LOG=mouseless=debug cargo run -p mouseless-app
# Enable JSON structured logging
MOUSELESS_JSON_LOGS=1 cargo run -p mouseless-appThis implementation addresses the following key requirements:
- 7.5: macOS compatibility and system integration
- 8.5: Performance optimization with minimal resource usage
[License information to be added]