mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-27 15:14:33 +00:00
Update README
This commit is contained in:
parent
e75650b146
commit
471fb6723e
2 changed files with 436 additions and 88 deletions
477
ReadMe.md
477
ReadMe.md
|
|
@ -4,52 +4,93 @@
|
|||
<img src="https://github.com/Ebullioscopic/DynamicIsland/blob/main/dynamic-island.jpeg" alt="DynamicIsland Logo" width="200"/>
|
||||
</p>
|
||||
|
||||
> **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.
|
||||
> **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.
|
||||
|
||||
## Preview
|
||||
## 🎬 Preview
|
||||
|
||||

|
||||
|
||||
## Demonstration
|
||||
## 🚀 Demonstration
|
||||
|
||||

|
||||
|
||||
<details open>
|
||||
<summary>📑 Table of Contents</summary>
|
||||
|
||||
- [Features](#features)
|
||||
- [Demo](#demo)
|
||||
- [Getting Started](#getting-started)
|
||||
- [✨ Features](#-features)
|
||||
- [🆕 What's New](#-whats-new)
|
||||
- [🎥 Demo](#-demo)
|
||||
- [🚀 Getting Started](#-getting-started)
|
||||
- [Prerequisites](#prerequisites)
|
||||
- [Installation](#installation)
|
||||
- [Usage](#usage)
|
||||
- [📖 Usage](#-usage)
|
||||
- [Basic Controls](#basic-controls)
|
||||
- [System Monitoring](#system-monitoring)
|
||||
- [Customization Options](#customization-options)
|
||||
- [Configuration](#configuration)
|
||||
- [Roadmap](#roadmap)
|
||||
- [Troubleshooting](#troubleshooting)
|
||||
- [Contributing](#contributing)
|
||||
- [License](#license)
|
||||
- [Acknowledgments](#acknowledgments)
|
||||
- [Contributors](#contributors)
|
||||
- [⚙️ Configuration](#️-configuration)
|
||||
- [🚧 Roadmap](#-roadmap)
|
||||
- [🔧 Troubleshooting](#-troubleshooting)
|
||||
- [🤝 Contributing](#-contributing)
|
||||
- [📜 License](#-license)
|
||||
- [🏆 Acknowledgments](#-acknowledgments)
|
||||
- [👥 Contributors](#-contributors)
|
||||
|
||||
</details>
|
||||
|
||||
---
|
||||
|
||||
## 🌟 Features
|
||||
## ✨ 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.
|
||||
### 🎵 **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**: Works with Apple Music, Spotify, YouTube Music, and more
|
||||
- **Smooth Transitions**: Elegant animations between tracks and states
|
||||
|
||||
### 📊 **Advanced System Monitoring**
|
||||
- **Real-Time Performance Stats**: CPU, Memory, GPU usage with live graphs
|
||||
- **Network Activity**: Upload/download monitoring with dual-quadrant visualization
|
||||
- **Disk I/O Tracking**: Read/write speeds with real-time data
|
||||
- **Intelligent Layout**: Vertical expansion for 4+ graphs with optimized spacing
|
||||
- **Customizable Visibility**: Toggle individual graphs on/off
|
||||
- **Smooth Animations**: Debounced updates prevent conflicts and ensure fluid transitions
|
||||
|
||||
### ⏱️ **Timer & Productivity**
|
||||
- **Multiple Timers**: Create and manage multiple named timers
|
||||
- **Live Activities**: Background timer monitoring with 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 and charging status
|
||||
- **System Integration**: Native macOS battery monitoring
|
||||
|
||||
### 🎨 **Modern UI & Animations**
|
||||
- **Smooth Transitions**: Professionally animated state changes
|
||||
- **Hover Effects**: Interactive feedback with 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
|
||||
|
||||
## 🆕 What's New
|
||||
|
||||
### **Enhanced Stats Feature**
|
||||
- ✅ **Vertical Expansion Layout**: No more horizontal stretching - stats expand downward naturally
|
||||
- ✅ **5-Graph Support**: CPU, Memory, GPU, Network, and Disk monitoring
|
||||
- ✅ **Dual-Quadrant Graphs**: Network and disk stats show upload/download or read/write in split views
|
||||
- ✅ **Smart Layout System**: 1-3 graphs in single row, 4 graphs in 2×2 grid, 5 graphs in 3+2 layout
|
||||
- ✅ **Smooth Animations**: Debounced updates eliminate jarring transitions
|
||||
- ✅ **Individual Controls**: Toggle each graph type independently
|
||||
- ✅ **Perfect Centering**: Maintains alignment across all display configurations
|
||||
|
||||
## 🎥 Demo
|
||||
|
||||
Check out a quick demo of DynamicIsland in action:
|
||||
Experience **DynamicIsland** in action with our comprehensive demo showcasing:
|
||||
- **Smooth vertical expansion** for system stats
|
||||
- **Real-time performance monitoring** with live graphs
|
||||
- **Seamless music integration** with album art and controls
|
||||
- **Intelligent layout transitions** between different content types
|
||||
|
||||

|
||||
|
||||
|
|
@ -57,14 +98,15 @@ 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.
|
||||
Get **DynamicIsland** running on your macOS system with these simple steps.
|
||||
|
||||
### Prerequisites
|
||||
|
||||
- **macOS Ventura 14.2** or later.
|
||||
- **Xcode 15.0** or later.
|
||||
- **SwiftUI** and **Objective-C** frameworks installed.
|
||||
- **Make** installed for build automation.
|
||||
- **macOS Sonoma 14.0** or later (optimized for macOS Sequoia 15.0+)
|
||||
- **MacBook with Notch** (MacBook Pro 14"/16" M1 Pro/Max/M2/M3 series)
|
||||
- **Xcode 15.0** or later
|
||||
- **Swift 5.9** or later
|
||||
- **Admin privileges** for system monitoring features
|
||||
|
||||
### Installation
|
||||
|
||||
|
|
@ -74,21 +116,62 @@ These instructions will get you a copy of **DynamicIsland** up and running on yo
|
|||
cd DynamicIsland
|
||||
```
|
||||
|
||||
2. **Install Dependencies**
|
||||
Make sure you have all required libraries and frameworks installed. Use Homebrew for some dependencies if needed:
|
||||
```bash
|
||||
brew install make
|
||||
```
|
||||
|
||||
3. **Build and Run the Project**
|
||||
Open the project in Xcode, select your target device, and run:
|
||||
2. **Open in Xcode**
|
||||
```bash
|
||||
open DynamicIsland.xcodeproj
|
||||
```
|
||||
|
||||
4. **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**.
|
||||
3. **Configure Permissions**
|
||||
- Enable **Accessibility** permissions in System Settings
|
||||
- Allow **Screen Recording** for proper notch integration
|
||||
- Grant **Full Disk Access** for system monitoring features
|
||||
|
||||
4. **Build and Run**
|
||||
- Select your Mac as the target device
|
||||
- Press `Cmd + R` to build and run
|
||||
- The app will appear in your menu bar and activate the notch
|
||||
|
||||
---
|
||||
|
||||
## 📖 Usage
|
||||
|
||||
**DynamicIsland** provides an intuitive interface that adapts to your workflow needs.
|
||||
|
||||
### Basic Controls
|
||||
|
||||
- **Hover to Activate**: Move your cursor near the notch to expand the interface
|
||||
- **Click to Open**: Tap the notch area to access full controls
|
||||
- **Gesture Support**: Swipe down to expand, swipe up to close
|
||||
- **Tab Navigation**: Switch between Home, Shelf, Timer, and Stats tabs
|
||||
|
||||
### System Monitoring
|
||||
|
||||
#### **Stats Tab Features**
|
||||
- **CPU Usage**: Real-time processor utilization with historical graph
|
||||
- **Memory Stats**: RAM usage tracking with pressure indicators
|
||||
- **GPU Monitoring**: Graphics processor load for intensive tasks
|
||||
- **Network Activity**: Live upload/download speeds with dual visualization
|
||||
- **Disk I/O**: Read/write operations monitoring for storage performance
|
||||
|
||||
#### **Layout Intelligence**
|
||||
- **1-3 Graphs**: Single row layout for minimal overhead
|
||||
- **4 Graphs**: 2×2 quadrant arrangement for balanced viewing
|
||||
- **5 Graphs**: 3+2 optimized layout with centered bottom row
|
||||
- **Smooth Transitions**: Animated layout changes with perfect centering
|
||||
|
||||
### Customization Options
|
||||
|
||||
#### **Stats Configuration**
|
||||
1. Navigate to **Settings → Stats**
|
||||
2. **Enable/Disable Graphs**: Toggle individual monitoring features
|
||||
3. **Update Frequency**: Adjust refresh rates for performance optimization
|
||||
4. **Visual Preferences**: Customize colors and graph styles
|
||||
|
||||
#### **General Settings**
|
||||
1. **Appearance**: Choose system theme or custom colors
|
||||
2. **Behavior**: Configure hover sensitivity and auto-close timing
|
||||
3. **Gestures**: Enable/disable swipe controls and haptic feedback
|
||||
4. **Display**: Multi-monitor support and positioning options
|
||||
|
||||
---
|
||||
|
||||
|
|
@ -116,66 +199,208 @@ To personalize your DynamicIsland experience:
|
|||
|
||||
## ⚙️ Configuration
|
||||
|
||||
Configuration settings can be found in the `config.json` file located in the root directory.
|
||||
**DynamicIsland** offers extensive customization through its intuitive settings interface.
|
||||
|
||||
### `config.json` Example
|
||||
### Settings Categories
|
||||
|
||||
```json
|
||||
{
|
||||
"theme": "dark",
|
||||
"batteryWidget": true,
|
||||
"musicWidget": true,
|
||||
"weatherWidget": true,
|
||||
"gestureSettings": {
|
||||
"tap": "toggleMusic",
|
||||
"swipeLeft": "previousApp",
|
||||
"swipeRight": "nextApp",
|
||||
"longPress": "openSettings"
|
||||
}
|
||||
}
|
||||
#### **📊 Stats Configuration**
|
||||
```swift
|
||||
// Enable/disable individual monitoring features
|
||||
CPU Monitoring: ✅ Enabled
|
||||
Memory Tracking: ✅ Enabled
|
||||
GPU Monitoring: ✅ Enabled
|
||||
Network Activity: ✅ Enabled
|
||||
Disk I/O Monitoring: ✅ Enabled
|
||||
```
|
||||
|
||||
- **`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.
|
||||
#### **🎵 Music & Media**
|
||||
- **Visualizer Type**: Spectrum analyzer or Lottie animations
|
||||
- **Color Adaptation**: Dynamic colors based on album art
|
||||
- **Live Activity**: Background playback monitoring
|
||||
- **Media Sources**: Apple Music, Spotify, YouTube Music support
|
||||
|
||||
#### **⏱️ Timer & Productivity**
|
||||
- **Default Timer Duration**: Customizable presets
|
||||
- **Notification Style**: Banner, alert, or silent
|
||||
- **Timer Colors**: Personal color schemes
|
||||
- **Auto-start Options**: Quick timer creation
|
||||
|
||||
#### **🎨 Appearance & Behavior**
|
||||
- **Theme**: System, light, dark, or custom
|
||||
- **Hover Sensitivity**: Adjust activation distance
|
||||
- **Animation Speed**: Control transition timing
|
||||
- **Corner Radius**: Customize notch appearance
|
||||
- **Shadow Effects**: Enable/disable depth effects
|
||||
|
||||
### Advanced Settings
|
||||
|
||||
#### **🖥️ Multi-Display Support**
|
||||
- **Primary Display**: Choose main monitor for the notch
|
||||
- **Show on All Displays**: Extend to multiple screens
|
||||
- **Display Switching**: Automatic adaptation to external monitors
|
||||
|
||||
#### **⌨️ Keyboard Shortcuts**
|
||||
- **Toggle DynamicIsland**: `⌘ + ⌥ + D`
|
||||
- **Open Settings**: `⌘ + ,`
|
||||
- **Quick Stats**: `⌘ + ⌥ + S`
|
||||
- **Timer Control**: `⌘ + ⌥ + T`
|
||||
|
||||
---
|
||||
|
||||
## 🚧 Roadmap
|
||||
|
||||
Planned updates for future releases:
|
||||
Exciting features planned for upcoming 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.
|
||||
### **🔄 Version 2.1 (Next Release)**
|
||||
- [ ] **Enhanced Calendar Integration**: Weekly/monthly views with event details
|
||||
- [ ] **Weather Widget**: Location-based forecasts with beautiful animations
|
||||
- [ ] **Custom Shortcuts**: User-defined quick actions and app launchers
|
||||
- [ ] **Performance Optimizations**: Reduced memory footprint and battery usage
|
||||
|
||||
### **🚀 Version 2.2 (Future)**
|
||||
- [ ] **Voice Commands**: Siri integration for hands-free control
|
||||
- [ ] **Widget Marketplace**: Community-created custom widgets
|
||||
- [ ] **Advanced Analytics**: Historical performance data and trends
|
||||
- [ ] **Cloud Sync**: Settings synchronization across devices
|
||||
|
||||
### **🌟 Version 3.0 (Vision)**
|
||||
- [ ] **AI-Powered Insights**: Intelligent system recommendations
|
||||
- [ ] **3D Animations**: Enhanced visual effects with depth
|
||||
- [ ] **Plugin Architecture**: Third-party developer extensions
|
||||
- [ ] **Cross-Platform**: iPad and iPhone companion apps
|
||||
|
||||
---
|
||||
|
||||
## 🔧 Troubleshooting
|
||||
|
||||
### Common Issues
|
||||
### Common Issues & Solutions
|
||||
|
||||
- **Permissions**: Go to **System Preferences > Security & Privacy** to manually enable permissions if the app fails to start.
|
||||
- **Widgets Not Displaying**: Ensure your `config.json` file has valid settings, then restart the app.
|
||||
- **Build Errors in Xcode**: Run `make clean` to reset the project, then re-build.
|
||||
#### **🚫 Permissions & Access**
|
||||
**Issue**: DynamicIsland not appearing or functioning properly
|
||||
**Solutions**:
|
||||
- Go to **System Settings → Privacy & Security → Accessibility** and enable DynamicIsland
|
||||
- Enable **Screen Recording** permissions for notch integration
|
||||
- Grant **Full Disk Access** for system monitoring features
|
||||
- Restart the app after granting permissions
|
||||
|
||||
### Useful Commands
|
||||
#### **📊 Stats Not Updating**
|
||||
**Issue**: Performance graphs showing no data or frozen
|
||||
**Solutions**:
|
||||
- Check that **Stats Feature** is enabled in Settings
|
||||
- Verify individual graph toggles are enabled
|
||||
- Restart the monitoring service: Settings → Stats → Restart Monitoring
|
||||
- Ensure app has necessary system access permissions
|
||||
|
||||
- **Clean Build Files**:
|
||||
```bash
|
||||
make clean
|
||||
```
|
||||
- **Reset Configurations**:
|
||||
```bash
|
||||
rm config.json && cp config.default.json config.json
|
||||
```
|
||||
#### **🎵 Music Controls Not Working**
|
||||
**Issue**: Music widget not responding or showing incorrect information
|
||||
**Solutions**:
|
||||
- Verify media app is actively playing (Apple Music, Spotify, etc.)
|
||||
- Check **Music & Media** permissions in System Settings
|
||||
- Restart the music application
|
||||
- Toggle **Live Activity** setting in DynamicIsland preferences
|
||||
|
||||
#### **⚡ Performance Issues**
|
||||
**Issue**: High CPU usage or slow animations
|
||||
**Solutions**:
|
||||
- Reduce stats update frequency: Settings → Stats → Update Interval
|
||||
- Disable unused monitoring features to reduce overhead
|
||||
- Close unnecessary background applications
|
||||
- Restart DynamicIsland if memory usage is high
|
||||
|
||||
### Advanced Troubleshooting
|
||||
|
||||
#### **🔧 Reset to Defaults**
|
||||
```bash
|
||||
# Reset all settings to factory defaults
|
||||
defaults delete com.ebullioscopic.DynamicIsland
|
||||
```
|
||||
|
||||
#### **📱 Clean Reinstall**
|
||||
1. Quit DynamicIsland completely
|
||||
2. Delete app from Applications folder
|
||||
3. Remove settings: `~/Library/Preferences/com.ebullioscopic.DynamicIsland.plist`
|
||||
4. Reinstall from latest build
|
||||
|
||||
#### **🐛 Debug Mode**
|
||||
Enable detailed logging for troubleshooting:
|
||||
1. Hold `⌥` while opening Settings
|
||||
2. Navigate to **Advanced → Debug Mode**
|
||||
3. Enable **Verbose Logging**
|
||||
4. Reproduce the issue and check Console.app for detailed logs
|
||||
|
||||
### **💬 Getting Help**
|
||||
- **GitHub Issues**: Report bugs or request features
|
||||
- **Discussions**: Community support and tips
|
||||
- **Documentation**: Detailed guides and API reference
|
||||
|
||||
---
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
We welcome contributions from developers, designers, and users alike!
|
||||
|
||||
### **🛠️ For Developers**
|
||||
|
||||
#### **Setting Up Development Environment**
|
||||
1. **Fork the Repository**
|
||||
2. **Clone Your Fork**:
|
||||
```bash
|
||||
git clone https://github.com/yourusername/DynamicIsland.git
|
||||
cd DynamicIsland
|
||||
```
|
||||
3. **Install Development Dependencies**:
|
||||
```bash
|
||||
# SwiftLint for code formatting
|
||||
brew install swiftlint
|
||||
|
||||
# SwiftFormat for consistent styling
|
||||
brew install swiftformat
|
||||
```
|
||||
|
||||
#### **Development Workflow**
|
||||
1. **Create Feature Branch**:
|
||||
```bash
|
||||
git checkout -b feature/your-feature-name
|
||||
```
|
||||
2. **Follow Code Standards**:
|
||||
- Use SwiftUI best practices
|
||||
- Follow Apple's Human Interface Guidelines
|
||||
- Add comprehensive comments for complex logic
|
||||
- Include unit tests for new functionality
|
||||
|
||||
3. **Commit Guidelines**:
|
||||
```bash
|
||||
git commit -m "feat: add network monitoring graphs
|
||||
|
||||
- Implement dual-quadrant visualization
|
||||
- Add upload/download speed tracking
|
||||
- Include BSD socket integration
|
||||
- Update settings UI for new feature"
|
||||
```
|
||||
|
||||
4. **Push and Create PR**:
|
||||
```bash
|
||||
git push origin feature/your-feature-name
|
||||
```
|
||||
|
||||
### **🎨 For Designers**
|
||||
- **UI/UX Improvements**: Mockups and design suggestions
|
||||
- **Icon Design**: System icons and app branding
|
||||
- **Animation Concepts**: Motion design for smooth interactions
|
||||
|
||||
### **📚 For Documentation**
|
||||
- **User Guides**: Step-by-step tutorials
|
||||
- **API Documentation**: Technical reference materials
|
||||
- **Translations**: Localization for international users
|
||||
|
||||
### **Code Review Process**
|
||||
1. All PRs require review from core maintainers
|
||||
2. Automated testing must pass (CI/CD pipeline)
|
||||
3. Code coverage should not decrease significantly
|
||||
4. Follow semantic versioning for releases
|
||||
|
||||
## 🤝 Contributing
|
||||
|
||||
We welcome contributions from the community! Follow the steps below to contribute:
|
||||
|
||||
1. **Fork the repository**.
|
||||
|
|
@ -204,22 +429,110 @@ For major changes, please open an issue first to discuss what you’d like to ch
|
|||
|
||||
## 📜 License
|
||||
|
||||
This project is licensed under the MIT License. See the [LICENSE](LICENSE) file for details.
|
||||
This project is licensed under the **MIT License** - see the [LICENSE](LICENSE) file for complete details.
|
||||
|
||||
### **License Summary**
|
||||
- ✅ **Commercial Use**: Use in commercial projects
|
||||
- ✅ **Modification**: Modify and adapt the code
|
||||
- ✅ **Distribution**: Share and redistribute
|
||||
- ✅ **Private Use**: Use for personal projects
|
||||
- ❗ **Attribution Required**: Credit the original authors
|
||||
|
||||
---
|
||||
|
||||
## 🏆 Acknowledgments
|
||||
|
||||
Special thanks to:
|
||||
- **Apple Design Principles** for inspiration.
|
||||
- **Boring Notch** project for initial ideas.
|
||||
**DynamicIsland** exists thanks to the contributions and inspiration from:
|
||||
|
||||
### **🎯 Core Inspiration**
|
||||
- **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
|
||||
|
||||
### **🛠️ Technical Foundation**
|
||||
- **SwiftUI Framework**: For modern, reactive user interfaces
|
||||
- **Combine Framework**: Reactive programming and data flow
|
||||
- **AVFoundation**: Audio processing and media integration
|
||||
- **IOKit**: Low-level system monitoring capabilities
|
||||
|
||||
### **🎨 Design & Animation**
|
||||
- **Lottie by Airbnb**: Beautiful animations and micro-interactions
|
||||
- **SF Symbols**: Consistent iconography throughout the app
|
||||
- **Apple Design Resources**: Color palettes and spacing guidelines
|
||||
|
||||
### **🌟 Community**
|
||||
- **Open Source Contributors**: Everyone who submitted code, bug reports, and feature requests
|
||||
- **Beta Testers**: Early adopters who helped refine the experience
|
||||
- **Design Feedback**: UI/UX suggestions from the community
|
||||
|
||||
### **📚 Educational Resources**
|
||||
- **Stanford CS193p**: SwiftUI development techniques
|
||||
- **Apple WWDC Sessions**: Best practices and new framework features
|
||||
- **Ray Wenderlich Tutorials**: Advanced iOS/macOS development patterns
|
||||
|
||||
---
|
||||
|
||||
## 👥 Contributors
|
||||
|
||||
Meet the team behind **DynamicIsland**:
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/Ebullioscopic"><img src="https://github.com/Ebullioscopic.png" width="100px;" alt=""/><br /><sub><b>Ebullioscopic</b></sub></a><br />Creator</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/Ebullioscopic">
|
||||
<img src="https://github.com/Ebullioscopic.png" width="100px;" alt="Ebullioscopic"/>
|
||||
<br />
|
||||
<sub><b>Ebullioscopic</b></sub>
|
||||
</a>
|
||||
<br />
|
||||
<sub>🚀 Creator & Lead Developer</sub>
|
||||
<br />
|
||||
<sub>Core architecture, UI/UX design</sub>
|
||||
</td>
|
||||
<td align="center">
|
||||
<a href="https://github.com/contributors">
|
||||
<img src="https://via.placeholder.com/100x100/4A90E2/FFFFFF?text=+" width="100px;" alt="You!"/>
|
||||
<br />
|
||||
<sub><b>Your Name Here</b></sub>
|
||||
</a>
|
||||
<br />
|
||||
<sub>🤝 Future Contributor</sub>
|
||||
<br />
|
||||
<sub>Join the project!</sub>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
</table>
|
||||
|
||||
### **🌟 Special Recognition**
|
||||
|
||||
#### **📊 Stats Feature Development**
|
||||
- **System Monitoring**: Advanced CPU, Memory, GPU tracking
|
||||
- **Network Analytics**: Real-time upload/download visualization
|
||||
- **Vertical Layout System**: Intelligent graph arrangement
|
||||
- **Performance Optimization**: Debounced updates and smooth animations
|
||||
|
||||
#### **🎵 Music Integration**
|
||||
- **Multi-Platform Support**: Apple Music, Spotify, YouTube Music
|
||||
- **Audio Visualization**: Real-time spectrum analysis
|
||||
- **Live Activities**: Background playback monitoring
|
||||
|
||||
#### **⚡ Performance & Reliability**
|
||||
- **Memory Management**: Efficient resource utilization
|
||||
- **Animation System**: Smooth, conflict-free transitions
|
||||
- **Error Handling**: Robust system with graceful degradation
|
||||
|
||||
---
|
||||
|
||||
<div align="center">
|
||||
|
||||
### **⭐ Star this repository if DynamicIsland enhanced your Mac experience!**
|
||||
|
||||
### **🔗 Connect with the Project**
|
||||
[](https://github.com/Ebullioscopic/DynamicIsland/stargazers)
|
||||
[](https://github.com/Ebullioscopic/DynamicIsland/network/members)
|
||||
[](https://github.com/Ebullioscopic/DynamicIsland/issues)
|
||||
[](https://github.com/Ebullioscopic/DynamicIsland/pulls)
|
||||
|
||||
**Built with ❤️ for the macOS community**
|
||||
|
||||
</div>
|
||||
41
logic.md
41
logic.md
|
|
@ -80,11 +80,46 @@ This means the content already knows how to size itself. The window can stay at
|
|||
|
||||
This eliminates the timing issue completely because the window never changes size after initial creation.
|
||||
|
||||
## REAL ROOT CAUSE FOUND AND FIXED
|
||||
## CRITICAL DISCOVERY - Clipboard is NOT a Tab View
|
||||
|
||||
### The ACTUAL Problem: Window Creation with Wrong Size
|
||||
### Major Finding
|
||||
**The `.clipboard` case doesn't exist in `NotchViews` enum!**
|
||||
|
||||
The issue was NOT positioning logic - it was that **`createDynamicIslandWindow()` always created windows with `openNotchSize`** instead of the current required size!
|
||||
```swift
|
||||
public enum NotchViews {
|
||||
case home
|
||||
case shelf
|
||||
case timer
|
||||
case stats
|
||||
}
|
||||
```
|
||||
|
||||
### What This Means
|
||||
- All my protective logic for `coordinator.currentView == .clipboard` is **ineffective**
|
||||
- Clipboard functionality works differently - likely as a popover or overlay, not a tab
|
||||
- The hover collapse issue is NOT about tab transitions but about popover interactions
|
||||
|
||||
### Investigation Results
|
||||
1. **ContentView switch statement** only handles: `.home`, `.shelf`, `.timer`, `.stats`
|
||||
2. **No clipboard tab content rendering** in the main view switch
|
||||
3. **Clipboard must be implemented as popover/overlay** system
|
||||
|
||||
### New Hypothesis
|
||||
The clipboard "area" the user refers to is likely:
|
||||
1. **ClipboardHistoryPopover** - a popover that opens over the Dynamic Island
|
||||
2. **ClipboardManager integration** - clipboard content shown in existing tabs
|
||||
3. **Overlay system** - clipboard UI overlaid on top of main content
|
||||
|
||||
### Critical Issue Identified
|
||||
My previous fix added protections for `.clipboard` view that **DOESN'T EXIST**, meaning:
|
||||
- Protections are not working
|
||||
- Hover collapse still happening during clipboard interactions
|
||||
- Need to find actual clipboard interaction boundaries
|
||||
|
||||
### Next Steps
|
||||
1. **Find real clipboard implementation** - how is clipboard content actually shown?
|
||||
2. **Identify clipboard hover boundaries** - what UI element represents "clipboard area"?
|
||||
3. **Fix actual interaction conflicts** - coordinate between clipboard popover and main hover logic
|
||||
|
||||
#### When This Caused Problems:
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue