Files
cinny-desktop/streamdeck-plugin/QUICKSTART.md
Max Litruv Boonzaayer 07feddd44b
Some checks failed
Build / increment-version (push) Successful in 8s
Build / build-linux (push) Successful in 2m26s
Build Paarrot Windows / build (push) Has been cancelled
Build Paarrot Windows / start-vm (push) Has been cancelled
Build / build-windows (push) Successful in 4m28s
Build / create-release (push) Successful in 30s
Add Paarrot Stream Deck Plugin with core functionality
- Implemented main plugin structure including manifest, HTML, and JavaScript files.
- Added actions for toggling mute, toggling deafen, changing channels, sending messages, and getting status.
- Created property inspector for changing channels and sending messages.
- Developed SVG icons for actions and status display.
- Established WebSocket connection for communication with the Stream Deck.
- Implemented API calls to interact with the Paarrot voice chat application.
- Added validation script to ensure proper plugin structure and manifest compliance.
- Included test Electron application for window creation and loading content.
2026-03-23 20:34:26 +11:00

208 lines
4.8 KiB
Markdown

# Quick Start Guide - Paarrot Stream Deck Plugin
## For Users
### Installation (3 simple steps)
1. **Download the plugin**
- Get `com.paarrot.streamdeck-v1.0.0.streamDeckPlugin` from releases
2. **Install**
- Double-click the `.streamDeckPlugin` file
- Stream Deck software will open and install it automatically
3. **Add to your Stream Deck**
- Open Stream Deck software
- Find "Paarrot" in the actions list (under "Voice & Chat")
- Drag actions to your buttons
### Quick Action Guide
| Action | What it does | Setup needed? |
|--------|--------------|---------------|
| Toggle Mute | Mute/unmute mic | No |
| Toggle Deafen | Mute/unmute speakers | No |
| Change Channel | Switch rooms | Yes - pick room |
| Send Message | Send preset message | Yes - type message |
| Get Status | Show mute/deafen state | No |
### Configuration Examples
**Change Channel**:
1. Drag to button
2. Click button in Stream Deck to open settings
3. Select channel from dropdown
4. Done!
**Send Message**:
1. Drag to button
2. Click button in Stream Deck to open settings
3. Type message (e.g., "BRB!")
4. Done!
---
## For Developers
### Prerequisites
- Node.js (for build scripts)
- Stream Deck software
- Text editor
### Development Setup
```powershell
# Clone or download the repo
cd streamdeck-plugin
# Validate plugin structure
node validate.js
# Install to Stream Deck (Windows)
Copy-Item -Recurse -Force com.paarrot.streamdeck.sdPlugin "$env:APPDATA\Elgato\StreamDeck\Plugins\"
# Install to Stream Deck (macOS)
cp -r com.paarrot.streamdeck.sdPlugin ~/Library/Application\ Support/com.elgato.StreamDeck/Plugins/
# Restart Stream Deck software
```
### Making Changes
1. Edit files in `com.paarrot.streamdeck.sdPlugin/`
2. Run validation: `node validate.js`
3. Restart Stream Deck software
4. Test your changes
### Building for Distribution
```powershell
# Validate first
node validate.js
# Build .streamDeckPlugin file
node build.js
# Output will be in dist/ folder
```
### File Guide
```
com.paarrot.streamdeck.sdPlugin/
├── manifest.json # Edit: plugin info, actions
├── plugin/
│ └── index.js # Edit: main logic, API calls
├── propertyinspector/
│ ├── change-channel.html # Edit: channel picker UI
│ └── send-message.html # Edit: message input UI
└── images/ # Edit: replace SVGs with your icons
└── *.svg
```
### Adding a New Action
1. **Add to manifest.json**:
```json
{
"Icon": "images/my-action",
"Name": "My Action",
"States": [{ "Image": "images/my-action" }],
"Tooltip": "Does something cool",
"UUID": "com.paarrot.streamdeck.myaction"
}
```
2. **Add icon**: `images/my-action.svg`
3. **Add logic in plugin/index.js**:
```javascript
const ACTIONS = {
MY_ACTION: 'com.paarrot.streamdeck.myaction'
};
// In handleKeyDown:
case ACTIONS.MY_ACTION:
// Your code here
break;
```
4. **Test**: Restart Stream Deck software
### Testing
1. Enable Stream Deck console: `View > Open Console`
2. Watch for errors when pressing buttons
3. Test all actions with Paarrot running
4. Test with Paarrot not running (should fail gracefully)
### API Reference
The plugin calls these Paarrot API endpoints:
```javascript
// Status polling (every 1 second)
GET http://127.0.0.1:33384/status
// Toggle actions
POST http://127.0.0.1:33384/mute/toggle
POST http://127.0.0.1:33384/deafen/toggle
// Configured actions
POST http://127.0.0.1:33384/channel
Body: { "roomId": "!abc:server.com" }
POST http://127.0.0.1:33384/message/current
Body: { "message": "Hello!" }
// Property inspector
GET http://127.0.0.1:33384/channels
```
### Common Issues
**Plugin not loading**:
- Check manifest.json syntax (use validator)
- Ensure folder name is exactly `com.paarrot.streamdeck.sdPlugin`
- Restart Stream Deck software
**Actions not working**:
- Open console (View > Open Console)
- Check for JavaScript errors
- Verify Paarrot API is running
**Icons not showing**:
- Ensure files exist at paths specified in manifest
- Use .svg or .png format
- Check file paths are relative to plugin root
### Resources
- [Stream Deck SDK Documentation](https://docs.elgato.com/sdk)
- [Paarrot API Documentation](../API.md)
- [Example Plugins](https://github.com/elgatosf/streamdeck-plugins)
### Publishing Checklist
- [ ] Update version in manifest.json
- [ ] Run `node validate.js` (no errors)
- [ ] Test all actions
- [ ] Test with Paarrot off (graceful failure)
- [ ] Update README.md version history
- [ ] Run `node build.js`
- [ ] Test .streamDeckPlugin file installs correctly
- [ ] Create GitHub release with .streamDeckPlugin file
---
## Support
**Users**: See README.md troubleshooting section
**Developers**: Open an issue on GitHub with:
- What you're trying to do
- What's happening
- Console errors
- Plugin version