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
<!-- Fix for Issue #1540 - Deep Links & Raycast Support -->
# Commit & Git Workflow
## Commit Message (Conventional Commits)
```
feat(deeplink): add recording controls and raycast extension #1540
Extends the DeepLinkAction enum with PauseRecording, ResumeRecording,
TogglePauseRecording, SwitchMicrophone, and SwitchCamera variants.
Adds a companion Raycast extension with two commands: cap-control
(recording lifecycle) and switch-device (mic/camera switcher).
All Rust code uses the ? operator for error propagation (no .unwrap).
API key in Raycast is stored via LocalStorage, never hard-coded.
Closes#1540
```
---
## Git Commands to Submit the PR
### Step 1 — Fork & clone (if not already done)
```bash
# Fork the repo on GitHub first, then:
git clone https://github.com/<YOUR-USERNAME>/Cap.git
cd Cap
git remote add upstream https://github.com/CapSoftware/Cap.git
```
### Step 2 — Create a feature branch
```bash
git checkout -b feat/deeplink-raycast-1540
```
### Step 3 — Copy the generated files
```bash
# Rust change
cp path/to/cap-bounty-1540/apps/desktop/src-tauri/src/deeplink_actions.rs \
apps/desktop/src-tauri/src/deeplink_actions.rs
# Raycast extension
cp -r path/to/cap-bounty-1540/extensions/raycast extensions/raycast
```
### Step 4 — Stage and commit
```bash
git add apps/desktop/src-tauri/src/deeplink_actions.rs
git add extensions/raycast/
git commit -m "feat(deeplink): add recording controls and raycast extension #1540
Extends the DeepLinkAction enum with PauseRecording, ResumeRecording,
TogglePauseRecording, SwitchMicrophone, and SwitchCamera variants.
Adds a companion Raycast extension with two commands: cap-control
(recording lifecycle) and switch-device (mic/camera switcher).
All Rust code uses the ? operator for error propagation (no .unwrap).
API key in Raycast is stored via LocalStorage, never hard-coded.
Closes#1540"
```
### Step 5 — Push and open the PR
```bash
git push origin feat/deeplink-raycast-1540
# Then open GitHub and create the PR from feat/deeplink-raycast-1540 → main
# Paste the contents of PR_DESCRIPTION.md into the PR body.
```
---
## Pre-PR Checklist
```bash
# Rust syntax check (no full build needed for CI check)
cd apps/desktop
cargo check
# TypeScript lint
cd extensions/raycast
npm install
npm run lint
npm run build
```
<!-- Fix for Issue #1540 - Deep Links & Raycast Support -->
3
+
4
+
Control your [Cap](https://cap.so) screen recording sessions directly from Raycast — no mouse required.
5
+
6
+
## Commands
7
+
8
+
| Command | Description |
9
+
|---|---|
10
+
|**Cap: Recording Controls**| Start, stop, pause, resume, or toggle your recording session |
11
+
|**Cap: Switch Input Device**| Switch the active microphone or camera |
12
+
13
+
## Requirements
14
+
15
+
-**Cap for macOS** installed from [cap.so](https://cap.so)
16
+
- A **Cap API key** (only required for the device switcher — find it in Cap Settings → Developer)
17
+
18
+
## How It Works
19
+
20
+
Both commands build a `cap-desktop://action?value=<JSON>` deep link and call `open()` to hand off control to the Cap desktop app. Cap handles all state transitions; this extension stays stateless.
0 commit comments