Joby b3d85106a8 Implement cursor asset caching for improved performance
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.
2025-05-11 18:37:23 -05:00
2025-05-03 21:35:57 -05:00

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

  1. Place your cursor PNG files in the assets directory
  2. Run the application
  3. Select a cursor from the list
  4. 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
S
Description
Mouse Cursor Customizer Game
Readme
2.2 MiB
Languages
Rust 43.1%
CSS 28.5%
JavaScript 28.1%
HTML 0.3%