From d7301f71985e107e523e1642678258b0691ea739 Mon Sep 17 00:00:00 2001 From: Christiaan Hendriksen Date: Fri, 10 Apr 2026 16:11:23 +0100 Subject: [PATCH] feat: add new completion sound effects --- apps/code/src/renderer/assets/sounds/bubbles.mp3 | Bin 0 -> 4398 bytes apps/code/src/renderer/assets/sounds/drop.mp3 | Bin 0 -> 2856 bytes apps/code/src/renderer/assets/sounds/knock.mp3 | Bin 0 -> 1608 bytes apps/code/src/renderer/assets/sounds/ring.mp3 | Bin 0 -> 4086 bytes apps/code/src/renderer/assets/sounds/shoot.mp3 | Bin 0 -> 4789 bytes apps/code/src/renderer/assets/sounds/slide.mp3 | Bin 0 -> 3591 bytes apps/code/src/renderer/assets/sounds/switch.mp3 | Bin 0 -> 4367 bytes .../components/sections/GeneralSettings.tsx | 7 +++++++ .../features/settings/stores/settingsStore.ts | 14 +++++++++++++- apps/code/src/renderer/utils/sounds.ts | 14 ++++++++++++++ 10 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 apps/code/src/renderer/assets/sounds/bubbles.mp3 create mode 100644 apps/code/src/renderer/assets/sounds/drop.mp3 create mode 100644 apps/code/src/renderer/assets/sounds/knock.mp3 create mode 100644 apps/code/src/renderer/assets/sounds/ring.mp3 create mode 100644 apps/code/src/renderer/assets/sounds/shoot.mp3 create mode 100644 apps/code/src/renderer/assets/sounds/slide.mp3 create mode 100644 apps/code/src/renderer/assets/sounds/switch.mp3 diff --git a/apps/code/src/renderer/assets/sounds/bubbles.mp3 b/apps/code/src/renderer/assets/sounds/bubbles.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..3ea2d5974158a9d2f9277c135ba906f3d19e15c2 GIT binary patch literal 4398 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

-+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 Nz5@9F&!0HYKLKkU;U541 literal 0 HcmV?d00001 diff --git a/apps/code/src/renderer/assets/sounds/knock.mp3 b/apps/code/src/renderer/assets/sounds/knock.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..674527c806a2266c67f8e5f3273aeae370470ad6 GIT binary patch literal 1608 zcmeZtF=k-^0p*b3U{@f`&%nU!lUSB!YN2Otre|ni0G5Ri|9?9iK;lA}5t(`EKo(FR z13Lo)n>52z6tD^f>_!1+P{Cak@D2t1M*$$4fsRZDI?~V>#DM`7wgw23O?orCZ!(zu z|M!6-3=EuG6z#q)U{F#P&8W8(a9~ihth*uQ%*fz#J9x6stBV$EeI-8qy?@7Ce5a?U zheY#(A9Vo&JPAMS>J~T{b{_l}VEE~Sv*qbe4|^SE{_*3;VmbfdhvF2L!$0getO6b| zFeqK0^3Zp7`=iE&1py3fMs0m5M!aqUJbhV@_+6T}C2eDJ<4SNj;mjDOB*SKQhKHf% zKmywtP6mw#t_BAQFXl&kR28@zDq4G21h|+KyKD&TKBc!~r{^LahiTo~M`tOls8ODx zmtGQfU%^fFl2%IG|4%wev1&fuN8dkKp~K7R_kV?yP)p;YRSYb;i{Bq$U`VVISJQNn zOEY+gnee$Ik-^CPAz7;Rn!Hxeb` zVRBgSJph}=mUTQKE9s>9LglmDxNj%UY+P`paGugdpSe-l3uo}MwSDZ(1sTbZQQ6Vn zzYUns`5tTx(CKUmb17nBjqQ^n6h;=2VyOBly|5iBiz2W#3Tg|iV19uo8us}y9c zssEg#!b_}X64Zh0dEIcRM%49WszO3E&>o)z783Lms}y9<-^SyAyw%?(DrQ(QDF^l# a(8@p8m=7>8{sSg<1qKF_1_lON_y+(+HzsEQ literal 0 HcmV?d00001 diff --git a/apps/code/src/renderer/assets/sounds/ring.mp3 b/apps/code/src/renderer/assets/sounds/ring.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..b5b1b8bd1170dcc08b774e368ad09d1ed6599732 GIT binary patch literal 4086 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 L^1tou-_-pB#U$6_ literal 0 HcmV?d00001 diff --git a/apps/code/src/renderer/assets/sounds/shoot.mp3 b/apps/code/src/renderer/assets/sounds/shoot.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..bb3f9bc308d187a5252c02ab6511ffc89b16e18d GIT binary patch literal 4789 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'm ready Cute noise Meep + Bubbles + Drop + Knock + Ring + Shoot + Slide + Switch {completionSound !== "none" && ( diff --git a/apps/code/src/renderer/features/settings/stores/settingsStore.ts b/apps/code/src/renderer/features/settings/stores/settingsStore.ts index ab31fed54..4201e77a5 100644 --- a/apps/code/src/renderer/features/settings/stores/settingsStore.ts +++ b/apps/code/src/renderer/features/settings/stores/settingsStore.ts @@ -7,7 +7,19 @@ import { persist } from "zustand/middleware"; export type DefaultRunMode = "local" | "cloud" | "last_used"; export type LocalWorkspaceMode = "worktree" | "local"; export type SendMessagesWith = "enter" | "cmd+enter"; -export type CompletionSound = "none" | "guitar" | "danilo" | "revi" | "meep"; +export type CompletionSound = + | "none" + | "guitar" + | "danilo" + | "revi" + | "meep" + | "bubbles" + | "drop" + | "knock" + | "ring" + | "shoot" + | "slide" + | "switch"; export type AgentAdapter = "claude" | "codex"; export type AutoConvertLongText = "off" | "1000" | "2500" | "5000" | "10000"; export type DefaultInitialTaskMode = "plan" | "last_used"; diff --git a/apps/code/src/renderer/utils/sounds.ts b/apps/code/src/renderer/utils/sounds.ts index 7febbc3eb..51a5c7ebf 100644 --- a/apps/code/src/renderer/utils/sounds.ts +++ b/apps/code/src/renderer/utils/sounds.ts @@ -1,14 +1,28 @@ import type { CompletionSound } from "@features/settings/stores/settingsStore"; +import bubblesUrl from "@renderer/assets/sounds/bubbles.mp3"; import daniloUrl from "@renderer/assets/sounds/danilo.mp3"; +import dropUrl from "@renderer/assets/sounds/drop.mp3"; import guitarUrl from "@renderer/assets/sounds/guitar.mp3"; +import knockUrl from "@renderer/assets/sounds/knock.mp3"; import meepUrl from "@renderer/assets/sounds/meep.mp3"; import reviUrl from "@renderer/assets/sounds/revi.mp3"; +import ringUrl from "@renderer/assets/sounds/ring.mp3"; +import shootUrl from "@renderer/assets/sounds/shoot.mp3"; +import slideUrl from "@renderer/assets/sounds/slide.mp3"; +import switchUrl from "@renderer/assets/sounds/switch.mp3"; const SOUND_URLS: Record, string> = { guitar: guitarUrl, danilo: daniloUrl, revi: reviUrl, meep: meepUrl, + bubbles: bubblesUrl, + drop: dropUrl, + knock: knockUrl, + ring: ringUrl, + shoot: shootUrl, + slide: slideUrl, + switch: switchUrl, }; let currentAudio: HTMLAudioElement | null = null;