mirror of
https://github.com/ghostty-org/ghostty.git
synced 2026-04-14 19:45:49 +00:00
## Summary This extends the macOS bell implementation to support the `audio` bell feature, bringing it to parity with GTK/Linux. Previously, macOS only had the `system` feature (`NSSound.beep()`). This PR adds: - **`audio` bell feature on macOS**: plays the file at `bell-audio-path` using `NSSound(contentsOfFile:)`, respecting `bell-audio-volume` - **`cval()` on the `Path` type**: allows `Path` values (a union type) to be returned through the C API, which is needed for Swift to read `bell-audio-path` - **Removes `(GTK only)` restriction** from `bell-audio-path` and `bell-audio-volume` documentation ## How it works In `AppDelegate.swift`, when the bell rings and the `audio` feature is enabled, Ghostty now: 1. Reads `bell-audio-path` from config 2. Loads it as an `NSSound` 3. Applies `bell-audio-volume` and plays it Falls back gracefully if the path is not set or the file cannot be loaded. ## Example config ``` bell-features = audio bell-audio-path = /System/Library/Sounds/Glass.aiff bell-audio-volume = 0.8 ``` ## Testing - Set `bell-features = audio` and `bell-audio-path` to any valid audio file - Trigger a bell with `echo -e '\a'` - Audio should play at the configured volume