Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add mutedeck extension #16432

Open
wants to merge 3 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions extensions/mutedeck/.eslintrc.json
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
{"extends": ["@raycast"]}
52 changes: 52 additions & 0 deletions extensions/mutedeck/CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
# Changelog

All notable changes to the MuteDeck Raycast extension will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.0.0] - 2024-03-15

### Added

- Initial release of MuteDeck Raycast extension
- Core meeting control commands:
- Toggle Microphone (⌘ M)
- Toggle Video (⌘ ⇧ V)
- Leave Meeting (⌘ ⇧ L)
- Show Status (⌘ ⇧ S)
- Real-time status monitoring
- Customizable keyboard shortcuts
- User preferences:
- Custom API endpoint
- Status refresh interval
- Confirmation dialogs
- Toast notifications
- Enhanced error handling with troubleshooting steps
- Confirmation dialogs for potentially disruptive actions:
- Leaving meetings
- Toggling mic/video while presenting
- Toggling mic/video while recording
- Comprehensive documentation:
- Installation guide
- Keyboard shortcut customization
- Troubleshooting guide
- Contribution guidelines

### Security

- Local-only API communication (http://localhost:3491)
- No external data transmission
- Secure preference handling

## [Unreleased]

### Planned

- Meeting platform detection
- Meeting duration tracking
- Custom notification sounds
- Meeting quick actions
- Meeting history view
- Status menu bar item
- Multi-platform support
118 changes: 118 additions & 0 deletions extensions/mutedeck/CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,118 @@
# Contributing to MuteDeck Raycast Extension

Thank you for your interest in contributing to the MuteDeck Raycast extension! This document provides guidelines and instructions for development.

## Development Setup

### Prerequisites

- Node.js 16 or later
- npm 7 or later
- Raycast installed
- MuteDeck installed
- Git

### Getting Started

1. Clone the repository:

```bash
git clone https://github.com/yourusername/mutedeck-raycast-extension.git
cd mutedeck-raycast-extension
```

2. Install dependencies:

```bash
npm install
```

3. Start development:
```bash
npm run dev
```

## Development Guidelines

### Code Style

- Use TypeScript strict mode
- Follow ESLint and Prettier configurations
- Keep functions small and focused
- Add type definitions for all parameters
- Document complex logic

### Command Structure

- One command per file
- Place commands in `src/commands/`
- Use consistent naming
- Include command metadata
- Add keyboard shortcut hints

### Error Handling

- Validate inputs
- Provide clear error messages
- Include recovery steps
- Handle edge cases
- Add user guidance

### Testing

- Test all commands
- Verify error states
- Check performance
- Validate UX flows
- Test keyboard shortcuts

## Pull Request Process

1. Create a feature branch:

```bash
git checkout -b feature/your-feature-name
```

2. Make your changes following our guidelines

3. Update documentation as needed

4. Run quality checks:

```bash
npm run lint
npm run build
```

5. Submit a pull request:
- Use a clear title
- Describe your changes
- Reference any issues
- Add screenshots if relevant

## Release Process

1. Version bump:

- Update version in package.json
- Update CHANGELOG.md
- Create release notes

2. Build and test:

```bash
npm run build
# Test the built extension
```

3. Create a release:
- Tag the version
- Add release notes
- Include any migration steps

## Questions?

- Open an issue for bugs
- Start a discussion for features
- Join our community for help
21 changes: 21 additions & 0 deletions extensions/mutedeck/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2024 Chad Walters

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
111 changes: 111 additions & 0 deletions extensions/mutedeck/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,111 @@
# MuteDeck for Raycast

Control your meeting audio and video directly from Raycast. MuteDeck provides quick access to essential meeting controls, making it easy to manage your presence in online meetings.

## Demo

![MuteDeck Raycast Extension Demo](assets/store/screencast.gif)

## Screenshots

![Command List](metadata/screenshots/list-view.png)
![Status Display](metadata/screenshots/status-display.png)
![Confirmation Dialog](metadata/screenshots/confirmation.png)

## Features

- 🎤 **Microphone Control**
- Quick mute/unmute toggle
- Status indicator
- Safety confirmations while presenting

- 📹 **Camera Control**
- Toggle video on/off
- Visual status display
- Confirmation dialogs for safe operation

- 🚪 **Meeting Management**
- One-click meeting exit
- Current meeting status
- Optional leave confirmations

- 📊 **Real-time Status**
- Meeting state indicator
- Microphone status
- Camera status
- Screen sharing status
- Recording status

## Requirements

- macOS 12 or later
- Raycast 1.50.0 or later
- MuteDeck desktop app installed and running

## Installation

1. Install the MuteDeck desktop app
2. Install this extension from Raycast Store
3. Grant necessary permissions when prompted

## Usage

### Quick Commands

- **Toggle Microphone**: Quickly mute/unmute your microphone
- **Toggle Video**: Turn your camera on/off
- **Leave Meeting**: Exit the current meeting
- **Show Status**: View current meeting state and controls

### Keyboard Shortcuts

You can assign custom keyboard shortcuts to any command through Raycast preferences.

## Troubleshooting

### Common Issues

1. **Commands not working**

- Ensure MuteDeck desktop app is running
- Check if you're in an active meeting
- Verify permissions are granted

2. **Icons not visible**

- Restart Raycast
- Clear command cache (⌘ + ⌥ + R)
- Reinstall extension if needed

3. **Status not updating**
- Check MuteDeck desktop app status
- Ensure network connectivity
- Restart the extension

## Development

See [Development Guidelines](docs/development.md) for detailed information about:

- Setting up the development environment
- Code quality standards
- Testing procedures
- Release process

## Contributing

We welcome contributions! Please see our [Contributing Guide](CONTRIBUTING.md) for details on:

- Code of conduct
- Development process
- Pull request guidelines
- Testing requirements

## Support

- [Report an Issue](https://github.com/chadrwalters/mutedeck-raycast-extension/issues)
- [Request a Feature](https://github.com/chadrwalters/mutedeck-raycast-extension/issues/new)
- [View Documentation](docs/)

## License

MIT License - see [LICENSE](LICENSE) for details
88 changes: 88 additions & 0 deletions extensions/mutedeck/RELEASE_NOTES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,88 @@
# MuteDeck Raycast Extension v1.0.0

We're excited to announce the initial release of MuteDeck Raycast extension! This extension brings quick meeting controls to your fingertips with keyboard shortcuts and instant feedback.

## 🎯 Highlights

- **Quick Meeting Controls**: Toggle microphone, camera, and leave meetings with single commands
- **Real-time Status**: Monitor your meeting state with live updates
- **Smart Protection**: Confirmation dialogs for potentially disruptive actions
- **Keyboard-First**: All actions accessible via customizable shortcuts

## 🎤 Core Features

### Meeting Controls

- Toggle Microphone (⌘ M)
- Toggle Video (⌘ ⇧ V)
- Leave Meeting (⌘ ⇧ L)
- Show Status (⌘ ⇧ S)

### User Experience

- Toast notifications for feedback
- Confirmation dialogs for safety
- Real-time status updates
- Customizable preferences

### Privacy & Security

- Local-only communication
- No data collection
- Secure preference handling
- Clear data practices

## 🛠 Requirements

- macOS 12.0 or later
- Raycast 1.50.0 or later
- MuteDeck desktop app
- Active meeting for controls

## 📚 Documentation

- Comprehensive installation guide
- Keyboard shortcut customization
- Troubleshooting steps
- Development guidelines

## 🔒 Security

- Local API communication only
- No external data transmission
- Permission-based access
- Clear error handling

## 🎯 Next Steps

We're already planning exciting features:

- Meeting platform detection
- Duration tracking
- Custom notifications
- Quick actions menu
- History view
- Multi-platform support

## 🙏 Feedback

We welcome your feedback and contributions:

- [Report Issues](https://github.com/yourusername/mutedeck-raycast-extension/issues)
- [Request Features](https://github.com/yourusername/mutedeck-raycast-extension/issues/new)
- [View Documentation](https://github.com/yourusername/mutedeck-raycast-extension/blob/main/README.md)

## 📋 Installation

1. Install MuteDeck desktop app
2. Install this extension from Raycast Store
3. Configure your preferred shortcuts
4. Start controlling your meetings!

## 🔍 Known Issues

No known issues in this release. Please report any issues you find through our GitHub repository.

## 🎉 Thank You

Thank you for choosing MuteDeck Raycast extension. We're committed to making your meeting controls seamless and efficient.
Loading
Loading