Skip to content

kozhydlo/NotchMac

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

16 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Preview

NotchMac

A Dynamic Island-style notch replacement for MacBooks with notch displays. Transforms the black notch area into an interactive, functional space with beautiful animations and useful indicators.

macOS Swift License

Features

Volume & Brightness HUD

Replace the default macOS volume and brightness overlays with a sleek notch-integrated HUD.

Three display modes:

  • Minimal — Icon on left, percentage on right, no expansion
  • Progress Bar — Classic style with animated progress bar
  • Notched — Premium segmented design inspired by iOS

Now Playing

Automatically detects music playback and shows animated audio visualizer.

Supported apps:

  • Apple Music
  • Spotify
  • TIDAL
  • Deezer
  • Amazon Music
  • Safari, Chrome, Firefox, Arc (browser media)

Battery Monitoring

  • Animated charging indicator when plugged in
  • Unplug notification with battery status
  • Sound effects for plug/unplug events

Lock Screen Integration

  • Lock indicator when screen is locked
  • Unlock animation with haptic feedback
  • Works on the lock screen using SkyLight framework

Calendar Widget

Expanded view shows:

  • Current date with calendar icon
  • Day of week
  • Week progress indicator
  • Current time

Installation

  1. Clone the repository
  2. Open MyDynamicIsland.xcodeproj in Xcode
  3. Build and run (⌘R)
  4. Grant Accessibility permissions when prompted

Requirements

  • macOS 14.0 or later
  • MacBook with notch display (M1 Pro/Max/Ultra, M2, M3 series)
  • Accessibility permissions for media key interception

Settings

Right-click on the notch to access Settings.

General

  • Launch at Login
  • Hide from Dock
  • Expand on Hover
  • Haptic Feedback
  • Auto Collapse Delay
  • Lock/Unlock Indicators

Appearance

  • HUD Display Mode (Minimal / Progress Bar / Notched)

Volume & Brightness

  • Enable/Disable HUD replacement
  • Show/Hide percentage

Battery

  • Charging indicator toggle
  • Sound effects toggle

Music

  • Now Playing indicator
  • Audio visualizer animation

Architecture

MyDynamicIsland/
├── MyDynamicIslandApp.swift    # App entry point
├── DynamicIsland.swift         # Core controller
│   ├── LockScreenWindowManager # SkyLight integration
│   ├── NotchPanel              # Custom NSPanel
│   ├── NotchState              # Observable state
│   └── DynamicIsland           # Main controller
├── MediaKeyManager.swift       # Volume/brightness keys
│   └── BrightnessHelper        # DisplayServices integration
└── IslandView.swift            # SwiftUI views
    ├── NotchView               # Main notch view
    ├── HUD Views               # Volume/Brightness HUDs
    ├── Indicator Views         # Lock, Battery, Music
    └── Settings Views          # Settings panel

Frameworks Used

  • SwiftUI — User interface
  • AppKit — Window management
  • Combine — Reactive updates
  • IOKit — Battery monitoring
  • CoreAudio — Volume control
  • SkyLight (Private) — Lock screen visibility
  • MediaRemote (Private) — Now Playing detection
  • DisplayServices (Private) — Brightness control

Privacy

NotchMac requires the following permissions:

  • Accessibility — To intercept media keys (volume/brightness)

The app does not collect any data and works entirely offline.

Author

Mark Kozhydlo


NotchMac is not affiliated with Apple Inc. Dynamic Island is a trademark of Apple Inc.

About

A Dynamic Island-style notch replacement for MacBooks with notch displays. Transforms the black notch area into an interactive, functional space with beautiful animations and useful indicators.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages