diff options
| author | Adam <[email protected]> | 2026-02-12 15:03:02 -0600 |
|---|---|---|
| committer | Adam <[email protected]> | 2026-02-12 15:03:05 -0600 |
| commit | 4e0f509e7b7d84395a541bdfa658f6c98f588221 (patch) | |
| tree | 45912ad3c9b0d9cc532fa4d72fe20938a1273090 /packages/app/src/context | |
| parent | ff3b174c423d89b39ee8154863840e48c8aac371 (diff) | |
| download | opencode-4e0f509e7b7d84395a541bdfa658f6c98f588221.tar.gz opencode-4e0f509e7b7d84395a541bdfa658f6c98f588221.zip | |
feat(app): option to turn off sound effects
Diffstat (limited to 'packages/app/src/context')
| -rw-r--r-- | packages/app/src/context/notification.tsx | 8 | ||||
| -rw-r--r-- | packages/app/src/context/settings.tsx | 21 |
2 files changed, 27 insertions, 2 deletions
diff --git a/packages/app/src/context/notification.tsx b/packages/app/src/context/notification.tsx index bf880d115..04bc2fdaa 100644 --- a/packages/app/src/context/notification.tsx +++ b/packages/app/src/context/notification.tsx @@ -233,7 +233,9 @@ export const { use: useNotification, provider: NotificationProvider } = createSi if (!session) return if (session.parentID) return - playSound(soundSrc(settings.sounds.agent())) + if (settings.sounds.agentEnabled()) { + playSound(soundSrc(settings.sounds.agent())) + } append({ directory, @@ -260,7 +262,9 @@ export const { use: useNotification, provider: NotificationProvider } = createSi if (meta.disposed) return if (session?.parentID) return - playSound(soundSrc(settings.sounds.errors())) + if (settings.sounds.errorsEnabled()) { + playSound(soundSrc(settings.sounds.errors())) + } const error = "error" in event.properties ? event.properties.error : undefined append({ diff --git a/packages/app/src/context/settings.tsx b/packages/app/src/context/settings.tsx index a8efb1eac..d72d4ceb1 100644 --- a/packages/app/src/context/settings.tsx +++ b/packages/app/src/context/settings.tsx @@ -10,8 +10,11 @@ export interface NotificationSettings { } export interface SoundSettings { + agentEnabled: boolean agent: string + permissionsEnabled: boolean permissions: string + errorsEnabled: boolean errors: string } @@ -57,8 +60,11 @@ const defaultSettings: Settings = { errors: false, }, sounds: { + agentEnabled: true, agent: "staplebops-01", + permissionsEnabled: true, permissions: "staplebops-02", + errorsEnabled: true, errors: "nope-03", }, } @@ -168,14 +174,29 @@ export const { use: useSettings, provider: SettingsProvider } = createSimpleCont }, }, sounds: { + agentEnabled: withFallback(() => store.sounds?.agentEnabled, defaultSettings.sounds.agentEnabled), + setAgentEnabled(value: boolean) { + setStore("sounds", "agentEnabled", value) + }, agent: withFallback(() => store.sounds?.agent, defaultSettings.sounds.agent), setAgent(value: string) { setStore("sounds", "agent", value) }, + permissionsEnabled: withFallback( + () => store.sounds?.permissionsEnabled, + defaultSettings.sounds.permissionsEnabled, + ), + setPermissionsEnabled(value: boolean) { + setStore("sounds", "permissionsEnabled", value) + }, permissions: withFallback(() => store.sounds?.permissions, defaultSettings.sounds.permissions), setPermissions(value: string) { setStore("sounds", "permissions", value) }, + errorsEnabled: withFallback(() => store.sounds?.errorsEnabled, defaultSettings.sounds.errorsEnabled), + setErrorsEnabled(value: boolean) { + setStore("sounds", "errorsEnabled", value) + }, errors: withFallback(() => store.sounds?.errors, defaultSettings.sounds.errors), setErrors(value: string) { setStore("sounds", "errors", value) |
