A cross-platform application that allows you to upload PNG files and use them as your computer's cursor. Works on both macOS and Windows.
- Upload any PNG image to use as your cursor
 - Set the hotspot position (the active point of the cursor)
 - Reset to the default system cursor
 - Works on both macOS and Windows
 
- Python 3.8 or higher
 - pip (Python package installer)
 
- 
Clone this repository:
git clone https://github.com/yourusername/custom-cursor-app.git cd custom-cursor-app - 
Install the required dependencies:
pip install -r requirements.txt - 
Run the application:
python src/main.py 
- 
Install the package:
pip install . - 
Run the application:
custom-cursor-app 
The easiest way to build a standalone executable is to use the included build script:
# Activate your virtual environment first
source venv/bin/activate  # On macOS/Linux
# or
.\venv\Scripts\activate  # On Windows
# Run the build script
python build_app.pyThis will:
- Create a default icon if none exists
 - Package all dependencies
 - Create a standalone executable in the 
distdirectory - Create a ZIP file for easy distribution
 
The build script supports several options:
# Build with debugging console
python build_app.py --debug
# Build as a directory instead of a single file
python build_app.py --onedir
# Specify a custom icon
python build_app.py --icon path/to/your/icon.png
# Specify a custom name for the executable
python build_app.py --name "MyCursorApp"pyinstaller --onefile --windowed --icon=icons/icon.ico src/main.pypyinstaller --onefile --windowed --icon=icons/icon.icns src/main.py- Launch the application
 - Click "Upload PNG" to select a PNG image file
 - Adjust the hotspot position (X and Y coordinates) if needed
 - Click "Apply as Cursor" to set your custom cursor
 - To revert to the default cursor, click "Reset to Default"
 
- Cursor size is limited to 48x48 pixels for optimal display
 - On macOS, the cursor may occasionally revert to default in certain system areas due to security restrictions
 - On Windows, cursor changes require appropriate permissions
 
This project is licensed under the MIT License - see the LICENSE file for details.
- PyQt6 for the cross-platform GUI
 - Pillow for image processing