diff --git a/DynamicIsland.xcodeproj/project.pbxproj b/DynamicIsland.xcodeproj/project.pbxproj index f7642e7..ee7f69e 100644 --- a/DynamicIsland.xcodeproj/project.pbxproj +++ b/DynamicIsland.xcodeproj/project.pbxproj @@ -94,6 +94,9 @@ ); mainGroup = F54406DE2CD4987A00C7AFD9; minimizedProjectReferenceProxies = 1; + packageReferences = ( + F54407082CD4A23F00C7AFD9 /* XCRemoteSwiftPackageReference "swift-collections" */, + ); preferredProjectObjectVersion = 77; productRefGroup = F54406E82CD4987A00C7AFD9 /* Products */; projectDirPath = ""; @@ -315,6 +318,17 @@ defaultConfigurationName = Release; }; /* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + F54407082CD4A23F00C7AFD9 /* XCRemoteSwiftPackageReference "swift-collections" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/apple/swift-collections.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 1.1.4; + }; + }; +/* End XCRemoteSwiftPackageReference section */ }; rootObject = F54406DF2CD4987A00C7AFD9 /* Project object */; } diff --git a/DynamicIsland.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved b/DynamicIsland.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved new file mode 100644 index 0000000..cdd6991 --- /dev/null +++ b/DynamicIsland.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved @@ -0,0 +1,15 @@ +{ + "originHash" : "51f90653b2c9f9f7064c0d52159b40bf7d222e5f314be23e62fe28520fec03db", + "pins" : [ + { + "identity" : "swift-collections", + "kind" : "remoteSourceControl", + "location" : "https://github.com/apple/swift-collections.git", + "state" : { + "revision" : "671108c96644956dddcd89dd59c203dcdb36cec7", + "version" : "1.1.4" + } + } + ], + "version" : 3 +} diff --git a/DynamicIsland/Defaults b/DynamicIsland/Defaults deleted file mode 160000 index a89f799..0000000 --- a/DynamicIsland/Defaults +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a89f799930c92a85aa04b72131849d46c0833ab3 diff --git a/DynamicIsland/Defaults 2 b/DynamicIsland/Defaults 2 deleted file mode 160000 index a89f799..0000000 --- a/DynamicIsland/Defaults 2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a89f799930c92a85aa04b72131849d46c0833ab3 diff --git a/DynamicIsland/DynamicIsland.entitlements b/DynamicIsland/DynamicIsland.entitlements index 4369db0..8d636b5 100644 --- a/DynamicIsland/DynamicIsland.entitlements +++ b/DynamicIsland/DynamicIsland.entitlements @@ -1,13 +1,3 @@ - - - - - - - - - - diff --git a/DynamicIsland/Info.plist b/DynamicIsland/Info.plist new file mode 100644 index 0000000..d1565e5 --- /dev/null +++ b/DynamicIsland/Info.plist @@ -0,0 +1,25 @@ + + + + + NSAppTransportSecurity + + NSAllowsArbitraryLoads + + + NSCalendarsFullAccessUsageDescription + Show calender events inside the notch + SUEnableDownloaderService + + SUEnableInstallerLauncherService + + SUFeedURL + https://TheBoredTeam.github.io/boring.notch/appcast.xml + SUPublicEDKey + LlPWpDWaN5DLDCuB45z9xwxVXkdIqJhOT0eP5CiMsto= + UTImportedTypeDeclarations + + + + + diff --git a/DynamicIsland/KeyboardShortcuts b/DynamicIsland/KeyboardShortcuts deleted file mode 160000 index e6b6011..0000000 --- a/DynamicIsland/KeyboardShortcuts +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e6b60117ec266e1e5d059f7f34815144f9762b36 diff --git a/DynamicIsland/KeyboardShortcuts 2 b/DynamicIsland/KeyboardShortcuts 2 deleted file mode 160000 index e6b6011..0000000 --- a/DynamicIsland/KeyboardShortcuts 2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit e6b60117ec266e1e5d059f7f34815144f9762b36 diff --git a/DynamicIsland/LaunchAtLogin-Modern b/DynamicIsland/LaunchAtLogin-Modern deleted file mode 160000 index a04ec1c..0000000 --- a/DynamicIsland/LaunchAtLogin-Modern +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a04ec1c363be3627734f6dad757d82f5d4fa8fcc diff --git a/DynamicIsland/LaunchAtLogin-Modern 2 b/DynamicIsland/LaunchAtLogin-Modern 2 deleted file mode 160000 index a04ec1c..0000000 --- a/DynamicIsland/LaunchAtLogin-Modern 2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit a04ec1c363be3627734f6dad757d82f5d4fa8fcc diff --git a/DynamicIsland/Pow b/DynamicIsland/Pow deleted file mode 160000 index f0d0f3e..0000000 --- a/DynamicIsland/Pow +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f0d0f3e72d42beaf2b01f1cb798e1b55902814eb diff --git a/DynamicIsland/Pow 2 b/DynamicIsland/Pow 2 deleted file mode 160000 index f0d0f3e..0000000 --- a/DynamicIsland/Pow 2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f0d0f3e72d42beaf2b01f1cb798e1b55902814eb diff --git a/DynamicIsland/Sparkle b/DynamicIsland/Sparkle deleted file mode 160000 index 0ef1ee0..0000000 --- a/DynamicIsland/Sparkle +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0ef1ee0220239b3776f433314515fd849025673f diff --git a/DynamicIsland/Sparkle 2 b/DynamicIsland/Sparkle 2 deleted file mode 160000 index 0ef1ee0..0000000 --- a/DynamicIsland/Sparkle 2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 0ef1ee0220239b3776f433314515fd849025673f diff --git a/DynamicIsland/swift-collections b/DynamicIsland/swift-collections deleted file mode 160000 index 9bf03ff..0000000 --- a/DynamicIsland/swift-collections +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9bf03ff58ce34478e66aaee630e491823326fd06 diff --git a/DynamicIsland/swift-collections 2 b/DynamicIsland/swift-collections 2 deleted file mode 160000 index 9bf03ff..0000000 --- a/DynamicIsland/swift-collections 2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9bf03ff58ce34478e66aaee630e491823326fd06 diff --git a/DynamicIsland/swiftui-introspect b/DynamicIsland/swiftui-introspect deleted file mode 160000 index 807f73c..0000000 --- a/DynamicIsland/swiftui-introspect +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 807f73ce09a9b9723f12385e592b4e0aaebd3336 diff --git a/DynamicIsland/swiftui-introspect 2 b/DynamicIsland/swiftui-introspect 2 deleted file mode 160000 index 807f73c..0000000 --- a/DynamicIsland/swiftui-introspect 2 +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 807f73ce09a9b9723f12385e592b4e0aaebd3336 diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..e69de29 diff --git a/ReadMe.md b/ReadMe.md new file mode 100644 index 0000000..30ca985 --- /dev/null +++ b/ReadMe.md @@ -0,0 +1,193 @@ +Here’s a sample README template for your **Dynamic Island** app project on GitHub. It is organized with detailed sections, a collapsible Table of Contents, and instructions to help users and contributors understand and navigate the project. + +--- + +# DynamicIsland + +

