diff --git a/apps/desktop/src-tauri/src/deeplink_actions.rs b/apps/desktop/src-tauri/src/deeplink_actions.rs index a117028487..c47716d6be 100644 --- a/apps/desktop/src-tauri/src/deeplink_actions.rs +++ b/apps/desktop/src-tauri/src/deeplink_actions.rs @@ -26,6 +26,8 @@ pub enum DeepLinkAction { mode: RecordingMode, }, StopRecording, + PauseRecording, + ResumeRecording, OpenEditor { project_path: PathBuf, }, diff --git a/apps/raycast-extension/package.json b/apps/raycast-extension/package.json new file mode 100644 index 0000000000..f538da1577 --- /dev/null +++ b/apps/raycast-extension/package.json @@ -0,0 +1,43 @@ +{ + "$schema": "https://www.raycast.com/schemas/extension.json", + "name": "cap", + "title": "Cap", + "description": "Control Cap screen recorder from Raycast", + "icon": "command-icon.png", + "author": "sixty-dollar-agent", + "categories": ["Productivity"], + "license": "MIT", + "commands": [ + { + "name": "start-recording", + "title": "Start Recording", + "description": "Start a new Cap screen recording", + "mode": "no-view" + }, + { + "name": "stop-recording", + "title": "Stop Recording", + "description": "Stop the current Cap recording", + "mode": "no-view" + }, + { + "name": "pause-recording", + "title": "Pause Recording", + "description": "Pause the current Cap recording", + "mode": "no-view" + }, + { + "name": "resume-recording", + "title": "Resume Recording", + "description": "Resume a paused Cap recording", + "mode": "no-view" + } + ], + "dependencies": { + "@raycast/api": "^1.64.0" + }, + "devDependencies": { + "@raycast/eslint-config": "^1.0.8", + "typescript": "^5.3.3" + } +} diff --git a/apps/raycast-extension/src/pause-recording.ts b/apps/raycast-extension/src/pause-recording.ts new file mode 100644 index 0000000000..1910a3ecb6 --- /dev/null +++ b/apps/raycast-extension/src/pause-recording.ts @@ -0,0 +1,6 @@ +import { showHUD, open } from "@raycast/api"; + +export default async function Command() { + await open("cap-desktop://action?value=%22pause_recording%22"); + await showHUD("Cap: Recording paused"); +} diff --git a/apps/raycast-extension/src/resume-recording.ts b/apps/raycast-extension/src/resume-recording.ts new file mode 100644 index 0000000000..3a75341a2b --- /dev/null +++ b/apps/raycast-extension/src/resume-recording.ts @@ -0,0 +1,6 @@ +import { showHUD, open } from "@raycast/api"; + +export default async function Command() { + await open("cap-desktop://action?value=%22resume_recording%22"); + await showHUD("Cap: Recording resumed"); +} diff --git a/apps/raycast-extension/src/start-recording.ts b/apps/raycast-extension/src/start-recording.ts new file mode 100644 index 0000000000..f67aa48854 --- /dev/null +++ b/apps/raycast-extension/src/start-recording.ts @@ -0,0 +1,6 @@ +import { showHUD, open } from "@raycast/api"; + +export default async function Command() { + await open("cap-desktop://action?value=%7B%22start_recording%22%3A%7B%22capture_mode%22%3A%7B%22screen%22%3A%22default%22%7D%2C%22camera%22%3Anull%2C%22mic_label%22%3Anull%2C%22capture_system_audio%22%3Afalse%2C%22mode%22%3A%22instant%22%7D%7D"); + await showHUD("Cap: Recording started"); +} diff --git a/apps/raycast-extension/src/stop-recording.ts b/apps/raycast-extension/src/stop-recording.ts new file mode 100644 index 0000000000..6813bf45da --- /dev/null +++ b/apps/raycast-extension/src/stop-recording.ts @@ -0,0 +1,6 @@ +import { showHUD, open } from "@raycast/api"; + +export default async function Command() { + await open("cap-desktop://action?value=%22stop_recording%22"); + await showHUD("Cap: Recording stopped"); +} diff --git a/apps/raycast-extension/tsconfig.json b/apps/raycast-extension/tsconfig.json new file mode 100644 index 0000000000..20f9572069 --- /dev/null +++ b/apps/raycast-extension/tsconfig.json @@ -0,0 +1,14 @@ +{ + "compilerOptions": { + "target": "ES2020", + "module": "ES2020", + "moduleResolution": "bundler", + "strict": true, + "esModuleInterop": true, + "skipLibCheck": true, + "forceConsistentCasingInFileNames": true, + "resolveJsonModule": true, + "jsx": "react-jsx" + }, + "include": ["src/**/*"] +}