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

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