6.4 KiB
DynamicIsland
DynamicIsland enhances the notch on your MacBook M3 Pro with interactive, customizable widgets, transforming it into a dynamic control center for multitasking, notifications, and more.
Demonstration
📑 Table of Contents
🌟 Features
- Music Controls: Play, pause, and skip tracks from the notch area.
- Battery Status: Real-time battery percentage and low-battery alerts.
- Calendar Reminders: Displays upcoming events directly in the notch.
- Weather Updates: Get current weather conditions at a glance.
- Multitasking Tools: Quickly switch between open applications.
- Customizable Themes: Light, dark, and custom color themes.
- Gesture Support: Use gestures for quick actions.
🎥 Demo
Check out a quick demo of DynamicIsland in action:
🚀 Getting Started
These instructions will get you a copy of DynamicIsland up and running on your local machine.
Prerequisites
- macOS Ventura 14.2 or later.
- Xcode 15.0 or later.
- SwiftUI and Objective-C frameworks installed.
- Make installed for build automation.
Installation
-
Clone the Repository
git clone https://github.com/Ebullioscopic/DynamicIsland.git cd DynamicIsland -
Install Dependencies Make sure you have all required libraries and frameworks installed. Use Homebrew for some dependencies if needed:
brew install make -
Build and Run the Project Open the project in Xcode, select your target device, and run:
open DynamicIsland.xcodeproj -
Run the App in Xcode Build and run the app from Xcode by pressing
Cmd + R:- If prompted by macOS, allow permissions for Privacy & Security.
📖 Usage
Once DynamicIsland is installed and running, it will display widgets and controls in the MacBook's notch area. Here are some usage tips and customization options.
Basic Controls
- Music Controls: Hover over the notch and use on-screen buttons to control playback.
- Battery Status: A battery indicator will be displayed in the notch. Low battery alerts will appear automatically.
- Weather Widget: Displays current weather for your location (requires location access).
- App Switcher: Swipe gestures allow you to quickly switch between open applications.
Customization Options
To personalize your DynamicIsland experience:
- Open Preferences: Access the Preferences pane by long-pressing on the notch area.
- Themes: Choose between light, dark, or system adaptive themes.
- Widget Settings: Enable/disable specific widgets, adjust sizes, and set display preferences.
- Gestures: Customize swipe, tap, and long-press actions for app switching and widget controls.
⚙️ Configuration
Configuration settings can be found in the config.json file located in the root directory.
config.json Example
{
"theme": "dark",
"batteryWidget": true,
"musicWidget": true,
"weatherWidget": true,
"gestureSettings": {
"tap": "toggleMusic",
"swipeLeft": "previousApp",
"swipeRight": "nextApp",
"longPress": "openSettings"
}
}
theme: Options are"light","dark", or"auto".batteryWidget,musicWidget,weatherWidget: Toggle visibility for each widget.gestureSettings: Assign actions to tap, swipe, and long-press gestures.
🚧 Roadmap
Planned updates for future releases:
- Advanced Calendar Integration: Add support for weekly and monthly views.
- Customizable Shortcuts: Create custom app shortcuts.
- Additional Widget Support: Add widgets for finance, fitness, and more.
- Voice Commands: Enable Siri shortcuts for quick commands.
- Animation Improvements: Smooth animations for a more polished UI.
🔧 Troubleshooting
Common Issues
- Permissions: Go to System Preferences > Security & Privacy to manually enable permissions if the app fails to start.
- Widgets Not Displaying: Ensure your
config.jsonfile has valid settings, then restart the app. - Build Errors in Xcode: Run
make cleanto reset the project, then re-build.
Useful Commands
- Clean Build Files:
make clean - Reset Configurations:
rm config.json && cp config.default.json config.json
🤝 Contributing
We welcome contributions from the community! Follow the steps below to contribute:
- Fork the repository.
- Clone Your Fork:
git clone https://github.com/yourusername/DynamicIsland.git cd DynamicIsland - Create a New Branch:
git checkout -b feature/YourFeatureName - Make Your Changes and Commit:
git commit -m "Added new feature" - Push to Your Fork:
git push origin feature/YourFeatureName - Create a Pull Request: Head to the original repository and open a pull request.
For major changes, please open an issue first to discuss what you’d like to change.
📜 License
This project is licensed under the MIT License. See the LICENSE file for details.
🏆 Acknowledgments
Special thanks to:
- Apple Design Principles for inspiration.
- Boring Notch project for initial ideas.
👥 Contributors
![]() Ebullioscopic Creator |


