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
- 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.
208 lines
4.8 KiB
Markdown
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
|