+ DynamicIsland Logo +

+ +> **DynamicIsland** is a macOS app designed for MacBook M3 Pro, crafted to enhance your notch's usability with a dynamic, interactive control center similar to iOS’s Dynamic Island. Built with SwiftUI, Objective-C, and Makefile, this app transforms the notch into a vibrant information hub. + +## 🚀 Features + +- **Music Controls**: Easily manage playback, view album art, and enjoy a music visualizer. +- **Battery Indicator**: Track battery status with customizable visuals. +- **Calendar Notifications**: Integrate calendar reminders and display event updates. +- **Weather Widget**: Get real-time weather updates directly in the notch. +- **Multitasking Tools**: Switch between apps, control brightness, and more. +- **Highly Customizable**: Tailor the display, gestures, and animations to your preferences. + +--- + +
+📑 Table of Contents + +- [Getting Started](#getting-started) +- [Installation](#installation) +- [Usage](#usage) + - [Basic Controls](#basic-controls) + - [Customization Options](#customization-options) +- [Configuration](#configuration) + - [Theme Settings](#theme-settings) + - [Gesture Controls](#gesture-controls) +- [Roadmap](#roadmap) +- [Troubleshooting](#troubleshooting) +- [Contributing](#contributing) +- [License](#license) +- [Acknowledgments](#acknowledgments) +- [Contributors](#contributors) + +
+ +--- + +## Getting Started + +To get started with **DynamicIsland**, ensure you meet the following prerequisites and have the required dependencies installed. + +### Prerequisites + +- macOS Ventura 14.2 or later +- Xcode 15.0 or later +- A MacBook M3 Pro (or later models with a notch display) + +### Dependencies + +- **SwiftUI**: For building the UI components +- **Objective-C**: Used for interoperability with legacy macOS APIs +- **Makefile**: For build automation + +--- + +## Installation + +1. **Clone the repository**: + ```bash + git clone https://github.com/Ebullioscopic/DynamicIsland.git + cd DynamicIsland + ``` + +2. **Open the Project in Xcode**: + ```bash + open DynamicIsland.xcodeproj + ``` + +3. **Build and Run**: + - Select your target device (MacBook). + - Press `Cmd + R` to run the app and see the magic in action. + +4. **Privacy & Security Settings**: + - If prompted, go to **Settings > Privacy & Security** and allow the app. + +--- + +## Usage + +After launching, **DynamicIsland** will integrate with your MacBook’s notch. The following subsections cover basic controls, customization, and gesture options. + +### Basic Controls + +- **Music Player**: Hover over the notch to access music controls (play, pause, skip). +- **Battery Status**: Displays current battery percentage, with low-battery alerts. +- **Weather Widget**: Shows real-time weather for your location. +- **Multitasking**: Quickly switch between open applications. + +### Customization Options + +1. **Theme**: Choose between **light**, **dark**, and **system** modes. +2. **Widget Settings**: Enable/disable widgets based on your preferences. +3. **Animations**: Adjust animation speed, delay, and notch expansion effects. +4. **Gesture Controls**: See the [Gesture Controls](#gesture-controls) section for details. + +--- + +## Configuration + +The `config.json` file in the main directory allows you to personalize your experience further. + +### Theme Settings + +- **`theme`:** Set to `light`, `dark`, or `auto` to match system preferences. +- **`accentColor`:** Customize the accent color for UI elements. + +### Gesture Controls + +Define gestures to control various app functions. + +- **Tap Gesture**: Toggles music controls. +- **Swipe Left/Right**: Switches between widgets (music, battery, calendar, etc.). +- **Long Press**: Opens settings. + +--- + +## Roadmap + +This project is continually evolving. Here are some planned features and improvements: + +- [ ] **Expanded App Integration**: Support for third-party app notifications. +- [ ] **Customizable App Shortcuts**: Add quick app launchers. +- [ ] **Enhanced Calendar Integration**: View entire week schedules. +- [ ] **Improved Battery Notifications**: Custom low-battery alerts and battery health info. + +--- + +## Troubleshooting + +Here are some common issues and solutions: + +- **App fails to start**: Ensure you’re running macOS 14.2 or later. +- **No permissions prompt**: Go to **System Preferences > Security & Privacy** and manually enable **DynamicIsland**. +- **Widgets don’t display correctly**: Restart the app and verify your macOS display settings. + +--- + +## Contributing + +We welcome contributions from the community! Please follow the steps below: + +1. **Fork the Repository**: Click the "Fork" button at the top of the GitHub page. +2. **Clone Your Fork**: + ```bash + git clone https://github.com/yourusername/DynamicIsland.git + cd DynamicIsland + ``` +3. **Create a New Branch**: + ```bash + git checkout -b feature/YourFeatureName + ``` +4. **Make Your Changes** and commit them: + ```bash + git commit -m "Add your message here" + ``` +5. **Push to Your Fork**: + ```bash + git push origin feature/YourFeatureName + ``` +6. **Submit a Pull Request**: Go to the original repository and click "New Pull Request". + +For major changes, please open an issue first to discuss what you would like to change. + +--- + +## License + +This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for details. + +--- + +## Acknowledgments + +Special thanks to the **Boring Notch** project for inspiration and the broader open-source community for continuous support. + +--- + +## Contributors + + + + + +

Ebullioscopic

Creator
+ diff --git a/dynamic-island.jpeg b/dynamic-island.jpeg new file mode 100644 index 0000000..c7940e7 Binary files /dev/null and b/dynamic-island.jpeg differ