Mechanical keyboard sounds for Chrome — 16 sound packs, 100% free
  • Python 50%
  • TypeScript 35.9%
  • CSS 7.9%
  • HTML 3%
  • Shell 1.7%
  • Other 1.5%
Find a file
Jose Juan Moñino 316460187d
Some checks are pending
CI / typecheck (push) Waiting to run
CI / lint (push) Waiting to run
CI / test (push) Waiting to run
CI / secrets-scan (push) Waiting to run
fix: settings persistence across tabs — onSettingsChanged re-reads full state
onSettingsChanged was constructing a partial settings object from only the
changed keys. This meant when selectedPack changed, the callback received
a settings object where 'enabled' was from DEFAULT_SETTINGS (true) but
the actual stored value was lost if it had been explicitly set to false.

Fix: re-read full settings from storage via getSettings() in the callback,
ensuring the content script always receives a complete merged settings object.

Note: chrome:// and about: pages don't match <all_urls> — content script
cannot inject there. This is a Chrome limitation, not a bug.
2026-07-06 16:32:06 +02:00
.gitea/workflows feat: premium sound synthesis + unlock all packs (#4) 2026-07-06 00:49:42 +02:00
.meta feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
.specify feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
presets/d0a1-strict feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
protocols feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
public feat: add 6 zen/nature sound packs + rename to thockboard 2026-07-06 16:16:20 +02:00
scripts feat: add 6 zen/nature sound packs + rename to thockboard 2026-07-06 16:16:20 +02:00
src fix: settings persistence across tabs — onSettingsChanged re-reads full state 2026-07-06 16:32:06 +02:00
tests feat: redesign popup UI — grid 2col, categories, no-scroll 2026-07-06 16:24:11 +02:00
.editorconfig feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
.gitattributes feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
.gitignore chore: add build-zip.sh for version-aware packaging 2026-07-06 14:59:56 +02:00
AGENTS.md chore: add build-zip.sh for version-aware packaging 2026-07-06 14:59:56 +02:00
biome.json test: add Playwright E2E test (16/16 passing) (#5) 2026-07-06 00:59:57 +02:00
commitlint.config.cjs feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
CONSTITUTION.md feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
DESIGN.md feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
grill-decisions.md feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
lefthook.yml feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
LICENSE feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
package.json feat: add 6 zen/nature sound packs + rename to thockboard 2026-07-06 16:16:20 +02:00
pnpm-lock.yaml test: add Playwright E2E test (16/16 passing) (#5) 2026-07-06 00:59:57 +02:00
pnpm-workspace.yaml feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
README.md feat: bootstrap TypeSounds from sdd-init-tpl @ 2468a0f 2026-07-05 19:02:41 +02:00
tsconfig.json test: add Playwright E2E test (16/16 passing) (#5) 2026-07-06 00:59:57 +02:00
vitest.config.ts test: add Playwright E2E test (16/16 passing) (#5) 2026-07-06 00:59:57 +02:00
wxt.config.ts feat: rename to ThockBoard + fix dark mode toggle (#3) 2026-07-06 00:12:01 +02:00

TypeSounds — Mechanical Keyboard Sounds Extension

Chrome extension that plays realistic mechanical keyboard sounds (Cherry MX Blue, thocky, typewriter, etc.) as you type on any website.

Install (dev)

pnpm install
pnpm wxt prepare
pnpm dev   # launches WXT dev browser

Build

pnpm build
# Load .output/chrome-mv3 as unpacked extension in Chrome

Stack

  • WXT 0.20.27 (build tool)
  • TypeScript 6.0.3 (strict)
  • Biome 2.5.1 (lint + format, no ESLint/Prettier)
  • Vitest 4.1.9 (testing)
  • pnpm 11.9.0 (package manager)

License

Apache-2.0