From 2f4cf259b89bd355a5f61e395e3ff79ec7882200 Mon Sep 17 00:00:00 2001 From: Patricio Date: Mon, 20 Jul 2026 18:31:49 -0300 Subject: [PATCH] feat(notifications): add MSN Messenger completion sound Add the MSN Messenger notification sound as a built-in completion sound option, selectable from Settings > Notifications > Sound effect. --- packages/ui/src/assets/sounds/msn.mp3 | Bin 0 -> 15850 bytes .../settings/sections/NotificationsSettings.tsx | 1 + .../ui/src/features/settings/settingsStore.ts | 3 ++- packages/ui/src/utils/sounds.ts | 2 ++ 4 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 packages/ui/src/assets/sounds/msn.mp3 diff --git a/packages/ui/src/assets/sounds/msn.mp3 b/packages/ui/src/assets/sounds/msn.mp3 new file mode 100644 index 0000000000000000000000000000000000000000..e89656647d9c01bd762ed334a8cc43e797d3a4f1 GIT binary patch literal 15850 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 YV=X(cp9Np1zvKA-ue_iA{}|_g0o6CZ!vFvP literal 0 HcmV?d00001 diff --git a/packages/ui/src/features/settings/sections/NotificationsSettings.tsx b/packages/ui/src/features/settings/sections/NotificationsSettings.tsx index 2414f0a56f..2d7835a8cb 100644 --- a/packages/ui/src/features/settings/sections/NotificationsSettings.tsx +++ b/packages/ui/src/features/settings/sections/NotificationsSettings.tsx @@ -283,6 +283,7 @@ export function NotificationsSettings() { Switch Wilhelm scream ICQ + MSN Messenger {customSounds.length > 0 && ( Custom diff --git a/packages/ui/src/features/settings/settingsStore.ts b/packages/ui/src/features/settings/settingsStore.ts index 161ed7a11a..eab068147d 100644 --- a/packages/ui/src/features/settings/settingsStore.ts +++ b/packages/ui/src/features/settings/settingsStore.ts @@ -51,7 +51,8 @@ export type BuiltInCompletionSound = | "slide" | "switch" | "wilhelm" - | "icq"; + | "icq" + | "msn"; // A user-installed sound is selected by referencing its id as `custom:`. export type CompletionSound = diff --git a/packages/ui/src/utils/sounds.ts b/packages/ui/src/utils/sounds.ts index 5da0cd8809..6872c36429 100644 --- a/packages/ui/src/utils/sounds.ts +++ b/packages/ui/src/utils/sounds.ts @@ -11,6 +11,7 @@ import icqUrl from "../assets/sounds/icq.mp3"; import knockUrl from "../assets/sounds/knock.mp3"; import meepUrl from "../assets/sounds/meep.mp3"; import meepSmolUrl from "../assets/sounds/meep-smol.mp3"; +import msnUrl from "../assets/sounds/msn.mp3"; import reviUrl from "../assets/sounds/revi.mp3"; import ringUrl from "../assets/sounds/ring.mp3"; import shootUrl from "../assets/sounds/shoot.mp3"; @@ -35,6 +36,7 @@ const SOUND_URLS: Record, string> = { switch: switchUrl, wilhelm: wilhelmUrl, icq: icqUrl, + msn: msnUrl, }; const MIN_RATE = 1 / 3;