A smart Dynamic Island for macOS that brings context-aware information and quick actions to your Mac's notch (or floating window on non-notched Macs). Built with SwiftUI and DynamicNotchKit.
π Transform your Mac's notch into a smart, context-aware hub that adapts to what you're doing!
- Large, elegant clock with real-time updates
- Current date and day display
- Interactive week view with today highlighted
- Beautiful time-based themes that smoothly change throughout the day:
- Early Morning (5-8am): Warm orange gradient
- Morning (8am-12pm): Bright yellow theme
- Afternoon (12-5pm): Cool blue atmosphere
- Evening (5-8pm): Soft purple ambiance
- Night (8-11pm): Deep indigo theme
- Late Night (11pm-5am): Midnight purple
- Automatic detection when AirPods connect/disconnect
- Battery monitoring for left/right AirPods and charging case
- Instant notifications for connection/disconnection events
- Universal support for all AirPod models (AirPods, Pro, Max, and newer generations)
When using coding tools like VS Code, Xcode, JetBrains, Sublime Text, or Terminal:
- Run npm start - Quickly start your development server
- Open Terminal - Launch terminal with one click
- Stop Servers - Instantly stop all running Node.js/npm/yarn processes
- Clear Terminal - Clean up your terminal view
- Copy Path - Copy current directory to clipboard
- CPU usage tracking in the background
- High CPU alerts when usage exceeds threshold (80% by default)
- Quick access to Activity Monitor from alerts
- Visual indicators with smooth flame animations
Notchy intelligently recognizes your active app and adapts:
- Development environments: Shows coding tools and actions
- Terminal applications: Terminal-specific quick actions
- Web browsers: Context-aware for web browsing (coming soon)
- Default mode: Beautiful clock and calendar display
- Smooth animations with native-like Dynamic Island physics
- Auto-expand on hover with 500ms auto-compact delay
- Material backgrounds using macOS blur effects
- Universal compatibility - works on all Macs with or without notch
- Non-intrusive design that perfectly blends with macOS aesthetics
- Personalized greetings on app launch or system wake
- Priority-based event display that temporarily replaces regular content
- Important alerts (CPU, AirPods) appear instantly
- Manual dismiss option for ongoing notifications
- macOS 14.0 (Sequoia) or later
- Xcode 15.0 or later
- Clone this repository:
git clone https://github.com/yourusername/notchy.git
cd notchy- Open the project in Xcode:
open Package.swift- Build and run the project:
swift runOr open in Xcode and press Cmd+R.
Notchy runs in your Mac's Dynamic Island (or as a floating window on non-notched Macs) and intelligently adapts its content based on what you're doing:
When no specific context is detected, Notchy shows:
- Time & Date: Large, elegant clock with current date
- Week View: Interactive calendar showing the current week
- Dynamic Theme: Colors and gradients that change throughout the day
When using IDEs like VS Code, Xcode, JetBrains, or Sublime Text:
- Run npm start - Execute npm start in current directory
- Open Terminal - Launch Terminal application
- Stop Servers - Kill all Node.js/npm/yarn processes
When using Terminal, iTerm2, or Hyper:
- New Tab - Create new terminal tab
- Clear - Clear terminal screen
- Copy Path - Copy current directory path
Notchy monitors your system and shows:
- AirPods Status - Connection status and battery levels
- CPU Warnings - Alerts when CPU usage is too high
- Welcome Messages - Personalized greetings on startup
- System Notifications - Important system events
All features work automatically in the background - No configuration needed!
Notchy/
βββ NotchyApp.swift # Main app entry point
βββ Models/
β βββ ForegroundAppMonitor.swift # Monitors active applications
βββ Views/
β βββ NotchRootView.swift # Main notch view coordinator
β βββ DevToolsContextView.swift # Development environment UI
β βββ BookmarksContextView.swift # Browser bookmark UI
β βββ GenericContextView.swift # Fallback UI for other apps
βββ Services/
β βββ ScriptRunner.swift # Shell script and AppleScript execution
βββ Resources/
βββ bookmarks.json # Default bookmark configuration
Edit Resources/bookmarks.json to add your favorite bookmarks:
{
"name": "Your Site",
"url": "https://yoursite.com",
"category": "development"
}- Add bundle identifiers to
ForegroundAppMonitor.swift - Create new view files in
Views/ - Update
ExpandedContextView.swiftto handle new app types
Add custom shell commands in the development context buttons:
ToolButton(
title: "Custom Action",
icon: "star.fill",
color: .purple,
script: "your-shell-command"
)The app automatically detects these applications:
- Visual Studio Code (
com.microsoft.VSCode) - Xcode (
com.apple.dt.Xcode) - JetBrains IDEs (
com.jetbrains.*) - Sublime Text (
com.sublimetext.*)
- Chrome (
com.google.Chrome) - Safari (
com.apple.Safari) - Firefox (
org.mozilla.firefox) - Arc (
company.thebrowser.Browser) - Brave (
com.brave.Browser) - Vivaldi (
com.vivaldi.Vivaldi)
- Terminal (
com.apple.Terminal) - Hyper (
co.zeit.hyper) - iTerm2 (
com.googlecode.iterm2)
- macOS: 14.0 (Sequoia) or later
- Mac Types: Both notched and non-notched Macs (MacBook Pro, MacBook Air, iMac, Mac mini, Mac Studio)
- Architecture: Native support for both Intel and Apple Silicon Macs
- Swift Version: 5.9+
- No external dependencies required - Everything is built-in!
- Fork this repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- DynamicNotchKit - The amazing library that makes this possible
- Apple for Dynamic Island inspiration
- The SwiftUI community for animation techniques
If you encounter any issues or have feature requests, please open an issue.
Made with β€οΈ for Mac users who love efficient workflows