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

Conversation

chadrwalters
Copy link

@chadrwalters chadrwalters commented Jan 17, 2025

Description

MuteDeck Extension for Raycast

This extension provides quick access to MuteDeck controls directly from Raycast, allowing users to manage their meeting presence efficiently.

Features

  • 🎤 Toggle microphone mute/unmute
  • 📹 Toggle camera on/off
  • 🚪 Leave current meeting
  • 📊 View current meeting status and controls

Key Highlights

  • Fast Controls: Quick access to essential meeting controls without switching apps
  • Status Awareness: Real-time status display for microphone, camera, and meeting state
  • Safety Features: Optional confirmation dialogs when:
    • Leaving meetings
    • Toggling controls while presenting/recording
    • Making changes that could disrupt presentations

Technical Details

  • Built with Raycast API v1.88.4
  • Uses local HTTP API (default: localhost:3491) to communicate with MuteDeck
  • Configurable refresh intervals and notification preferences
  • Clean, TypeScript-based implementation
  • Minimal dependencies for optimal performance

Security

  • All operations are local (no external API calls)
  • Documented security policy for development dependencies
  • No data collection or external analytics

Configuration

Users can customize:

  • API endpoint
  • Status refresh interval
  • Confirmation dialogs for critical actions
  • Toast notification preferences

This extension helps streamline meeting controls for MuteDeck users while maintaining a focus on reliability and user safety.

Screencast

01-command-list 02-status-display 03-toast-notifications 04-preferences 05-confirmation-dialog

Checklist

@raycastbot raycastbot added the new extension Label for PRs with new extensions label Jan 17, 2025
@raycastbot
Copy link
Collaborator

Congratulations on your new Raycast extension! 🚀

You can expect an initial review within five business days.

Once the PR is approved and merged, the extension will be available on our Store.

Copy link
Collaborator

@pernielsentikaer pernielsentikaer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi 👋

Thanks for your contribution 💪

I have now tested your extension, and I have some feedback ready for you:

  • You have a lot of dot files; are they necessary?

  • Could you please use the standard .prettierrc settings

  • Could you add at least one screenshot of the extension's view commands

  • What is the plan with the screenshots in the assets folder?

  • Do you have a screencast of the extension in use so I can see the flow?

I'm looking forward to testing this extension again 🔥

Request a new review when you are ready. Feel free to contact me here or at Slack if you have any questions.

@pernielsentikaer pernielsentikaer self-assigned this Jan 24, 2025
@chadrwalters
Copy link
Author

Thanks for the review @pernielsentikaer! I've addressed all the feedback:

  1. Dot Files Cleanup

    • Removed unnecessary dot files from git tracking
    • Kept only essential configuration files
    • Added others to .gitignore
  2. Prettier Configuration

    • Updated .prettierrc to match Raycast's standard settings
    • Applied formatting to all files
    • Added proper TypeScript types and formatting rules
  3. Screenshots & Demo

    • Screenshots are organized in assets/store/screenshots/
    • Added screencast demo showing the extension workflow
    • Updated README with better feature documentation and demo section

Changes made:

  • Fixed API endpoint paths to match v1 spec
  • Updated types to match API schema exactly
  • Cleaned up project structure
  • Enhanced documentation

The extension is now working correctly and follows all Raycast standards. Please let me know if you'd like to see any other improvements!

Copy link
Collaborator

@pernielsentikaer pernielsentikaer left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for taking your time to correct this 🙂

A few more:

  • I can see all dotfiles still, should we delete them from the PR?
  • metadata images should be in a folder called metadata and be takign with our screenshot tool

@chadrwalters
Copy link
Author

Thanks for the additional feedback! I've addressed both points:

  1. Dot Files: I've cleaned up the repository history to remove all unnecessary dot files. The only remaining dot files are the essential ones:

    • .eslintrc.js - ESLint configuration
    • .gitignore - Git configuration
    • .prettierrc - Prettier configuration
  2. Screenshots: I've retaken the screenshots using Raycast's screenshot tool and moved them to the proper location:

    • Created a metadata/screenshots folder
    • Added new screenshots taken with the Raycast tool
    • Updated the README to reference the new screenshots
    • Removed the old screenshots from assets/store

Please let me know if you'd like to see any other improvements or if there's anything else I can clarify!

@pernielsentikaer
Copy link
Collaborator

Did you push this into chadrwalters:ext/mutedeck?

@chadrwalters
Copy link
Author

Yes, I've now pushed all the changes to the ext/mutedeck branch. The PR should now show:

  1. Cleaned up dot files (only essential ones remain)
  2. Screenshots moved to metadata/screenshots and taken with the Raycast tool
  3. Updated README with the new screenshot paths

Sorry for the branch confusion earlier. Everything should be in the right place now!

@pernielsentikaer
Copy link
Collaborator

@chadrwalters
Copy link
Author

@pernielsentikaer First, I want to sincerely thank you for your patience and guidance throughout this PR process. I really appreciate the time you've taken to help me get this right.

I should mention - this is actually my first PR to a public repository in about 10 years! I've been away from production code for a while, and I chose Raycast for my return because it's one of my favorite tools. Thank you for bearing with me as I get back into the swing of things.

I've now addressed all the feedback:

  1. Cleaned up the repository:

    • Removed unnecessary dot files
    • Kept only the essential ones (.eslintrc.js, .gitignore, .prettierrc)
  2. Fixed the screenshots:

    • Moved them to the proper metadata/screenshots folder
    • Retook them using the Raycast screenshot tool
    • Updated the README to reference the new locations
  3. Fixed code formatting:

    • Added proper ESLint configuration
    • Applied Prettier 3.4.2 formatting
    • Fixed all linting issues

All changes have been pushed to the ext/mutedeck branch. You can verify the changes at the latest commits (ebf71fa).

Thanks again for helping me make this contribution as polished as possible!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
new extension Label for PRs with new extensions
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants