You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
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.
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
.shortcutthe user installs once, and/orcom.apple.FaceTime) so its default rule action isshortcut(<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
.shortcutfile vs. programmatic install vs. guided one-time setup. Account for the Shortcuts permission prompt on first run.Acceptance Criteria
com.apple.FaceTime) has a default action that runs the mute shortcut on pedal press.Relevant Code / Prior Work
Action.shortcut(ShortcutRef))Sources/FootswitchCore/Models/Action.swift—shortcutcaseSources/FootswitchCore/Models/DefaultAction.swift/RuleResolver.swift— default + per-app resolution