20592954f78bd482fea368a06a4317fb2e610697
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
- Windows support (macOS and Linux support in development)
- Optimized rendering with low CPU usage
- System tray integration with context menu
- Global hotkey support
- Steam integration for item drops
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
│ ├── macos/ # macOS-specific code (in development)
│ │ ├── mod.rs # macOS module exports
│ │ ├── state.rs # macOS state management
│ │ └── cursor.rs # macOS cursor handling
│ ├── linux/ # Linux-specific code (in development)
│ │ ├── mod.rs # Linux module exports
│ │ ├── state.rs # Linux state management
│ │ └── cursor.rs # Linux cursor handling
│ └── unsupported/ # Fallback for unsupported platforms
│ ├── mod.rs # Unsupported module exports
│ ├── state.rs # Unsupported state management
│ └── cursor.rs # Unsupported cursor handling
├── 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
- Platform-specific dependencies:
- Windows: None (fully supported)
- macOS: Development in progress
- Linux: Development in progress
Dependencies
The application uses the following major dependencies:
- iced 0.13.1 - GUI framework
- tray-icon 0.20.1 - System tray functionality
- image 0.24.7 - Image processing
- global-hotkey 0.4.2 - Global hotkey registration
- steamworks 0.11.0 - Steam integration
Build Commands
# Debug build
cargo build
# Release build
cargo build --release
Usage
- Place your cursor PNG files in the
assetsdirectory (PNG format only) - Run the application using
cargo runor the compiled executable - The application will load all PNG files from the assets directory
- Select a cursor from the list in the UI
- The application will replace your system cursor with the selected image
- When closing the window, the application minimizes to the system tray
- To fully exit, use the system tray menu or press the exit hotkey
Custom Cursors
The application comes with two sample cursors in the assets directory:
default.png- A simple default cursorred.png- A red-colored cursor
To add your own cursors:
- Create PNG images with transparent backgrounds
- Place them in the
assetsdirectory - Restart the application to load the new cursors
- The cursor name in the UI will be derived from the filename
Hotkeys
- Ctrl+Shift+F12: Exit the application (restores original system cursor)
- If this hotkey fails, the application will try to use Ctrl+Alt+F12 or F12 as fallbacks
System Tray
- Left-click: Show the application window
- Right-click: Open the context menu with the following options:
- Next cursor: Switch to the next cursor in the list
- Show window: Show the application window
- Quit: Exit the application and restore the original cursor
Performance
- The application uses optimized rendering techniques to minimize CPU usage
- On Windows, it uses the Windows API to efficiently replace system cursors
- The application uses event-driven cursor updates instead of polling when possible
- Cursor images are cached to improve performance when switching between cursors
Previously Fixed Issues
The following issues have been addressed in recent updates:
- Task Manager compatibility: The application now properly handles elevated applications
- System tray menu stability: Fixed issues with the tray menu disappearing when mousing over it
Steam Integration
The application includes integration with the Steam API for future gameified features:
- Item drop functionality is implemented but not yet active
- Steam must be running for this functionality to work
Contributing
Contributions to Cursor Rush are welcome! Here are some ways you can contribute:
- Report bugs and issues
- Suggest new features or improvements
- Submit pull requests with bug fixes or new features
- Help with documentation
- Contribute to macOS and Linux platform support
License
This project is currently in development and does not yet have a specified license. A license will be added in a future update.
Languages
Rust
43.1%
CSS
28.5%
JavaScript
28.1%
HTML
0.3%