--- name: add-mouse-profile description: Create a new mouse profile for a mouse model not yet supported allowed-tools: - Read - Write - Glob - Grep context: manual --- # Add Mouse Profile Skill Create a new mouse profile for MouseMaster. ## When to Use Use this skill when: - User wants to add support for a new mouse model - User has button detection results to formalize - User provides vendor/product IDs for a mouse ## Steps 1. **Gather Information** Ask the user for: - Mouse name (e.g., "Logitech MX Master 3S") - Vendor name - Vendor ID (hex, e.g., "0x046D") - optional - Product IDs (hex array) - optional - Number of buttons 2. **Create Profile ID** Generate from name: lowercase, underscores for spaces Example: "Logitech MX Master 3S" -> "logitech_mx_master_3s" 3. **Define Buttons** For each button, define: ```json { "id": "button_id", "name": "Human Name", "qtButton": , "remappable": true/false, "defaultAction": "action_id" // optional } ``` Standard Qt button codes: - 1: Left Click (not remappable) - 2: Right Click (not remappable) - 4: Middle Click - 8: Back/Button 4 - 16: Forward/Button 5 - 32: Extra Button 1 - 64: Extra Button 2 4. **Create JSON File** Write to: `MouseMaster/Resources/MouseDefinitions/.json` ```json { "id": "", "name": "", "vendor": "", "vendorId": "", "productIds": [""], "buttons": [...], "features": { "horizontalScroll": false, "thumbWheel": false, "gestureButton": false } } ``` 5. **Create Default Preset** Write to: `presets/builtin/default_.json` ```json { "id": "default_", "name": " Default", "version": "1.0", "mouseId": "", "mappings": { "middle": {"action": "view_reset_3d"}, "back": {"action": "edit_undo"}, "forward": {"action": "edit_redo"} }, "contextMappings": {} } ``` 6. **Update Documentation** Add to README.md supported mice table: ```markdown | | |