🦉
Macの通知音を全部鳴らす :Claude Codeの通知音を決めよう
Hooks(Stop)で通知音を鳴らす
"command": "afplay /System/Library/Sounds/Glass.aiff"
他の音も聴きいて決めたい
- copy code
- vim mac_sounds.py
uv run mac_sounds.py list -a
mac_sounds.py
#!/usr/bin/env python3
# /// script
# requires-python = ">=3.11"
# dependencies = [
# "click>=8.0.0",
# ]
# ///
import click
import subprocess
import time
from pathlib import Path
SOUNDS = Path("/System/Library/Sounds")
def play_sound(name):
"""Play system sound"""
sound_path = SOUNDS / f"{name}.aiff"
if sound_path.exists():
subprocess.run(["afplay", str(sound_path)])
return True
return False
@click.group()
def cli():
"""🔊 Mac System Sounds"""
pass
@cli.command()
@click.option('--play-all', '-a', is_flag=True, help='Play all sounds')
def list(play_all):
"""List system sounds (use -a to play all)"""
sounds = sorted([f.stem for f in SOUNDS.glob("*.aiff")])
if play_all:
click.echo("🔊 Playing all sounds (Ctrl+C to stop):")
try:
for sound in sounds:
click.echo(f" {sound}")
play_sound(sound)
time.sleep(0.3)
except KeyboardInterrupt:
click.echo("\nStopped")
else:
for i, sound in enumerate(sounds, 1):
click.echo(f"{i:2d}. {sound}")
@cli.command()
@click.argument('name')
def play(name):
"""Play system sound"""
if play_sound(name):
click.echo(f"🔊 {name}")
else:
click.echo(f"❌ {name} not found")
if __name__ == "__main__":
cli()
先頭にコメントを書けば、pythonのバージョンや依存関係を指定できる(PEP 723)
links
Discussion