149 lines
4.9 KiB
Markdown
149 lines
4.9 KiB
Markdown
# 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
|
|
- Tauri-based frontend with React
|
|
|
|
## Project Structure
|
|
|
|
```
|
|
frontend/
|
|
├── src/ # React frontend code
|
|
│ ├── App.jsx # Main React component
|
|
│ ├── components/ # UI components
|
|
│ └── cursors/ # Cursor image files
|
|
├── src-tauri/ # Rust backend code
|
|
│ ├── src/ # Rust source code
|
|
│ │ ├── lib.rs # Main library code
|
|
│ │ ├── main.rs # Application entry point
|
|
│ │ ├── integrations/ # External integrations
|
|
│ │ │ ├── mod.rs # Integrations module exports
|
|
│ │ │ └── steam.rs # Steam integration
|
|
│ │ └── platform/ # Platform-specific code
|
|
│ │ ├── mod.rs # Platform module exports
|
|
│ │ ├── types.rs # Common type definitions
|
|
│ │ ├── windows/ # Windows-specific code
|
|
│ │ ├── macos/ # macOS-specific code
|
|
│ │ └── linux/ # Linux-specific code
|
|
│ └── Cargo.toml # Rust dependencies
|
|
└── package.json # npm dependencies
|
|
```
|
|
|
|
## Building
|
|
|
|
### Prerequisites
|
|
|
|
- Rust 1.70.0 or later
|
|
- Cargo
|
|
- Node.js 16.0.0 or later
|
|
- npm 7.0.0 or later
|
|
- Platform-specific dependencies:
|
|
- Windows: None (fully supported)
|
|
- macOS: Development in progress
|
|
- Linux: Development in progress
|
|
|
|
### Dependencies
|
|
|
|
The application uses the following major dependencies:
|
|
- Tauri 1.6.0 - Cross-platform framework
|
|
- React - Frontend framework
|
|
- image 0.24.7 - Image processing
|
|
- winapi 0.3.9 - Windows API bindings
|
|
- once_cell 1.19.0 - Lazy initialization
|
|
|
|
### Build Commands
|
|
|
|
```bash
|
|
# Navigate to the frontend directory
|
|
cd frontend
|
|
|
|
# Install npm dependencies
|
|
npm install
|
|
|
|
# Run in development mode
|
|
npm run tauri dev
|
|
|
|
# Build for production
|
|
npm run tauri build
|
|
```
|
|
|
|
## Usage
|
|
|
|
1. Make sure you have Node.js and npm installed
|
|
2. Navigate to the frontend directory: `cd frontend`
|
|
3. Install dependencies if you haven't already: `npm install`
|
|
4. Run the application in development mode: `npm run tauri dev`
|
|
5. The application will start with a React frontend and Rust backend
|
|
6. Use the UI to browse and select cursors
|
|
7. The application will replace your system cursor with the selected image
|
|
8. To exit, use the "Quit" button in the application or from the system tray
|
|
|
|
### Custom Cursors
|
|
|
|
The application comes with sample cursors:
|
|
- `default.png` - A simple default cursor
|
|
- `icon.png` - An icon cursor
|
|
- `red.png` - A red-colored cursor
|
|
|
|
To add your own cursors:
|
|
1. Create PNG images with transparent backgrounds
|
|
2. Place them in the `frontend/src/cursors` directory
|
|
3. Restart the application to load the new cursors
|
|
4. 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
|
|
- Improve the Tauri integration
|
|
|
|
## License
|
|
|
|
This project is currently in development and does not yet have a specified license. A license will be added in a future update.
|