Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Odysseus' Bow icon

Odysseus' Bow

A lightweight macOS menu bar app that plays distinct sounds when your Mac wakes and when you unlock it.

macOS 13+ Swift 5 License MIT

Features

  • Separate wake and unlock sounds
  • Built-in Odyssey bow sounds
  • Custom MP3, M4A, WAV, AIFF, and CAF files
  • Independent enable and volume controls
  • Instant sound testing from the menu bar
  • Optional launch at login
  • Menu bar only: no Dock icon and no background network traffic

Requirements

  • macOS 13 Ventura or later
  • Xcode 15 or later to build from source

Install

Clone and build:

git clone https://github.com/metehankasapp/odysseus-bow.git
cd odysseus-bow
xcodebuild \
  -project OdysseusBow.xcodeproj \
  -scheme OdysseusBow \
  -configuration Release \
  -derivedDataPath .build \
  CODE_SIGN_IDENTITY=- \
  CODE_SIGNING_REQUIRED=YES \
  build
cp -R ".build/Build/Products/Release/Odysseus Bow.app" /Applications/
open "/Applications/Odysseus Bow.app"

Alternatively, open OdysseusBow.xcodeproj in Xcode, select the OdysseusBow scheme, and press Run.

Because source builds use a local ad-hoc signature, macOS may ask you to confirm the first launch in System Settings → Privacy & Security.

Usage

  1. Open Odysseus' Bow.
  2. Click the bow icon in the menu bar.
  3. Test and configure the wake and unlock sounds.
  4. Enable Launch at Login if you want it active after every restart.
  5. Lock your Mac with Control–Command–Q, let the display sleep, then wake and unlock it.

Custom audio files are copied into:

~/Library/Application Support/OdysseusBow/

How It Works

The app observes macOS workspace wake and active-session notifications. It also listens for the system unlock notification and suppresses duplicate events during the wake/unlock transition. Audio playback is local through AVAudioPlayer.

Privacy

Odysseus' Bow has no analytics, account system, tracking, or network requests. It does not need Accessibility, screen recording, microphone, or camera permission. Preferences and custom sounds remain on your Mac.

Limitations

  • The app must already be running before the Mac sleeps or locks.
  • macOS does not identify whether an unlock used a password, Touch ID, or Apple Watch.
  • The distributed unlock notification is not a documented public API and may require maintenance on future macOS releases.

Project Structure

OdysseusBow/
├── AppController.swift       # Wake and unlock event coordination
├── AudioFileStore.swift      # Custom audio persistence
├── MenuBarView.swift         # Menu bar interface
├── SoundPlayer.swift         # Audio playback
├── SoundPreferences.swift    # User settings
└── OdysseusBowApp.swift      # App entry point

Audio and Artwork

The bundled Odyssey bow recordings are distributed with the rights holder's permission. The app icon was generated for this project with OpenAI ImageGen and converted into a native macOS AppIcon asset set.

Contributing

Issues and focused pull requests are welcome. Please verify both wake and unlock behavior on a real Mac before submitting event-handling changes.

License

Source code is available under the MIT License. Bundled audio and artwork are excluded from the MIT license unless explicitly stated otherwise.

About

A macOS menu bar utility that plays distinct sounds when your Mac wakes and unlocks.

Topics

Resources

Stars

5 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages