diff --git a/DynamicIsland/Assets.xcassets/LinkedIn.imageset/Contents.json b/DynamicIsland/Assets.xcassets/LinkedIn.imageset/Contents.json new file mode 100644 index 0000000..4b54c4b --- /dev/null +++ b/DynamicIsland/Assets.xcassets/LinkedIn.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "LinkedIn_logo_initials.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/DynamicIsland/Assets.xcassets/LinkedIn.imageset/LinkedIn_logo_initials.png b/DynamicIsland/Assets.xcassets/LinkedIn.imageset/LinkedIn_logo_initials.png new file mode 100644 index 0000000..1d878e6 Binary files /dev/null and b/DynamicIsland/Assets.xcassets/LinkedIn.imageset/LinkedIn_logo_initials.png differ diff --git a/DynamicIsland/DynamicIslandApp.swift b/DynamicIsland/DynamicIslandApp.swift index 03339da..5c14556 100644 --- a/DynamicIsland/DynamicIslandApp.swift +++ b/DynamicIsland/DynamicIslandApp.swift @@ -29,7 +29,7 @@ struct DynamicNotchApp: App { } var body: some Scene { - MenuBarExtra("dynamic.island", systemImage: "sparkle", isInserted: $showMenuBarIcon) { + MenuBarExtra("dynamic.island", systemImage: "mountain.2.fill", isInserted: $showMenuBarIcon) { Button("Settings") { SettingsWindowController.shared.showWindow() } diff --git a/DynamicIsland/Info.plist b/DynamicIsland/Info.plist index d07ae61..c7a13de 100644 --- a/DynamicIsland/Info.plist +++ b/DynamicIsland/Info.plist @@ -16,9 +16,9 @@ SUEnableInstallerLauncherService SUFeedURL - https://TheBoredTeam.github.io/boring.notch/appcast.xml + appcast.xml SUPublicEDKey - B1Y47t8C/v8ImurYA+9arEsuCrpxwJSviekiflMElbI= + abcd UTImportedTypeDeclarations diff --git a/DynamicIsland/Localizable.xcstrings b/DynamicIsland/Localizable.xcstrings index 3869f54..b58aaa9 100644 --- a/DynamicIsland/Localizable.xcstrings +++ b/DynamicIsland/Localizable.xcstrings @@ -192,28 +192,6 @@ }, "Boost your productivity with Clipboard Manager" : { - }, - "Boring Controls" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Boring Controls" - } - } - } - }, - "boring.notch" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "boring.notch" - } - } - } }, "Both" : { "localizations" : { @@ -225,17 +203,6 @@ } } }, - "Buy Me a Coffee" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Buy Me a Coffee" - } - } - } - }, "Buy us a coffee" : { }, @@ -260,17 +227,6 @@ }, "Charging on Hold: Desktop Mode" : { - }, - "Check for updates" : { - "extractionState" : "stale", - "localizations" : { - "en" : { - "stringUnit" : { - "state" : "translated", - "value" : "Check for updates" - } - } - } }, "Check for Updates…" : { @@ -639,7 +595,7 @@ "Graph Visibility" : { }, - "Hide BoringNotch Options" : { + "Hide DynamicIsland Options" : { }, "Hide only when NowPlaying app is in fullscreen" : { @@ -694,6 +650,9 @@ }, "License key" : { + }, + "LinkedIn" : { + }, "Live" : { @@ -712,8 +671,12 @@ }, "Low Power Mode" : { + }, + "Made ❀️ by Ebullioscopic" : { + }, "Made with 🫢🏻 by not so boring not.people" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { @@ -1273,6 +1236,7 @@ }, "Support Us" : { + "extractionState" : "stale", "localizations" : { "en" : { "stringUnit" : { diff --git a/DynamicIsland/components/Clipboard/ClipboardPanel.swift b/DynamicIsland/components/Clipboard/ClipboardPanel.swift index f7c0bbc..2c66817 100644 --- a/DynamicIsland/components/Clipboard/ClipboardPanel.swift +++ b/DynamicIsland/components/Clipboard/ClipboardPanel.swift @@ -2,7 +2,7 @@ // ClipboardPanel.swift // DynamicIsland // -// Created by GitHub Copilot on 12/08/25. +// Created by Ebullioscopic on 12/08/25. // import AppKit diff --git a/DynamicIsland/components/Clipboard/ClipboardPopover.swift b/DynamicIsland/components/Clipboard/ClipboardPopover.swift index 6c60ae0..4a8acc1 100644 --- a/DynamicIsland/components/Clipboard/ClipboardPopover.swift +++ b/DynamicIsland/components/Clipboard/ClipboardPopover.swift @@ -2,7 +2,7 @@ // ClipboardPopover.swift // DynamicIsland // -// Created by GitHub Copilot on 13/08/25. +// Created by Ebullioscopic on 13/08/25. // import SwiftUI diff --git a/DynamicIsland/components/Clipboard/ClipboardShared.swift b/DynamicIsland/components/Clipboard/ClipboardShared.swift index 33af1b6..dce1171 100644 --- a/DynamicIsland/components/Clipboard/ClipboardShared.swift +++ b/DynamicIsland/components/Clipboard/ClipboardShared.swift @@ -2,7 +2,7 @@ // ClipboardShared.swift // DynamicIsland // -// Created by GitHub Copilot on 12/08/25. +// Created by Ebullioscopic on 12/08/25. // import SwiftUI diff --git a/DynamicIsland/components/Clipboard/ClipboardWindow.swift b/DynamicIsland/components/Clipboard/ClipboardWindow.swift index bb8ac72..0f76920 100644 --- a/DynamicIsland/components/Clipboard/ClipboardWindow.swift +++ b/DynamicIsland/components/Clipboard/ClipboardWindow.swift @@ -2,7 +2,7 @@ // ClipboardWindow.swift // DynamicIsland // -// Created by GitHub Copilot on 12/08/25. +// Created by Ebullioscopic on 12/08/25. // import SwiftUI diff --git a/DynamicIsland/components/ColorPicker/ColorPickedFeedbackView.swift b/DynamicIsland/components/ColorPicker/ColorPickedFeedbackView.swift index 543c9da..290fdee 100644 --- a/DynamicIsland/components/ColorPicker/ColorPickedFeedbackView.swift +++ b/DynamicIsland/components/ColorPicker/ColorPickedFeedbackView.swift @@ -2,7 +2,7 @@ // ColorPickedFeedbackView.swift // DynamicIsland // -// Created by GitHub Copilot on 14/08/25. +// Created by Ebullioscopic on 14/08/25. // import SwiftUI diff --git a/DynamicIsland/components/ColorPicker/ColorPickerPanel.swift b/DynamicIsland/components/ColorPicker/ColorPickerPanel.swift index c00b1a2..0798746 100644 --- a/DynamicIsland/components/ColorPicker/ColorPickerPanel.swift +++ b/DynamicIsland/components/ColorPicker/ColorPickerPanel.swift @@ -2,7 +2,7 @@ // ColorPickerPanel.swift // DynamicIsland // -// Created by GitHub Copilot on 14/08/25. +// Created by Ebullioscopic on 14/08/25. // import SwiftUI diff --git a/DynamicIsland/components/ColorPicker/ColorPickerPopover.swift b/DynamicIsland/components/ColorPicker/ColorPickerPopover.swift index bef2944..aa28a6f 100644 --- a/DynamicIsland/components/ColorPicker/ColorPickerPopover.swift +++ b/DynamicIsland/components/ColorPicker/ColorPickerPopover.swift @@ -2,7 +2,7 @@ // ColorPickerPopover.swift // DynamicIsland // -// Created by GitHub Copilot on 14/08/25. +// Created by Ebullioscopic on 14/08/25. // import SwiftUI diff --git a/DynamicIsland/components/Notch/ClipboardHistoryPopover.swift b/DynamicIsland/components/Notch/ClipboardHistoryPopover.swift index 03f65b5..893ffaa 100644 --- a/DynamicIsland/components/Notch/ClipboardHistoryPopover.swift +++ b/DynamicIsland/components/Notch/ClipboardHistoryPopover.swift @@ -2,7 +2,7 @@ // ClipboardHistoryPopover.swift // DynamicIsland // -// Created by GitHub Copilot on 17/07/25. +// Created by Ebullioscopic on 17/07/25. // import SwiftUI diff --git a/DynamicIsland/components/Notch/NotchColorPickerView.swift b/DynamicIsland/components/Notch/NotchColorPickerView.swift index a76e1d0..095f7c4 100644 --- a/DynamicIsland/components/Notch/NotchColorPickerView.swift +++ b/DynamicIsland/components/Notch/NotchColorPickerView.swift @@ -2,7 +2,7 @@ // NotchColorPickerView.swift // DynamicIsland // -// Created by GitHub Copilot on 14/08/25. +// Created by Ebullioscopic on 14/08/25. // import SwiftUI diff --git a/DynamicIsland/components/Settings/SettingsView.swift b/DynamicIsland/components/Settings/SettingsView.swift index 2ae087a..e2dee3e 100644 --- a/DynamicIsland/components/Settings/SettingsView.swift +++ b/DynamicIsland/components/Settings/SettingsView.swift @@ -541,7 +541,7 @@ struct Media: View { Picker(selection: $hideNotchOption, label: HStack { - Text("Hide BoringNotch Options") + Text("Hide DynamicIsland Options") customBadge(text: "Beta") }) { Text("Always hide in fullscreen").tag(HideNotchOption.always) @@ -653,9 +653,11 @@ struct About: View { NSWorkspace.shared.open(sponsorPage) } label: { VStack(spacing: 5) { - Image(systemName: "cup.and.saucer.fill") - .imageScale(.large) - Text("Support Us") + Image("LinkedIn") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(width: 18) + Text("LinkedIn") .foregroundStyle(.white) } .contentShape(Rectangle()) @@ -680,7 +682,7 @@ struct About: View { } VStack(spacing: 0) { Divider() - Text("Made with 🫢🏻 by not so boring not.people") + Text("Made ❀️ by Ebullioscopic") .foregroundStyle(.secondary) .padding(.top, 5) .padding(.bottom, 7) @@ -1045,7 +1047,7 @@ struct Appearance: View { } Section { - Defaults.Toggle("Enable boring mirror", key: .showMirror) + Defaults.Toggle("Enable Dynamic mirror", key: .showMirror) .disabled(!checkVideoInput()) Picker("Mirror shape", selection: $mirrorShape) { Text("Circle") diff --git a/DynamicIsland/components/Stats/StatsPanel.swift b/DynamicIsland/components/Stats/StatsPanel.swift index b6b8f0e..d1335b0 100644 --- a/DynamicIsland/components/Stats/StatsPanel.swift +++ b/DynamicIsland/components/Stats/StatsPanel.swift @@ -2,7 +2,7 @@ // StatsPanel.swift // DynamicIsland // -// Created by GitHub Copilot on 13/08/25. +// Created by Ebullioscopic on 13/08/25. // import AppKit diff --git a/DynamicIsland/components/Stats/StatsPanelView.swift b/DynamicIsland/components/Stats/StatsPanelView.swift index 149eae3..2bcd4f2 100644 --- a/DynamicIsland/components/Stats/StatsPanelView.swift +++ b/DynamicIsland/components/Stats/StatsPanelView.swift @@ -2,7 +2,7 @@ // StatsPanelView.swift // DynamicIsland // -// Created by GitHub Copilot on 13/08/25. +// Created by Ebullioscopic on 13/08/25. // import SwiftUI diff --git a/DynamicIsland/components/Timer/TimerIconAnimation.swift b/DynamicIsland/components/Timer/TimerIconAnimation.swift index 7f83cb7..cd32767 100644 --- a/DynamicIsland/components/Timer/TimerIconAnimation.swift +++ b/DynamicIsland/components/Timer/TimerIconAnimation.swift @@ -2,7 +2,7 @@ // TimerIconAnimation.swift // DynamicIsland // -// Created by GitHub Copilot on 2025-01-13. +// Created by Ebullioscopic on 2025-01-13. // import SwiftUI diff --git a/DynamicIsland/components/Timer/TimerLiveActivity.swift b/DynamicIsland/components/Timer/TimerLiveActivity.swift index 6595402..3f7a559 100644 --- a/DynamicIsland/components/Timer/TimerLiveActivity.swift +++ b/DynamicIsland/components/Timer/TimerLiveActivity.swift @@ -2,7 +2,7 @@ // TimerLiveActivity.swift // DynamicIsland // -// Created by GitHub Copilot on 2025-01-13. +// Created by Ebullioscopic on 2025-01-13. // import SwiftUI diff --git a/DynamicIsland/managers/ClipboardManager.swift b/DynamicIsland/managers/ClipboardManager.swift index 43269c4..9f3b640 100644 --- a/DynamicIsland/managers/ClipboardManager.swift +++ b/DynamicIsland/managers/ClipboardManager.swift @@ -2,7 +2,7 @@ // ClipboardManager.swift // DynamicIsland // -// Created by GitHub Copilot on 17/07/25. +// Created by Ebullioscopic on 17/07/25. // import AppKit diff --git a/DynamicIsland/managers/ClipboardPanelManager.swift b/DynamicIsland/managers/ClipboardPanelManager.swift index ec21c5c..be2a445 100644 --- a/DynamicIsland/managers/ClipboardPanelManager.swift +++ b/DynamicIsland/managers/ClipboardPanelManager.swift @@ -2,7 +2,7 @@ // ClipboardPanelManager.swift // DynamicIsland // -// Created by GitHub Copilot on 12/08/25. +// Created by Ebullioscopic on 12/08/25. // import AppKit diff --git a/DynamicIsland/managers/ClipboardWindowManager.swift b/DynamicIsland/managers/ClipboardWindowManager.swift index a2a0c5c..b76941e 100644 --- a/DynamicIsland/managers/ClipboardWindowManager.swift +++ b/DynamicIsland/managers/ClipboardWindowManager.swift @@ -2,7 +2,7 @@ // ClipboardWindowManager.swift // DynamicIsland // -// Created by GitHub Copilot on 12/08/25. +// Created by Ebullioscopic on 12/08/25. // import SwiftUI diff --git a/DynamicIsland/managers/ColorPickerManager.swift b/DynamicIsland/managers/ColorPickerManager.swift index 05262c6..4157927 100644 --- a/DynamicIsland/managers/ColorPickerManager.swift +++ b/DynamicIsland/managers/ColorPickerManager.swift @@ -2,7 +2,7 @@ // ColorPickerManager.swift // DynamicIsland // -// Created by GitHub Copilot on 14/08/25. +// Created by Ebullioscopic on 14/08/25. // import SwiftUI diff --git a/DynamicIsland/metal/visualizer.metal b/DynamicIsland/metal/visualizer.metal index 9bd88b0..459682f 100644 --- a/DynamicIsland/metal/visualizer.metal +++ b/DynamicIsland/metal/visualizer.metal @@ -1,6 +1,6 @@ // // visualizer.metal -// boringNotch +// DynamicIsland // // Created by Harsh Vardhan Goswami on 28/08/24. // diff --git a/DynamicIsland/models/Constants.swift b/DynamicIsland/models/Constants.swift index 7aa3525..e9b2cf6 100644 --- a/DynamicIsland/models/Constants.swift +++ b/DynamicIsland/models/Constants.swift @@ -102,7 +102,7 @@ extension Defaults.Keys { static let menubarIcon = Key("menubarIcon", default: true) static let showOnAllDisplays = Key("showOnAllDisplays", default: false) static let automaticallySwitchDisplay = Key("automaticallySwitchDisplay", default: true) - static let releaseName = Key("releaseName", default: "Wolf Painting 🐺🎨") + static let releaseName = Key("releaseName", default: "alpha 0.0.1") // MARK: Behavior static let minimumHoverDuration = Key("minimumHoverDuration", default: 0.3) diff --git a/DynamicIsland/models/PickedColor.swift b/DynamicIsland/models/PickedColor.swift index 63f6e30..4f1ed78 100644 --- a/DynamicIsland/models/PickedColor.swift +++ b/DynamicIsland/models/PickedColor.swift @@ -2,7 +2,7 @@ // PickedColor.swift // DynamicIsland // -// Created by GitHub Copilot on 14/08/25. +// Created by Ebullioscopic on 14/08/25. // import SwiftUI diff --git a/DynamicIslandSamples/clipboardpanel.png b/DynamicIslandSamples/clipboardpanel.png new file mode 100644 index 0000000..09b3605 Binary files /dev/null and b/DynamicIslandSamples/clipboardpanel.png differ diff --git a/DynamicIslandSamples/clipboardpopover.png b/DynamicIslandSamples/clipboardpopover.png new file mode 100644 index 0000000..6477eb9 Binary files /dev/null and b/DynamicIslandSamples/clipboardpopover.png differ diff --git a/DynamicIslandSamples/colorpickerpanel.png b/DynamicIslandSamples/colorpickerpanel.png new file mode 100644 index 0000000..dc9adbc Binary files /dev/null and b/DynamicIslandSamples/colorpickerpanel.png differ diff --git a/DynamicIslandSamples/colorpickerpopover.png b/DynamicIslandSamples/colorpickerpopover.png new file mode 100644 index 0000000..b8dfccc Binary files /dev/null and b/DynamicIslandSamples/colorpickerpopover.png differ diff --git a/DynamicIslandSamples/dynamicislandscreenrecord.gif b/DynamicIslandSamples/dynamicislandscreenrecord.gif new file mode 100644 index 0000000..9ed8021 Binary files /dev/null and b/DynamicIslandSamples/dynamicislandscreenrecord.gif differ diff --git a/DynamicIslandSamples/logo.png b/DynamicIslandSamples/logo.png new file mode 100644 index 0000000..9603147 Binary files /dev/null and b/DynamicIslandSamples/logo.png differ diff --git a/DynamicIslandSamples/media.png b/DynamicIslandSamples/media.png new file mode 100644 index 0000000..14de26a Binary files /dev/null and b/DynamicIslandSamples/media.png differ diff --git a/DynamicIslandSamples/statsmonitor.png b/DynamicIslandSamples/statsmonitor.png new file mode 100644 index 0000000..ad6deab Binary files /dev/null and b/DynamicIslandSamples/statsmonitor.png differ diff --git a/ReadMe.md b/ReadMe.md index 61777de..2eba89b 100644 --- a/ReadMe.md +++ b/ReadMe.md @@ -1,10 +1,290 @@ + +
+ DynamicIsland Demo +
+ +
+ DynamicIsland Logo +
+ # DynamicIsland

- DynamicIsland Logo + Transform your MacBook's notch into a powerful, interactive control center.
+ Advanced system monitoring, music controls, timers, widgets, and more β€” all with beautiful animations and intelligent layouts.

-> **DynamicIsland** transforms your MacBook's notch into a powerful, interactive control center with advanced system monitoring, music controls, timers, and customizable widgets. Experience smooth animations and intelligent vertical expansion for enhanced productivity. +

+ + + + +

+ +--- + +## πŸ“‘ Table of Contents + +- [🎬 Demo](#-demo) +- [✨ Features](#-features) +- [πŸš€ Getting Started](#-getting-started) +- [πŸ“– Usage](#-usage) +- [βš™οΈ Configuration](#️-configuration) +- [🚧 Roadmap](#-roadmap) +- [πŸ”§ Troubleshooting](#-troubleshooting) +- [🀝 Contributing](#-contributing) +- [πŸ“œ License](#-license) +- [πŸ† Acknowledgments](#-acknowledgments) +- [πŸ‘₯ Contributors](#-contributors) + +--- + +## 🎬 Demo + +
+ DynamicIsland Demo +
+ +--- + +## ✨ Features + +
+ Stats Monitor + Media Controls +
+ +### 🎡 Music & Media Controls +- **Live Music Activity**: Real-time album art, track info, and playback controls +- **Audio Visualizer**: Dynamic spectrum visualization with color adaptation +- **Multi-Platform Support**: Apple Music, Spotify, YouTube Music, and more +- **Smooth Transitions**: Elegant animations between tracks and states + +### πŸ“Š Advanced System Monitoring +- **CPU, Memory, GPU, Network, Disk**: Real-time stats with live graphs +- **Dual-Quadrant Graphs**: Network and disk stats show upload/download or read/write +- **Intelligent Layout**: Vertical expansion, 1-5 graph layouts, perfect centering +- **Customizable Visibility**: Toggle individual graphs on/off +- **Smooth Animations**: Debounced updates for fluid transitions + +### 🎨 ColorPicker (NEW!) +
+ ColorPicker Panel + ColorPicker Popover +
+- **Screen Color Picking**: Raycast-inspired panel, real-time magnification +- **Multiple Formats**: HEX, RGB, HSL, SwiftUI, UIColor, and more +- **History & Quick Copy**: Recent colors, hover info, click to copy +- **Global Shortcut**: Cmd+Shift+P (customizable) +- **Settings Integration**: Enable/disable, customize controls + +### ⏱️ Timer & Productivity +- **Multiple Timers**: Create/manage named timers +- **Live Activities**: Background timer monitoring, notifications +- **Custom Colors**: Personalize timer appearance +- **Quick Access**: Direct timer controls from the notch + +### πŸ”‹ Battery & System Status +- **Intelligent Battery Alerts**: Smart notifications for charging states +- **Power Management**: Low battery warnings, charging status +- **System Integration**: Native macOS battery monitoring + +### πŸ–₯️ Modern UI & Animations +- **Smooth Transitions**: Professionally animated state changes +- **Hover Effects**: Interactive feedback, haptic support +- **Gesture Controls**: Swipe to open/close, tap interactions +- **Adaptive Sizing**: Dynamic height expansion for complex content +- **Perfect Alignment**: Maintains center positioning across all states + +### πŸ—‚οΈ Widgets & Panels +
+ Clipboard Panel + Clipboard Popover +
+- **Clipboard Manager**: Quick access to recent clipboard items +- **Weather Widget**: Displays current weather (location access required) +- **App Switcher**: Swipe gestures for fast app switching + +--- + +## πŸš€ Getting Started + +### Prerequisites +- **macOS Sonoma 14.0+** (Optimized for Sequoia 15.0+) +- **MacBook with Notch** (Pro 14"/16" M1/M2/M3 series) +- **Xcode 15.0+**, **Swift 5.9+** +- **Admin privileges** for system monitoring features + +### Installation +```bash +git clone https://github.com/Ebullioscopic/DynamicIsland.git +cd DynamicIsland +open DynamicIsland.xcodeproj +``` +1. Enable **Accessibility**, **Screen Recording**, and **Full Disk Access** in System Settings +2. Build and run in Xcode (`Cmd + R`) +3. The app will appear in your menu bar and activate the notch + +--- + +## πŸ“– Usage + +### Basic Controls +- **Hover to Activate**: Move cursor near the notch to expand +- **Click to Open**: Tap the notch area for full controls +- **Gesture Support**: Swipe down to expand, swipe up to close +- **Tab Navigation**: Switch between Home, Shelf, Timer, Stats, ColorPicker, and more + +### System Monitoring +- **Stats Tab**: CPU, Memory, GPU, Network, Disk with live graphs +- **Layout Intelligence**: 1-3 graphs in a row, 4 in 2Γ—2 grid, 5 in 3+2 layout +- **Smooth Transitions**: Animated layout changes, perfect centering + +### ColorPicker +- **Panel & Popover**: Pick colors anywhere, see recent colors, copy formats +- **Shortcut**: Cmd+Shift+P to open picker + +### Clipboard & Widgets +- **Clipboard Panel**: Access recent clipboard items +- **Weather Widget**: Current weather in notch (location access required) +- **App Switcher**: Swipe to switch apps + +### Customization +- **Preferences Pane**: Long-press notch to open +- **Themes**: Light, dark, system adaptive +- **Widget Settings**: Enable/disable, adjust sizes, display preferences +- **Gestures**: Customize swipe, tap, long-press actions + +--- + +## βš™οΈ Configuration + +### Settings Categories +- **Stats**: Enable/disable CPU, Memory, GPU, Network, Disk monitoring +- **Music & Media**: Visualizer type, color adaptation, media sources +- **Timer**: Default duration, notification style, colors, auto-start +- **Appearance & Behavior**: Theme, hover sensitivity, animation speed, corner radius, shadow effects +- **Multi-Display Support**: Choose main monitor, show on all displays +- **Keyboard Shortcuts**: Toggle DynamicIsland, open settings, quick stats, timer control + +--- + +## 🚧 Roadmap + +### πŸ”„ Upcoming Features +- **Enhanced Calendar Integration**: Weekly/monthly views, event details +- **Weather Widget**: Location-based forecasts, beautiful animations +- **Custom Shortcuts**: User-defined quick actions, app launchers +- **Performance Optimizations**: Reduced memory/battery usage +- **Voice Commands**: Siri integration +- **Widget Marketplace**: Community custom widgets +- **Advanced Analytics**: Historical performance data +- **Cloud Sync**: Settings across devices +- **AI-Powered Insights**: Intelligent system recommendations +- **3D Animations**: Enhanced visual effects +- **Plugin Architecture**: Third-party extensions +- **Cross-Platform**: iPad/iPhone companion apps + +--- + +## πŸ”§ Troubleshooting + +### Common Issues & Solutions +- **Permissions**: Enable Accessibility, Screen Recording, Full Disk Access +- **Stats Not Updating**: Check feature toggles, restart monitoring, verify permissions +- **Music Controls Not Working**: Ensure media app is playing, check permissions, restart app +- **Performance Issues**: Reduce update frequency, disable unused features, restart app + +### Advanced +- **Reset to Defaults**: + ```bash + defaults delete com.ebullioscopic.DynamicIsland + ``` +- **Clean Reinstall**: + 1. Quit DynamicIsland + 2. Delete app from Applications + 3. Remove settings: `~/Library/Preferences/com.ebullioscopic.DynamicIsland.plist` + 4. Reinstall from latest build +- **Debug Mode**: Hold `βŒ₯` while opening Settings β†’ Advanced β†’ Debug Mode β†’ Enable Verbose Logging + +--- + +## 🀝 Contributing + +We welcome contributions from developers, designers, and users! + +### For Developers +1. **Fork the repository** +2. **Clone your fork** + ```bash + git clone https://github.com/yourusername/DynamicIsland.git + cd DynamicIsland + ``` +3. **Install dev dependencies** + ```bash + brew install swiftlint + brew install swiftformat + ``` +4. **Create a feature branch** + ```bash + git checkout -b feature/your-feature-name + ``` +5. **Commit & Push** + ```bash + git commit -m "feat: add new feature" + git push origin feature/your-feature-name + ``` +6. **Open a Pull Request** + +### For Designers +- UI/UX improvements, icon design, animation concepts + +### For Documentation +- User guides, API docs, translations + +--- + +## πŸ“œ License + +This project is licensed under the **MIT License** β€” see [LICENSE](LICENSE) for details. + +--- + +## πŸ† Acknowledgments + +- **Apple's Dynamic Island** β€” inspiration for this project +- **NotchNook & HiDock** β€” early notch customization pioneers +- **SwiftUI, Combine, AVFoundation, IOKit** β€” technical foundation +- **Lottie, SF Symbols, Apple Design Resources** β€” design & animation +- **Open Source Contributors, Beta Testers, Community** + +--- + +## πŸ‘₯ Contributors + + + + + +
+ + Ebullioscopic +
+ Ebullioscopic +
+
+ πŸš€ Creator & Lead Developer +
+ Core architecture, UI/UX design +
+ +--- + +
+ ⭐ Star this repository if DynamicIsland enhanced your Mac experience! +

+ πŸ”— GitHub Project +
## 🎬 Preview @@ -445,6 +725,7 @@ This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) **DynamicIsland** exists thanks to the contributions and inspiration from: ### **🎯 Core Inspiration** +- **BoringNotch**: The base project on which DynamicIsland is built on - **Apple's Dynamic Island**: The innovative hardware feature that inspired this software implementation - **NotchNook & HiDock**: Early notch customization pioneers - **macOS Design Principles**: Following Apple's human interface guidelines @@ -489,17 +770,6 @@ Meet the team behind **DynamicIsland**:
Core architecture, UI/UX design - - - You! -
- Your Name Here -
-
- 🀝 Future Contributor -
- Join the project! - diff --git a/dynamic-island-demo.gif b/dynamic-island-demo.gif deleted file mode 100644 index 187b655..0000000 Binary files a/dynamic-island-demo.gif and /dev/null differ diff --git a/dynamic-island-preview.jpeg b/dynamic-island-preview.jpeg deleted file mode 100644 index d38912f..0000000 Binary files a/dynamic-island-preview.jpeg and /dev/null differ diff --git a/dynamic-island.jpeg b/dynamic-island.jpeg deleted file mode 100644 index c7940e7..0000000 Binary files a/dynamic-island.jpeg and /dev/null differ