Skip to content

feat: FaceTime mute/unmute shortcut, set as the default action for FaceTime #17

Description

@ericfitz

Summary

Provide a built-in way to mute/unmute the microphone in Apple's FaceTime app via a generated Apple Shortcut, and ship a default action for FaceTime (bundle ID com.apple.FaceTime) that runs that shortcut on a pedal press.

This builds on the Apple Shortcut action support from #3 (Action.shortcut(ShortcutRef)).

Motivation

The most common footswitch use case for a video-call app is push-to-mute / mute toggle. FaceTime does not expose a stable, reliable global key combo we can simply post, so a key-combo rule isn't a good fit. The Shortcuts route gives us a robust, user-visible action that toggles the FaceTime mic, and we can wire it up as the FaceTime default so a known app "just works" out of the box.

Proposed Approach

  • Create the shortcut: provide a FaceTime mute/unmute Apple Shortcut. Decide whether we:
    • ship/import a ready-made .shortcut the user installs once, and/or
    • generate/install it programmatically the first time the user opts in.
  • Toggle behavior: the shortcut should toggle mute (mute when live, unmute when muted) so a single-switch pedal works as a push-to-mute toggle. Slots 2/3 can map to explicit mute / unmute if we want distinct actions for multi-switch pedals.
  • Wire up the default: configure FaceTime (com.apple.FaceTime) so its default rule action is shortcut(<the FaceTime mute shortcut>). This dovetails with the known-apps catalog in feat: catalog of known apps (bundle ID → default per-pedal key mappings) to pre-fill rules on add #16 — FaceTime is a natural first catalog entry whose default is a shortcut rather than a key combo.

Open Questions / Decisions

  • Mute mechanism: how does the shortcut actually toggle the FaceTime mic? (Options to evaluate: the system mic-mute toggle / Control Center, AppleScript/UI scripting of FaceTime, or a documented FaceTime control.) Pick the most reliable approach across current macOS.
  • Distribution: bundle a .shortcut file vs. programmatic install vs. guided one-time setup. Account for the Shortcuts permission prompt on first run.
  • Toggle vs. explicit: single toggle shortcut for slot 1, plus optional discrete mute/unmute for slots 2/3?
  • Discoverability: surface this in Settings (e.g. an "Add FaceTime mute" affordance) so users find it without hand-rolling a shortcut.

Acceptance Criteria

  • A FaceTime mute/unmute Apple Shortcut is available to the user (bundled or installable from the app).
  • FaceTime (com.apple.FaceTime) has a default action that runs the mute shortcut on pedal press.
  • Pressing the configured pedal while FaceTime is frontmost toggles the FaceTime mic.
  • The user can change or remove the FaceTime default like any other rule.

Relevant Code / Prior Work

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions