claude-code-sounds 1.5.1 → 1.5.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1000) hide show
  1. package/README.md +33 -21
  2. package/bin/cli.js +78 -246
  3. package/bin/lib.js +308 -0
  4. package/commands/mute.md +7 -0
  5. package/commands/unmute.md +7 -0
  6. package/hooks/play-sound.sh +4 -2
  7. package/images/sound-grid.png +0 -0
  8. package/package.json +5 -1
  9. package/themes/aoe2/sounds/attack-enemy-now.mp3 +0 -0
  10. package/themes/aoe2/sounds/being-rushed.mp3 +0 -0
  11. package/themes/aoe2/sounds/confirm.mp3 +0 -0
  12. package/themes/aoe2/sounds/conversion-warning.mp3 +0 -0
  13. package/themes/aoe2/sounds/death.mp3 +0 -0
  14. package/themes/aoe2/sounds/dont-point-that-thing.mp3 +0 -0
  15. package/themes/aoe2/sounds/drum-roll.mp3 +0 -0
  16. package/themes/aoe2/sounds/enemy-sighted.mp3 +0 -0
  17. package/themes/aoe2/sounds/farm-exhausted.mp3 +0 -0
  18. package/themes/aoe2/sounds/horn.mp3 +0 -0
  19. package/themes/aoe2/sounds/i-need-a-monk.mp3 +0 -0
  20. package/themes/aoe2/sounds/it-is-good.mp3 +0 -0
  21. package/themes/aoe2/sounds/nice-town-ill-take-it.mp3 +0 -0
  22. package/themes/aoe2/sounds/roggan.mp3 +0 -0
  23. package/themes/aoe2/sounds/schwarzenegger.mp3 +0 -0
  24. package/themes/aoe2/sounds/smite-me.mp3 +0 -0
  25. package/themes/aoe2/sounds/stable.mp3 +0 -0
  26. package/themes/aoe2/sounds/start-the-game-already.mp3 +0 -0
  27. package/themes/aoe2/sounds/taunt-ahh.mp3 +0 -0
  28. package/themes/aoe2/sounds/taunt-all-hail.mp3 +0 -0
  29. package/themes/aoe2/sounds/taunt-back-to-age-1.mp3 +0 -0
  30. package/themes/aoe2/sounds/taunt-food-please.mp3 +0 -0
  31. package/themes/aoe2/sounds/taunt-gold-please.mp3 +0 -0
  32. package/themes/aoe2/sounds/taunt-herb-laugh.mp3 +0 -0
  33. package/themes/aoe2/sounds/taunt-no.mp3 +0 -0
  34. package/themes/aoe2/sounds/taunt-oooh.mp3 +0 -0
  35. package/themes/aoe2/sounds/taunt-quit-touchin-me.mp3 +0 -0
  36. package/themes/aoe2/sounds/taunt-stone-please.mp3 +0 -0
  37. package/themes/aoe2/sounds/taunt-wood-please.mp3 +0 -0
  38. package/themes/aoe2/sounds/taunt-yes.mp3 +0 -0
  39. package/themes/aoe2/sounds/unit-created.mp3 +0 -0
  40. package/themes/aoe2/sounds/viking-horn.mp3 +0 -0
  41. package/themes/aoe2/sounds/villager-killed.mp3 +0 -0
  42. package/themes/aoe2/sounds/villager-prrrroh.mp3 +0 -0
  43. package/themes/aoe2/sounds/villager-spawn.mp3 +0 -0
  44. package/themes/aoe2/sounds/villager-sssh-ho.mp3 +0 -0
  45. package/themes/aoe2/sounds/wololo-long.mp3 +0 -0
  46. package/themes/aoe2/sounds/wololo.mp3 +0 -0
  47. package/themes/cnc/sounds/alarm.mp3 +0 -0
  48. package/themes/cnc/sounds/allies-acknowledged.mp3 +0 -0
  49. package/themes/cnc/sounds/allies-affirmative.mp3 +0 -0
  50. package/themes/cnc/sounds/allies-agreed.mp3 +0 -0
  51. package/themes/cnc/sounds/allies-at-once.mp3 +0 -0
  52. package/themes/cnc/sounds/allies-of-course.mp3 +0 -0
  53. package/themes/cnc/sounds/allies-ready-and-waiting.mp3 +0 -0
  54. package/themes/cnc/sounds/allies-reporting.mp3 +0 -0
  55. package/themes/cnc/sounds/allies-very-well.mp3 +0 -0
  56. package/themes/cnc/sounds/allies-waiting-orders.mp3 +0 -0
  57. package/themes/cnc/sounds/allies-yes-sir.mp3 +0 -0
  58. package/themes/cnc/sounds/base-under-attack.mp3 +0 -0
  59. package/themes/cnc/sounds/building-destroyed.mp3 +0 -0
  60. package/themes/cnc/sounds/building-placed.mp3 +0 -0
  61. package/themes/cnc/sounds/building.mp3 +0 -0
  62. package/themes/cnc/sounds/cha-ching.mp3 +0 -0
  63. package/themes/cnc/sounds/construction-complete.mp3 +0 -0
  64. package/themes/cnc/sounds/credit-in.mp3 +0 -0
  65. package/themes/cnc/sounds/explosion.mp3 +0 -0
  66. package/themes/cnc/sounds/gdi-incoming-transmission.mp3 +0 -0
  67. package/themes/cnc/sounds/gdi-on-hold.mp3 +0 -0
  68. package/themes/cnc/sounds/gdi-recycle.mp3 +0 -0
  69. package/themes/cnc/sounds/gdi-success.mp3 +0 -0
  70. package/themes/cnc/sounds/gdi-unable-to-comply.mp3 +0 -0
  71. package/themes/cnc/sounds/gdi-warning.mp3 +0 -0
  72. package/themes/cnc/sounds/got-a-present-for-ya.mp3 +0 -0
  73. package/themes/cnc/sounds/incoming-transmission.mp3 +0 -0
  74. package/themes/cnc/sounds/insufficient-funds.mp3 +0 -0
  75. package/themes/cnc/sounds/man-die.mp3 +0 -0
  76. package/themes/cnc/sounds/no-money.mp3 +0 -0
  77. package/themes/cnc/sounds/nod-incoming-transmission.mp3 +0 -0
  78. package/themes/cnc/sounds/nod-low-power.mp3 +0 -0
  79. package/themes/cnc/sounds/nod-on-hold.mp3 +0 -0
  80. package/themes/cnc/sounds/nod-unable-to-comply.mp3 +0 -0
  81. package/themes/cnc/sounds/nuke-launch.mp3 +0 -0
  82. package/themes/cnc/sounds/nuke-ready.mp3 +0 -0
  83. package/themes/cnc/sounds/power-down.mp3 +0 -0
  84. package/themes/cnc/sounds/power-up.mp3 +0 -0
  85. package/themes/cnc/sounds/radar-alert.mp3 +0 -0
  86. package/themes/cnc/sounds/radar-power-on.mp3 +0 -0
  87. package/themes/cnc/sounds/reinforcements-ready.mp3 +0 -0
  88. package/themes/cnc/sounds/repairing.mp3 +0 -0
  89. package/themes/cnc/sounds/selling.mp3 +0 -0
  90. package/themes/cnc/sounds/soviet-acknowledged.mp3 +0 -0
  91. package/themes/cnc/sounds/soviet-affirmative.mp3 +0 -0
  92. package/themes/cnc/sounds/soviet-at-once.mp3 +0 -0
  93. package/themes/cnc/sounds/soviet-comrade.mp3 +0 -0
  94. package/themes/cnc/sounds/soviet-reporting.mp3 +0 -0
  95. package/themes/cnc/sounds/soviet-yes-sir.mp3 +0 -0
  96. package/themes/cnc/sounds/spy-commander.mp3 +0 -0
  97. package/themes/cnc/sounds/spy-for-king-and-country.mp3 +0 -0
  98. package/themes/cnc/sounds/spy-indeed.mp3 +0 -0
  99. package/themes/cnc/sounds/spy-on-my-way.mp3 +0 -0
  100. package/themes/cnc/sounds/tanya-chew-on-this.mp3 +0 -0
  101. package/themes/cnc/sounds/tanya-death.mp3 +0 -0
  102. package/themes/cnc/sounds/tanya-im-there.mp3 +0 -0
  103. package/themes/cnc/sounds/tanya-kiss-it-bye-bye.mp3 +0 -0
  104. package/themes/cnc/sounds/tanya-laugh.mp3 +0 -0
  105. package/themes/cnc/sounds/tanya-lets-rock.mp3 +0 -0
  106. package/themes/cnc/sounds/tanya-shake-it-baby.mp3 +0 -0
  107. package/themes/cnc/sounds/tanya-thats-all-you-got.mp3 +0 -0
  108. package/themes/cnc/sounds/tanya-yeah.mp3 +0 -0
  109. package/themes/cnc/sounds/tanya-yes-sir.mp3 +0 -0
  110. package/themes/cnc/sounds/tesla-shot.mp3 +0 -0
  111. package/themes/cnc/sounds/ts-auth.mp3 +0 -0
  112. package/themes/cnc/sounds/ts-notify.mp3 +0 -0
  113. package/themes/cnc/sounds/ts-reminder.mp3 +0 -0
  114. package/themes/cnc/sounds/ts-startup.mp3 +0 -0
  115. package/themes/cnc/sounds/ts-system.mp3 +0 -0
  116. package/themes/cnc/sounds/unit-lost.mp3 +0 -0
  117. package/themes/cnc/sounds/unit-promoted.mp3 +0 -0
  118. package/themes/cnc/sounds/unit-ready.mp3 +0 -0
  119. package/themes/cnc/theme.json +40 -40
  120. package/themes/cod/sounds/bomb-planted.mp3 +0 -0
  121. package/themes/cod/sounds/bravo-six-going-dark.mp3 +0 -0
  122. package/themes/cod/sounds/cod-waw-rank-up.mp3 +0 -0
  123. package/themes/cod/sounds/enemy-ac130-above.mp3 +0 -0
  124. package/themes/cod/sounds/enemy-downed.mp3 +0 -0
  125. package/themes/cod/sounds/enemy-uav-overhead.mp3 +0 -0
  126. package/themes/cod/sounds/friendly-predator-missile.mp3 +0 -0
  127. package/themes/cod/sounds/hitmarker-alt.mp3 +0 -0
  128. package/themes/cod/sounds/hitmarker.mp3 +0 -0
  129. package/themes/cod/sounds/intervention-shot.mp3 +0 -0
  130. package/themes/cod/sounds/kill-confirmed.mp3 +0 -0
  131. package/themes/cod/sounds/lets-do-this.mp3 +0 -0
  132. package/themes/cod/sounds/mw2-level-up.mp3 +0 -0
  133. package/themes/cod/sounds/mystery-box.mp3 +0 -0
  134. package/themes/cod/sounds/tactical-nuke-incoming.mp3 +0 -0
  135. package/themes/cod/sounds/tango-down.mp3 +0 -0
  136. package/themes/cod/sounds/teammate-got-arse-kicked.mp3 +0 -0
  137. package/themes/cod/sounds/warzone-airstrike.mp3 +0 -0
  138. package/themes/cod/sounds/warzone-legendary.mp3 +0 -0
  139. package/themes/cod/sounds/warzone-victory.mp3 +0 -0
  140. package/themes/cod/sounds/welcome-to-the-gulag.mp3 +0 -0
  141. package/themes/cod/sounds/youre-the-last-one.mp3 +0 -0
  142. package/themes/cod/sounds/zombies-bye-bye.mp3 +0 -0
  143. package/themes/cod/sounds/zombies-evil-laugh.mp3 +0 -0
  144. package/themes/cod/sounds/zombies-insta-kill.mp3 +0 -0
  145. package/themes/cod/sounds/zombies-max-ammo.mp3 +0 -0
  146. package/themes/cod/sounds/zombies-new-round.mp3 +0 -0
  147. package/themes/cod/sounds/zombies-nuke.mp3 +0 -0
  148. package/themes/cod/sounds/zombies-quick-revive.mp3 +0 -0
  149. package/themes/cod/sounds/zombies-round-change.mp3 +0 -0
  150. package/themes/cod/sounds/zombies-round-end.mp3 +0 -0
  151. package/themes/cod/sounds/zombies-round-start.mp3 +0 -0
  152. package/themes/cod/theme.json +103 -0
  153. package/themes/diablo2/sounds/amulet-drop.mp3 +0 -0
  154. package/themes/diablo2/sounds/andariel.mp3 +0 -0
  155. package/themes/diablo2/sounds/arrow-block.mp3 +0 -0
  156. package/themes/diablo2/sounds/barb-gift-for-you.mp3 +0 -0
  157. package/themes/diablo2/sounds/barb-leap.mp3 +0 -0
  158. package/themes/diablo2/sounds/barb-select.mp3 +0 -0
  159. package/themes/diablo2/sounds/barb-shout.mp3 +0 -0
  160. package/themes/diablo2/sounds/barb-soon-perhaps.mp3 +0 -0
  161. package/themes/diablo2/sounds/barb-time-to-die.mp3 +0 -0
  162. package/themes/diablo2/sounds/blade-block.mp3 +0 -0
  163. package/themes/diablo2/sounds/bloodraven.mp3 +0 -0
  164. package/themes/diablo2/sounds/bow-shot.mp3 +0 -0
  165. package/themes/diablo2/sounds/chain-armor.mp3 +0 -0
  166. package/themes/diablo2/sounds/charm-drop.mp3 +0 -0
  167. package/themes/diablo2/sounds/countess-bloodbath.mp3 +0 -0
  168. package/themes/diablo2/sounds/drink-potion.mp3 +0 -0
  169. package/themes/diablo2/sounds/gem-drop.mp3 +0 -0
  170. package/themes/diablo2/sounds/gold-drop.mp3 +0 -0
  171. package/themes/diablo2/sounds/gold-pickup.mp3 +0 -0
  172. package/themes/diablo2/sounds/helm-drop.mp3 +0 -0
  173. package/themes/diablo2/sounds/item-drop.mp3 +0 -0
  174. package/themes/diablo2/sounds/javelin.mp3 +0 -0
  175. package/themes/diablo2/sounds/key-drop.mp3 +0 -0
  176. package/themes/diablo2/sounds/level-up.mp3 +0 -0
  177. package/themes/diablo2/sounds/necro-help-me.mp3 +0 -0
  178. package/themes/diablo2/sounds/not-enough-mana.mp3 +0 -0
  179. package/themes/diablo2/sounds/not-even-death.mp3 +0 -0
  180. package/themes/diablo2/sounds/not-in-town.mp3 +0 -0
  181. package/themes/diablo2/sounds/poison-trap.mp3 +0 -0
  182. package/themes/diablo2/sounds/potion.mp3 +0 -0
  183. package/themes/diablo2/sounds/prime-evils-death.mp3 +0 -0
  184. package/themes/diablo2/sounds/prime-evils-laugh.mp3 +0 -0
  185. package/themes/diablo2/sounds/prime-evils-scream.mp3 +0 -0
  186. package/themes/diablo2/sounds/ring-drop.mp3 +0 -0
  187. package/themes/diablo2/sounds/scroll.mp3 +0 -0
  188. package/themes/diablo2/sounds/skull-drop.mp3 +0 -0
  189. package/themes/diablo2/sounds/sorceress-dead.mp3 +0 -0
  190. package/themes/diablo2/sounds/sorceress-monster.mp3 +0 -0
  191. package/themes/diablo2/sounds/sorceress-time-to-die.mp3 +0 -0
  192. package/themes/diablo2/sounds/stay-awhile-and-listen.mp3 +0 -0
  193. package/themes/diablo2/sounds/town-portal.mp3 +0 -0
  194. package/themes/halo/sounds/betrayal.mp3 +0 -0
  195. package/themes/halo/sounds/betrayed.mp3 +0 -0
  196. package/themes/halo/sounds/cortana-affirmative.mp3 +0 -0
  197. package/themes/halo/sounds/cortana-alert.mp3 +0 -0
  198. package/themes/halo/sounds/cortana-can-you-hear-me.mp3 +0 -0
  199. package/themes/halo/sounds/cortana-do-best.mp3 +0 -0
  200. package/themes/halo/sounds/cortana-evacuate.mp3 +0 -0
  201. package/themes/halo/sounds/cortana-good-time.mp3 +0 -0
  202. package/themes/halo/sounds/cortana-here-they-come.mp3 +0 -0
  203. package/themes/halo/sounds/cortana-master-chief.mp3 +0 -0
  204. package/themes/halo/sounds/cortana-need-to-get-going.mp3 +0 -0
  205. package/themes/halo/sounds/cortana-show-them.mp3 +0 -0
  206. package/themes/halo/sounds/cortana-this-is-not-a-drill.mp3 +0 -0
  207. package/themes/halo/sounds/cortana-warning.mp3 +0 -0
  208. package/themes/halo/sounds/cortana-we-should-leave.mp3 +0 -0
  209. package/themes/halo/sounds/cortana-what-the-hell.mp3 +0 -0
  210. package/themes/halo/sounds/cortana-where-are-you-going.mp3 +0 -0
  211. package/themes/halo/sounds/cortana-yank-me.mp3 +0 -0
  212. package/themes/halo/sounds/double-kill.mp3 +0 -0
  213. package/themes/halo/sounds/elite-laugh.mp3 +0 -0
  214. package/themes/halo/sounds/elite-woboba.mp3 +0 -0
  215. package/themes/halo/sounds/elite-wort.mp3 +0 -0
  216. package/themes/halo/sounds/finish-the-fight.mp3 +0 -0
  217. package/themes/halo/sounds/game-over.mp3 +0 -0
  218. package/themes/halo/sounds/get-tactical-marines.mp3 +0 -0
  219. package/themes/halo/sounds/gregorian-chant.mp3 +0 -0
  220. package/themes/halo/sounds/grunt-birthday-party.mp3 +0 -0
  221. package/themes/halo/sounds/halo-theme.mp3 +0 -0
  222. package/themes/halo/sounds/i-need-a-weapon.mp3 +0 -0
  223. package/themes/halo/sounds/infected.mp3 +0 -0
  224. package/themes/halo/sounds/invincible.mp3 +0 -0
  225. package/themes/halo/sounds/killing-frenzy.mp3 +0 -0
  226. package/themes/halo/sounds/killing-spree.mp3 +0 -0
  227. package/themes/halo/sounds/killionaire.mp3 +0 -0
  228. package/themes/halo/sounds/killjoy.mp3 +0 -0
  229. package/themes/halo/sounds/killtacular.mp3 +0 -0
  230. package/themes/halo/sounds/killtrocity.mp3 +0 -0
  231. package/themes/halo/sounds/last-man-standing.mp3 +0 -0
  232. package/themes/halo/sounds/one-minute-remain.mp3 +0 -0
  233. package/themes/halo/sounds/overkill.mp3 +0 -0
  234. package/themes/halo/sounds/reinforcements.mp3 +0 -0
  235. package/themes/halo/sounds/revenge.mp3 +0 -0
  236. package/themes/halo/sounds/running-riot.mp3 +0 -0
  237. package/themes/halo/sounds/shield-depleted.mp3 +0 -0
  238. package/themes/halo/sounds/shield-recharge.mp3 +0 -0
  239. package/themes/halo/sounds/slayer.mp3 +0 -0
  240. package/themes/halo/sounds/suicide.mp3 +0 -0
  241. package/themes/halo/sounds/thirty-seconds-remain.mp3 +0 -0
  242. package/themes/halo/sounds/triple-kill.mp3 +0 -0
  243. package/themes/halo/sounds/unfrigginbelievable.mp3 +0 -0
  244. package/themes/halo/sounds/when-you-first-saw-halo.mp3 +0 -0
  245. package/themes/halo/sounds/yoink.mp3 +0 -0
  246. package/themes/halo/theme.json +222 -0
  247. package/themes/mario/sounds/1-up.mp3 +0 -0
  248. package/themes/mario/sounds/block-bump.mp3 +0 -0
  249. package/themes/mario/sounds/break-block.mp3 +0 -0
  250. package/themes/mario/sounds/burned.mp3 +0 -0
  251. package/themes/mario/sounds/coin.mp3 +0 -0
  252. package/themes/mario/sounds/death.mp3 +0 -0
  253. package/themes/mario/sounds/doh.mp3 +0 -0
  254. package/themes/mario/sounds/fireball.mp3 +0 -0
  255. package/themes/mario/sounds/flagpole.mp3 +0 -0
  256. package/themes/mario/sounds/game-over.mp3 +0 -0
  257. package/themes/mario/sounds/haha.mp3 +0 -0
  258. package/themes/mario/sounds/happy-message.mp3 +0 -0
  259. package/themes/mario/sounds/hello.mp3 +0 -0
  260. package/themes/mario/sounds/here-we-go.mp3 +0 -0
  261. package/themes/mario/sounds/hurt.mp3 +0 -0
  262. package/themes/mario/sounds/its-a-me-mario.mp3 +0 -0
  263. package/themes/mario/sounds/lets-a-go.mp3 +0 -0
  264. package/themes/mario/sounds/level-clear.mp3 +0 -0
  265. package/themes/mario/sounds/mamma-mia.mp3 +0 -0
  266. package/themes/mario/sounds/message-block.mp3 +0 -0
  267. package/themes/mario/sounds/mushroom-appears.mp3 +0 -0
  268. package/themes/mario/sounds/okey-dokey.mp3 +0 -0
  269. package/themes/mario/sounds/oof.mp3 +0 -0
  270. package/themes/mario/sounds/pause.mp3 +0 -0
  271. package/themes/mario/sounds/pipe-warp.mp3 +0 -0
  272. package/themes/mario/sounds/power-up.mp3 +0 -0
  273. package/themes/mario/sounds/question-block.mp3 +0 -0
  274. package/themes/mario/sounds/raccoon-transform.mp3 +0 -0
  275. package/themes/mario/sounds/shrink.mp3 +0 -0
  276. package/themes/mario/sounds/smb3-power-up.mp3 +0 -0
  277. package/themes/mario/sounds/smw-1-up.mp3 +0 -0
  278. package/themes/mario/sounds/smw-pipe.mp3 +0 -0
  279. package/themes/mario/sounds/smw-power-up.mp3 +0 -0
  280. package/themes/mario/sounds/snore.mp3 +0 -0
  281. package/themes/mario/sounds/stage-clear.mp3 +0 -0
  282. package/themes/mario/sounds/star-appears.mp3 +0 -0
  283. package/themes/mario/sounds/stomp.mp3 +0 -0
  284. package/themes/mario/sounds/tired.mp3 +0 -0
  285. package/themes/mario/sounds/vine-grow.mp3 +0 -0
  286. package/themes/mario/sounds/waha.mp3 +0 -0
  287. package/themes/mario/sounds/warp-whistle.mp3 +0 -0
  288. package/themes/mario/sounds/warp.mp3 +0 -0
  289. package/themes/mario/sounds/whoa.mp3 +0 -0
  290. package/themes/mario/sounds/world-clear.mp3 +0 -0
  291. package/themes/mario/sounds/yahoo.mp3 +0 -0
  292. package/themes/mario/sounds/yawn.mp3 +0 -0
  293. package/themes/mario/sounds/yippee.mp3 +0 -0
  294. package/themes/mario/theme.json +47 -47
  295. package/themes/mgs/sounds/alert-mode.mp3 +0 -0
  296. package/themes/mgs/sounds/alert-sfx.mp3 +0 -0
  297. package/themes/mgs/sounds/alert.mp3 +0 -0
  298. package/themes/mgs/sounds/cigar.mp3 +0 -0
  299. package/themes/mgs/sounds/codec-beep.mp3 +0 -0
  300. package/themes/mgs/sounds/codec-call-out.mp3 +0 -0
  301. package/themes/mgs/sounds/codec-call.mp3 +0 -0
  302. package/themes/mgs/sounds/codec-close.mp3 +0 -0
  303. package/themes/mgs/sounds/codec-dial.mp3 +0 -0
  304. package/themes/mgs/sounds/codec-exit.mp3 +0 -0
  305. package/themes/mgs/sounds/codec-hangup.mp3 +0 -0
  306. package/themes/mgs/sounds/codec-ring.mp3 +0 -0
  307. package/themes/mgs/sounds/friendly-fire.mp3 +0 -0
  308. package/themes/mgs/sounds/game-over-fade.mp3 +0 -0
  309. package/themes/mgs/sounds/game-over-screen.mp3 +0 -0
  310. package/themes/mgs/sounds/game-over.mp3 +0 -0
  311. package/themes/mgs/sounds/good-shooting.mp3 +0 -0
  312. package/themes/mgs/sounds/if-you-say-so.mp3 +0 -0
  313. package/themes/mgs/sounds/ill-do-my-best.mp3 +0 -0
  314. package/themes/mgs/sounds/item-drop.mp3 +0 -0
  315. package/themes/mgs/sounds/just-to-suffer.mp3 +0 -0
  316. package/themes/mgs/sounds/kept-you-waiting-huh.mp3 +0 -0
  317. package/themes/mgs/sounds/kept-you-waiting.mp3 +0 -0
  318. package/themes/mgs/sounds/mission-complete.mp3 +0 -0
  319. package/themes/mgs/sounds/mission-qualify.mp3 +0 -0
  320. package/themes/mgs/sounds/ocelot-meow.mp3 +0 -0
  321. package/themes/mgs/sounds/original-game-over.mp3 +0 -0
  322. package/themes/mgs/sounds/roger-that.mp3 +0 -0
  323. package/themes/mgs/sounds/snake-dies.mp3 +0 -0
  324. package/themes/mgs/sounds/snake-scream.mp3 +0 -0
  325. package/themes/mgs/sounds/sounds-like-a-plan.mp3 +0 -0
  326. package/themes/mgs/sounds/sweet-dreams.mp3 +0 -0
  327. package/themes/mgs/sounds/this-is-snake.mp3 +0 -0
  328. package/themes/mgs/sounds/what-the-hell.mp3 +0 -0
  329. package/themes/mgs/sounds/what-was-that-noise.mp3 +0 -0
  330. package/themes/mgs/sounds/what-was-that.mp3 +0 -0
  331. package/themes/mgs/sounds/youre-pretty-good.mp3 +0 -0
  332. package/themes/pokemon-gen3/sounds/agility.mp3 +0 -0
  333. package/themes/pokemon-gen3/sounds/ball-open.mp3 +0 -0
  334. package/themes/pokemon-gen3/sounds/ball-throw.mp3 +0 -0
  335. package/themes/pokemon-gen3/sounds/bang.mp3 +0 -0
  336. package/themes/pokemon-gen3/sounds/baton-pass.mp3 +0 -0
  337. package/themes/pokemon-gen3/sounds/battle-faint.mp3 +0 -0
  338. package/themes/pokemon-gen3/sounds/battle-start.mp3 +0 -0
  339. package/themes/pokemon-gen3/sounds/battle-victory.mp3 +0 -0
  340. package/themes/pokemon-gen3/sounds/catching-fanfare.mp3 +0 -0
  341. package/themes/pokemon-gen3/sounds/dragon-dance.mp3 +0 -0
  342. package/themes/pokemon-gen3/sounds/effective.mp3 +0 -0
  343. package/themes/pokemon-gen3/sounds/explosion.mp3 +0 -0
  344. package/themes/pokemon-gen3/sounds/faint.mp3 +0 -0
  345. package/themes/pokemon-gen3/sounds/gastly-cry.mp3 +0 -0
  346. package/themes/pokemon-gen3/sounds/growl.mp3 +0 -0
  347. package/themes/pokemon-gen3/sounds/gym-badge.mp3 +0 -0
  348. package/themes/pokemon-gen3/sounds/hit-normal.mp3 +0 -0
  349. package/themes/pokemon-gen3/sounds/item-found.mp3 +0 -0
  350. package/themes/pokemon-gen3/sounds/item-received.mp3 +0 -0
  351. package/themes/pokemon-gen3/sounds/ledge.mp3 +0 -0
  352. package/themes/pokemon-gen3/sounds/level-up.mp3 +0 -0
  353. package/themes/pokemon-gen3/sounds/low-health.mp3 +0 -0
  354. package/themes/pokemon-gen3/sounds/not-effective.mp3 +0 -0
  355. package/themes/pokemon-gen3/sounds/pc-login.mp3 +0 -0
  356. package/themes/pokemon-gen3/sounds/pc-off.mp3 +0 -0
  357. package/themes/pokemon-gen3/sounds/pc-on.mp3 +0 -0
  358. package/themes/pokemon-gen3/sounds/pokemon-center-heal.mp3 +0 -0
  359. package/themes/pokemon-gen3/sounds/pokemon-center-music.mp3 +0 -0
  360. package/themes/pokemon-gen3/sounds/pokemon-evolve.mp3 +0 -0
  361. package/themes/pokemon-gen3/sounds/recall-pokeball.mp3 +0 -0
  362. package/themes/pokemon-gen3/sounds/rest.mp3 +0 -0
  363. package/themes/pokemon-gen3/sounds/roar.mp3 +0 -0
  364. package/themes/pokemon-gen3/sounds/save-game.mp3 +0 -0
  365. package/themes/pokemon-gen3/sounds/save.mp3 +0 -0
  366. package/themes/pokemon-gen3/sounds/screech.mp3 +0 -0
  367. package/themes/pokemon-gen3/sounds/select.mp3 +0 -0
  368. package/themes/pokemon-gen3/sounds/self-destruct.mp3 +0 -0
  369. package/themes/pokemon-gen3/sounds/slowpoke-cry.mp3 +0 -0
  370. package/themes/pokemon-gen3/sounds/stat-rise.mp3 +0 -0
  371. package/themes/pokemon-gen3/sounds/status-confused.mp3 +0 -0
  372. package/themes/pokemon-gen3/sounds/substitute.mp3 +0 -0
  373. package/themes/pokemon-gen3/sounds/success.mp3 +0 -0
  374. package/themes/pokemon-gen3/sounds/super-effective-sfx.mp3 +0 -0
  375. package/themes/pokemon-gen3/sounds/teleport.mp3 +0 -0
  376. package/themes/pokemon-gen3/sounds/trainer-encounter.mp3 +0 -0
  377. package/themes/pokemon-gen3/sounds/transform.mp3 +0 -0
  378. package/themes/pokemon-gen3/sounds/use-item.mp3 +0 -0
  379. package/themes/pokemon-gen3/sounds/wall-hit.mp3 +0 -0
  380. package/themes/pokemon-gen3/sounds/wild-encounter.mp3 +0 -0
  381. package/themes/pokemon-gen3/sounds/win-open.mp3 +0 -0
  382. package/themes/pokemon-gen3/sounds/yawn.mp3 +0 -0
  383. package/themes/pokemon-gen3/theme.json +117 -0
  384. package/themes/portal/sounds/announcer-post.mp3 +0 -0
  385. package/themes/portal/sounds/button-positive.mp3 +0 -0
  386. package/themes/portal/sounds/button-press.mp3 +0 -0
  387. package/themes/portal/sounds/button-release.mp3 +0 -0
  388. package/themes/portal/sounds/core-attach.mp3 +0 -0
  389. package/themes/portal/sounds/core-complete.mp3 +0 -0
  390. package/themes/portal/sounds/emancipation-grill.mp3 +0 -0
  391. package/themes/portal/sounds/fizzler-shutdown.mp3 +0 -0
  392. package/themes/portal/sounds/fizzler-start.mp3 +0 -0
  393. package/themes/portal/sounds/invalid-surface.mp3 +0 -0
  394. package/themes/portal/sounds/klaxon-alarm.mp3 +0 -0
  395. package/themes/portal/sounds/portal-close-alt.mp3 +0 -0
  396. package/themes/portal/sounds/portal-close.mp3 +0 -0
  397. package/themes/portal/sounds/portal-enter.mp3 +0 -0
  398. package/themes/portal/sounds/portal-exit.mp3 +0 -0
  399. package/themes/portal/sounds/portal-fizzle.mp3 +0 -0
  400. package/themes/portal/sounds/portal-open.mp3 +0 -0
  401. package/themes/portal/sounds/portal-whoosh-close.mp3 +0 -0
  402. package/themes/portal/sounds/portalgun-powerup.mp3 +0 -0
  403. package/themes/portal/sounds/shoot-blue-portal.mp3 +0 -0
  404. package/themes/portal/sounds/shoot-orange-portal.mp3 +0 -0
  405. package/themes/portal/sounds/synth-negative.mp3 +0 -0
  406. package/themes/portal/sounds/synth-positive.mp3 +0 -0
  407. package/themes/portal/sounds/test-chamber-complete.mp3 +0 -0
  408. package/themes/portal/sounds/test-chamber-start.mp3 +0 -0
  409. package/themes/portal/sounds/turret-activated.mp3 +0 -0
  410. package/themes/portal/sounds/turret-alert.mp3 +0 -0
  411. package/themes/portal/sounds/turret-are-you-still-there.mp3 +0 -0
  412. package/themes/portal/sounds/turret-deploy.mp3 +0 -0
  413. package/themes/portal/sounds/turret-done.mp3 +0 -0
  414. package/themes/portal/sounds/turret-goodbye.mp3 +0 -0
  415. package/themes/portal/sounds/turret-hello.mp3 +0 -0
  416. package/themes/portal/sounds/turret-hellooo.mp3 +0 -0
  417. package/themes/portal/sounds/turret-i-see-you.mp3 +0 -0
  418. package/themes/portal/sounds/turret-no-hard-feelings.mp3 +0 -0
  419. package/themes/portal/sounds/turret-ow.mp3 +0 -0
  420. package/themes/portal/sounds/turret-ping.mp3 +0 -0
  421. package/themes/portal/sounds/turret-retract.mp3 +0 -0
  422. package/themes/portal/sounds/turret-searching.mp3 +0 -0
  423. package/themes/portal/sounds/turret-target-lost.mp3 +0 -0
  424. package/themes/portal/sounds/turret-whos-there.mp3 +0 -0
  425. package/themes/portal/sounds/ui-click.mp3 +0 -0
  426. package/themes/portal/theme.json +42 -42
  427. package/themes/short-circuit/sounds/blazing-pants.mp3 +0 -0
  428. package/themes/short-circuit/sounds/dull-home-for-rodents.mp3 +0 -0
  429. package/themes/short-circuit/sounds/dying-robot.mp3 +0 -0
  430. package/themes/short-circuit/sounds/enemy-neutralized.mp3 +0 -0
  431. package/themes/short-circuit/sounds/escaped-robot.mp3 +0 -0
  432. package/themes/short-circuit/sounds/gas-money.mp3 +0 -0
  433. package/themes/short-circuit/sounds/good-lord.mp3 +0 -0
  434. package/themes/short-circuit/sounds/got-nobody.mp3 +0 -0
  435. package/themes/short-circuit/sounds/hot-coffee.mp3 +0 -0
  436. package/themes/short-circuit/sounds/hunky-dory.mp3 +0 -0
  437. package/themes/short-circuit/sounds/malfunction-3.mp3 +0 -0
  438. package/themes/short-circuit/sounds/malfunction-4.mp3 +0 -0
  439. package/themes/short-circuit/sounds/malfunction.mp3 +0 -0
  440. package/themes/short-circuit/sounds/need-input.mp3 +0 -0
  441. package/themes/short-circuit/sounds/no.mp3 +0 -0
  442. package/themes/short-circuit/sounds/number-5-is-alive-2.mp3 +0 -0
  443. package/themes/short-circuit/sounds/number-5-is-alive.mp3 +0 -0
  444. package/themes/short-circuit/sounds/nun-soup.mp3 +0 -0
  445. package/themes/short-circuit/sounds/one-piece-will-do.mp3 +0 -0
  446. package/themes/short-circuit/sounds/ooo.mp3 +0 -0
  447. package/themes/short-circuit/sounds/read-fast.mp3 +0 -0
  448. package/themes/short-circuit/sounds/robot-alert.mp3 +0 -0
  449. package/themes/short-circuit/sounds/robot-arm-moving.mp3 +0 -0
  450. package/themes/short-circuit/sounds/robot-computing.mp3 +0 -0
  451. package/themes/short-circuit/sounds/sci-fi-robot.mp3 +0 -0
  452. package/themes/short-circuit/sounds/scream-and-run.mp3 +0 -0
  453. package/themes/short-circuit/sounds/short-circuit-zap.mp3 +0 -0
  454. package/themes/short-circuit/sounds/software.mp3 +0 -0
  455. package/themes/short-circuit/sounds/stupid.mp3 +0 -0
  456. package/themes/short-circuit/sounds/surrender-the-robot.mp3 +0 -0
  457. package/themes/short-circuit/sounds/tomorrow.mp3 +0 -0
  458. package/themes/short-circuit/sounds/what-planet.mp3 +0 -0
  459. package/themes/short-circuit/sounds/yes-2.mp3 +0 -0
  460. package/themes/short-circuit/theme.json +103 -0
  461. package/themes/star-wars/sounds/bad-feeling.mp3 +0 -0
  462. package/themes/star-wars/sounds/blaster-firing.mp3 +0 -0
  463. package/themes/star-wars/sounds/chewie-chatting.mp3 +0 -0
  464. package/themes/star-wars/sounds/chewie-roar.mp3 +0 -0
  465. package/themes/star-wars/sounds/dark-side.mp3 +0 -0
  466. package/themes/star-wars/sounds/darth-maul-reveal-ourselves.mp3 +0 -0
  467. package/themes/star-wars/sounds/decided-to-rescue-you.mp3 +0 -0
  468. package/themes/star-wars/sounds/destiny-fulfilled.mp3 +0 -0
  469. package/themes/star-wars/sounds/destroy-you.mp3 +0 -0
  470. package/themes/star-wars/sounds/force-is-strong-with-this-one.mp3 +0 -0
  471. package/themes/star-wars/sounds/force-is-strong.mp3 +0 -0
  472. package/themes/star-wars/sounds/force-will-be-with-you.mp3 +0 -0
  473. package/themes/star-wars/sounds/great-disturbance.mp3 +0 -0
  474. package/themes/star-wars/sounds/i-am-your-father.mp3 +0 -0
  475. package/themes/star-wars/sounds/its-a-trap.mp3 +0 -0
  476. package/themes/star-wars/sounds/jabba-laughing.mp3 +0 -0
  477. package/themes/star-wars/sounds/lightsaber-ignite.mp3 +0 -0
  478. package/themes/star-wars/sounds/lightsaber-off.mp3 +0 -0
  479. package/themes/star-wars/sounds/lord-vader-rise.mp3 +0 -0
  480. package/themes/star-wars/sounds/luke-dont-do-that.mp3 +0 -0
  481. package/themes/star-wars/sounds/r2d2-beep.mp3 +0 -0
  482. package/themes/star-wars/sounds/r2d2-hey-you.mp3 +0 -0
  483. package/themes/star-wars/sounds/r2d2-woo-hoo.mp3 +0 -0
  484. package/themes/star-wars/sounds/r2d2-yeah.mp3 +0 -0
  485. package/themes/star-wars/sounds/vader-breathing.mp3 +0 -0
  486. package/themes/star-wars/sounds/vader-what-is-thy-bidding.mp3 +0 -0
  487. package/themes/star-wars/sounds/vader-yes-my-master.mp3 +0 -0
  488. package/themes/star-wars/sounds/wilhelm-scream.mp3 +0 -0
  489. package/themes/star-wars/sounds/yoda-900-years-old.mp3 +0 -0
  490. package/themes/star-wars/sounds/yoda-always-two.mp3 +0 -0
  491. package/themes/star-wars/sounds/yoda-dangerous-disturbing.mp3 +0 -0
  492. package/themes/star-wars/sounds/yoda-do-or-do-not.mp3 +0 -0
  493. package/themes/star-wars/sounds/yoda-laughing.mp3 +0 -0
  494. package/themes/star-wars/sounds/yoda-much-fear.mp3 +0 -0
  495. package/themes/star-wars/sounds/yoda-twisted-by-dark-side.mp3 +0 -0
  496. package/themes/star-wars/sounds/you-were-the-chosen-one.mp3 +0 -0
  497. package/themes/star-wars/theme.json +36 -36
  498. package/themes/starcraft/sounds/additional-pylons.mp3 +0 -0
  499. package/themes/starcraft/sounds/arbiter-we-are-vigilant.mp3 +0 -0
  500. package/themes/starcraft/sounds/archon-obliterate.mp3 +0 -0
  501. package/themes/starcraft/sounds/archon-power-overwhelming.mp3 +0 -0
  502. package/themes/starcraft/sounds/archon-the-merging-is-complete.mp3 +0 -0
  503. package/themes/starcraft/sounds/base-under-attack.mp3 +0 -0
  504. package/themes/starcraft/sounds/battlecruiser-all-crews-reporting.mp3 +0 -0
  505. package/themes/starcraft/sounds/battlecruiser-engage.mp3 +0 -0
  506. package/themes/starcraft/sounds/battlecruiser-good-day-commander.mp3 +0 -0
  507. package/themes/starcraft/sounds/battlecruiser-make-it-happen.mp3 +0 -0
  508. package/themes/starcraft/sounds/battlecruiser-operational.mp3 +0 -0
  509. package/themes/starcraft/sounds/battlecruiser-receiving-transmission.mp3 +0 -0
  510. package/themes/starcraft/sounds/bug-guy-for-the-overmind.mp3 +0 -0
  511. package/themes/starcraft/sounds/bug-guy-gladly.mp3 +0 -0
  512. package/themes/starcraft/sounds/bug-guy-live-for-the-swarm.mp3 +0 -0
  513. package/themes/starcraft/sounds/bug-guy-prepare-to-die.mp3 +0 -0
  514. package/themes/starcraft/sounds/bug-guy-sacrifice-me.mp3 +0 -0
  515. package/themes/starcraft/sounds/carrier-has-arrived.mp3 +0 -0
  516. package/themes/starcraft/sounds/corsair-excellent.mp3 +0 -0
  517. package/themes/starcraft/sounds/corsair-it-is-a-good-day-to-die.mp3 +0 -0
  518. package/themes/starcraft/sounds/dragoon-commencing.mp3 +0 -0
  519. package/themes/starcraft/sounds/dragoon-i-have-returned.mp3 +0 -0
  520. package/themes/starcraft/sounds/dropship-can-i-take-your-order.mp3 +0 -0
  521. package/themes/starcraft/sounds/dropship-in-the-pipe-five-by-five.mp3 +0 -0
  522. package/themes/starcraft/sounds/duke-alright-then.mp3 +0 -0
  523. package/themes/starcraft/sounds/duran-how-can-i-be-of-service.mp3 +0 -0
  524. package/themes/starcraft/sounds/fenix-dragoon-nach-nagalas.mp3 +0 -0
  525. package/themes/starcraft/sounds/fenix-zealot-for-aiur.mp3 +0 -0
  526. package/themes/starcraft/sounds/fenix-zealot-i-hunger-for-battle.mp3 +0 -0
  527. package/themes/starcraft/sounds/firebat-wanna-turn-up-the-heat.mp3 +0 -0
  528. package/themes/starcraft/sounds/firebat-you-got-my-attention.mp3 +0 -0
  529. package/themes/starcraft/sounds/ghost-call-for-an-exterminator.mp3 +0 -0
  530. package/themes/starcraft/sounds/ghost-never-know-what-hit-em.mp3 +0 -0
  531. package/themes/starcraft/sounds/ghost-reporting.mp3 +0 -0
  532. package/themes/starcraft/sounds/insufficient-vespene-gas.mp3 +0 -0
  533. package/themes/starcraft/sounds/kerrigan-a-bold-move.mp3 +0 -0
  534. package/themes/starcraft/sounds/kerrigan-alright.mp3 +0 -0
  535. package/themes/starcraft/sounds/kerrigan-im-listening.mp3 +0 -0
  536. package/themes/starcraft/sounds/kerrigan-on-my-way.mp3 +0 -0
  537. package/themes/starcraft/sounds/kerrigan-what-now.mp3 +0 -0
  538. package/themes/starcraft/sounds/marine-ah-thats-the-stuff.mp3 +0 -0
  539. package/themes/starcraft/sounds/marine-go-go-go.mp3 +0 -0
  540. package/themes/starcraft/sounds/marine-jacked-up-and-good-to-go.mp3 +0 -0
  541. package/themes/starcraft/sounds/marine-lets-move.mp3 +0 -0
  542. package/themes/starcraft/sounds/marine-rock-and-roll.mp3 +0 -0
  543. package/themes/starcraft/sounds/marine-you-wanna-piece-of-me.mp3 +0 -0
  544. package/themes/starcraft/sounds/mutalisk.mp3 +0 -0
  545. package/themes/starcraft/sounds/not-enough-minerals.mp3 +0 -0
  546. package/themes/starcraft/sounds/nuclear-launch-detected.mp3 +0 -0
  547. package/themes/starcraft/sounds/protoss-electric.mp3 +0 -0
  548. package/themes/starcraft/sounds/protoss-fighting.mp3 +0 -0
  549. package/themes/starcraft/sounds/protoss-upgrade.mp3 +0 -0
  550. package/themes/starcraft/sounds/protoss-waiting.mp3 +0 -0
  551. package/themes/starcraft/sounds/ready-to-roll-out.mp3 +0 -0
  552. package/themes/starcraft/sounds/scv-affirmative.mp3 +0 -0
  553. package/themes/starcraft/sounds/scv-good-to-go-sir.mp3 +0 -0
  554. package/themes/starcraft/sounds/scv-i-read-you.mp3 +0 -0
  555. package/themes/starcraft/sounds/scv-orders-received.mp3 +0 -0
  556. package/themes/starcraft/sounds/scv-reportin-for-duty.mp3 +0 -0
  557. package/themes/starcraft/sounds/scv-roger-that.mp3 +0 -0
  558. package/themes/starcraft/sounds/starcraft-confirm.mp3 +0 -0
  559. package/themes/starcraft/sounds/templar-i-heed-thy-call.mp3 +0 -0
  560. package/themes/starcraft/sounds/templar-it-shall-be-done.mp3 +0 -0
  561. package/themes/starcraft/sounds/wraith-reporting-in.mp3 +0 -0
  562. package/themes/starcraft/sounds/wraith-standing-by.mp3 +0 -0
  563. package/themes/starcraft/sounds/zealot-i-long-for-combat.mp3 +0 -0
  564. package/themes/starcraft/sounds/zealot-my-life-for-aiur.mp3 +0 -0
  565. package/themes/wc3-peon/sounds/anything-you-want.mp3 +0 -0
  566. package/themes/wc3-peon/sounds/be-happy-to.mp3 +0 -0
  567. package/themes/wc3-peon/sounds/concentrate-and-ask-again.mp3 +0 -0
  568. package/themes/wc3-peon/sounds/dabu.mp3 +0 -0
  569. package/themes/wc3-peon/sounds/death.mp3 +0 -0
  570. package/themes/wc3-peon/sounds/finally.mp3 +0 -0
  571. package/themes/wc3-peon/sounds/for-the-horde.mp3 +0 -0
  572. package/themes/wc3-peon/sounds/get-em.mp3 +0 -0
  573. package/themes/wc3-peon/sounds/grunt-death.mp3 +0 -0
  574. package/themes/wc3-peon/sounds/headhunter-death.mp3 +0 -0
  575. package/themes/wc3-peon/sounds/hmmm.mp3 +0 -0
  576. package/themes/wc3-peon/sounds/how-can-i-help.mp3 +0 -0
  577. package/themes/wc3-peon/sounds/i-can-do-that.mp3 +0 -0
  578. package/themes/wc3-peon/sounds/i-can-wait-no-longer.mp3 +0 -0
  579. package/themes/wc3-peon/sounds/ill-try.mp3 +0 -0
  580. package/themes/wc3-peon/sounds/immediately.mp3 +0 -0
  581. package/themes/wc3-peon/sounds/it-is-certain.mp3 +0 -0
  582. package/themes/wc3-peon/sounds/me-busy-leave-me-alone.mp3 +0 -0
  583. package/themes/wc3-peon/sounds/me-not-that-kind-of-orc.mp3 +0 -0
  584. package/themes/wc3-peon/sounds/more-work.mp3 +0 -0
  585. package/themes/wc3-peon/sounds/no-time-for-play.mp3 +0 -0
  586. package/themes/wc3-peon/sounds/not-easy-being-green.mp3 +0 -0
  587. package/themes/wc3-peon/sounds/of-course.mp3 +0 -0
  588. package/themes/wc3-peon/sounds/ok.mp3 +0 -0
  589. package/themes/wc3-peon/sounds/okie-dokie.mp3 +0 -0
  590. package/themes/wc3-peon/sounds/outlook-not-so-good.mp3 +0 -0
  591. package/themes/wc3-peon/sounds/peon-death.mp3 +0 -0
  592. package/themes/wc3-peon/sounds/ready-to-work.mp3 +0 -0
  593. package/themes/wc3-peon/sounds/reply-hazy-try-again.mp3 +0 -0
  594. package/themes/wc3-peon/sounds/right-away.mp3 +0 -0
  595. package/themes/wc3-peon/sounds/someone-call-for-the-doctor.mp3 +0 -0
  596. package/themes/wc3-peon/sounds/something-need-doing.mp3 +0 -0
  597. package/themes/wc3-peon/sounds/taste-the-fury.mp3 +0 -0
  598. package/themes/wc3-peon/sounds/understood.mp3 +0 -0
  599. package/themes/wc3-peon/sounds/well-done.mp3 +0 -0
  600. package/themes/wc3-peon/sounds/what-you-want-me-to-do.mp3 +0 -0
  601. package/themes/wc3-peon/sounds/what-you-want.mp3 +0 -0
  602. package/themes/wc3-peon/sounds/what.mp3 +0 -0
  603. package/themes/wc3-peon/sounds/whatever-you-say.mp3 +0 -0
  604. package/themes/wc3-peon/sounds/who-you-want-me-kill.mp3 +0 -0
  605. package/themes/wc3-peon/sounds/why-not.mp3 +0 -0
  606. package/themes/wc3-peon/sounds/why-you-poking-me.mp3 +0 -0
  607. package/themes/wc3-peon/sounds/work-work.mp3 +0 -0
  608. package/themes/wc3-peon/sounds/yes.mp3 +0 -0
  609. package/themes/wc3-peon/sounds/you-seek-me-help.mp3 +0 -0
  610. package/themes/wc3-peon/sounds/zug-zug.mp3 +0 -0
  611. package/themes/wc3-peon/theme.json +55 -55
  612. package/themes/wh40k/sounds/abhor-the-daemon.mp3 +0 -0
  613. package/themes/wh40k/sounds/area-secured.mp3 +0 -0
  614. package/themes/wh40k/sounds/as-ordered.mp3 +0 -0
  615. package/themes/wh40k/sounds/as-you-command.mp3 +0 -0
  616. package/themes/wh40k/sounds/as-you-wish.mp3 +0 -0
  617. package/themes/wh40k/sounds/at-your-command.mp3 +0 -0
  618. package/themes/wh40k/sounds/awaiting-orders.mp3 +0 -0
  619. package/themes/wh40k/sounds/by-the-emperor-a-daemon.mp3 +0 -0
  620. package/themes/wh40k/sounds/chaos-death-1.mp3 +0 -0
  621. package/themes/wh40k/sounds/chaos-death-2.mp3 +0 -0
  622. package/themes/wh40k/sounds/chaos-sighted.mp3 +0 -0
  623. package/themes/wh40k/sounds/claim-it-in-the-name-of-the-emperor.mp3 +0 -0
  624. package/themes/wh40k/sounds/cleanse-purge-kill.mp3 +0 -0
  625. package/themes/wh40k/sounds/commencing-attack.mp3 +0 -0
  626. package/themes/wh40k/sounds/crush-them.mp3 +0 -0
  627. package/themes/wh40k/sounds/curse-the-monster.mp3 +0 -0
  628. package/themes/wh40k/sounds/damnation.mp3 +0 -0
  629. package/themes/wh40k/sounds/death-to-the-alien.mp3 +0 -0
  630. package/themes/wh40k/sounds/death-to-the-false-emperor.mp3 +0 -0
  631. package/themes/wh40k/sounds/defending-objective.mp3 +0 -0
  632. package/themes/wh40k/sounds/despair-for-your-end-is-near.mp3 +0 -0
  633. package/themes/wh40k/sounds/direct-us-to-the-enemy.mp3 +0 -0
  634. package/themes/wh40k/sounds/engaging-the-enemy.mp3 +0 -0
  635. package/themes/wh40k/sounds/ever-vigilant.mp3 +0 -0
  636. package/themes/wh40k/sounds/faith-holds-us.mp3 +0 -0
  637. package/themes/wh40k/sounds/faith-is-our-shield.mp3 +0 -0
  638. package/themes/wh40k/sounds/fall-back-and-regroup.mp3 +0 -0
  639. package/themes/wh40k/sounds/fall-back.mp3 +0 -0
  640. package/themes/wh40k/sounds/fear-denies-faith.mp3 +0 -0
  641. package/themes/wh40k/sounds/fear-not-brothers.mp3 +0 -0
  642. package/themes/wh40k/sounds/fear-our-wrath.mp3 +0 -0
  643. package/themes/wh40k/sounds/for-the-dark-gods.mp3 +0 -0
  644. package/themes/wh40k/sounds/for-the-emperor-2.mp3 +0 -0
  645. package/themes/wh40k/sounds/for-the-emperor.mp3 +0 -0
  646. package/themes/wh40k/sounds/heresy-grows-from-idleness.mp3 +0 -0
  647. package/themes/wh40k/sounds/it-is-done.mp3 +0 -0
  648. package/themes/wh40k/sounds/maim-kill-burn.mp3 +0 -0
  649. package/themes/wh40k/sounds/marine-death.mp3 +0 -0
  650. package/themes/wh40k/sounds/marine-squad-deployed.mp3 +0 -0
  651. package/themes/wh40k/sounds/mission-accomplished.mp3 +0 -0
  652. package/themes/wh40k/sounds/nuffink-can-stand-in-my-way.mp3 +0 -0
  653. package/themes/wh40k/sounds/orks-iz-da-biggest.mp3 +0 -0
  654. package/themes/wh40k/sounds/orks-meant-fa-fightin.mp3 +0 -0
  655. package/themes/wh40k/sounds/purge-the-witches.mp3 +0 -0
  656. package/themes/wh40k/sounds/quit-hidin-like-a-grot.mp3 +0 -0
  657. package/themes/wh40k/sounds/ready-fa-stompin.mp3 +0 -0
  658. package/themes/wh40k/sounds/send-me-to-da-fight.mp3 +0 -0
  659. package/themes/wh40k/sounds/waaagh-boyz.mp3 +0 -0
  660. package/themes/wh40k/sounds/waaagh-warboss.mp3 +0 -0
  661. package/themes/wh40k/sounds/we-is-da-orks.mp3 +0 -0
  662. package/themes/wh40k/sounds/you-boyz-is-no-good.mp3 +0 -0
  663. package/themes/zelda-oot/sounds/dialogue-done.mp3 +0 -0
  664. package/themes/zelda-oot/sounds/dialogue-next.mp3 +0 -0
  665. package/themes/zelda-oot/sounds/error.mp3 +0 -0
  666. package/themes/zelda-oot/sounds/ganondorf-laugh.mp3 +0 -0
  667. package/themes/zelda-oot/sounds/get-heart.mp3 +0 -0
  668. package/themes/zelda-oot/sounds/get-item.mp3 +0 -0
  669. package/themes/zelda-oot/sounds/get-rupee.mp3 +0 -0
  670. package/themes/zelda-oot/sounds/great-fairy-laugh.mp3 +0 -0
  671. package/themes/zelda-oot/sounds/hello.mp3 +0 -0
  672. package/themes/zelda-oot/sounds/hey.mp3 +0 -0
  673. package/themes/zelda-oot/sounds/item-fanfare.mp3 +0 -0
  674. package/themes/zelda-oot/sounds/link-attack.mp3 +0 -0
  675. package/themes/zelda-oot/sounds/link-hurt.mp3 +0 -0
  676. package/themes/zelda-oot/sounds/link-strong-attack.mp3 +0 -0
  677. package/themes/zelda-oot/sounds/listen.mp3 +0 -0
  678. package/themes/zelda-oot/sounds/look.mp3 +0 -0
  679. package/themes/zelda-oot/sounds/low-health.mp3 +0 -0
  680. package/themes/zelda-oot/sounds/menu-select.mp3 +0 -0
  681. package/themes/zelda-oot/sounds/open-chest.mp3 +0 -0
  682. package/themes/zelda-oot/sounds/open-small-chest.mp3 +0 -0
  683. package/themes/zelda-oot/sounds/pause-close.mp3 +0 -0
  684. package/themes/zelda-oot/sounds/pause-menu.mp3 +0 -0
  685. package/themes/zelda-oot/sounds/secret-discovered.mp3 +0 -0
  686. package/themes/zelda-oot/sounds/snore.mp3 +0 -0
  687. package/themes/zelda-oot/sounds/song-correct.mp3 +0 -0
  688. package/themes/zelda-oot/sounds/song-error.mp3 +0 -0
  689. package/themes/zelda-oot/sounds/spin-attack.mp3 +0 -0
  690. package/themes/zelda-oot/sounds/sword-draw.mp3 +0 -0
  691. package/themes/zelda-oot/sounds/watch-out.mp3 +0 -0
  692. package/themes/zelda-oot/sounds/z-target.mp3 +0 -0
  693. package/themes/zelda-oot/theme.json +47 -47
  694. package/themes/cnc/sounds/alarm.wav +0 -0
  695. package/themes/cnc/sounds/allies-acknowledged.wav +0 -0
  696. package/themes/cnc/sounds/allies-affirmative.wav +0 -0
  697. package/themes/cnc/sounds/allies-agreed.wav +0 -0
  698. package/themes/cnc/sounds/allies-at-once.wav +0 -0
  699. package/themes/cnc/sounds/allies-of-course.wav +0 -0
  700. package/themes/cnc/sounds/allies-ready-and-waiting.wav +0 -0
  701. package/themes/cnc/sounds/allies-reporting.wav +0 -0
  702. package/themes/cnc/sounds/allies-very-well.wav +0 -0
  703. package/themes/cnc/sounds/allies-waiting-orders.wav +0 -0
  704. package/themes/cnc/sounds/allies-yes-sir.wav +0 -0
  705. package/themes/cnc/sounds/building-destroyed.wav +0 -0
  706. package/themes/cnc/sounds/building-placed.wav +0 -0
  707. package/themes/cnc/sounds/cha-ching.wav +0 -0
  708. package/themes/cnc/sounds/credit-in.wav +0 -0
  709. package/themes/cnc/sounds/explosion.wav +0 -0
  710. package/themes/cnc/sounds/gdi-incoming-transmission.wav +0 -0
  711. package/themes/cnc/sounds/gdi-on-hold.wav +0 -0
  712. package/themes/cnc/sounds/gdi-recycle.wav +0 -0
  713. package/themes/cnc/sounds/gdi-success.wav +0 -0
  714. package/themes/cnc/sounds/gdi-unable-to-comply.wav +0 -0
  715. package/themes/cnc/sounds/gdi-warning.wav +0 -0
  716. package/themes/cnc/sounds/man-die.wav +0 -0
  717. package/themes/cnc/sounds/nod-incoming-transmission.wav +0 -0
  718. package/themes/cnc/sounds/nod-low-power.wav +0 -0
  719. package/themes/cnc/sounds/nod-on-hold.wav +0 -0
  720. package/themes/cnc/sounds/nod-unable-to-comply.wav +0 -0
  721. package/themes/cnc/sounds/power-down.wav +0 -0
  722. package/themes/cnc/sounds/power-up.wav +0 -0
  723. package/themes/cnc/sounds/radar-alert.wav +0 -0
  724. package/themes/cnc/sounds/radar-power-on.wav +0 -0
  725. package/themes/cnc/sounds/selling.wav +0 -0
  726. package/themes/cnc/sounds/soviet-acknowledged.wav +0 -0
  727. package/themes/cnc/sounds/soviet-affirmative.wav +0 -0
  728. package/themes/cnc/sounds/soviet-at-once.wav +0 -0
  729. package/themes/cnc/sounds/soviet-comrade.wav +0 -0
  730. package/themes/cnc/sounds/soviet-reporting.wav +0 -0
  731. package/themes/cnc/sounds/soviet-yes-sir.wav +0 -0
  732. package/themes/cnc/sounds/spy-commander.wav +0 -0
  733. package/themes/cnc/sounds/spy-for-king-and-country.wav +0 -0
  734. package/themes/cnc/sounds/spy-indeed.wav +0 -0
  735. package/themes/cnc/sounds/spy-on-my-way.wav +0 -0
  736. package/themes/cnc/sounds/tanya-chew-on-this.wav +0 -0
  737. package/themes/cnc/sounds/tanya-death.wav +0 -0
  738. package/themes/cnc/sounds/tanya-im-there.wav +0 -0
  739. package/themes/cnc/sounds/tanya-kiss-it-bye-bye.wav +0 -0
  740. package/themes/cnc/sounds/tanya-laugh.wav +0 -0
  741. package/themes/cnc/sounds/tanya-lets-rock.wav +0 -0
  742. package/themes/cnc/sounds/tanya-shake-it-baby.wav +0 -0
  743. package/themes/cnc/sounds/tanya-thats-all-you-got.wav +0 -0
  744. package/themes/cnc/sounds/tanya-yeah.wav +0 -0
  745. package/themes/cnc/sounds/tanya-yes-sir.wav +0 -0
  746. package/themes/cnc/sounds/tesla-shot.wav +0 -0
  747. package/themes/cnc/sounds/ts-auth.wav +0 -0
  748. package/themes/cnc/sounds/ts-notify.wav +0 -0
  749. package/themes/cnc/sounds/ts-reminder.wav +0 -0
  750. package/themes/cnc/sounds/ts-startup.wav +0 -0
  751. package/themes/cnc/sounds/ts-system.wav +0 -0
  752. package/themes/mario/sounds/1-up.wav +0 -0
  753. package/themes/mario/sounds/block-bump.wav +0 -0
  754. package/themes/mario/sounds/break-block.wav +0 -0
  755. package/themes/mario/sounds/burned.wav +0 -0
  756. package/themes/mario/sounds/coin.wav +0 -0
  757. package/themes/mario/sounds/death.wav +0 -0
  758. package/themes/mario/sounds/doh.wav +0 -0
  759. package/themes/mario/sounds/fireball.wav +0 -0
  760. package/themes/mario/sounds/flagpole.wav +0 -0
  761. package/themes/mario/sounds/game-over.wav +0 -0
  762. package/themes/mario/sounds/haha.wav +0 -0
  763. package/themes/mario/sounds/happy-message.wav +0 -0
  764. package/themes/mario/sounds/hello.wav +0 -0
  765. package/themes/mario/sounds/here-we-go.wav +0 -0
  766. package/themes/mario/sounds/hurt.wav +0 -0
  767. package/themes/mario/sounds/its-a-me-mario.wav +0 -0
  768. package/themes/mario/sounds/lets-a-go.wav +0 -0
  769. package/themes/mario/sounds/level-clear.wav +0 -0
  770. package/themes/mario/sounds/mamma-mia.wav +0 -0
  771. package/themes/mario/sounds/message-block.wav +0 -0
  772. package/themes/mario/sounds/mushroom-appears.wav +0 -0
  773. package/themes/mario/sounds/okey-dokey.wav +0 -0
  774. package/themes/mario/sounds/oof.wav +0 -0
  775. package/themes/mario/sounds/pause.wav +0 -0
  776. package/themes/mario/sounds/pipe-warp.wav +0 -0
  777. package/themes/mario/sounds/power-up.wav +0 -0
  778. package/themes/mario/sounds/question-block.wav +0 -0
  779. package/themes/mario/sounds/raccoon-transform.wav +0 -0
  780. package/themes/mario/sounds/shrink.wav +0 -0
  781. package/themes/mario/sounds/smb3-power-up.wav +0 -0
  782. package/themes/mario/sounds/smw-1-up.wav +0 -0
  783. package/themes/mario/sounds/smw-pipe.wav +0 -0
  784. package/themes/mario/sounds/smw-power-up.wav +0 -0
  785. package/themes/mario/sounds/snore.wav +0 -0
  786. package/themes/mario/sounds/stage-clear.wav +0 -0
  787. package/themes/mario/sounds/star-appears.wav +0 -0
  788. package/themes/mario/sounds/stomp.wav +0 -0
  789. package/themes/mario/sounds/tired.wav +0 -0
  790. package/themes/mario/sounds/vine-grow.wav +0 -0
  791. package/themes/mario/sounds/waha.wav +0 -0
  792. package/themes/mario/sounds/warp-whistle.wav +0 -0
  793. package/themes/mario/sounds/warp.wav +0 -0
  794. package/themes/mario/sounds/whoa.wav +0 -0
  795. package/themes/mario/sounds/world-clear.wav +0 -0
  796. package/themes/mario/sounds/yahoo.wav +0 -0
  797. package/themes/mario/sounds/yawn.wav +0 -0
  798. package/themes/mario/sounds/yippee.wav +0 -0
  799. package/themes/pokemon-gen1/sounds/ball-poof.wav +0 -0
  800. package/themes/pokemon-gen1/sounds/ball-toss.wav +0 -0
  801. package/themes/pokemon-gen1/sounds/caught-mon.wav +0 -0
  802. package/themes/pokemon-gen1/sounds/charizard-cry.wav +0 -0
  803. package/themes/pokemon-gen1/sounds/collision.wav +0 -0
  804. package/themes/pokemon-gen1/sounds/confused.wav +0 -0
  805. package/themes/pokemon-gen1/sounds/denied.wav +0 -0
  806. package/themes/pokemon-gen1/sounds/dex-page-added.wav +0 -0
  807. package/themes/pokemon-gen1/sounds/enter-pc.wav +0 -0
  808. package/themes/pokemon-gen1/sounds/faint-fall.wav +0 -0
  809. package/themes/pokemon-gen1/sounds/faint-thud.wav +0 -0
  810. package/themes/pokemon-gen1/sounds/get-item-fanfare.wav +0 -0
  811. package/themes/pokemon-gen1/sounds/get-item.wav +0 -0
  812. package/themes/pokemon-gen1/sounds/get-key-item.wav +0 -0
  813. package/themes/pokemon-gen1/sounds/go-outside.wav +0 -0
  814. package/themes/pokemon-gen1/sounds/heal-ailment.wav +0 -0
  815. package/themes/pokemon-gen1/sounds/heal-up.wav +0 -0
  816. package/themes/pokemon-gen1/sounds/intro-lunge.wav +0 -0
  817. package/themes/pokemon-gen1/sounds/intro-whoosh.wav +0 -0
  818. package/themes/pokemon-gen1/sounds/jigglypuff-cry.wav +0 -0
  819. package/themes/pokemon-gen1/sounds/ledge.wav +0 -0
  820. package/themes/pokemon-gen1/sounds/level-up.wav +0 -0
  821. package/themes/pokemon-gen1/sounds/pikachu-cry.wav +0 -0
  822. package/themes/pokemon-gen1/sounds/poisoned.wav +0 -0
  823. package/themes/pokemon-gen1/sounds/pokeball-open.wav +0 -0
  824. package/themes/pokemon-gen1/sounds/pokeball-throw.wav +0 -0
  825. package/themes/pokemon-gen1/sounds/pokedex-rating.wav +0 -0
  826. package/themes/pokemon-gen1/sounds/pokemon-switch.wav +0 -0
  827. package/themes/pokemon-gen1/sounds/press-ab.wav +0 -0
  828. package/themes/pokemon-gen1/sounds/psyduck-cry.wav +0 -0
  829. package/themes/pokemon-gen1/sounds/purchase.wav +0 -0
  830. package/themes/pokemon-gen1/sounds/rest.wav +0 -0
  831. package/themes/pokemon-gen1/sounds/save-game.wav +0 -0
  832. package/themes/pokemon-gen1/sounds/screech.wav +0 -0
  833. package/themes/pokemon-gen1/sounds/self-destruct.wav +0 -0
  834. package/themes/pokemon-gen1/sounds/shrink.wav +0 -0
  835. package/themes/pokemon-gen1/sounds/silph-scope.wav +0 -0
  836. package/themes/pokemon-gen1/sounds/slots-new-spin.wav +0 -0
  837. package/themes/pokemon-gen1/sounds/slots-stop.wav +0 -0
  838. package/themes/pokemon-gen1/sounds/splash.wav +0 -0
  839. package/themes/pokemon-gen1/sounds/start-menu.wav +0 -0
  840. package/themes/pokemon-gen1/sounds/substitute.wav +0 -0
  841. package/themes/pokemon-gen1/sounds/swap.wav +0 -0
  842. package/themes/pokemon-gen1/sounds/teleport.wav +0 -0
  843. package/themes/pokemon-gen1/sounds/tink.wav +0 -0
  844. package/themes/pokemon-gen1/sounds/trade-machine.wav +0 -0
  845. package/themes/pokemon-gen1/sounds/turn-off-pc.wav +0 -0
  846. package/themes/pokemon-gen1/sounds/withdraw-deposit.wav +0 -0
  847. package/themes/pokemon-gen1/theme.json +0 -212
  848. package/themes/portal/sounds/announcer-post.wav +0 -0
  849. package/themes/portal/sounds/button-positive.wav +0 -0
  850. package/themes/portal/sounds/button-press.wav +0 -0
  851. package/themes/portal/sounds/button-release.wav +0 -0
  852. package/themes/portal/sounds/core-attach.wav +0 -0
  853. package/themes/portal/sounds/core-complete.wav +0 -0
  854. package/themes/portal/sounds/emancipation-grill.wav +0 -0
  855. package/themes/portal/sounds/fizzler-shutdown.wav +0 -0
  856. package/themes/portal/sounds/fizzler-start.wav +0 -0
  857. package/themes/portal/sounds/invalid-surface.wav +0 -0
  858. package/themes/portal/sounds/klaxon-alarm.wav +0 -0
  859. package/themes/portal/sounds/portal-close-alt.wav +0 -0
  860. package/themes/portal/sounds/portal-close.wav +0 -0
  861. package/themes/portal/sounds/portal-enter.wav +0 -0
  862. package/themes/portal/sounds/portal-exit.wav +0 -0
  863. package/themes/portal/sounds/portal-fizzle.wav +0 -0
  864. package/themes/portal/sounds/portal-open.wav +0 -0
  865. package/themes/portal/sounds/portal-whoosh-close.wav +0 -0
  866. package/themes/portal/sounds/portalgun-powerup.wav +0 -0
  867. package/themes/portal/sounds/shoot-blue-portal.wav +0 -0
  868. package/themes/portal/sounds/shoot-orange-portal.wav +0 -0
  869. package/themes/portal/sounds/synth-negative.wav +0 -0
  870. package/themes/portal/sounds/synth-positive.wav +0 -0
  871. package/themes/portal/sounds/test-chamber-complete.wav +0 -0
  872. package/themes/portal/sounds/test-chamber-start.wav +0 -0
  873. package/themes/portal/sounds/turret-activated.wav +0 -0
  874. package/themes/portal/sounds/turret-alert.wav +0 -0
  875. package/themes/portal/sounds/turret-are-you-still-there.wav +0 -0
  876. package/themes/portal/sounds/turret-deploy.wav +0 -0
  877. package/themes/portal/sounds/turret-done.wav +0 -0
  878. package/themes/portal/sounds/turret-goodbye.wav +0 -0
  879. package/themes/portal/sounds/turret-hello.wav +0 -0
  880. package/themes/portal/sounds/turret-hellooo.wav +0 -0
  881. package/themes/portal/sounds/turret-i-see-you.wav +0 -0
  882. package/themes/portal/sounds/turret-no-hard-feelings.wav +0 -0
  883. package/themes/portal/sounds/turret-ow.wav +0 -0
  884. package/themes/portal/sounds/turret-ping.wav +0 -0
  885. package/themes/portal/sounds/turret-retract.wav +0 -0
  886. package/themes/portal/sounds/turret-searching.wav +0 -0
  887. package/themes/portal/sounds/turret-target-lost.wav +0 -0
  888. package/themes/portal/sounds/turret-whos-there.wav +0 -0
  889. package/themes/portal/sounds/ui-click.wav +0 -0
  890. package/themes/star-wars/sounds/bad-feeling.wav +0 -0
  891. package/themes/star-wars/sounds/blaster-firing.wav +0 -0
  892. package/themes/star-wars/sounds/chewie-chatting.wav +0 -0
  893. package/themes/star-wars/sounds/chewie-roar.wav +0 -0
  894. package/themes/star-wars/sounds/dark-side.wav +0 -0
  895. package/themes/star-wars/sounds/darth-maul-reveal-ourselves.wav +0 -0
  896. package/themes/star-wars/sounds/decided-to-rescue-you.wav +0 -0
  897. package/themes/star-wars/sounds/destiny-fulfilled.wav +0 -0
  898. package/themes/star-wars/sounds/destroy-you.wav +0 -0
  899. package/themes/star-wars/sounds/force-is-strong-with-this-one.wav +0 -0
  900. package/themes/star-wars/sounds/force-is-strong.wav +0 -0
  901. package/themes/star-wars/sounds/force-will-be-with-you.wav +0 -0
  902. package/themes/star-wars/sounds/great-disturbance.wav +0 -0
  903. package/themes/star-wars/sounds/i-am-your-father.wav +0 -0
  904. package/themes/star-wars/sounds/its-a-trap.wav +0 -0
  905. package/themes/star-wars/sounds/jabba-laughing.wav +0 -0
  906. package/themes/star-wars/sounds/lightsaber-ignite.wav +0 -0
  907. package/themes/star-wars/sounds/lightsaber-off.wav +0 -0
  908. package/themes/star-wars/sounds/lord-vader-rise.wav +0 -0
  909. package/themes/star-wars/sounds/luke-dont-do-that.wav +0 -0
  910. package/themes/star-wars/sounds/r2d2-beep.wav +0 -0
  911. package/themes/star-wars/sounds/r2d2-hey-you.wav +0 -0
  912. package/themes/star-wars/sounds/r2d2-woo-hoo.wav +0 -0
  913. package/themes/star-wars/sounds/r2d2-yeah.wav +0 -0
  914. package/themes/star-wars/sounds/vader-breathing.wav +0 -0
  915. package/themes/star-wars/sounds/vader-what-is-thy-bidding.wav +0 -0
  916. package/themes/star-wars/sounds/vader-yes-my-master.wav +0 -0
  917. package/themes/star-wars/sounds/wilhelm-scream.wav +0 -0
  918. package/themes/star-wars/sounds/yoda-900-years-old.wav +0 -0
  919. package/themes/star-wars/sounds/yoda-always-two.wav +0 -0
  920. package/themes/star-wars/sounds/yoda-dangerous-disturbing.wav +0 -0
  921. package/themes/star-wars/sounds/yoda-do-or-do-not.wav +0 -0
  922. package/themes/star-wars/sounds/yoda-laughing.wav +0 -0
  923. package/themes/star-wars/sounds/yoda-much-fear.wav +0 -0
  924. package/themes/star-wars/sounds/yoda-twisted-by-dark-side.wav +0 -0
  925. package/themes/star-wars/sounds/you-were-the-chosen-one.wav +0 -0
  926. package/themes/wc3-peon/sounds/anything-you-want.wav +0 -0
  927. package/themes/wc3-peon/sounds/be-happy-to.wav +0 -0
  928. package/themes/wc3-peon/sounds/concentrate-and-ask-again.wav +0 -0
  929. package/themes/wc3-peon/sounds/dabu.wav +0 -0
  930. package/themes/wc3-peon/sounds/death.wav +0 -0
  931. package/themes/wc3-peon/sounds/finally.wav +0 -0
  932. package/themes/wc3-peon/sounds/for-the-horde.wav +0 -0
  933. package/themes/wc3-peon/sounds/get-em.wav +0 -0
  934. package/themes/wc3-peon/sounds/grunt-death.wav +0 -0
  935. package/themes/wc3-peon/sounds/headhunter-death.wav +0 -0
  936. package/themes/wc3-peon/sounds/hmmm.wav +0 -0
  937. package/themes/wc3-peon/sounds/how-can-i-help.wav +0 -0
  938. package/themes/wc3-peon/sounds/i-can-do-that.wav +0 -0
  939. package/themes/wc3-peon/sounds/i-can-wait-no-longer.wav +0 -0
  940. package/themes/wc3-peon/sounds/ill-try.wav +0 -0
  941. package/themes/wc3-peon/sounds/immediately.wav +0 -0
  942. package/themes/wc3-peon/sounds/it-is-certain.wav +0 -0
  943. package/themes/wc3-peon/sounds/me-busy-leave-me-alone.wav +0 -0
  944. package/themes/wc3-peon/sounds/me-not-that-kind-of-orc.wav +0 -0
  945. package/themes/wc3-peon/sounds/no-time-for-play.wav +0 -0
  946. package/themes/wc3-peon/sounds/not-easy-being-green.wav +0 -0
  947. package/themes/wc3-peon/sounds/of-course.wav +0 -0
  948. package/themes/wc3-peon/sounds/ok.wav +0 -0
  949. package/themes/wc3-peon/sounds/okie-dokie.wav +0 -0
  950. package/themes/wc3-peon/sounds/outlook-not-so-good.wav +0 -0
  951. package/themes/wc3-peon/sounds/peon-death.wav +0 -0
  952. package/themes/wc3-peon/sounds/ready-to-work.wav +0 -0
  953. package/themes/wc3-peon/sounds/reply-hazy-try-again.wav +0 -0
  954. package/themes/wc3-peon/sounds/right-away.wav +0 -0
  955. package/themes/wc3-peon/sounds/someone-call-for-the-doctor.wav +0 -0
  956. package/themes/wc3-peon/sounds/something-need-doing.wav +0 -0
  957. package/themes/wc3-peon/sounds/taste-the-fury.wav +0 -0
  958. package/themes/wc3-peon/sounds/understood.wav +0 -0
  959. package/themes/wc3-peon/sounds/well-done.wav +0 -0
  960. package/themes/wc3-peon/sounds/what-you-want-me-to-do.wav +0 -0
  961. package/themes/wc3-peon/sounds/what-you-want.wav +0 -0
  962. package/themes/wc3-peon/sounds/what.wav +0 -0
  963. package/themes/wc3-peon/sounds/whatever-you-say.wav +0 -0
  964. package/themes/wc3-peon/sounds/who-you-want-me-kill.wav +0 -0
  965. package/themes/wc3-peon/sounds/why-not.wav +0 -0
  966. package/themes/wc3-peon/sounds/why-you-poking-me.wav +0 -0
  967. package/themes/wc3-peon/sounds/work-work.wav +0 -0
  968. package/themes/wc3-peon/sounds/yes.wav +0 -0
  969. package/themes/wc3-peon/sounds/you-seek-me-help.wav +0 -0
  970. package/themes/wc3-peon/sounds/zug-zug.wav +0 -0
  971. package/themes/zelda-oot/sounds/dialogue-done.wav +0 -0
  972. package/themes/zelda-oot/sounds/dialogue-next.wav +0 -0
  973. package/themes/zelda-oot/sounds/error.wav +0 -0
  974. package/themes/zelda-oot/sounds/ganondorf-laugh.wav +0 -0
  975. package/themes/zelda-oot/sounds/get-heart.wav +0 -0
  976. package/themes/zelda-oot/sounds/get-item.wav +0 -0
  977. package/themes/zelda-oot/sounds/get-rupee.wav +0 -0
  978. package/themes/zelda-oot/sounds/great-fairy-laugh.wav +0 -0
  979. package/themes/zelda-oot/sounds/hello.wav +0 -0
  980. package/themes/zelda-oot/sounds/hey.wav +0 -0
  981. package/themes/zelda-oot/sounds/item-fanfare.wav +0 -0
  982. package/themes/zelda-oot/sounds/link-attack.wav +0 -0
  983. package/themes/zelda-oot/sounds/link-hurt.wav +0 -0
  984. package/themes/zelda-oot/sounds/link-strong-attack.wav +0 -0
  985. package/themes/zelda-oot/sounds/listen.wav +0 -0
  986. package/themes/zelda-oot/sounds/look.wav +0 -0
  987. package/themes/zelda-oot/sounds/low-health.wav +0 -0
  988. package/themes/zelda-oot/sounds/menu-select.wav +0 -0
  989. package/themes/zelda-oot/sounds/open-chest.wav +0 -0
  990. package/themes/zelda-oot/sounds/open-small-chest.wav +0 -0
  991. package/themes/zelda-oot/sounds/pause-close.wav +0 -0
  992. package/themes/zelda-oot/sounds/pause-menu.wav +0 -0
  993. package/themes/zelda-oot/sounds/secret-discovered.wav +0 -0
  994. package/themes/zelda-oot/sounds/snore.wav +0 -0
  995. package/themes/zelda-oot/sounds/song-correct.wav +0 -0
  996. package/themes/zelda-oot/sounds/song-error.wav +0 -0
  997. package/themes/zelda-oot/sounds/spin-attack.wav +0 -0
  998. package/themes/zelda-oot/sounds/sword-draw.wav +0 -0
  999. package/themes/zelda-oot/sounds/watch-out.wav +0 -0
  1000. package/themes/zelda-oot/sounds/z-target.wav +0 -0
package/README.md CHANGED
@@ -4,11 +4,13 @@
4
4
 
5
5
  # claude-code-sounds
6
6
 
7
+ [![npm version](https://img.shields.io/npm/v/claude-code-sounds)](https://www.npmjs.com/package/claude-code-sounds)
8
+
7
9
  **Sound themes for [Claude Code](https://docs.anthropic.com/en/docs/claude-code) lifecycle hooks.**
8
10
 
9
11
  Plays sound effects when sessions start, prompts are submitted, responses finish, errors occur, and more.
10
12
 
11
- Ships with 12 themes. Bring your own sounds or create new ones.
13
+ Ships with 15 themes. Bring your own sounds or create new ones.
12
14
 
13
15
  *"Something need doing?"*
14
16
 
@@ -24,12 +26,6 @@ The interactive installer checks dependencies, lets you pick a theme, and option
24
26
 
25
27
  Requires macOS (uses `afplay`) and Node.js 20+.
26
28
 
27
- For scripted or CI usage, skip all prompts with `--yes`:
28
-
29
- ```bash
30
- npx claude-code-sounds --yes
31
- ```
32
-
33
29
  <details>
34
30
  <summary>Alternative: install from source</summary>
35
31
 
@@ -47,8 +43,9 @@ The bash installer requires `jq` (`brew install jq`).
47
43
 
48
44
  ```bash
49
45
  npx claude-code-sounds # Interactive install
50
- npx claude-code-sounds --yes # Install defaults, skip all prompts
51
46
  npx claude-code-sounds --theme portal # Install a specific theme directly
47
+ npx claude-code-sounds --mix # Jump to sound assignment grid
48
+ npx claude-code-sounds --yes # Install defaults, skip all prompts
52
49
  npx claude-code-sounds --list # List available themes
53
50
  npx claude-code-sounds --uninstall # Remove all sounds and hooks
54
51
  npx claude-code-sounds --help # Show help
@@ -58,20 +55,23 @@ npx claude-code-sounds --help # Show help
58
55
 
59
56
  | Theme | Sounds | Vibe |
60
57
  |---|---|---|
61
- | **WC3 Orc Peon** (`wc3-peon`) | 57 | *"Something need doing?"* — Peons, Grunts, Shamans, and Grom Hellscream |
62
- | **Zelda: Ocarina of Time** (`zelda-oot`) | 47 | *"Hey! Listen!"* — Navi, Link, and iconic OOT jingles |
63
- | **Super Mario Bros** (`mario`) | 47 | *"Let's-a go!"* — Coins, power-ups, and Mario's voice from NES to N64 |
64
- | **Star Wars** (`star-wars`) | 36 | *"May the Force be with you"* — Lightsabers, R2-D2, and the dark side |
58
+ | **Age of Empires 2** (`aoe2`) | 48 | *"Wololo!"* — Villager taunts, monks, and age advance fanfares |
59
+ | **Call of Duty** (`cod`) | 38 | *"Enemy AC-130 above!"* — Killstreaks, hitmarkers, and Captain Price |
60
+ | **Command & Conquer** (`cnc`) | 52 | *"Construction complete"* — EVA announcements, unit voices, and Red Alert |
61
+ | **Diablo 2** (`diablo2`) | 46 | *"Stay awhile and listen"* — Deckard Cain, item drops, and the Prime Evils |
62
+ | **Halo** (`halo`) | 52 | *"Wake me when you need me"* — Master Chief, Cortana, and the multiplayer announcer |
65
63
  | **Metal Gear Solid** (`mgs`) | 40 | *"Kept you waiting, huh?"* — Codec calls, alert sounds, and Snake |
66
- | **Pokemon Gen 1** (`pokemon-gen1`) | 49 | *"Wild PIKACHU appeared!"* — Cries, battle sounds, and Kanto menus |
64
+ | **Pokemon Gen 3** (`pokemon-gen3`) | 51 | *"A wild TREECKO appeared!"* — GBA battle cries, Hoenn fanfares, and RSE bleeps |
67
65
  | **Portal** (`portal`) | 42 | *"Are you still there?"* — Turrets, portal guns, and Aperture Science |
68
- | **Command & Conquer** (`cnc`) | 72 | *"Construction complete"* — EVA announcements, unit voices, and Red Alert |
69
- | **Age of Empires 2** (`aoe2`) | 38 | *"Wololo!"* — Villager taunts, monks, and age advance fanfares |
70
- | **Diablo 2** (`diablo2`) | 41 | *"Stay awhile and listen"* — Deckard Cain, item drops, and the Prime Evils |
71
- | **Warhammer 40k** (`wh40k`) | 51 | *"For the Emperor!"* — Space Marines, Chaos war cries, and Ork shouts |
72
- | **StarCraft** (`starcraft`) | 67 | *"Not enough minerals"* — Terran, Protoss, and Zerg voice lines |
66
+ | **Short Circuit** (`short-circuit`) | 41 | *"Number 5 is alive!"* — The lovable sentient robot from the 1986 classic |
67
+ | **Star Wars** (`star-wars`) | 36 | *"May the Force be with you"* — Lightsabers, R2-D2, and the dark side |
68
+ | **StarCraft** (`starcraft`) | 50 | *"Not enough minerals"* — Terran, Protoss, and Zerg voice lines |
69
+ | **Super Mario Bros** (`mario`) | 47 | *"Let's-a go!"* — Coins, power-ups, and Mario's voice from NES to N64 |
70
+ | **Warhammer 40k** (`wh40k`) | 50 | *"For the Emperor!"* — Space Marines, Chaos war cries, and Ork shouts |
71
+ | **WC3 Orc Peon** (`wc3-peon`) | 57 | *"Something need doing?"* — Peons, Grunts, Shamans, and Grom Hellscream |
72
+ | **Zelda: Ocarina of Time** (`zelda-oot`) | 47 | *"Hey! Listen!"* — Navi, Link, and iconic OOT jingles |
73
73
 
74
- Each theme maps sounds across all 11 Claude Code lifecycle events. Preview installed sounds with `./preview.sh`.
74
+ Each theme maps sounds across all 11 Claude Code lifecycle events.
75
75
 
76
76
  ## Hook Events
77
77
 
@@ -124,7 +124,15 @@ Hooks are configured in `~/.claude/settings.json` — each Claude Code lifecycle
124
124
 
125
125
  ## Customizing
126
126
 
127
- Drop any `.wav` or `.mp3` into the sound directories to add your own clips:
127
+ Re-run with `--mix` to open the sound assignment grid, where you can reassign sounds to hooks, add themes, or preview clips:
128
+
129
+ ```bash
130
+ npx claude-code-sounds --mix
131
+ ```
132
+
133
+ ![Sound assignment grid](images/sound-grid.png)
134
+
135
+ You can also drop any `.wav` or `.mp3` into the sound directories manually:
128
136
 
129
137
  ```
130
138
  ~/.claude/sounds/
@@ -146,4 +154,8 @@ This removes all sound files, the hook script, and the hooks config from `settin
146
154
 
147
155
  ## Disclaimer
148
156
 
149
- All game audio is property of its respective owners: Blizzard Entertainment (Warcraft, StarCraft, Diablo), Nintendo (Zelda, Mario, Pokemon), Lucasfilm/Disney (Star Wars), Konami (Metal Gear Solid), Valve (Portal), Electronic Arts/Westwood Studios (Command & Conquer), Xbox Game Studios/Ensemble Studios (Age of Empires), and Games Workshop/Relic Entertainment (Warhammer 40,000).
157
+ This project is an unofficial fan project provided free of charge for personal, non-commercial use. It is not affiliated with, endorsed by, or sponsored by any game publisher or rights holder.
158
+
159
+ All game audio is the property of its respective owners: Blizzard Entertainment (Warcraft, StarCraft, Diablo), Nintendo/Game Freak (Zelda, Mario, Pokemon), Lucasfilm/Disney (Star Wars), Konami (Metal Gear Solid), Valve (Portal), Electronic Arts/Westwood Studios (Command & Conquer), Xbox Game Studios/Ensemble Studios (Age of Empires), Games Workshop/Relic Entertainment (Warhammer 40,000), Xbox Game Studios/Bungie/343 Industries (Halo), Activision/Infinity Ward (Call of Duty), TriStar Pictures (Short Circuit). All trademarks and registered trademarks are the property of their respective owners.
160
+
161
+ If you are a rights holder and would like content removed, please [open an issue](https://github.com/ryparker/claude-code-sounds/issues) and it will be taken down promptly.
package/bin/cli.js CHANGED
@@ -2,27 +2,28 @@
2
2
 
3
3
  const fs = require("fs");
4
4
  const path = require("path");
5
- const os = require("os");
6
5
  const { execSync, spawn } = require("child_process");
7
6
  const p = require("@clack/prompts");
8
7
  const { Prompt } = require("@clack/core");
9
8
  const color = require("picocolors");
10
9
 
11
- // ─── Paths ───────────────────────────────────────────────────────────────────
10
+ // ─── Library ─────────────────────────────────────────────────────────────────
12
11
 
13
- const PKG_DIR = path.resolve(__dirname, "..");
14
- const CLAUDE_DIR = path.join(os.homedir(), ".claude");
15
- const SOUNDS_DIR = path.join(CLAUDE_DIR, "sounds");
16
- const HOOKS_DIR = path.join(CLAUDE_DIR, "hooks");
17
- const SETTINGS_PATH = path.join(CLAUDE_DIR, "settings.json");
18
- const THEMES_DIR = path.join(PKG_DIR, "themes");
19
- const INSTALLED_PATH = path.join(SOUNDS_DIR, ".installed.json");
12
+ const lib = require("./lib");
13
+ const paths = lib.defaultPaths();
14
+ const { HOOKS, mkdirp } = lib;
15
+ const { SOUNDS_DIR } = paths;
20
16
 
21
- // ─── Helpers ─────────────────────────────────────────────────────────────────
17
+ // Path-bound wrappers
18
+ const listThemes = () => lib.listThemes(paths);
19
+ const readThemeJson = (name) => lib.readThemeJson(name, paths);
20
+ const resolveThemeSoundPath = (name, file) => lib.resolveThemeSoundPath(name, file, paths);
21
+ const writeInstalled = (data) => lib.writeInstalled(data, paths);
22
+ const detectExistingInstall = () => lib.detectExistingInstall(paths);
23
+ const installSounds = (sel) => lib.installSounds(sel, paths);
24
+ const installHooksConfig = () => lib.installHooksConfig(paths);
22
25
 
23
- function mkdirp(dir) {
24
- fs.mkdirSync(dir, { recursive: true });
25
- }
26
+ // ─── Helpers ─────────────────────────────────────────────────────────────────
26
27
 
27
28
  function exec(cmd, opts = {}) {
28
29
  return execSync(cmd, { encoding: "utf-8", stdio: "pipe", ...opts });
@@ -37,70 +38,13 @@ function hasCommand(name) {
37
38
  }
38
39
  }
39
40
 
40
- function listThemes() {
41
- const themes = [];
42
- for (const name of fs.readdirSync(THEMES_DIR)) {
43
- const themeJson = path.join(THEMES_DIR, name, "theme.json");
44
- if (!fs.existsSync(themeJson)) continue;
45
- const meta = JSON.parse(fs.readFileSync(themeJson, "utf-8"));
46
- let soundCount = 0;
47
- if (meta.sounds) {
48
- for (const cat of Object.values(meta.sounds)) {
49
- soundCount += cat.files.length;
50
- }
51
- }
52
- themes.push({
53
- name,
54
- description: meta.description || "",
55
- display: meta.name || name,
56
- soundCount,
57
- sources: meta.sources || [],
58
- });
59
- }
60
- return themes;
61
- }
62
-
63
- function readSettings() {
64
- if (fs.existsSync(SETTINGS_PATH)) {
65
- return JSON.parse(fs.readFileSync(SETTINGS_PATH, "utf-8"));
66
- }
67
- return {};
68
- }
69
-
70
- function writeSettings(settings) {
71
- mkdirp(CLAUDE_DIR);
72
- fs.writeFileSync(SETTINGS_PATH, JSON.stringify(settings, null, 2) + "\n");
73
- }
74
-
75
- function readInstalled() {
76
- if (fs.existsSync(INSTALLED_PATH)) {
77
- return JSON.parse(fs.readFileSync(INSTALLED_PATH, "utf-8"));
78
- }
79
- return null;
80
- }
81
-
82
- function writeInstalled(data) {
83
- mkdirp(SOUNDS_DIR);
84
- fs.writeFileSync(INSTALLED_PATH, JSON.stringify(data, null, 2) + "\n");
85
- }
86
-
87
- function readThemeJson(themeName) {
88
- return JSON.parse(
89
- fs.readFileSync(path.join(THEMES_DIR, themeName, "theme.json"), "utf-8")
90
- );
91
- }
92
-
93
- function resolveThemeSoundPath(themeName, fileName) {
94
- return path.join(THEMES_DIR, themeName, "sounds", fileName);
95
- }
96
-
97
41
  // ─── Preview ─────────────────────────────────────────────────────────────────
98
42
 
99
43
  let previewProcess = null;
100
44
 
101
45
  function killPreview() {
102
46
  if (previewProcess) {
103
- try { previewProcess.kill(); } catch {}
47
+ try { previewProcess.kill("SIGKILL"); } catch {}
104
48
  previewProcess = null;
105
49
  }
106
50
  }
@@ -108,46 +52,16 @@ function killPreview() {
108
52
  function playPreview(filePath) {
109
53
  killPreview();
110
54
  if (fs.existsSync(filePath)) {
111
- previewProcess = spawn("afplay", [filePath], { stdio: "ignore", detached: true });
112
- previewProcess.unref();
113
- previewProcess.on("exit", () => { previewProcess = null; });
55
+ const proc = spawn("afplay", [filePath], { stdio: "ignore" });
56
+ previewProcess = proc;
57
+ proc.on("exit", () => {
58
+ if (previewProcess === proc) previewProcess = null;
59
+ });
114
60
  }
115
61
  }
116
62
 
117
- // ─── Hooks Config ────────────────────────────────────────────────────────────
118
-
119
- const HOOKS_CONFIG = {
120
- SessionStart: [{ matcher: "startup", hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" start', timeout: 5 }] }],
121
- SessionEnd: [{ hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" end', timeout: 5 }] }],
122
- Notification: [
123
- { matcher: "permission_prompt", hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" permission', timeout: 5 }] },
124
- { matcher: "idle_prompt", hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" idle', timeout: 5 }] },
125
- ],
126
- Stop: [{ hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" stop', timeout: 5 }] }],
127
- SubagentStart: [{ hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" subagent', timeout: 5 }] }],
128
- PostToolUseFailure: [{ hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" error', timeout: 5 }] }],
129
- UserPromptSubmit: [{ hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" prompt', timeout: 5 }] }],
130
- TaskCompleted: [{ hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" task-completed', timeout: 5 }] }],
131
- PreCompact: [{ hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" compact', timeout: 5 }] }],
132
- TeammateIdle: [{ hooks: [{ type: "command", command: '/bin/bash "$HOME/.claude/hooks/play-sound.sh" teammate-idle', timeout: 5 }] }],
133
- };
134
-
135
63
  // ─── Sound Grid Prompt ───────────────────────────────────────────────────────
136
64
 
137
- const HOOKS = [
138
- { key: "start", abbr: "str", description: "Session starting" },
139
- { key: "prompt", abbr: "pmt", description: "User submitted prompt" },
140
- { key: "permission", abbr: "prm", description: "Permission prompt" },
141
- { key: "stop", abbr: "stp", description: "Done responding" },
142
- { key: "subagent", abbr: "sub", description: "Spawning subagent" },
143
- { key: "task-completed", abbr: "tsk", description: "Task finished" },
144
- { key: "error", abbr: "err", description: "Tool failure" },
145
- { key: "compact", abbr: "cmp", description: "Context compaction" },
146
- { key: "idle", abbr: "idl", description: "Waiting for input" },
147
- { key: "teammate-idle", abbr: "tmt", description: "Teammate went idle" },
148
- { key: "end", abbr: "end", description: "Session over" },
149
- ];
150
-
151
65
  /**
152
66
  * A 2D grid prompt for assigning sounds to hooks.
153
67
  *
@@ -422,59 +336,19 @@ class SoundGrid extends Prompt {
422
336
  }
423
337
  }
424
338
 
425
- // ─── Install Sounds ──────────────────────────────────────────────────────────
339
+ // ─── Install / Uninstall ─────────────────────────────────────────────────────
426
340
 
427
- /**
428
- * Copy selected sound files from package to SOUNDS_DIR.
429
- *
430
- * @param {Object<string, Array<{themeName: string, fileName: string}>>} selections
431
- * @returns {number} Total files installed
432
- */
433
- function installSounds(selections) {
434
- let total = 0;
435
-
436
- for (const [cat, items] of Object.entries(selections)) {
437
- const catDir = path.join(SOUNDS_DIR, cat);
438
- mkdirp(catDir);
439
-
440
- // Clear existing sounds in this category
441
- try {
442
- for (const f of fs.readdirSync(catDir)) {
443
- if (f.endsWith(".wav") || f.endsWith(".mp3")) {
444
- fs.unlinkSync(path.join(catDir, f));
445
- }
446
- }
447
- } catch {}
448
-
449
- // Copy selected sounds
450
- for (const item of items) {
451
- const srcPath = resolveThemeSoundPath(item.themeName, item.fileName);
452
- const destPath = path.join(catDir, item.fileName);
453
-
454
- if (fs.existsSync(srcPath)) {
455
- fs.copyFileSync(srcPath, destPath);
456
- total++;
457
- }
458
- }
459
- }
460
-
461
- return total;
341
+ async function quickInstall(theme) {
342
+ const { total, categories } = lib.quickInstall(theme, paths);
343
+ p.log.success(`Installed ${color.bold(theme.display)} — ${total} sounds across ${categories} hooks.`);
462
344
  }
463
345
 
464
- /**
465
- * Write hooks config and copy play-sound.sh script.
466
- */
467
- function installHooksConfig() {
468
- mkdirp(HOOKS_DIR);
469
-
470
- const hookSrc = path.join(PKG_DIR, "hooks", "play-sound.sh");
471
- const hookDest = path.join(HOOKS_DIR, "play-sound.sh");
472
- fs.copyFileSync(hookSrc, hookDest);
473
- fs.chmodSync(hookDest, 0o755);
474
-
475
- const settings = readSettings();
476
- settings.hooks = HOOKS_CONFIG;
477
- writeSettings(settings);
346
+ function uninstallAll() {
347
+ const removed = lib.uninstallAll(paths);
348
+ if (removed.sounds) p.log.step("Removed ~/.claude/sounds/");
349
+ if (removed.hookScript) p.log.step("Removed ~/.claude/hooks/play-sound.sh");
350
+ if (removed.hooksConfig) p.log.step("Removed hooks from settings.json");
351
+ if (removed.commands) p.log.step("Removed /mute and /unmute commands");
478
352
  }
479
353
 
480
354
  // ─── Print Summary ───────────────────────────────────────────────────────────
@@ -502,15 +376,21 @@ function showHelp() {
502
376
  Usage:
503
377
  npx claude-code-sounds Interactive install
504
378
  npx claude-code-sounds --theme mgs Install a specific theme directly
379
+ npx claude-code-sounds --mix Jump straight to the sound grid
505
380
  npx claude-code-sounds --yes Install defaults, skip prompts
506
381
  npx claude-code-sounds --list List available themes
382
+ npx claude-code-sounds --mute Mute all sounds
383
+ npx claude-code-sounds --unmute Unmute all sounds
507
384
  npx claude-code-sounds --uninstall Remove all sounds and hooks
508
385
  npx claude-code-sounds --help Show this help
509
386
 
510
387
  Flags:
511
388
  -t, --theme <name> Install a specific theme by name
389
+ -m, --mix Jump to sound assignment grid
512
390
  -y, --yes Skip all prompts, use defaults
513
391
  -l, --list List available themes
392
+ --mute Mute all sounds
393
+ --unmute Unmute all sounds
514
394
  -h, --help Show this help
515
395
  `);
516
396
  }
@@ -525,26 +405,6 @@ function showList() {
525
405
  console.log();
526
406
  }
527
407
 
528
- function uninstallAll() {
529
- if (fs.existsSync(SOUNDS_DIR)) {
530
- fs.rmSync(SOUNDS_DIR, { recursive: true });
531
- p.log.step("Removed ~/.claude/sounds/");
532
- }
533
-
534
- const hookScript = path.join(HOOKS_DIR, "play-sound.sh");
535
- if (fs.existsSync(hookScript)) {
536
- fs.unlinkSync(hookScript);
537
- p.log.step("Removed ~/.claude/hooks/play-sound.sh");
538
- }
539
-
540
- if (fs.existsSync(SETTINGS_PATH)) {
541
- const settings = readSettings();
542
- delete settings.hooks;
543
- writeSettings(settings);
544
- p.log.step("Removed hooks from settings.json");
545
- }
546
- }
547
-
548
408
  // ─── Check Dependencies ─────────────────────────────────────────────────────
549
409
 
550
410
  function checkDependencies() {
@@ -554,76 +414,6 @@ function checkDependencies() {
554
414
  }
555
415
  }
556
416
 
557
- // ─── Detect Existing Install ─────────────────────────────────────────────────
558
-
559
- function detectExistingInstall() {
560
- const installed = readInstalled();
561
- if (!installed) return null;
562
-
563
- // Support both old format { theme: "name" } and new { themes: [...], mode }
564
- const themeNames = installed.themes || (installed.theme ? [installed.theme] : []);
565
- if (themeNames.length === 0) return null;
566
-
567
- // Count enabled sounds across all categories
568
- let totalEnabled = 0;
569
- const allCategories = new Set();
570
-
571
- for (const themeName of themeNames) {
572
- try {
573
- const theme = readThemeJson(themeName);
574
- for (const cat of Object.keys(theme.sounds)) {
575
- allCategories.add(cat);
576
- }
577
- } catch {}
578
- }
579
-
580
- for (const cat of allCategories) {
581
- const catDir = path.join(SOUNDS_DIR, cat);
582
- try {
583
- for (const f of fs.readdirSync(catDir)) {
584
- if (f.endsWith(".wav") || f.endsWith(".mp3")) totalEnabled++;
585
- }
586
- } catch {}
587
- }
588
-
589
- if (totalEnabled === 0) return null;
590
-
591
- const displays = themeNames.map((n) => {
592
- try { return readThemeJson(n).name; } catch { return n; }
593
- });
594
-
595
- return {
596
- themes: themeNames,
597
- themeDisplays: displays,
598
- totalEnabled,
599
- mode: installed.mode || "quick",
600
- };
601
- }
602
-
603
- // ─── Quick Install ───────────────────────────────────────────────────────────
604
-
605
- async function quickInstall(theme) {
606
- const themeJson = readThemeJson(theme.name);
607
- const categories = Object.keys(themeJson.sounds);
608
-
609
- for (const cat of categories) mkdirp(path.join(SOUNDS_DIR, cat));
610
-
611
- // Build selections: all native sounds per category
612
- const selections = {};
613
- for (const cat of categories) {
614
- selections[cat] = themeJson.sounds[cat].files.map((f) => ({
615
- themeName: theme.name,
616
- fileName: f.name,
617
- }));
618
- }
619
-
620
- const total = installSounds(selections);
621
- writeInstalled({ themes: [theme.name], mode: "quick" });
622
- installHooksConfig();
623
-
624
- p.log.success(`Installed ${color.bold(theme.display)} — ${total} sounds across ${categories.length} hooks.`);
625
- }
626
-
627
417
  // ─── Custom Install ──────────────────────────────────────────────────────────
628
418
 
629
419
  async function customInstall(selectedThemes) {
@@ -988,6 +778,48 @@ if (flags.has("--help") || flags.has("-h")) {
988
778
  p.cancel(err.message);
989
779
  process.exit(1);
990
780
  });
781
+ } else if (flags.has("--mix") || flags.has("-m")) {
782
+ (async () => {
783
+ p.intro(color.bold("claude-code-sounds"));
784
+ checkDependencies();
785
+
786
+ const existing = detectExistingInstall();
787
+ if (existing) {
788
+ await reconfigure(existing);
789
+ } else {
790
+ const themes = listThemes();
791
+ if (themes.length === 0) {
792
+ p.cancel("No themes found in themes/ directory.");
793
+ process.exit(1);
794
+ }
795
+ const themeValues = await p.multiselect({
796
+ message: "Select themes to include:",
797
+ options: themes.map((t) => ({
798
+ value: t.name,
799
+ label: t.display,
800
+ hint: `${t.soundCount} sounds — from ${t.sources.join(", ") || "local"}`,
801
+ })),
802
+ required: true,
803
+ });
804
+ if (p.isCancel(themeValues)) {
805
+ p.cancel("Cancelled.");
806
+ process.exit(0);
807
+ }
808
+ await customInstall(themes.filter((t) => themeValues.includes(t.name)));
809
+ }
810
+
811
+ p.outro("Start a new Claude Code session to hear it.");
812
+ })().catch((err) => {
813
+ killPreview();
814
+ p.cancel(err.message);
815
+ process.exit(1);
816
+ });
817
+ } else if (flags.has("--mute")) {
818
+ lib.setMuted(true, paths);
819
+ console.log(" Sounds muted. Run --unmute to re-enable.");
820
+ } else if (flags.has("--unmute")) {
821
+ lib.setMuted(false, paths);
822
+ console.log(" Sounds unmuted.");
991
823
  } else if (flags.has("--uninstall") || flags.has("--remove")) {
992
824
  p.intro(color.bold("claude-code-sounds"));
993
825
  uninstallAll();