b3d85106a82f6f70ca392862a5e2e477d6210356
Key improvements: 1. Add image caching to CursorInfo struct to avoid repeated disk reads and decoding 2. Implement Windows cursor handle caching to minimize GDI resource allocation 3. Update all code paths to use cached resources for better performance 4. Remove deprecated/unused functions for cleaner codebase This change significantly reduces CPU usage and improves cursor switching performance.
Cursor Rush
A cross-platform application for customizing your cursor with gameified logic.
Features
- Replace the system cursor with custom PNG images
- Minimize to system tray for background operation
- Cross-platform support (Windows, macOS, Linux)
- Steam integration
Project Structure
src/
├── app/ # Application core logic
│ ├── mod.rs # Main app module exports
│ ├── state.rs # Application state management
│ ├── messages.rs # Message definitions
│ └── cursor.rs # Cursor-related functionality
├── ui/ # User interface components
│ ├── mod.rs # UI module exports
│ ├── view.rs # View rendering logic
│ └── tray.rs # System tray functionality
├── platform/ # Platform-specific implementations
│ ├── mod.rs # Platform module exports
│ ├── windows/ # Windows-specific code
│ │ ├── mod.rs # Windows module exports
│ │ ├── types.rs # Windows type definitions
│ │ ├── state.rs # Windows state management
│ │ ├── cursor.rs # Windows cursor handling
│ │ ├── window.rs # Windows window management
│ │ └── hook.rs # Windows mouse hook handling
│ ├── macos.rs # macOS-specific code
│ ├── linux.rs # Linux-specific code
│ └── unsupported.rs # Fallback for unsupported platforms
├── integrations/ # External integrations
│ ├── mod.rs # Integrations module exports
│ └── steam.rs # Steam integration
├── utils/ # Utility functions and helpers
│ ├── mod.rs # Utils module exports
│ ├── config.rs # Configuration management
│ └── logging.rs # Logging utilities
└── main.rs # Application entry point
Building
Prerequisites
- Rust 1.70.0 or later
- Cargo
Build Commands
# Debug build
cargo build
# Release build
cargo build --release
Usage
- Place your cursor PNG files in the
assetsdirectory - Run the application
- Select a cursor from the list
- Press Ctrl+Shift+F12 to exit the application
Hotkeys
- Ctrl+Shift+F12: Exit the application
System Tray
- Left-click: Show the application window
- Right-click: Open the context menu
- Next cursor: Switch to the next cursor
- Show window: Show the application window
- Quit: Exit the application
Languages
Rust
43.1%
CSS
28.5%
JavaScript
28.1%
HTML
0.3%