A 3D Slicer extension for advanced mouse customization, button remapping, and workflow optimization.
Full Documentation | User Guide | Developer Guide
- Button Remapping: Assign custom actions to mouse buttons (back, forward, thumb, etc.)
- Mouse Profiles: Built-in support for popular mice with auto-detection
- Workflow Presets: Save and share button configurations for different tasks
- Context-Sensitive Bindings: Different mappings per Slicer module
- Cross-Platform: Works on Windows, macOS, and Linux
| Mouse | Vendor ID | Buttons | Status |
|---|---|---|---|
| Logitech MX Master 3S | 0x46D | 7 | Fully Supported |
| Logitech MX Master 4 | 0x46D | 7 | Fully Supported |
| Generic 3-Button | Any | 3 | Basic Support |
| Generic 5-Button | Any | 5 | Basic Support |
Don't see your mouse? Use the button detection wizard to create a custom profile.
- Open 3D Slicer
- Go to View > Extension Manager
- Search for "MouseMaster"
- Click Install
- Restart Slicer
git clone https://github.com/benzwick/SlicerMouseMaster.git
# Add to Slicer's module paths-
Open the Module: Navigate to Modules > Utilities > MouseMaster
-
Select Your Mouse: Choose your mouse model from the dropdown, or use "Auto-Detect"
-
Choose or Create a Preset:
- Select a built-in preset for common workflows
- Or create your own by clicking "New Preset"
-
Customize Bindings:
- Click on a button in the mapping table
- Choose an action from the dropdown
- Changes apply immediately
-
Save Your Preset: Click "Save Preset" to keep your configuration
| Button | Default Action | Segment Editor Override |
|---|---|---|
| Back | Undo | Previous Segment |
| Forward | Redo | Next Segment |
| Thumb | Toggle Crosshair | Toggle Paint/Erase |
| Middle Click | Reset 3D View | (No override) |
MouseMaster automatically detects which Slicer module is active and can apply different bindings:
- Segment Editor: Optimized for segmentation workflow
- Markups: Quick placement and editing
- Volume Rendering: View manipulation shortcuts
- Default: Fallback bindings for all other modules
If your mouse isn't listed:
- Click "Detect New Mouse"
- Press each button when prompted
- Name and save your profile
- Your mouse will be available in the dropdown
Export a Preset:
- Select the preset you want to share
- Click "Export Preset"
- Choose a location to save the .json file
Import a Preset:
- Click "Import Preset"
- Select a .json preset file
- The preset will be added to your list
Community Presets: Browse community-submitted presets at our GitHub Discussions.
- Reset 3D View
- Zoom In / Zoom Out
- Pan View
- Rotate View
- Undo / Redo
- Delete Selected
- Toggle Crosshair
- Next/Previous Segment
- Toggle Effect (Paint/Erase)
- Apply Effect
- Show/Hide Segment
- Run Slicer Python command
- Trigger menu action by name
- Keyboard shortcut simulation
- Ensure MouseMaster module is loaded (check module selector)
- Verify your mouse is recognized by the operating system
- Try the "Detect Buttons" wizard to confirm button codes
- On Linux, you may need to add yourself to the
inputgroup
- Check you have write permissions to the Slicer settings directory
- Try exporting to a specific location instead
- Check the Slicer Python console for error messages
- Ensure the module is listed in context-sensitive settings
- Check if another extension is consuming the button events
- Try setting higher priority in advanced settings
Button codes may differ between operating systems. If a preset created on Windows doesn't work on Linux:
- Re-detect buttons using the wizard
- Save as a new platform-specific preset
- 3D Slicer 5.10 or later
- No additional dependencies (uses Qt/VTK from Slicer)
We welcome contributions! See CONTRIBUTING.md for guidelines.
- Check existing issues on GitHub
- Include: Slicer version, OS, mouse model, steps to reproduce
- Attach relevant preset files if applicable
Share your workflow presets with the community:
- Export your preset to JSON
- Create a Discussion post in the "Presets" category
- Include: mouse model, workflow description, any special setup
For comprehensive documentation, visit the documentation site:
This project is licensed under the Apache License 2.0. See LICENSE.txt for details.
- 3D Slicer community for the excellent platform
- Contributors who submitted mouse profiles and presets
