diff --git a/COPYRIGHT_ASSETS b/COPYRIGHT_ASSETS new file mode 100644 index 0000000..181b8f3 --- /dev/null +++ b/COPYRIGHT_ASSETS @@ -0,0 +1,8 @@ +Atoll (DynamicIsland) - Assets Copyright + +Unless otherwise noted, the original assets created specifically for Atoll +(DynamicIsland) are Copyright (C) 2024-2026 Atoll Contributors. + +This includes original media, artwork, animations, and other creative assets +unique to Atoll. Third-party assets retain their original licenses and +copyrights; see NOTICE and any THIRD_PARTY_LICENSES files for details. diff --git a/DynamicIsland/ContentView.swift b/DynamicIsland/ContentView.swift index 389644e..cc795e4 100644 --- a/DynamicIsland/ContentView.swift +++ b/DynamicIsland/ContentView.swift @@ -1,11 +1,24 @@ -// -// ContentView.swift -// DynamicIslandApp -// -// Created by Harsh Vardhan Goswami on 02/08/24 -// Modified by Richard Kunkli on 24/08/2024. -// Modified by A Akhil on 13/01/2026. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AVFoundation import Combine @@ -66,6 +79,7 @@ struct ContentView: View { @Default(.enableScreenRecordingDetection) var enableScreenRecordingDetection @Default(.enableCapsLockIndicator) var enableCapsLockIndicator @Default(.enableExtensionLiveActivities) var enableExtensionLiveActivities + @Default(.showStandardMediaControls) var showStandardMediaControls // Dynamic sizing based on view type and graph count with smooth transitions var dynamicNotchSize: CGSize { @@ -161,16 +175,21 @@ struct ContentView: View { enqueueMusicControlWindowSync(forceRefresh: forceRefresh, delay: delay) } private var dynamicNotchResizeAnimation: Animation? { - if enableMinimalisticUI && reminderManager.activeWindowReminders.isEmpty == false { - return nil - } - return .easeInOut(duration: 0.4) + nil } private let zeroHeightHoverPadding: CGFloat = 10 private let statsAdditionalRowHeight: CGFloat = 110 private let musicControlPauseGrace: TimeInterval = 5 private let musicControlResumeDelay: TimeInterval = 0.24 + + private var standardMediaControlsActive: Bool { + showStandardMediaControls && !enableMinimalisticUI + } + + private var closedMusicContentEnabled: Bool { + enableMinimalisticUI || showStandardMediaControls + } // Use minimalistic corner radius ONLY when opened, keep normal when closed private var activeCornerRadiusInsets: (opened: (top: CGFloat, bottom: CGFloat), closed: (top: CGFloat, bottom: CGFloat)) { @@ -197,14 +216,27 @@ struct ContentView: View { var body: some View { let interactionsEnabled = !lockScreenManager.isLocked + let notchHorizontalPadding: CGFloat = { + guard vm.notchState == .open else { + return activeCornerRadiusInsets.closed.bottom + } + if Defaults[.cornerRadiusScaling] { + return activeCornerRadiusInsets.opened.top - 5 + } + return activeCornerRadiusInsets.opened.bottom - 5 + }() + let hoverAreaPadding: CGFloat = { + if vm.notchState == .open && Defaults[.extendHoverArea] { + return 0 + } + return vm.effectiveClosedNotchHeight == 0 ? zeroHeightHoverPadding : 0 + }() + let notchBottomPadding = currentShadowPadding + hoverAreaPadding ZStack(alignment: .top) { let mainLayout = NotchLayout() .frame(alignment: .top) - .padding(.horizontal, vm.notchState == .open - ? Defaults[.cornerRadiusScaling] ? (activeCornerRadiusInsets.opened.top - 5) : (activeCornerRadiusInsets.opened.bottom - 5) - : activeCornerRadiusInsets.closed.bottom - ) + .padding(.horizontal, notchHorizontalPadding) .padding([.horizontal, .bottom], vm.notchState == .open ? 12 : 0) .background(.black) .clipShape(currentNotchShape) @@ -215,23 +247,15 @@ struct ContentView: View { : .clear, radius: Defaults[.cornerRadiusScaling] ? 10 : 5 ) - .padding(.bottom, - currentShadowPadding + ( - vm.notchState == .open && Defaults[.extendHoverArea] - ? 0 - : (vm.effectiveClosedNotchHeight == 0 ? zeroHeightHoverPadding : 0) - ) - ) + .padding(.bottom, notchBottomPadding) mainLayout .conditionalModifier(!useModernCloseAnimation) { view in let hoverAnimation = Animation.bouncy.speed(1.2) let notchStateAnimation = Animation.spring.speed(1.2) - let viewTransitionAnimation = Animation.easeInOut(duration: 0.4) return view .animation(hoverAnimation, value: isHovering) .animation(notchStateAnimation, value: vm.notchState) - .animation(viewTransitionAnimation, value: coordinator.currentView) .animation(.smooth, value: gestureProgress) .transition(.blurReplace.animation(.interactiveSpring(dampingFraction: 1.2))) } @@ -239,12 +263,10 @@ struct ContentView: View { let hoverAnimation = Animation.bouncy.speed(1.2) let openAnimation = Animation.spring(response: 0.42, dampingFraction: 0.8, blendDuration: 0) let closeAnimation = Animation.spring(response: 0.45, dampingFraction: 1.0, blendDuration: 0) - let viewTransitionAnimation = Animation.easeInOut(duration: 0.4) let notchAnimation = vm.notchState == .open ? openAnimation : closeAnimation return view .animation(hoverAnimation, value: isHovering) .animation(notchAnimation, value: vm.notchState) - .animation(viewTransitionAnimation, value: coordinator.currentView) .animation(.smooth, value: gestureProgress) } .conditionalModifier(interactionsEnabled) { view in @@ -373,13 +395,10 @@ struct ContentView: View { maxHeight: dynamicNotchSize.height + currentShadowPadding, alignment: .top ) - .animation(dynamicNotchResizeAnimation, value: dynamicNotchSize) - .animation(.easeInOut(duration: 0.4), value: coordinator.currentView) .environmentObject(privacyManager) .onChange(of: dynamicNotchSize) { oldSize, newSize in guard oldSize != newSize else { return } - let delay: TimeInterval = dynamicNotchResizeAnimation == nil ? 0.25 : 1.0 - runAfter(delay) { + runAfter(0.1) { vm.shouldRecheckHover.toggle() } } @@ -449,6 +468,12 @@ struct ContentView: View { enqueueMusicControlWindowSync(forceRefresh: true, delay: 0.05) } } + .onChange(of: showStandardMediaControls) { _, _ in + handleStandardMediaControlsAvailabilityChange() + } + .onChange(of: enableMinimalisticUI) { _, _ in + handleStandardMediaControlsAvailabilityChange() + } .onChange(of: gestureProgress) { _, _ in if shouldShowMusicControlWindow() { enqueueMusicControlWindowSync(forceRefresh: true, delay: 0.05) @@ -506,6 +531,7 @@ struct ContentView: View { let musicPairingEligible = vm.notchState == .closed && hasActiveMusicSnapshot && coordinator.musicLiveActivityEnabled + && closedMusicContentEnabled && !vm.hideOnClosed && !lockScreenManager.isLocked let musicSecondary = resolveMusicSecondaryLiveActivity(isMusicPairingEligible: musicPairingEligible) @@ -722,14 +748,9 @@ struct ContentView: View { } } } - .transition(.asymmetric( - insertion: .scale(scale: 0.8).combined(with: .opacity).animation(.easeInOut(duration: 0.4)), - removal: .scale(scale: 0.8).combined(with: .opacity).animation(.easeInOut(duration: 0.4)) - )) .id(coordinator.currentView) // Force SwiftUI to treat each view as unique } } - .animation(.easeInOut(duration: 0.4), value: coordinator.currentView) .zIndex(1) .allowsHitTesting(vm.notchState == .open) .blur(radius: abs(gestureProgress) > 0.3 ? min(abs(gestureProgress), 8) : 0) @@ -1035,16 +1056,11 @@ struct ContentView: View { .font(.system(size: badgeSize * 0.5, weight: .semibold)) .foregroundStyle(capsLockTintMode.color) case .extensionPayload(let payload): - ExtensionCompositeIconView( - leading: payload.descriptor.leadingIcon, - badge: payload.descriptor.badgeIcon, + ExtensionBadgeIconView( + descriptor: payload.descriptor.leadingIcon, accent: payload.descriptor.accentColor.swiftUIColor, size: badgeSize ) - .background( - Circle() - .fill(Color.black.opacity(0.85)) - ) } } .frame(width: badgeSize, height: badgeSize) @@ -1058,8 +1074,6 @@ struct ContentView: View { private func badgeDisplaySize(for secondary: MusicSecondaryLiveActivity?, baseSize: CGFloat) -> CGFloat { guard let secondary else { return baseSize } switch secondary { - case .extensionPayload: - return max(11, baseSize * 0.86) default: return baseSize } @@ -1068,8 +1082,6 @@ struct ContentView: View { private func badgeOverlayOffset(for secondary: MusicSecondaryLiveActivity?, badgeSize: CGFloat) -> CGSize { guard let secondary else { return CGSize(width: badgeSize * 0.2, height: badgeSize * 0.25) } switch secondary { - case .extensionPayload: - return CGSize(width: badgeSize * 0.14, height: badgeSize * 0.12) default: return CGSize(width: badgeSize * 0.2, height: badgeSize * 0.25) } @@ -1181,6 +1193,15 @@ struct ContentView: View { return nil } + guard closedMusicContentEnabled else { + ExtensionRoutingDiagnostics.shared.logSuppression( + .music, + reason: "music content disabled", + pendingCount: candidates.count + ) + return nil + } + guard vm.notchState == .closed else { ExtensionRoutingDiagnostics.shared.logSuppression( .music, @@ -1706,6 +1727,26 @@ struct ContentView: View { } } + private func handleStandardMediaControlsAvailabilityChange() { + guard musicControlWindowEnabled else { + hideMusicControlWindow() + return + } + + if standardMediaControlsActive { + if musicManager.isPlaying || !musicManager.isPlayerIdle { + clearMusicControlVisibilityDeadline() + } + enqueueMusicControlWindowSync(forceRefresh: true) + } else { + cancelMusicControlWindowSync() + hideMusicControlWindow() + clearMusicControlVisibilityDeadline() + hasPendingMusicControlSync = false + pendingMusicControlForceRefresh = false + } + } + private func extendMusicControlVisibilityAfterPause() { let deadline = Date().addingTimeInterval(musicControlPauseGrace) musicControlVisibilityDeadline = deadline @@ -1817,6 +1858,7 @@ struct ContentView: View { private func shouldShowMusicControlWindow() -> Bool { guard musicControlWindowEnabled, coordinator.musicLiveActivityEnabled, + standardMediaControlsActive, vm.notchState == .closed, !vm.hideOnClosed, !lockScreenManager.isLocked, diff --git a/DynamicIsland/DynamicIslandApp.swift b/DynamicIsland/DynamicIslandApp.swift index 953c982..fd91921 100644 --- a/DynamicIsland/DynamicIslandApp.swift +++ b/DynamicIsland/DynamicIslandApp.swift @@ -1,9 +1,20 @@ -// -// DynamicIslandApp.swift -// DynamicIslandApp -// -// Modified by Hariharan Mudaliar on 20/09/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AVFoundation import Combine @@ -90,6 +101,7 @@ class AppDelegate: NSObject, NSApplicationDelegate { let idleAnimationManager = IdleAnimationManager.shared // NEW: Custom idle animations let downloadManager = DownloadManager.shared // NEW: Chromium downloads detection let lockScreenPanelManager = LockScreenPanelManager.shared // NEW: Lock screen music panel + let mediaControlsStateCoordinator = MediaControlsStateCoordinator.shared let systemTimerBridge = SystemTimerBridge.shared let extensionXPCServiceHost = ExtensionXPCServiceHost.shared var closeNotchWorkItem: DispatchWorkItem? @@ -208,6 +220,8 @@ class AppDelegate: NSObject, NSApplicationDelegate { backing: .buffered, defer: false ) + + window.animationBehavior = .none window.contentView = NSHostingView( rootView: ContentView() @@ -252,6 +266,11 @@ class AppDelegate: NSObject, NSApplicationDelegate { let animateResize = shouldAnimateResize(for: requiredSize) resizeWindows(to: requiredSize, animated: animateResize, force: false) } + + private func updateWindowSizeForTabSwitch() { + let requiredSize = calculateRequiredNotchSize() + resizeWindows(to: requiredSize, animated: false, force: true) + } private func calculateRequiredNotchSize() -> CGSize { // Check if inline sneak peek is showing and notch is closed @@ -320,16 +339,7 @@ class AppDelegate: NSObject, NSApplicationDelegate { let newY = screenFrame.origin.y + screenFrame.height - size.height let targetFrame = NSRect(x: newX, y: newY, width: size.width, height: size.height) - if animated { - NSAnimationContext.runAnimationGroup { context in - context.duration = 0.25 - context.timingFunction = CAMediaTimingFunction(name: .easeInEaseOut) - context.allowsImplicitAnimation = true - window.animator().setFrame(targetFrame, display: true) - } - } else { - window.setFrame(targetFrame, display: true) - } + window.setFrame(targetFrame, display: true) } private func shouldAnimateResize(for newSize: CGSize) -> Bool { @@ -352,6 +362,8 @@ class AppDelegate: NSObject, NSApplicationDelegate { // Initialize idle animations (load bundled + built-in face) idleAnimationManager.initializeDefaultAnimations() + + applySelectedAppIcon() // Setup SystemHUD Manager SystemHUDManager.shared.setup(coordinator: coordinator) @@ -369,9 +381,9 @@ class AppDelegate: NSObject, NSApplicationDelegate { // Setup Privacy Indicator Manager (camera and microphone monitoring) PrivacyIndicatorManager.shared.startMonitoring() - // Observe tab changes - use immediate updates to prevent clipping - coordinator.$currentView.sink { [weak self] newView in - self?.updateWindowSizeIfNeeded() + // Observe tab changes - use immediate resize to keep the notch pinned + coordinator.$currentView.sink { [weak self] _ in + self?.updateWindowSizeForTabSwitch() }.store(in: &cancellables) coordinator.$notesLayoutState @@ -889,3 +901,98 @@ extension CGRect: @retroactive Hashable { return lhs.origin == rhs.origin && lhs.size == rhs.size } } + +@MainActor +final class MediaControlsStateCoordinator { + static let shared = MediaControlsStateCoordinator() + + private var cancellables = Set() + + private init() { + let masterPublisher = Defaults.publisher(.showStandardMediaControls) + let minimalisticPublisher = Defaults.publisher(.enableMinimalisticUI) + + Publishers.CombineLatest(masterPublisher, minimalisticPublisher) + .receive(on: RunLoop.main) + .sink { [weak self] masterChange, minimalisticChange in + self?.handleStateChange( + showStandard: masterChange.newValue, + minimalistic: minimalisticChange.newValue + ) + } + .store(in: &cancellables) + } + + private func handleStateChange(showStandard: Bool, minimalistic: Bool) { + if !showStandard && !minimalistic { + cacheAndDisableMusicLiveActivity() + } else { + restoreMusicLiveActivity(clearCache: showStandard) + } + + if showStandard { + restoreLockScreenPanelIfNeeded() + restoreMusicControlWindowIfNeeded() + } else { + cacheAndDisableLockScreenPanel() + cacheAndDisableMusicControlWindow() + } + } + + private func cacheAndDisableMusicLiveActivity() { + if Defaults[.cachedMusicLiveActivityPreference] == nil { + Defaults[.cachedMusicLiveActivityPreference] = DynamicIslandViewCoordinator.shared.musicLiveActivityEnabled + } + + if DynamicIslandViewCoordinator.shared.musicLiveActivityEnabled { + DynamicIslandViewCoordinator.shared.musicLiveActivityEnabled = false + } + } + + private func restoreMusicLiveActivity(clearCache: Bool) { + guard let cached = Defaults[.cachedMusicLiveActivityPreference] else { return } + + if DynamicIslandViewCoordinator.shared.musicLiveActivityEnabled != cached { + DynamicIslandViewCoordinator.shared.musicLiveActivityEnabled = cached + } + + if clearCache { + Defaults[.cachedMusicLiveActivityPreference] = nil + } + } + + private func cacheAndDisableLockScreenPanel() { + if Defaults[.cachedLockScreenMediaWidgetPreference] == nil { + Defaults[.cachedLockScreenMediaWidgetPreference] = Defaults[.enableLockScreenMediaWidget] + } + + if Defaults[.enableLockScreenMediaWidget] { + Defaults[.enableLockScreenMediaWidget] = false + LockScreenPanelManager.shared.hidePanel() + } + } + + private func restoreLockScreenPanelIfNeeded() { + guard let cached = Defaults[.cachedLockScreenMediaWidgetPreference] else { return } + Defaults[.enableLockScreenMediaWidget] = cached + Defaults[.cachedLockScreenMediaWidgetPreference] = nil + } + + private func cacheAndDisableMusicControlWindow() { + if Defaults[.cachedMusicControlWindowPreference] == nil { + Defaults[.cachedMusicControlWindowPreference] = Defaults[.musicControlWindowEnabled] + } + + if Defaults[.musicControlWindowEnabled] { + Defaults[.musicControlWindowEnabled] = false + } + + MusicControlWindowManager.shared.hide() + } + + private func restoreMusicControlWindowIfNeeded() { + guard let cached = Defaults[.cachedMusicControlWindowPreference] else { return } + Defaults[.musicControlWindowEnabled] = cached + Defaults[.cachedMusicControlWindowPreference] = nil + } +} diff --git a/DynamicIsland/DynamicIslandViewCoordinator.swift b/DynamicIsland/DynamicIslandViewCoordinator.swift index 331a256..efffb39 100644 --- a/DynamicIsland/DynamicIslandViewCoordinator.swift +++ b/DynamicIsland/DynamicIslandViewCoordinator.swift @@ -1,9 +1,20 @@ -// -// DynamicIslandViewCoordinator.swift -// DynamicIsland -// -// Created by Alexander on 2024-11-20. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Combine import Defaults @@ -102,9 +113,6 @@ class DynamicIslandViewCoordinator: ObservableObject { } @Published var statsSecondRowExpansion: CGFloat = 1 - private var statsSecondRowWorkItem: DispatchWorkItem? - private let statsSecondRowRevealDelay: TimeInterval = 0.5 - private let statsSecondRowAnimationDuration: TimeInterval = 0.3 @Published var notesLayoutState: NotesLayoutState = .list @Published var selectedExtensionExperienceID: String? @@ -206,22 +214,8 @@ class DynamicIslandViewCoordinator: ObservableObject { private func handleStatsTabTransition(from oldValue: NotchViews, to newValue: NotchViews) { guard oldValue != newValue else { return } - statsSecondRowWorkItem?.cancel() if newValue == .stats && Defaults[.enableStatsFeature] { - statsSecondRowExpansion = 0 - let workItem = DispatchWorkItem { [weak self] in - guard let self else { return } - withAnimation(.easeInOut(duration: self.statsSecondRowAnimationDuration)) { - self.statsSecondRowExpansion = 1 - } - self.statsSecondRowWorkItem = nil - } - statsSecondRowWorkItem = workItem - DispatchQueue.main.asyncAfter(deadline: .now() + statsSecondRowRevealDelay, execute: workItem) - } else { - withAnimation(.easeInOut(duration: 0.2)) { - statsSecondRowExpansion = 0 - } + statsSecondRowExpansion = 1 } } diff --git a/DynamicIsland/Localizable.xcstrings b/DynamicIsland/Localizable.xcstrings index 3b4f4db..3239f67 100644 --- a/DynamicIsland/Localizable.xcstrings +++ b/DynamicIsland/Localizable.xcstrings @@ -2061,6 +2061,9 @@ } } } + }, + "Add icon" : { + }, "Add manually" : { "extractionState" : "stale", @@ -7070,6 +7073,9 @@ } } } + }, + "Disable Minimalistic UI to configure the standard notch media controls." : { + }, "Disabled" : { "localizations" : { @@ -7500,6 +7506,9 @@ "Drag the previews to adjust vertical placement. Positive values lift the panel; negative values lower it. Use the width sliders below to narrow the media and timer widgets without exceeding their default size. Changes apply instantly while the widgets are visible." : { "comment" : "A footer text describing the functionality of the lock screen positioning controls.", "isCommentAutoGenerated" : true + }, + "Drop a PNG, JPEG, TIFF, or ICNS file to add it to your icon library." : { + }, "Drop files here" : { "localizations" : { @@ -7604,6 +7613,9 @@ "Dynamic Island Progress Bars" : { "comment" : "A section header that lists the options for customizing the appearance of the progress bars displayed by Dynamic Island.", "isCommentAutoGenerated" : true + }, + "Dynamic Island Visibility" : { + }, "dynamic.island" : { "localizations" : { @@ -7990,6 +8002,9 @@ "Enable customizable controls" : { "comment" : "A toggle that allows users to enable or disable customizable controls for media playback.", "isCommentAutoGenerated" : true + }, + "Enable Dynamic Island media controls to manage the lock screen panel." : { + }, "Enable extensions to allow third-party apps to display live activities and lock screen widgets in Atoll." : { "comment" : "A footer text that explains the purpose of enabling extensions.", @@ -16030,6 +16045,9 @@ }, "Remove from shelf after dragging" : { + }, + "Remove selected" : { + }, "Request Access" : { "localizations" : { @@ -18463,6 +18481,12 @@ } } } + }, + "Standard notch media controls are hidden while this toggle is off." : { + + }, + "Standard notch media controls are hidden. Re-enable the toggle above to restore them." : { + }, "Start" : { "localizations" : { diff --git a/DynamicIsland/MediaControllers/AppleMusicController.swift b/DynamicIsland/MediaControllers/AppleMusicController.swift index 433f01d..d97139f 100644 --- a/DynamicIsland/MediaControllers/AppleMusicController.swift +++ b/DynamicIsland/MediaControllers/AppleMusicController.swift @@ -1,9 +1,24 @@ -// -// AppleMusicController.swift -// DynamicIsland -// -// Created by Alexander on 2025-03-29. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Combine diff --git a/DynamicIsland/MediaControllers/MediaControllerProtocol.swift b/DynamicIsland/MediaControllers/MediaControllerProtocol.swift index def7970..c58a152 100644 --- a/DynamicIsland/MediaControllers/MediaControllerProtocol.swift +++ b/DynamicIsland/MediaControllers/MediaControllerProtocol.swift @@ -1,9 +1,24 @@ -// -// MediaControllerProtocol.swift -// DynamicIsland -// -// Created by Alexander Greco on 2025-03-29. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import AppKit diff --git a/DynamicIsland/MediaControllers/NowPlayingController.swift b/DynamicIsland/MediaControllers/NowPlayingController.swift index d99943f..4975bdf 100644 --- a/DynamicIsland/MediaControllers/NowPlayingController.swift +++ b/DynamicIsland/MediaControllers/NowPlayingController.swift @@ -1,9 +1,24 @@ -// -// NowPlayingController.swift -// DynamicIsland -// -// Created by Alexander on 2025-03-29. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Combine diff --git a/DynamicIsland/MediaControllers/SpotifyController.swift b/DynamicIsland/MediaControllers/SpotifyController.swift index ff7ac7f..d2b5538 100644 --- a/DynamicIsland/MediaControllers/SpotifyController.swift +++ b/DynamicIsland/MediaControllers/SpotifyController.swift @@ -1,9 +1,24 @@ -// -// SpotifyController.swift -// DynamicIsland -// -// Created by Alexander on 2025-03-29. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Combine diff --git a/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicAuthentication.swift b/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicAuthentication.swift index 58494d0..60cd64a 100644 --- a/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicAuthentication.swift +++ b/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicAuthentication.swift @@ -1,9 +1,24 @@ -// -// YouTubeMusicAuthentication.swift -// DynamicIsland -// -// Created by Alexander on 2025-09-14. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicController.swift b/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicController.swift index 31b0e6a..c8ba5e8 100644 --- a/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicController.swift +++ b/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicController.swift @@ -1,10 +1,24 @@ -// -// YouTubeMusicController.swift -// DynamicIsland -// -// Created By Alexander on 2025-03-30. -// Modified by Pranav on 2025-06-16. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Combine diff --git a/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicModels.swift b/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicModels.swift index f754a08..92ddd5f 100644 --- a/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicModels.swift +++ b/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicModels.swift @@ -1,9 +1,24 @@ -// -// YouTubeMusicModels.swift -// DynamicIsland -// -// Created by Alexander on 2025-09-14. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicNetworking.swift b/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicNetworking.swift index 3c3b274..1e9e141 100644 --- a/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicNetworking.swift +++ b/DynamicIsland/MediaControllers/YouTube Music Controller/YouTubeMusicNetworking.swift @@ -1,9 +1,24 @@ -// -// YouTubeMusicNetworking.swift -// DynamicIsland -// -// Created by Alexander on 2025-09-14. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/Providers/CalendarServiceProviding.swift b/DynamicIsland/Providers/CalendarServiceProviding.swift index f7ca046..b33ae40 100644 --- a/DynamicIsland/Providers/CalendarServiceProviding.swift +++ b/DynamicIsland/Providers/CalendarServiceProviding.swift @@ -1,11 +1,24 @@ -// -// CalendarServiceProvider.swift -// Calendr -// -// Created by Paker on 31/12/20. -// Original source: Original source: https://github.com/pakerwreah/Calendr -// Modified by Alexander on 08/06/25 -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import EventKit diff --git a/DynamicIsland/Shortcuts/ShortcutConstants.swift b/DynamicIsland/Shortcuts/ShortcutConstants.swift index 12d554f..ab7735e 100644 --- a/DynamicIsland/Shortcuts/ShortcutConstants.swift +++ b/DynamicIsland/Shortcuts/ShortcutConstants.swift @@ -1,9 +1,24 @@ -// -// Constants.swift -// DynamicIsland -// -// Created by Richard Kunkli on 16/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import KeyboardShortcuts import SwiftUI diff --git a/DynamicIsland/animations/HelloAnimation.swift b/DynamicIsland/animations/HelloAnimation.swift index bf3315b..4171b4c 100644 --- a/DynamicIsland/animations/HelloAnimation.swift +++ b/DynamicIsland/animations/HelloAnimation.swift @@ -1,13 +1,24 @@ -// -// HelloAnimation.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 04/08/24. -// HelloAnimation.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 08/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/animations/drop.swift b/DynamicIsland/animations/drop.swift index eafce26..f213471 100644 --- a/DynamicIsland/animations/drop.swift +++ b/DynamicIsland/animations/drop.swift @@ -1,9 +1,24 @@ -// -// drop.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 04/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import SwiftUI diff --git a/DynamicIsland/components/AnimatedFace.swift b/DynamicIsland/components/AnimatedFace.swift index 51913b7..66d4b65 100644 --- a/DynamicIsland/components/AnimatedFace.swift +++ b/DynamicIsland/components/AnimatedFace.swift @@ -1,8 +1,24 @@ -// -// AnimatedFace.swift -// -// Created by Harsh Vardhan Goswami on 04/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/BottomRoundedRectangle.swift b/DynamicIsland/components/BottomRoundedRectangle.swift index fa951e7..a8928f6 100644 --- a/DynamicIsland/components/BottomRoundedRectangle.swift +++ b/DynamicIsland/components/BottomRoundedRectangle.swift @@ -1,4 +1,24 @@ - +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Calendar/DynamicIslandCalendar.swift b/DynamicIsland/components/Calendar/DynamicIslandCalendar.swift index 5dac248..36fe0ff 100644 --- a/DynamicIsland/components/Calendar/DynamicIslandCalendar.swift +++ b/DynamicIsland/components/Calendar/DynamicIslandCalendar.swift @@ -1,9 +1,20 @@ -// -// DynamicIslandCalendar.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 08/09/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Calendar/ReminderLiveActivity.swift b/DynamicIsland/components/Calendar/ReminderLiveActivity.swift index 837a4b0..569ec0e 100644 --- a/DynamicIsland/components/Calendar/ReminderLiveActivity.swift +++ b/DynamicIsland/components/Calendar/ReminderLiveActivity.swift @@ -1,9 +1,20 @@ -// -// ReminderLiveActivity.swift -// DynamicIsland -// -// Created by GitHub Copilot on 2025-11-12. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Clipboard/ClipboardPanel.swift b/DynamicIsland/components/Clipboard/ClipboardPanel.swift index 3952fb7..d80ae42 100644 --- a/DynamicIsland/components/Clipboard/ClipboardPanel.swift +++ b/DynamicIsland/components/Clipboard/ClipboardPanel.swift @@ -1,9 +1,20 @@ -// -// ClipboardPanel.swift -// DynamicIsland -// -// Created by Ebullioscopic on 12/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/components/Clipboard/ClipboardPopover.swift b/DynamicIsland/components/Clipboard/ClipboardPopover.swift index 4a8acc1..f085587 100644 --- a/DynamicIsland/components/Clipboard/ClipboardPopover.swift +++ b/DynamicIsland/components/Clipboard/ClipboardPopover.swift @@ -1,9 +1,20 @@ -// -// ClipboardPopover.swift -// DynamicIsland -// -// Created by Ebullioscopic on 13/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Clipboard/ClipboardShared.swift b/DynamicIsland/components/Clipboard/ClipboardShared.swift index dce1171..1bd5baf 100644 --- a/DynamicIsland/components/Clipboard/ClipboardShared.swift +++ b/DynamicIsland/components/Clipboard/ClipboardShared.swift @@ -1,9 +1,20 @@ -// -// ClipboardShared.swift -// DynamicIsland -// -// Created by Ebullioscopic on 12/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Clipboard/ClipboardWindow.swift b/DynamicIsland/components/Clipboard/ClipboardWindow.swift index 0f76920..23e8aa4 100644 --- a/DynamicIsland/components/Clipboard/ClipboardWindow.swift +++ b/DynamicIsland/components/Clipboard/ClipboardWindow.swift @@ -1,9 +1,20 @@ -// -// ClipboardWindow.swift -// DynamicIsland -// -// Created by Ebullioscopic on 12/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/ColorCodedProgressBar.swift b/DynamicIsland/components/ColorCodedProgressBar.swift index 50daf98..9e63761 100644 --- a/DynamicIsland/components/ColorCodedProgressBar.swift +++ b/DynamicIsland/components/ColorCodedProgressBar.swift @@ -1,10 +1,20 @@ -// -// ColorCodedProgressBar.swift -// DynamicIsland -// -// Created for color-coded battery and volume displays -// Provides smooth gradient transitions from red to green (or reversed) -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/ColorPicker/ColorPickedFeedbackView.swift b/DynamicIsland/components/ColorPicker/ColorPickedFeedbackView.swift index 290fdee..3c30089 100644 --- a/DynamicIsland/components/ColorPicker/ColorPickedFeedbackView.swift +++ b/DynamicIsland/components/ColorPicker/ColorPickedFeedbackView.swift @@ -1,9 +1,20 @@ -// -// ColorPickedFeedbackView.swift -// DynamicIsland -// -// Created by Ebullioscopic on 14/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/ColorPicker/ColorPickerPanel.swift b/DynamicIsland/components/ColorPicker/ColorPickerPanel.swift index 305c2a5..63488c2 100644 --- a/DynamicIsland/components/ColorPicker/ColorPickerPanel.swift +++ b/DynamicIsland/components/ColorPicker/ColorPickerPanel.swift @@ -1,9 +1,20 @@ -// -// ColorPickerPanel.swift -// DynamicIsland -// -// Created by Ebullioscopic on 14/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Cocoa diff --git a/DynamicIsland/components/ColorPicker/ColorPickerPopover.swift b/DynamicIsland/components/ColorPicker/ColorPickerPopover.swift index aa28a6f..46f3509 100644 --- a/DynamicIsland/components/ColorPicker/ColorPickerPopover.swift +++ b/DynamicIsland/components/ColorPicker/ColorPickerPopover.swift @@ -1,9 +1,20 @@ -// -// ColorPickerPopover.swift -// DynamicIsland -// -// Created by Ebullioscopic on 14/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Downloads/DownloadLiveActivity.swift b/DynamicIsland/components/Downloads/DownloadLiveActivity.swift index 1603a6e..400e3e0 100644 --- a/DynamicIsland/components/Downloads/DownloadLiveActivity.swift +++ b/DynamicIsland/components/Downloads/DownloadLiveActivity.swift @@ -1,10 +1,20 @@ -// -// DownloadLiveActivity.swift -// DynamicIsland -// -// Shows a download indicator when Chromium-style downloads -// are detected in the user's Downloads folder. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Downloads/SpinningCircleDownloadView.swift b/DynamicIsland/components/Downloads/SpinningCircleDownloadView.swift index 1198c38..eac564c 100644 --- a/DynamicIsland/components/Downloads/SpinningCircleDownloadView.swift +++ b/DynamicIsland/components/Downloads/SpinningCircleDownloadView.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI struct SpinningCircleDownloadView: View { diff --git a/DynamicIsland/components/DynamicIslandSystemTiles.swift b/DynamicIsland/components/DynamicIslandSystemTiles.swift index 8302ab5..db10a12 100644 --- a/DynamicIsland/components/DynamicIslandSystemTiles.swift +++ b/DynamicIsland/components/DynamicIslandSystemTiles.swift @@ -1,13 +1,20 @@ -// -// DynamicIslandSystemTiles.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 04/08/24. -// DynamicIslandSystemTiles.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 16/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import SwiftUI diff --git a/DynamicIsland/components/EmptyState.swift b/DynamicIsland/components/EmptyState.swift index 9ca8292..c372a66 100644 --- a/DynamicIsland/components/EmptyState.swift +++ b/DynamicIsland/components/EmptyState.swift @@ -1,8 +1,24 @@ -// -// EmptyState.swift -// -// Created by Harsh Vardhan Goswami on 04/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Extensions/ExtensionLiveActivityViews.swift b/DynamicIsland/components/Extensions/ExtensionLiveActivityViews.swift index 79ff2da..fbaf69d 100644 --- a/DynamicIsland/components/Extensions/ExtensionLiveActivityViews.swift +++ b/DynamicIsland/components/Extensions/ExtensionLiveActivityViews.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import Defaults import AtollExtensionKit diff --git a/DynamicIsland/components/Extensions/ExtensionLockScreenWidgetView.swift b/DynamicIsland/components/Extensions/ExtensionLockScreenWidgetView.swift index 32863b4..fe823ca 100644 --- a/DynamicIsland/components/Extensions/ExtensionLockScreenWidgetView.swift +++ b/DynamicIsland/components/Extensions/ExtensionLockScreenWidgetView.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import Defaults import AtollExtensionKit diff --git a/DynamicIsland/components/Extensions/ExtensionRenderingHelpers.swift b/DynamicIsland/components/Extensions/ExtensionRenderingHelpers.swift index af5dcd8..2f6f7f9 100644 --- a/DynamicIsland/components/Extensions/ExtensionRenderingHelpers.swift +++ b/DynamicIsland/components/Extensions/ExtensionRenderingHelpers.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import AppKit import AtollExtensionKit @@ -202,6 +220,63 @@ struct ExtensionCompositeIconView: View { } } +struct ExtensionBadgeIconView: View { + let descriptor: AtollIconDescriptor + let accent: Color + let size: CGFloat + + private var symbolSize: CGFloat { size * 0.5 } + private var imageSize: CGFloat { size * 0.62 } + private var imageCornerRadius: CGFloat { size * 0.18 } + + var body: some View { + Group { + switch descriptor { + case let .symbol(name, _, weight): + Image(systemName: name) + .font(.system(size: symbolSize, weight: weight.swiftUI)) + .foregroundStyle(accent) + case let .image(data, _, _): + if let image = NSImage(data: data) { + Image(nsImage: image) + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: imageSize, height: imageSize) + .clipShape(RoundedRectangle(cornerRadius: imageCornerRadius, style: .continuous)) + } else { + fallbackSymbol + } + case let .appIcon(bundleIdentifier, _, _): + if let icon = AppIconAsNSImage(for: bundleIdentifier) { + Image(nsImage: icon) + .resizable() + .aspectRatio(contentMode: .fill) + .frame(width: imageSize, height: imageSize) + .clipShape(RoundedRectangle(cornerRadius: imageCornerRadius, style: .continuous)) + } else { + fallbackSymbol + } + case let .lottie(animationData, _): + ExtensionLottieView(data: animationData, size: CGSize(width: imageSize, height: imageSize)) + case .none: + fallbackSymbol + } + } + .frame(width: size, height: size) + } + + private var fallbackSymbol: some View { + Image(systemName: "app.dashed") + .font(.system(size: symbolSize, weight: .medium)) + .foregroundStyle(accent) + .frame(width: imageSize, height: imageSize) + .background( + RoundedRectangle(cornerRadius: imageCornerRadius, style: .continuous) + .fill(accent.opacity(0.15)) + ) + } +} + // MARK: - Lottie Rendering struct ExtensionLottieView: View { diff --git a/DynamicIsland/components/Focus/DoNotDisturbLiveActivity.swift b/DynamicIsland/components/Focus/DoNotDisturbLiveActivity.swift index 8040ce1..98bf70b 100644 --- a/DynamicIsland/components/Focus/DoNotDisturbLiveActivity.swift +++ b/DynamicIsland/components/Focus/DoNotDisturbLiveActivity.swift @@ -1,10 +1,20 @@ -// -// DoNotDisturbLiveActivity.swift -// DynamicIsland -// -// Renders the closed-notch Focus indicator with per-mode colours and -// an icon-first layout that collapses gracefully when Focus ends. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Defaults diff --git a/DynamicIsland/components/HoverButton.swift b/DynamicIsland/components/HoverButton.swift index 6a2f12b..8414dd0 100644 --- a/DynamicIsland/components/HoverButton.swift +++ b/DynamicIsland/components/HoverButton.swift @@ -1,9 +1,24 @@ -// -// HoverButton.swift -// DynamicIsland -// -// Created by Kraigo on 04.09.2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/IdleAnimationView.swift b/DynamicIsland/components/IdleAnimationView.swift index 62c5c9e..935c714 100644 --- a/DynamicIsland/components/IdleAnimationView.swift +++ b/DynamicIsland/components/IdleAnimationView.swift @@ -1,10 +1,20 @@ -// -// IdleAnimationView.swift -// DynamicIsland -// -// Created by AI Assistant on 11/10/2025. -// Unified view for displaying idle animations (Lottie or built-in face) -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Lottie diff --git a/DynamicIsland/components/Live activities/DownloadView.swift b/DynamicIsland/components/Live activities/DownloadView.swift index 0c5ccf0..caa2868 100644 --- a/DynamicIsland/components/Live activities/DownloadView.swift +++ b/DynamicIsland/components/Live activities/DownloadView.swift @@ -1,9 +1,24 @@ -// -// DownloadView.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 17/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import SwiftUI diff --git a/DynamicIsland/components/Live activities/DynamicIslandBattery.swift b/DynamicIsland/components/Live activities/DynamicIslandBattery.swift index baa0eac..10eef4c 100644 --- a/DynamicIsland/components/Live activities/DynamicIslandBattery.swift +++ b/DynamicIsland/components/Live activities/DynamicIslandBattery.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import Defaults diff --git a/DynamicIsland/components/Live activities/InlineHUD.swift b/DynamicIsland/components/Live activities/InlineHUD.swift index 310ec35..e319b29 100644 --- a/DynamicIsland/components/Live activities/InlineHUD.swift +++ b/DynamicIsland/components/Live activities/InlineHUD.swift @@ -1,9 +1,24 @@ -// -// InlineHUDs.swift -// DynamicIsland -// -// Created by Richard Kunkli on 14/09/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Live activities/LiveActivityModifier.swift b/DynamicIsland/components/Live activities/LiveActivityModifier.swift index 051b779..24ba39a 100644 --- a/DynamicIsland/components/Live activities/LiveActivityModifier.swift +++ b/DynamicIsland/components/Live activities/LiveActivityModifier.swift @@ -1,9 +1,24 @@ -// -// LiveActivityModifier.swift -// DynamicIsland -// -// Created by Richard Kunkli on 12/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Live activities/MarqueeTextView.swift b/DynamicIsland/components/Live activities/MarqueeTextView.swift index 510e619..b04a0fb 100644 --- a/DynamicIsland/components/Live activities/MarqueeTextView.swift +++ b/DynamicIsland/components/Live activities/MarqueeTextView.swift @@ -1,9 +1,24 @@ -// -// MarqueeTextView.swift -// DynamicIsland -// -// Created by Richard Kunkli on 08/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Live activities/SystemEventIndicatorModifier.swift b/DynamicIsland/components/Live activities/SystemEventIndicatorModifier.swift index bdda58e..1b2d489 100644 --- a/DynamicIsland/components/Live activities/SystemEventIndicatorModifier.swift +++ b/DynamicIsland/components/Live activities/SystemEventIndicatorModifier.swift @@ -1,9 +1,24 @@ - // - // SystemEventIndicatorModifier.swift - // DynamicIsland - // - // Created by Richard Kunkli on 12/08/2024. - // +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/LockScreen/LockIconAnimationView.swift b/DynamicIsland/components/LockScreen/LockIconAnimationView.swift index cd7646e..ea1b522 100644 --- a/DynamicIsland/components/LockScreen/LockIconAnimationView.swift +++ b/DynamicIsland/components/LockScreen/LockIconAnimationView.swift @@ -1,9 +1,20 @@ -// -// LockIconAnimationView.swift -// DynamicIsland -// -// Shared animator and SwiftUI Lottie rendering for the lock/unlock sequence. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Lottie diff --git a/DynamicIsland/components/LockScreen/LockScreenDynamicIslandReplica.swift b/DynamicIsland/components/LockScreen/LockScreenDynamicIslandReplica.swift index bf766c3..9553cde 100644 --- a/DynamicIsland/components/LockScreen/LockScreenDynamicIslandReplica.swift +++ b/DynamicIsland/components/LockScreen/LockScreenDynamicIslandReplica.swift @@ -1 +1,18 @@ -// Legacy placeholder file superseded by LockScreenLiveActivityOverlay.swift. +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + diff --git a/DynamicIsland/components/LockScreen/LockScreenLiveActivity.swift b/DynamicIsland/components/LockScreen/LockScreenLiveActivity.swift index 830a09f..f103790 100644 --- a/DynamicIsland/components/LockScreen/LockScreenLiveActivity.swift +++ b/DynamicIsland/components/LockScreen/LockScreenLiveActivity.swift @@ -1,9 +1,20 @@ -// -// LockScreenLiveActivity.swift -// DynamicIsland -// -// Created for lock screen live activity -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/LockScreen/LockScreenLiveActivityOverlay.swift b/DynamicIsland/components/LockScreen/LockScreenLiveActivityOverlay.swift index 50aba39..d4b9967 100644 --- a/DynamicIsland/components/LockScreen/LockScreenLiveActivityOverlay.swift +++ b/DynamicIsland/components/LockScreen/LockScreenLiveActivityOverlay.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI final class LockScreenLiveActivityOverlayModel: ObservableObject { diff --git a/DynamicIsland/components/LockScreen/LockScreenMusicPanel.swift b/DynamicIsland/components/LockScreen/LockScreenMusicPanel.swift index 590a212..46d09a1 100644 --- a/DynamicIsland/components/LockScreen/LockScreenMusicPanel.swift +++ b/DynamicIsland/components/LockScreen/LockScreenMusicPanel.swift @@ -1,9 +1,20 @@ -// -// LockScreenMusicPanel.swift -// DynamicIsland -// -// Created for lock screen music panel with liquid glass effect -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/LockScreen/LockScreenReminderWidget.swift b/DynamicIsland/components/LockScreen/LockScreenReminderWidget.swift index 0975e66..f661664 100644 --- a/DynamicIsland/components/LockScreen/LockScreenReminderWidget.swift +++ b/DynamicIsland/components/LockScreen/LockScreenReminderWidget.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI struct LockScreenReminderWidget: View { diff --git a/DynamicIsland/components/LockScreen/LockScreenTimerWidget.swift b/DynamicIsland/components/LockScreen/LockScreenTimerWidget.swift index f59c898..ee52a5a 100644 --- a/DynamicIsland/components/LockScreen/LockScreenTimerWidget.swift +++ b/DynamicIsland/components/LockScreen/LockScreenTimerWidget.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import Defaults diff --git a/DynamicIsland/components/LockScreen/LockScreenWeatherWidget.swift b/DynamicIsland/components/LockScreen/LockScreenWeatherWidget.swift index 9c817a3..c335394 100644 --- a/DynamicIsland/components/LockScreen/LockScreenWeatherWidget.swift +++ b/DynamicIsland/components/LockScreen/LockScreenWeatherWidget.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import Defaults diff --git a/DynamicIsland/components/MinimalisticMusicView.swift b/DynamicIsland/components/MinimalisticMusicView.swift index af5cd40..6129bd7 100644 --- a/DynamicIsland/components/MinimalisticMusicView.swift +++ b/DynamicIsland/components/MinimalisticMusicView.swift @@ -1,10 +1,20 @@ -// -// MinimalisticMusicView.swift -// DynamicIsland -// -// Created for minimalistic UI mode -// A clean, focused music player for closed notch state -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Music/LiveStreamProgressIndicator.swift b/DynamicIsland/components/Music/LiveStreamProgressIndicator.swift index 5ca0f58..658cdae 100644 --- a/DynamicIsland/components/Music/LiveStreamProgressIndicator.swift +++ b/DynamicIsland/components/Music/LiveStreamProgressIndicator.swift @@ -1,9 +1,20 @@ -// -// LiveStreamProgressIndicator.swift -// DynamicIsland -// -// Shared indicator used for live stream playback timelines. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Music/LottieAnimationView.swift b/DynamicIsland/components/Music/LottieAnimationView.swift index 8388416..7bf72b6 100644 --- a/DynamicIsland/components/Music/LottieAnimationView.swift +++ b/DynamicIsland/components/Music/LottieAnimationView.swift @@ -1,9 +1,24 @@ -// -// LottieAnimationView.swift -// DynamicIsland -// -// Created by Richard Kunkli on 2024. 10. 29.. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Lottie diff --git a/DynamicIsland/components/Music/MusicControlOverlay.swift b/DynamicIsland/components/Music/MusicControlOverlay.swift index bf137d8..1acde11 100644 --- a/DynamicIsland/components/Music/MusicControlOverlay.swift +++ b/DynamicIsland/components/Music/MusicControlOverlay.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import Defaults diff --git a/DynamicIsland/components/Music/MusicVisualizer.swift b/DynamicIsland/components/Music/MusicVisualizer.swift index dea4d50..104079d 100644 --- a/DynamicIsland/components/Music/MusicVisualizer.swift +++ b/DynamicIsland/components/Music/MusicVisualizer.swift @@ -1,9 +1,25 @@ -// -// MusicVisualizer.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 02/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import Cocoa import SwiftUI diff --git a/DynamicIsland/components/Notch/ClipboardHistoryPopover.swift b/DynamicIsland/components/Notch/ClipboardHistoryPopover.swift index 893ffaa..0867434 100644 --- a/DynamicIsland/components/Notch/ClipboardHistoryPopover.swift +++ b/DynamicIsland/components/Notch/ClipboardHistoryPopover.swift @@ -1,9 +1,20 @@ -// -// ClipboardHistoryPopover.swift -// DynamicIsland -// -// Created by Ebullioscopic on 17/07/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Notch/DynamicIslandExtrasMenu.swift b/DynamicIsland/components/Notch/DynamicIslandExtrasMenu.swift index b546207..aca5f5f 100644 --- a/DynamicIsland/components/Notch/DynamicIslandExtrasMenu.swift +++ b/DynamicIsland/components/Notch/DynamicIslandExtrasMenu.swift @@ -1,9 +1,20 @@ -// -// DynamicIslandExtrasMenu.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 04/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Notch/DynamicIslandHeader.swift b/DynamicIsland/components/Notch/DynamicIslandHeader.swift index 18027f1..860ce23 100644 --- a/DynamicIsland/components/Notch/DynamicIslandHeader.swift +++ b/DynamicIsland/components/Notch/DynamicIslandHeader.swift @@ -1,9 +1,20 @@ -// -// DynamicIslandHeader.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 04/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Defaults import SwiftUI diff --git a/DynamicIsland/components/Notch/DynamicIslandWindow.swift b/DynamicIsland/components/Notch/DynamicIslandWindow.swift index 5118ae7..8c53e83 100644 --- a/DynamicIsland/components/Notch/DynamicIslandWindow.swift +++ b/DynamicIsland/components/Notch/DynamicIslandWindow.swift @@ -1,9 +1,24 @@ -// -// DynamicIslandWindow.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 06/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Cocoa diff --git a/DynamicIsland/components/Notch/MinimalisticMusicPlayerView.swift b/DynamicIsland/components/Notch/MinimalisticMusicPlayerView.swift index 6379b1f..f5cf76a 100644 --- a/DynamicIsland/components/Notch/MinimalisticMusicPlayerView.swift +++ b/DynamicIsland/components/Notch/MinimalisticMusicPlayerView.swift @@ -1,9 +1,20 @@ -// -// MinimalisticMusicPlayerView.swift -// DynamicIsland -// -// Created for minimalistic UI mode - Open state music player -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Notch/NotchColorPickerView.swift b/DynamicIsland/components/Notch/NotchColorPickerView.swift index 095f7c4..2a819de 100644 --- a/DynamicIsland/components/Notch/NotchColorPickerView.swift +++ b/DynamicIsland/components/Notch/NotchColorPickerView.swift @@ -1,9 +1,20 @@ -// -// NotchColorPickerView.swift -// DynamicIsland -// -// Created by Ebullioscopic on 14/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Notch/NotchHomeView.swift b/DynamicIsland/components/Notch/NotchHomeView.swift index b1843e7..9cc8f9b 100644 --- a/DynamicIsland/components/Notch/NotchHomeView.swift +++ b/DynamicIsland/components/Notch/NotchHomeView.swift @@ -1,10 +1,24 @@ -// -// NotchHomeView.swift -// DynamicIsland -// -// Created by Hugo Persson on 2024-08-18. -// Modified by Harsh Vardhan Goswami & Richard Kunkli & Mustafa Ramadan -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Combine import Defaults @@ -383,6 +397,7 @@ struct NotchHomeView: View { @ObservedObject var batteryModel = BatteryStatusViewModel.shared @ObservedObject var coordinator = DynamicIslandViewCoordinator.shared @ObservedObject private var extensionNotchExperienceManager = ExtensionNotchExperienceManager.shared + @Default(.showStandardMediaControls) private var showStandardMediaControls let albumArtNamespace: Namespace.ID var body: some View { @@ -407,8 +422,10 @@ struct NotchHomeView: View { } } else { // Normal mode: Show full music player with optional calendar and webcam - MusicPlayerView(albumArtNamespace: albumArtNamespace) - .frame(maxWidth: .infinity, alignment: .leading) + if showStandardMediaControls { + MusicPlayerView(albumArtNamespace: albumArtNamespace) + .frame(maxWidth: .infinity, alignment: .leading) + } if Defaults[.showCalendar] { CalendarView() diff --git a/DynamicIsland/components/Notch/NotchNotesView.swift b/DynamicIsland/components/Notch/NotchNotesView.swift index ed81e69..308ebfa 100644 --- a/DynamicIsland/components/Notch/NotchNotesView.swift +++ b/DynamicIsland/components/Notch/NotchNotesView.swift @@ -1,9 +1,20 @@ -// -// NotchNotesView.swift -// DynamicIsland -// -// Created by Assistant -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Notch/NotchShape.swift b/DynamicIsland/components/Notch/NotchShape.swift index 55997b1..c0bc3fb 100644 --- a/DynamicIsland/components/Notch/NotchShape.swift +++ b/DynamicIsland/components/Notch/NotchShape.swift @@ -1,10 +1,24 @@ -// -// NotchShape.swift -// DynamicIsland -// -// Created by Kai Azim on 2023-08-24. -// Original source: https://github.com/MrKai77/DynamicNotchKit -// Modified by Alexander on 2025-05-18. +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Notch/NotchShelfView.swift b/DynamicIsland/components/Notch/NotchShelfView.swift index dafd518..84b0bd7 100644 --- a/DynamicIsland/components/Notch/NotchShelfView.swift +++ b/DynamicIsland/components/Notch/NotchShelfView.swift @@ -1,3 +1,20 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Notch/NotchStatsView.swift b/DynamicIsland/components/Notch/NotchStatsView.swift index f309f57..545b393 100644 --- a/DynamicIsland/components/Notch/NotchStatsView.swift +++ b/DynamicIsland/components/Notch/NotchStatsView.swift @@ -1,9 +1,20 @@ -// -// NotchStatsView.swift -// DynamicIsland -// -// Adapted from boring.notch StatsView -// Stats tab view for system performance monitoring with clickable process popovers +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults @@ -63,9 +74,6 @@ struct NotchStatsView: View { @State private var isHoveringGPUPopover = false @State private var isHoveringNetworkPopover = false @State private var isHoveringDiskPopover = false - @State private var isResizingForStats = false - @State private var statsHoverGraceActive = false - @State private var statsHoverGraceWorkItem: DispatchWorkItem? @EnvironmentObject var vm: DynamicIslandViewModel @ObservedObject var coordinator = DynamicIslandViewCoordinator.shared @@ -149,8 +157,8 @@ struct NotchStatsView: View { } } } else if graphCount == 4 { - // 4 graphs: second row scales from zero height on tab open - VStack(spacing: 0) { + // 4 graphs: two rows (2x2) without a collapsible expansion + VStack(spacing: statsGridSpacingHeight) { LazyVGrid( columns: Array(repeating: GridItem(.flexible(), spacing: 8), count: 2), spacing: 12 @@ -159,26 +167,18 @@ struct NotchStatsView: View { graphViewForIndex(index) } } - - StatsCollapsibleRow( - expansion: coordinator.statsSecondRowExpansion, - height: statsSecondRowContentHeight + statsGridSpacingHeight + LazyVGrid( + columns: Array(repeating: GridItem(.flexible(), spacing: 8), count: 2), + spacing: 12 ) { - LazyVGrid( - columns: Array(repeating: GridItem(.flexible(), spacing: 8), count: 2), - spacing: 12 - ) { - ForEach(2..= 4 && newValue < 0.999 - if shouldHold { - isResizingForStats = true - } else { - DispatchQueue.main.async { - isResizingForStats = false - } - } - } } - - -private struct StatsCollapsibleRow: View { - let expansion: CGFloat - let height: CGFloat - let content: () -> Content - private let minVisibleHeight: CGFloat = 0.5 - - init(expansion: CGFloat, height: CGFloat, @ViewBuilder content: @escaping () -> Content) { - self.expansion = expansion - self.height = height - self.content = content - } - - var body: some View { - let clamped = max(0, min(expansion, 1)) - let targetHeight = clamped == 0 ? 0 : max(height * clamped, minVisibleHeight) - - return Group { - if targetHeight == 0 { - Color.clear.frame(height: 0) - } else { - content() - .frame(height: height, alignment: .top) - .clipped() - .mask( - Rectangle() - .frame(height: targetHeight) - .frame(maxWidth: .infinity, alignment: .top) - ) - .frame(height: targetHeight, alignment: .top) - } - } - .animation(.easeInOut(duration: 0.3), value: clamped) - } -} - private func activateStatsHoverGrace(duration: TimeInterval = 0.45) { - statsHoverGraceWorkItem?.cancel() - statsHoverGraceActive = true - let workItem = DispatchWorkItem { - statsHoverGraceActive = false - statsHoverGraceWorkItem = nil - updateStatsPopoverState() - } - statsHoverGraceWorkItem = workItem - DispatchQueue.main.asyncAfter(deadline: .now() + duration, execute: workItem) - } - - private func deactivateStatsHoverGrace() { - statsHoverGraceWorkItem?.cancel() - statsHoverGraceWorkItem = nil - if statsHoverGraceActive { - statsHoverGraceActive = false - } - } - private func updateStatsPopoverState() { let anyPopoverOpen = showingCPUPopover || showingMemoryPopover || showingGPUPopover || showingNetworkPopover || showingDiskPopover - let newState = anyPopoverOpen || isResizingForStats || statsHoverGraceActive + let newState = anyPopoverOpen if vm.isStatsPopoverActive != newState { vm.isStatsPopoverActive = newState #if DEBUG @@ -540,8 +425,6 @@ private struct StatsCollapsibleRow: View { print(" GPU open=\(showingGPUPopover)") print(" Network open=\(showingNetworkPopover)") print(" Disk open=\(showingDiskPopover)") - print(" Resizing: \(isResizingForStats)") - print(" Hover grace: \(statsHoverGraceActive)") #endif } } diff --git a/DynamicIsland/components/Notch/NotchTimerView.swift b/DynamicIsland/components/Notch/NotchTimerView.swift index 15fbf21..384b86b 100644 --- a/DynamicIsland/components/Notch/NotchTimerView.swift +++ b/DynamicIsland/components/Notch/NotchTimerView.swift @@ -1,9 +1,20 @@ -// -// NotchTimerView.swift -// DynamicIsland -// -// Timer tab interface for the Atoll -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/OSD/CircularHUDView.swift b/DynamicIsland/components/OSD/CircularHUDView.swift index 4b48d7d..6e3e467 100644 --- a/DynamicIsland/components/OSD/CircularHUDView.swift +++ b/DynamicIsland/components/OSD/CircularHUDView.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #if os(macOS) import SwiftUI import Defaults diff --git a/DynamicIsland/components/OSD/CustomOSDView.swift b/DynamicIsland/components/OSD/CustomOSDView.swift index c505cfc..67d19ac 100644 --- a/DynamicIsland/components/OSD/CustomOSDView.swift +++ b/DynamicIsland/components/OSD/CustomOSDView.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #if os(macOS) import SwiftUI import Defaults diff --git a/DynamicIsland/components/OSD/HUDNumericLabel.swift b/DynamicIsland/components/OSD/HUDNumericLabel.swift index 7464008..1a1d7b3 100644 --- a/DynamicIsland/components/OSD/HUDNumericLabel.swift +++ b/DynamicIsland/components/OSD/HUDNumericLabel.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #if os(macOS) import SwiftUI diff --git a/DynamicIsland/components/OSD/VerticalHUDView.swift b/DynamicIsland/components/OSD/VerticalHUDView.swift index 29b13f3..f9eacff 100644 --- a/DynamicIsland/components/OSD/VerticalHUDView.swift +++ b/DynamicIsland/components/OSD/VerticalHUDView.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #if os(macOS) import SwiftUI import Defaults diff --git a/DynamicIsland/components/Onboarding/MusicControllerSelectionView.swift b/DynamicIsland/components/Onboarding/MusicControllerSelectionView.swift index a4cc8cf..082e428 100644 --- a/DynamicIsland/components/Onboarding/MusicControllerSelectionView.swift +++ b/DynamicIsland/components/Onboarding/MusicControllerSelectionView.swift @@ -1,9 +1,24 @@ -// -// MusicControllerSelectionView.swift -// DynamicIsland -// -// Created by Alexander on 2025-06-23. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Onboarding/OnboardingFinishView.swift b/DynamicIsland/components/Onboarding/OnboardingFinishView.swift index fd7bdf9..a404e24 100644 --- a/DynamicIsland/components/Onboarding/OnboardingFinishView.swift +++ b/DynamicIsland/components/Onboarding/OnboardingFinishView.swift @@ -1,10 +1,24 @@ -// -// OnboardingFinishView.swift -// DynamicIsland -// -// Created by Alexander on 2025-06-23. -// - +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Onboarding/OnboardingView.swift b/DynamicIsland/components/Onboarding/OnboardingView.swift index 371fe29..7c6988b 100644 --- a/DynamicIsland/components/Onboarding/OnboardingView.swift +++ b/DynamicIsland/components/Onboarding/OnboardingView.swift @@ -1,9 +1,24 @@ -// -// OnboardingView.swift -// DynamicIsland -// -// Created by Alexander on 2025-06-23. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AVFoundation diff --git a/DynamicIsland/components/Onboarding/PermissionsRequestView.swift b/DynamicIsland/components/Onboarding/PermissionsRequestView.swift index 72002ce..f380c22 100644 --- a/DynamicIsland/components/Onboarding/PermissionsRequestView.swift +++ b/DynamicIsland/components/Onboarding/PermissionsRequestView.swift @@ -1,9 +1,24 @@ -// -// PermissionsRequestView.swift -// DynamicIsland -// -// Created by Alexander on 2025-06-23. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Onboarding/ProOnboarding.swift b/DynamicIsland/components/Onboarding/ProOnboarding.swift index 3ed78ee..97177fa 100644 --- a/DynamicIsland/components/Onboarding/ProOnboarding.swift +++ b/DynamicIsland/components/Onboarding/ProOnboarding.swift @@ -1,9 +1,20 @@ -// -// ProOnboarding.swift -// DynamicIsland -// -// Created by Richard Kunkli on 2024. 09. 26.. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import SwiftUIIntrospect diff --git a/DynamicIsland/components/Onboarding/ProfileSelectionView.swift b/DynamicIsland/components/Onboarding/ProfileSelectionView.swift index 7022d16..564d351 100644 --- a/DynamicIsland/components/Onboarding/ProfileSelectionView.swift +++ b/DynamicIsland/components/Onboarding/ProfileSelectionView.swift @@ -1,9 +1,20 @@ -// -// ProfileSelectionView.swift -// DynamicIsland -// -// Created on 2025-10-05. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Onboarding/SparkleView.swift b/DynamicIsland/components/Onboarding/SparkleView.swift index d0d2668..a44f592 100644 --- a/DynamicIsland/components/Onboarding/SparkleView.swift +++ b/DynamicIsland/components/Onboarding/SparkleView.swift @@ -1,9 +1,24 @@ -// -// SparkleView.swift -// DynamicIsland -// -// Created by Richard Kunkli on 2024. 09. 26.. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AppKit diff --git a/DynamicIsland/components/Onboarding/WelcomeView.swift b/DynamicIsland/components/Onboarding/WelcomeView.swift index eadc0fe..814df1c 100644 --- a/DynamicIsland/components/Onboarding/WelcomeView.swift +++ b/DynamicIsland/components/Onboarding/WelcomeView.swift @@ -1,9 +1,24 @@ -// -// WelcomeView.swift -// DynamicIsland -// -// Created by Richard Kunkli on 2024. 09. 26.. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import SwiftUIIntrospect diff --git a/DynamicIsland/components/Privacy/PrivacyLiveActivity.swift b/DynamicIsland/components/Privacy/PrivacyLiveActivity.swift index a28b992..f959a51 100644 --- a/DynamicIsland/components/Privacy/PrivacyLiveActivity.swift +++ b/DynamicIsland/components/Privacy/PrivacyLiveActivity.swift @@ -1,9 +1,20 @@ -// -// PrivacyLiveActivity.swift -// DynamicIsland -// -// Created for camera and microphone privacy indicators -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/PrivacyIndicatorIcon.swift b/DynamicIsland/components/PrivacyIndicatorIcon.swift index 9d52e80..b2bd34b 100644 --- a/DynamicIsland/components/PrivacyIndicatorIcon.swift +++ b/DynamicIsland/components/PrivacyIndicatorIcon.swift @@ -1,10 +1,20 @@ -// -// PrivacyIndicatorIcon.swift -// DynamicIsland -// -// Created for privacy indicator feature -// Visual component for camera and microphone privacy indicators -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/ProgressIndicator.swift b/DynamicIsland/components/ProgressIndicator.swift index 20db749..c253f8a 100644 --- a/DynamicIsland/components/ProgressIndicator.swift +++ b/DynamicIsland/components/ProgressIndicator.swift @@ -1,9 +1,24 @@ - // - // ProgressIndicator.swift - // DynamicIsland - // - // Created by Harsh Vardhan Goswami on 11/08/24. - // +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import SwiftUI diff --git a/DynamicIsland/components/Recording/RecordingLiveActivity.swift b/DynamicIsland/components/Recording/RecordingLiveActivity.swift index ca2d14d..cc48ebd 100644 --- a/DynamicIsland/components/Recording/RecordingLiveActivity.swift +++ b/DynamicIsland/components/Recording/RecordingLiveActivity.swift @@ -1,9 +1,20 @@ -// -// RecordingLiveActivity.swift -// DynamicIsland -// -// Created for screen recording live activity -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/ScreenAssistant/ChatPanels.swift b/DynamicIsland/components/ScreenAssistant/ChatPanels.swift index f8115cb..aa7549d 100644 --- a/DynamicIsland/components/ScreenAssistant/ChatPanels.swift +++ b/DynamicIsland/components/ScreenAssistant/ChatPanels.swift @@ -1,8 +1,20 @@ -// -// ChatPanels.swift -// DynamicIsland -// -// Created by Hariharan Mudaliar +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/components/ScreenAssistant/ModelSelectionPanel.swift b/DynamicIsland/components/ScreenAssistant/ModelSelectionPanel.swift index 19f07df..e8f819c 100644 --- a/DynamicIsland/components/ScreenAssistant/ModelSelectionPanel.swift +++ b/DynamicIsland/components/ScreenAssistant/ModelSelectionPanel.swift @@ -1,8 +1,20 @@ -// -// ModelSelectionPanel.swift -// DynamicIsland -// -// Created by Hariharan Mudaliar +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/components/ScreenAssistant/ScreenAssistantPanel.swift b/DynamicIsland/components/ScreenAssistant/ScreenAssistantPanel.swift index 064b153..dc04166 100644 --- a/DynamicIsland/components/ScreenAssistant/ScreenAssistantPanel.swift +++ b/DynamicIsland/components/ScreenAssistant/ScreenAssistantPanel.swift @@ -1,8 +1,20 @@ -// -// ScreenAssistantPanel.swift -// DynamicIsland -// -// Created by Hariharan Mudaliar +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/components/ScreenAssistant/ScreenshotSnippingTool.swift b/DynamicIsland/components/ScreenAssistant/ScreenshotSnippingTool.swift index c70facd..877b609 100644 --- a/DynamicIsland/components/ScreenAssistant/ScreenshotSnippingTool.swift +++ b/DynamicIsland/components/ScreenAssistant/ScreenshotSnippingTool.swift @@ -1,8 +1,20 @@ -// -// ScreenshotSnippingTool.swift -// DynamicIsland -// -// Created by Assistant based on ScreenshotApp-main research +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/components/Settings/AnimationEditorView.swift b/DynamicIsland/components/Settings/AnimationEditorView.swift index 87a3404..1f6ebf1 100644 --- a/DynamicIsland/components/Settings/AnimationEditorView.swift +++ b/DynamicIsland/components/Settings/AnimationEditorView.swift @@ -1,10 +1,20 @@ -// -// AnimationEditorView.swift -// DynamicIsland -// -// Created by AI Assistant on 11/10/2025. -// Editor for resizing, repositioning, and cropping Lottie animations -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import LottieUI diff --git a/DynamicIsland/components/Settings/EditPanelView.swift b/DynamicIsland/components/Settings/EditPanelView.swift index 66eb36c..7f22c03 100644 --- a/DynamicIsland/components/Settings/EditPanelView.swift +++ b/DynamicIsland/components/Settings/EditPanelView.swift @@ -1,9 +1,24 @@ -// -// EditPanelView.swift -// DynamicIsland -// -// Created by Richard Kunkli on 12/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Settings/ExtensionsSettings.swift b/DynamicIsland/components/Settings/ExtensionsSettings.swift index ff4a79e..05fc9ed 100644 --- a/DynamicIsland/components/Settings/ExtensionsSettings.swift +++ b/DynamicIsland/components/Settings/ExtensionsSettings.swift @@ -1,9 +1,20 @@ -// -// ExtensionsSettings.swift -// DynamicIsland -// -// Created on 13/01/2026. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Settings/IdleAnimationsSettingsSection.swift b/DynamicIsland/components/Settings/IdleAnimationsSettingsSection.swift index 53d69fd..be45da7 100644 --- a/DynamicIsland/components/Settings/IdleAnimationsSettingsSection.swift +++ b/DynamicIsland/components/Settings/IdleAnimationsSettingsSection.swift @@ -1,10 +1,20 @@ -// -// IdleAnimationsSettingsSection.swift -// DynamicIsland -// -// Created by AI Assistant on 11/10/2025. -// Settings section for custom idle animations -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Settings/ListItemPopover.swift b/DynamicIsland/components/Settings/ListItemPopover.swift index eea2bb2..b630a88 100644 --- a/DynamicIsland/components/Settings/ListItemPopover.swift +++ b/DynamicIsland/components/Settings/ListItemPopover.swift @@ -1,9 +1,24 @@ -// -// ListItemPopover.swift -// DynamicIsland -// -// Created by Richard Kunkli on 15/09/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Settings/MusicSlotConfigurationView.swift b/DynamicIsland/components/Settings/MusicSlotConfigurationView.swift index 68c9b06..663f42a 100644 --- a/DynamicIsland/components/Settings/MusicSlotConfigurationView.swift +++ b/DynamicIsland/components/Settings/MusicSlotConfigurationView.swift @@ -1,3 +1,25 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Defaults import SwiftUI import UniformTypeIdentifiers diff --git a/DynamicIsland/components/Settings/SettingsView.swift b/DynamicIsland/components/Settings/SettingsView.swift index 069d625..adbd88b 100644 --- a/DynamicIsland/components/Settings/SettingsView.swift +++ b/DynamicIsland/components/Settings/SettingsView.swift @@ -1,9 +1,25 @@ -// -// SettingsView.swift -// DynamicIsland -// -// Created by Richard Kunkli on 07/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import AVFoundation import Combine @@ -677,6 +693,7 @@ struct SettingsView: View { SettingsSearchEntry(tab: .appearance, title: "Enable Dynamic mirror", keywords: ["mirror", "reflection"], highlightID: SettingsTab.appearance.highlightID(for: "Enable Dynamic mirror")), SettingsSearchEntry(tab: .appearance, title: "Mirror shape", keywords: ["mirror shape", "circle", "rectangle"], highlightID: SettingsTab.appearance.highlightID(for: "Mirror shape")), SettingsSearchEntry(tab: .appearance, title: "Show cool face animation while inactivity", keywords: ["face animation", "idle"], highlightID: SettingsTab.appearance.highlightID(for: "Show cool face animation while inactivity")), + SettingsSearchEntry(tab: .appearance, title: "App icon", keywords: ["app icon", "custom icon"], highlightID: SettingsTab.appearance.highlightID(for: "App icon")), // Lock Screen SettingsSearchEntry(tab: .lockScreen, title: "Enable lock screen live activity", keywords: ["lock screen", "live activity"], highlightID: SettingsTab.lockScreen.highlightID(for: "Enable lock screen live activity")), @@ -1964,11 +1981,16 @@ struct Media: View { @Default(.lockScreenGlassStyle) private var lockScreenGlassStyle @Default(.lockScreenGlassCustomizationMode) private var lockScreenGlassCustomizationMode @Default(.lockScreenMusicAlbumParallaxEnabled) private var lockScreenMusicAlbumParallaxEnabled + @Default(.showStandardMediaControls) private var showStandardMediaControls private func highlightID(_ title: String) -> String { SettingsTab.media.highlightID(for: title) } + private var standardControlsSuppressed: Bool { + !showStandardMediaControls && !enableMinimalisticUI + } + var body: some View { Form { Section { @@ -2002,6 +2024,23 @@ struct Media: View { .font(.caption) } } + Section { + Defaults.Toggle("Show media controls in Dynamic Island", key: .showStandardMediaControls) + .disabled(enableMinimalisticUI) + .settingsHighlight(id: highlightID("Show media controls in Dynamic Island")) + + if enableMinimalisticUI { + Text("Disable Minimalistic UI to configure the standard notch media controls.") + .font(.caption) + .foregroundStyle(.secondary) + } else if standardControlsSuppressed { + Text("Standard notch media controls are hidden. Re-enable the toggle above to restore them.") + .font(.caption) + .foregroundStyle(.secondary) + } + } header: { + Text("Dynamic Island Visibility") + } Section { Defaults.Toggle(key: .showShuffleAndRepeat) { HStack { @@ -2053,11 +2092,13 @@ struct Media: View { "Enable music live activity", isOn: $coordinator.musicLiveActivityEnabled.animation() ) + .disabled(standardControlsSuppressed) + .help(standardControlsSuppressed ? "Standard notch media controls are hidden while this toggle is off." : "") Defaults.Toggle( "Show floating media controls", key: .musicControlWindowEnabled ) - .disabled(!coordinator.musicLiveActivityEnabled) + .disabled(!coordinator.musicLiveActivityEnabled || standardControlsSuppressed) .help("Displays play/pause and skip buttons beside the notch while music is active. Disabled by default.") Toggle("Enable sneak peek", isOn: $enableSneakPeek) Toggle("Show sneak peek on playback changes", isOn: $showSneakPeekOnTrackChange) @@ -2124,6 +2165,8 @@ struct Media: View { } footer: { Text("These controls mirror the Lock Screen tab so you can tune the media overlay while focusing on playback settings.") } + .disabled(!showStandardMediaControls) + .opacity(showStandardMediaControls ? 1 : 0.5) Picker(selection: $hideNotchOption, label: HStack { @@ -2801,6 +2844,8 @@ struct Appearance: View { @Default(.useMusicVisualizer) var useMusicVisualizer @Default(.customVisualizers) var customVisualizers @Default(.selectedVisualizer) var selectedVisualizer + @Default(.customAppIcons) private var customAppIcons + @Default(.selectedAppIconID) private var selectedAppIconID @Default(.openNotchWidth) var openNotchWidth @Default(.enableMinimalisticUI) var enableMinimalisticUI @Default(.lockScreenGlassCustomizationMode) private var lockScreenGlassCustomizationMode @@ -2812,10 +2857,12 @@ struct Appearance: View { @Default(.lockScreenTimerWidgetUsesBlur) private var timerGlassModeIsGlass @Default(.enableLockScreenMediaWidget) private var enableLockScreenMediaWidget @Default(.enableLockScreenTimerWidget) private var enableLockScreenTimerWidget - let icons: [String] = ["logo2"] - @State private var selectedIcon: String = "logo2" @State private var selectedListVisualizer: CustomVisualizer? = nil + @State private var isIconImporterPresented = false + @State private var isIconDropTarget = false + @State private var iconImportError: String? + @State private var isPresented: Bool = false @State private var name: String = "" @State private var url: String = "" @@ -3159,55 +3206,205 @@ struct Appearance: View { IdleAnimationsSettingsSection() Section { - HStack { - ForEach(icons, id: \.self) { icon in - Spacer() - VStack { - Image(icon) - .resizable() - .frame(width: 80, height: 80) - .background( - RoundedRectangle(cornerRadius: 20, style: .circular) - .strokeBorder( - icon == selectedIcon ? Color.accentColor : .clear, - lineWidth: 2.5 - ) - ) + VStack(alignment: .leading, spacing: 12) { + let columns = [GridItem(.adaptive(minimum: 90), spacing: 12)] + LazyVGrid(columns: columns, spacing: 12) { + appIconCard( + title: "Default", + image: defaultAppIconImage(), + isSelected: selectedAppIconID == nil + ) { + selectedAppIconID = nil + applySelectedAppIcon() + } - Text("Default") - .fontWeight(.medium) - .font(.caption) - .foregroundStyle(icon == selectedIcon ? .white : .secondary) - .padding(.horizontal, 10) - .padding(.vertical, 3) - .background( - Capsule() - .fill(icon == selectedIcon ? Color.accentColor : .clear) - ) - } - .onTapGesture { - withAnimation { - selectedIcon = icon + ForEach(customAppIcons) { icon in + appIconCard( + title: icon.name, + image: customIconImage(for: icon), + isSelected: selectedAppIconID == icon.id.uuidString + ) { + selectedAppIconID = icon.id.uuidString + applySelectedAppIcon() + } + .contextMenu { + Button("Remove") { + removeCustomIcon(icon) + } } - NSApp.applicationIconImage = NSImage(named: icon) } - Spacer() + } + .padding(8) + .background( + RoundedRectangle(cornerRadius: 14, style: .continuous) + .fill(Color.secondary.opacity(isIconDropTarget ? 0.18 : 0.1)) + ) + .overlay( + RoundedRectangle(cornerRadius: 14, style: .continuous) + .strokeBorder(Color.accentColor.opacity(isIconDropTarget ? 0.8 : 0), lineWidth: 2) + ) + .onDrop(of: [UTType.fileURL], isTargeted: $isIconDropTarget) { providers in + handleIconDrop(providers) + } + + HStack(spacing: 8) { + Button("Add icon") { + iconImportError = nil + isIconImporterPresented = true + } + .buttonStyle(.borderedProminent) + + Button("Remove selected") { + if let id = selectedAppIconID, + let icon = customAppIcons.first(where: { $0.id.uuidString == id }) { + removeCustomIcon(icon) + } + } + .buttonStyle(.bordered) + .disabled(selectedAppIconID == nil) + } + + if let iconImportError { + Text(iconImportError) + .font(.caption) + .foregroundStyle(.secondary) + } else { + Text("Drop a PNG, JPEG, TIFF, or ICNS file to add it to your icon library.") + .font(.caption) + .foregroundStyle(.secondary) } } - .disabled(true) + .settingsHighlight(id: highlightID("App icon")) } header: { HStack { Text("App icon") - customBadge(text: "Coming soon") } } } .onAppear(perform: enforceLockScreenGlassConsistency) .onChange(of: lockScreenGlassStyle) { _, _ in enforceLockScreenGlassConsistency() } .onChange(of: lockScreenGlassCustomizationMode) { _, _ in enforceLockScreenGlassConsistency() } + .fileImporter( + isPresented: $isIconImporterPresented, + allowedContentTypes: [.png, .jpeg, .tiff, .icns, .image] + ) { result in + switch result { + case .success(let url): + importCustomIcon(from: url) + case .failure: + iconImportError = "Icon import was canceled or failed." + } + } .navigationTitle("Appearance") } + private func defaultAppIconImage() -> NSImage? { + let fallbackName = Bundle.main.iconFileName ?? "AppIcon" + return NSImage(named: fallbackName) + } + + private func customIconImage(for icon: CustomAppIcon) -> NSImage? { + NSImage(contentsOf: icon.fileURL) + } + + private func appIconCard(title: String, image: NSImage?, isSelected: Bool, action: @escaping () -> Void) -> some View { + Button(action: action) { + VStack(spacing: 6) { + Group { + if let image { + Image(nsImage: image) + .resizable() + .aspectRatio(contentMode: .fit) + } else { + Image(systemName: "app.dashed") + .font(.system(size: 28, weight: .medium)) + .foregroundStyle(.secondary) + } + } + .frame(width: 64, height: 64) + .background( + RoundedRectangle(cornerRadius: 16, style: .continuous) + .fill(Color.black.opacity(0.08)) + ) + .overlay( + RoundedRectangle(cornerRadius: 16, style: .continuous) + .strokeBorder(isSelected ? Color.accentColor : .clear, lineWidth: 2) + ) + + Text(title) + .font(.caption) + .lineLimit(1) + .foregroundStyle(isSelected ? .white : .secondary) + .padding(.horizontal, 8) + .padding(.vertical, 3) + .background( + Capsule().fill(isSelected ? Color.accentColor : .clear) + ) + } + .frame(maxWidth: .infinity) + } + .buttonStyle(.plain) + } + + private func handleIconDrop(_ providers: [NSItemProvider]) -> Bool { + let matching = providers.first { $0.hasItemConformingToTypeIdentifier(UTType.fileURL.identifier) } + guard let provider = matching else { return false } + provider.loadItem(forTypeIdentifier: UTType.fileURL.identifier, options: nil) { item, _ in + let url: URL? + if let directURL = item as? URL { + url = directURL + } else if let data = item as? Data { + url = URL(dataRepresentation: data, relativeTo: nil) + } else { + url = nil + } + guard let url else { return } + Task { @MainActor in importCustomIcon(from: url) } + } + return true + } + + private func importCustomIcon(from url: URL) { + guard let image = NSImage(contentsOf: url) else { + iconImportError = "That file could not be loaded as an image." + return + } + let name = url.deletingPathExtension().lastPathComponent + let ext = url.pathExtension.isEmpty ? "png" : url.pathExtension + let id = UUID() + let fileName = "custom-icon-\(id.uuidString).\(ext)" + let destination = CustomAppIcon.iconDirectory.appendingPathComponent(fileName) + + do { + let data = try Data(contentsOf: url) + try data.write(to: destination, options: [.atomic]) + } catch { + iconImportError = "Unable to save the icon file." + return + } + + let newIcon = CustomAppIcon(id: id, name: name.isEmpty ? "Custom Icon" : name, fileName: fileName) + if !customAppIcons.contains(newIcon) { + customAppIcons.append(newIcon) + } + selectedAppIconID = newIcon.id.uuidString + NSApp.applicationIconImage = image + iconImportError = nil + } + + private func removeCustomIcon(_ icon: CustomAppIcon) { + if let index = customAppIcons.firstIndex(of: icon) { + customAppIcons.remove(at: index) + } + if FileManager.default.fileExists(atPath: icon.fileURL.path) { + try? FileManager.default.removeItem(at: icon.fileURL) + } + if selectedAppIconID == icon.id.uuidString { + selectedAppIconID = nil + applySelectedAppIcon() + } + } + func checkVideoInput() -> Bool { if let _ = AVCaptureDevice.default(for: .video) { return true @@ -3301,6 +3498,7 @@ struct LockScreenSettings: View { @Default(.lockScreenWeatherShowsAQI) private var lockScreenWeatherShowsAQI @Default(.lockScreenWeatherShowsSunrise) private var lockScreenWeatherShowsSunrise @Default(.lockScreenWeatherAQIScale) private var lockScreenWeatherAQIScale + @Default(.showStandardMediaControls) private var showStandardMediaControls private func highlightID(_ title: String) -> String { SettingsTab.lockScreen.highlightID(for: title) @@ -3422,11 +3620,20 @@ struct LockScreenSettings: View { .opacity(enableLockScreenMediaWidget ? 1 : 0.5) .settingsHighlight(id: highlightID("Enable media panel blur")) } + + if !showStandardMediaControls { + Text("Enable Dynamic Island media controls to manage the lock screen panel.") + .font(.caption) + .foregroundStyle(.secondary) + .frame(maxWidth: .infinity, alignment: .leading) + } } header: { Text("Media Panel") } footer: { Text("Enable and style the media controls that appear above the system clock when the screen is locked.") } + .disabled(!showStandardMediaControls) + .opacity(showStandardMediaControls ? 1 : 0.5) Section { Defaults.Toggle("Show lock screen timer", key: .enableLockScreenTimerWidget) diff --git a/DynamicIsland/components/Settings/SettingsWindowController.swift b/DynamicIsland/components/Settings/SettingsWindowController.swift index 719fa9f..a80b382 100644 --- a/DynamicIsland/components/Settings/SettingsWindowController.swift +++ b/DynamicIsland/components/Settings/SettingsWindowController.swift @@ -1,9 +1,24 @@ -// -// SettingsWindowController.swift -// DynamicIsland -// -// Created by Alexander on 2025-06-14. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/components/Settings/SoftwareUpdater.swift b/DynamicIsland/components/Settings/SoftwareUpdater.swift index 22aabc1..584cbcd 100644 --- a/DynamicIsland/components/Settings/SoftwareUpdater.swift +++ b/DynamicIsland/components/Settings/SoftwareUpdater.swift @@ -1,9 +1,24 @@ -// -// SoftwareUpdater.swift -// DynamicIsland -// -// Created by Richard Kunkli on 09/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Sparkle diff --git a/DynamicIsland/components/Shelf/AirDrop.swift b/DynamicIsland/components/Shelf/AirDrop.swift index a46f7c5..f506a4a 100644 --- a/DynamicIsland/components/Shelf/AirDrop.swift +++ b/DynamicIsland/components/Shelf/AirDrop.swift @@ -1,9 +1,20 @@ -// -// AirDrop.swift -// NotchDrop -// -// Created by 秋星桥 on 2024/7/7. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Cocoa diff --git a/DynamicIsland/components/Shelf/AirDropView.swift b/DynamicIsland/components/Shelf/AirDropView.swift index d6e3b2d..cc37037 100644 --- a/DynamicIsland/components/Shelf/AirDropView.swift +++ b/DynamicIsland/components/Shelf/AirDropView.swift @@ -1,9 +1,20 @@ -// -// AirDrop+View.swift -// NotchDrop -// -// Created by 秋星桥 on 2024/7/8. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import UniformTypeIdentifiers diff --git a/DynamicIsland/components/Shelf/DragDropView.swift b/DynamicIsland/components/Shelf/DragDropView.swift index 9957606..4ec5cee 100644 --- a/DynamicIsland/components/Shelf/DragDropView.swift +++ b/DynamicIsland/components/Shelf/DragDropView.swift @@ -1,9 +1,20 @@ -// -// DragDropView.swift -// DynamicIsland -// -// Created by Richard Kunkli on 2024. 10. 19.. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AppKit diff --git a/DynamicIsland/components/Shelf/DropItem.swift b/DynamicIsland/components/Shelf/DropItem.swift index 0748cdd..12ec425 100644 --- a/DynamicIsland/components/Shelf/DropItem.swift +++ b/DynamicIsland/components/Shelf/DropItem.swift @@ -1,9 +1,20 @@ -// -// TrayDrop+DropItem.swift -// TrayDrop -// -// Created by 秋星桥 on 2024/7/8. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Cocoa import Foundation diff --git a/DynamicIsland/components/Shelf/DropItemView.swift b/DynamicIsland/components/Shelf/DropItemView.swift index 3c8eb50..0ec95ad 100644 --- a/DynamicIsland/components/Shelf/DropItemView.swift +++ b/DynamicIsland/components/Shelf/DropItemView.swift @@ -1,9 +1,20 @@ -// -// TrayDrop+DropItemView.swift -// NotchDrop -// -// Created by 秋星桥 on 2024/7/8. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import SwiftUI diff --git a/DynamicIsland/components/Shelf/Ext+FileProvider.swift b/DynamicIsland/components/Shelf/Ext+FileProvider.swift index c755079..b4c7f0e 100644 --- a/DynamicIsland/components/Shelf/Ext+FileProvider.swift +++ b/DynamicIsland/components/Shelf/Ext+FileProvider.swift @@ -1,9 +1,20 @@ -// -// Ext+FileProvider.swift -// NotchDrop -// -// Created by 秋星桥 on 2024/7/8. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Cocoa import Foundation diff --git a/DynamicIsland/components/Shelf/Ext+NSAlert.swift b/DynamicIsland/components/Shelf/Ext+NSAlert.swift index 4c72ab7..dc8c5b3 100644 --- a/DynamicIsland/components/Shelf/Ext+NSAlert.swift +++ b/DynamicIsland/components/Shelf/Ext+NSAlert.swift @@ -1,9 +1,20 @@ -// -// Ext+NSAlert.swift -// NotchDrop -// -// Created by 秋星桥 on 2024/7/9. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Cocoa diff --git a/DynamicIsland/components/Shelf/Ext+NSImage.swift b/DynamicIsland/components/Shelf/Ext+NSImage.swift index 32d357a..6254127 100644 --- a/DynamicIsland/components/Shelf/Ext+NSImage.swift +++ b/DynamicIsland/components/Shelf/Ext+NSImage.swift @@ -1,9 +1,20 @@ -// -// Ext+NSImage.swift -// NotchDrop -// -// Created by 秋星桥 on 2024/7/8. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Cocoa diff --git a/DynamicIsland/components/Shelf/Ext+URL.swift b/DynamicIsland/components/Shelf/Ext+URL.swift index 0eaf442..65081f0 100644 --- a/DynamicIsland/components/Shelf/Ext+URL.swift +++ b/DynamicIsland/components/Shelf/Ext+URL.swift @@ -1,9 +1,20 @@ -// -// Ext+URL.swift -// NotchDrop -// -// Created by 秋星桥 on 2024/7/8. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Cocoa import Foundation diff --git a/DynamicIsland/components/Shelf/Models/Bookmark.swift b/DynamicIsland/components/Shelf/Models/Bookmark.swift index 3a0bff4..076ffe0 100644 --- a/DynamicIsland/components/Shelf/Models/Bookmark.swift +++ b/DynamicIsland/components/Shelf/Models/Bookmark.swift @@ -1,9 +1,24 @@ -// -// Bookmark.swift -// boringNotch -// -// Created by Alexander on 2025-10-08. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import AppKit diff --git a/DynamicIsland/components/Shelf/Models/ShelfItem.swift b/DynamicIsland/components/Shelf/Models/ShelfItem.swift index 0205e1c..f540829 100644 --- a/DynamicIsland/components/Shelf/Models/ShelfItem.swift +++ b/DynamicIsland/components/Shelf/Models/ShelfItem.swift @@ -1,9 +1,24 @@ -// -// ShelfItem.swift -// boringNotch -// -// Created by Alexander on 2025-09-24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Foundation diff --git a/DynamicIsland/components/Shelf/Services/ImageProcessingService.swift b/DynamicIsland/components/Shelf/Services/ImageProcessingService.swift index 7ce3087..57cdbcf 100644 --- a/DynamicIsland/components/Shelf/Services/ImageProcessingService.swift +++ b/DynamicIsland/components/Shelf/Services/ImageProcessingService.swift @@ -1,9 +1,24 @@ -// -// ImageProcessingService.swift -// boringNotch -// -// Created by Alexander on 2025-10-16. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import AppKit diff --git a/DynamicIsland/components/Shelf/Services/QuickLookService.swift b/DynamicIsland/components/Shelf/Services/QuickLookService.swift index 172fe88..0d88c11 100644 --- a/DynamicIsland/components/Shelf/Services/QuickLookService.swift +++ b/DynamicIsland/components/Shelf/Services/QuickLookService.swift @@ -1,9 +1,24 @@ -// -// QuickLookService.swift -// boringNotch -// -// Created by Alexander on 2025-10-07. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import UniformTypeIdentifiers diff --git a/DynamicIsland/components/Shelf/Services/QuickShareService.swift b/DynamicIsland/components/Shelf/Services/QuickShareService.swift index b724692..1dbae74 100644 --- a/DynamicIsland/components/Shelf/Services/QuickShareService.swift +++ b/DynamicIsland/components/Shelf/Services/QuickShareService.swift @@ -1,9 +1,24 @@ -// -// QuickShareService.swift -// boringNotch -// -// Created by Alexander on 2025-09-24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Foundation diff --git a/DynamicIsland/components/Shelf/Services/ShareServiceFinder.swift b/DynamicIsland/components/Shelf/Services/ShareServiceFinder.swift index 3d796e5..d9289ec 100644 --- a/DynamicIsland/components/Shelf/Services/ShareServiceFinder.swift +++ b/DynamicIsland/components/Shelf/Services/ShareServiceFinder.swift @@ -1,9 +1,24 @@ -// -// ShareServiceFinder.swift -// boringNotch -// -// Created by Alexander on 2025-10-06. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Cocoa diff --git a/DynamicIsland/components/Shelf/Services/ShelfActionService.swift b/DynamicIsland/components/Shelf/Services/ShelfActionService.swift index 0bb773b..bfb2f6a 100644 --- a/DynamicIsland/components/Shelf/Services/ShelfActionService.swift +++ b/DynamicIsland/components/Shelf/Services/ShelfActionService.swift @@ -1,9 +1,24 @@ -// -// ShelfActionService.swift -// boringNotch -// -// Created by Alexander on 2025-10-07. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Foundation diff --git a/DynamicIsland/components/Shelf/Services/ShelfDropService.swift b/DynamicIsland/components/Shelf/Services/ShelfDropService.swift index d000665..40008e6 100644 --- a/DynamicIsland/components/Shelf/Services/ShelfDropService.swift +++ b/DynamicIsland/components/Shelf/Services/ShelfDropService.swift @@ -1,9 +1,24 @@ -// -// ShelfDropService.swift -// boringNotch -// -// Created by Alexander on 2025-09-26. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Foundation diff --git a/DynamicIsland/components/Shelf/Services/ShelfPersistenceService.swift b/DynamicIsland/components/Shelf/Services/ShelfPersistenceService.swift index c933b0c..a0b6a9f 100644 --- a/DynamicIsland/components/Shelf/Services/ShelfPersistenceService.swift +++ b/DynamicIsland/components/Shelf/Services/ShelfPersistenceService.swift @@ -1,9 +1,24 @@ -// -// ShelfPersistenceService.swift -// boringNotch -// -// Created by Alexander on 2025-09-24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/components/Shelf/Services/TemporaryFileStorageService.swift b/DynamicIsland/components/Shelf/Services/TemporaryFileStorageService.swift index e06638a..639765f 100644 --- a/DynamicIsland/components/Shelf/Services/TemporaryFileStorageService.swift +++ b/DynamicIsland/components/Shelf/Services/TemporaryFileStorageService.swift @@ -1,9 +1,24 @@ -// -// TemporaryFileStorageService.swift -// boringNotch -// -// Created by Alexander on 2025-09-24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import AppKit diff --git a/DynamicIsland/components/Shelf/Services/ThumbnailService.swift b/DynamicIsland/components/Shelf/Services/ThumbnailService.swift index 3823872..8b20653 100644 --- a/DynamicIsland/components/Shelf/Services/ThumbnailService.swift +++ b/DynamicIsland/components/Shelf/Services/ThumbnailService.swift @@ -1,9 +1,24 @@ -// -// ThumbnailService.swift -// boringNotch -// -// Created by Alexander on 2025-10-07. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import AppKit diff --git a/DynamicIsland/components/Shelf/TrayDrop.swift b/DynamicIsland/components/Shelf/TrayDrop.swift index b701b6a..a7481a7 100644 --- a/DynamicIsland/components/Shelf/TrayDrop.swift +++ b/DynamicIsland/components/Shelf/TrayDrop.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Cocoa import Combine import Foundation diff --git a/DynamicIsland/components/Shelf/ViewModels/ShelfItemViewModel.swift b/DynamicIsland/components/Shelf/ViewModels/ShelfItemViewModel.swift index 0dbe232..867893a 100644 --- a/DynamicIsland/components/Shelf/ViewModels/ShelfItemViewModel.swift +++ b/DynamicIsland/components/Shelf/ViewModels/ShelfItemViewModel.swift @@ -1,9 +1,24 @@ -// -// ShelfItemViewModel.swift -// boringNotch -// -// Created by Alexander on 2025-09-24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import AppKit diff --git a/DynamicIsland/components/Shelf/ViewModels/ShelfSelectionModel.swift b/DynamicIsland/components/Shelf/ViewModels/ShelfSelectionModel.swift index e658528..219c6c7 100644 --- a/DynamicIsland/components/Shelf/ViewModels/ShelfSelectionModel.swift +++ b/DynamicIsland/components/Shelf/ViewModels/ShelfSelectionModel.swift @@ -1,9 +1,24 @@ -// -// ShelfSelectionModel.swift -// boringNotch -// -// Created by Alexander on 2025-09-26. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Combine diff --git a/DynamicIsland/components/Shelf/ViewModels/ShelfStateViewModel.swift b/DynamicIsland/components/Shelf/ViewModels/ShelfStateViewModel.swift index 5cb665d..ab685ff 100644 --- a/DynamicIsland/components/Shelf/ViewModels/ShelfStateViewModel.swift +++ b/DynamicIsland/components/Shelf/ViewModels/ShelfStateViewModel.swift @@ -1,8 +1,24 @@ -// -// ShelfStateViewModel.swift -// boringNotch -// -// Created by Alexander on 2025-10-09. +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import AppKit diff --git a/DynamicIsland/components/Shelf/Views/DragPreviewView.swift b/DynamicIsland/components/Shelf/Views/DragPreviewView.swift index 162cb6c..dc69c75 100644 --- a/DynamicIsland/components/Shelf/Views/DragPreviewView.swift +++ b/DynamicIsland/components/Shelf/Views/DragPreviewView.swift @@ -1,3 +1,25 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import AppKit diff --git a/DynamicIsland/components/Shelf/Views/FileShareView.swift b/DynamicIsland/components/Shelf/Views/FileShareView.swift index f70c5df..ef3449e 100644 --- a/DynamicIsland/components/Shelf/Views/FileShareView.swift +++ b/DynamicIsland/components/Shelf/Views/FileShareView.swift @@ -1,9 +1,24 @@ -// -// FileShareView.swift -// boringNotch -// -// Created by Alexander on 2025-09-24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Defaults diff --git a/DynamicIsland/components/Shelf/Views/ShelfItemView.swift b/DynamicIsland/components/Shelf/Views/ShelfItemView.swift index 6282cc6..ef9fcd9 100644 --- a/DynamicIsland/components/Shelf/Views/ShelfItemView.swift +++ b/DynamicIsland/components/Shelf/Views/ShelfItemView.swift @@ -1,9 +1,24 @@ -// -// ShelfItemView.swift -// boringNotch -// -// Created by Alexander on 2025-09-24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/components/Shelf/Views/ShelfView.swift b/DynamicIsland/components/Shelf/Views/ShelfView.swift index e891de5..f495c8d 100644 --- a/DynamicIsland/components/Shelf/Views/ShelfView.swift +++ b/DynamicIsland/components/Shelf/Views/ShelfView.swift @@ -1,9 +1,24 @@ -// -// ShelfItemView.swift -// boringNotch -// -// Created by Alexander on 2025-09-24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AppKit diff --git a/DynamicIsland/components/Stats/CPUStatsDetailView.swift b/DynamicIsland/components/Stats/CPUStatsDetailView.swift index f40bd86..8826b79 100644 --- a/DynamicIsland/components/Stats/CPUStatsDetailView.swift +++ b/DynamicIsland/components/Stats/CPUStatsDetailView.swift @@ -1,12 +1,20 @@ -// -// CPUStatsDetailView.swift -// DynamicIsland -// -// SwiftUI port of the stats app CPU popup layout. -// Mirrors dashboard, history, detail rows, and top processes. -// -// Created by GitHub Copilot on 18/10/2025. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Stats/CPUStatsSharedViews.swift b/DynamicIsland/components/Stats/CPUStatsSharedViews.swift index de57954..0b5a651 100644 --- a/DynamicIsland/components/Stats/CPUStatsSharedViews.swift +++ b/DynamicIsland/components/Stats/CPUStatsSharedViews.swift @@ -1,12 +1,20 @@ -// -// CPUStatsSharedViews.swift -// DynamicIsland -// -// Shared CPU stats UI components reused across the notch stats tab -// and the legacy stats panel. -// -// Created by GitHub Copilot on 19/10/2025. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Stats/CircularGaugeView.swift b/DynamicIsland/components/Stats/CircularGaugeView.swift index 758d524..f0a92bc 100644 --- a/DynamicIsland/components/Stats/CircularGaugeView.swift +++ b/DynamicIsland/components/Stats/CircularGaugeView.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI struct CircularGaugeView: View { diff --git a/DynamicIsland/components/Stats/DetailedTimelineGraph.swift b/DynamicIsland/components/Stats/DetailedTimelineGraph.swift index e69de29..9553cde 100644 --- a/DynamicIsland/components/Stats/DetailedTimelineGraph.swift +++ b/DynamicIsland/components/Stats/DetailedTimelineGraph.swift @@ -0,0 +1,18 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + diff --git a/DynamicIsland/components/Stats/DiskStatsDetailView.swift b/DynamicIsland/components/Stats/DiskStatsDetailView.swift index 9aefcad..c455269 100644 --- a/DynamicIsland/components/Stats/DiskStatsDetailView.swift +++ b/DynamicIsland/components/Stats/DiskStatsDetailView.swift @@ -1,11 +1,20 @@ -// -// DiskStatsDetailView.swift -// DynamicIsland -// -// Disk detail dashboard mirroring Stats app cards. -// -// Created by GitHub Copilot on 19/10/2025. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Stats/DualTimelineGraph.swift b/DynamicIsland/components/Stats/DualTimelineGraph.swift index e69de29..9553cde 100644 --- a/DynamicIsland/components/Stats/DualTimelineGraph.swift +++ b/DynamicIsland/components/Stats/DualTimelineGraph.swift @@ -0,0 +1,18 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + diff --git a/DynamicIsland/components/Stats/GPUStatsDetailView.swift b/DynamicIsland/components/Stats/GPUStatsDetailView.swift index 3e52a07..7bd4077 100644 --- a/DynamicIsland/components/Stats/GPUStatsDetailView.swift +++ b/DynamicIsland/components/Stats/GPUStatsDetailView.swift @@ -1,11 +1,20 @@ -// -// GPUStatsDetailView.swift -// DynamicIsland -// -// GPU detail dashboard inspired by the Stats app layout. -// -// Created by GitHub Copilot on 19/10/2025. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Stats/MemoryStatsDetailView.swift b/DynamicIsland/components/Stats/MemoryStatsDetailView.swift index 7f8b548..e6ed7cf 100644 --- a/DynamicIsland/components/Stats/MemoryStatsDetailView.swift +++ b/DynamicIsland/components/Stats/MemoryStatsDetailView.swift @@ -1,11 +1,20 @@ -// -// MemoryStatsDetailView.swift -// DynamicIsland -// -// Detailed memory dashboard mirroring the Stats app layout. -// -// Created by GitHub Copilot on 19/10/2025. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Stats/NetworkStatsDetailView.swift b/DynamicIsland/components/Stats/NetworkStatsDetailView.swift index 8be9e7a..41edc1b 100644 --- a/DynamicIsland/components/Stats/NetworkStatsDetailView.swift +++ b/DynamicIsland/components/Stats/NetworkStatsDetailView.swift @@ -1,11 +1,20 @@ -// -// NetworkStatsDetailView.swift -// DynamicIsland -// -// Network detail dashboard with throughput history and totals. -// -// Created by GitHub Copilot on 19/10/2025. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Stats/ProcessStats.swift b/DynamicIsland/components/Stats/ProcessStats.swift index 2d0b4bf..1d154e0 100644 --- a/DynamicIsland/components/Stats/ProcessStats.swift +++ b/DynamicIsland/components/Stats/ProcessStats.swift @@ -1,9 +1,20 @@ -// -// ProcessStats.swift -// DynamicIsland -// -// Process information structure for stats monitoring -// Adapted from boring.notch implementation +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import AppKit diff --git a/DynamicIsland/components/Stats/RankedProcessPopover.swift b/DynamicIsland/components/Stats/RankedProcessPopover.swift index ce1ea24..7ebec0c 100644 --- a/DynamicIsland/components/Stats/RankedProcessPopover.swift +++ b/DynamicIsland/components/Stats/RankedProcessPopover.swift @@ -1,9 +1,20 @@ -// -// RankedProcessPopover.swift -// DynamicIsland -// -// Popover component for displaying ranked processes by different metrics -// Adapted from boring.notch implementation +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI #if os(macOS) diff --git a/DynamicIsland/components/Stats/StatsFormatting.swift b/DynamicIsland/components/Stats/StatsFormatting.swift index 0e77fd2..42ce57a 100644 --- a/DynamicIsland/components/Stats/StatsFormatting.swift +++ b/DynamicIsland/components/Stats/StatsFormatting.swift @@ -1,11 +1,20 @@ -// -// StatsFormatting.swift -// DynamicIsland -// -// Lightweight formatters shared across stats detail popovers. -// -// Created by GitHub Copilot on 19/10/2025. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/components/Tabs/TabButton.swift b/DynamicIsland/components/Tabs/TabButton.swift index 360658d..c6f59a2 100644 --- a/DynamicIsland/components/Tabs/TabButton.swift +++ b/DynamicIsland/components/Tabs/TabButton.swift @@ -1,9 +1,24 @@ -// -// TabButton.swift -// DynamicIsland -// -// Created by Hugo Persson on 2024-08-24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Tabs/TabSelectionView.swift b/DynamicIsland/components/Tabs/TabSelectionView.swift index e88e826..ff77a77 100644 --- a/DynamicIsland/components/Tabs/TabSelectionView.swift +++ b/DynamicIsland/components/Tabs/TabSelectionView.swift @@ -1,9 +1,25 @@ -// -// TabSelectionView.swift -// DynamicIsland -// -// Created by Hugo Persson on 2024-08-25. -// Modified by Hariharan Mudaliar +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AtollExtensionKit import SwiftUI import Defaults @@ -36,12 +52,18 @@ struct TabSelectionView: View { @Default(.enableThirdPartyExtensions) private var enableThirdPartyExtensions @Default(.enableExtensionNotchExperiences) private var enableExtensionNotchExperiences @Default(.enableExtensionNotchTabs) private var enableExtensionNotchTabs + @Default(.showCalendar) private var showCalendar + @Default(.showMirror) private var showMirror + @Default(.showStandardMediaControls) private var showStandardMediaControls + @Default(.enableMinimalisticUI) private var enableMinimalisticUI @Namespace var animation private var tabs: [TabModel] { var tabsArray: [TabModel] = [] - - tabsArray.append(TabModel(label: "Home", icon: "house.fill", view: .home)) + + if homeTabVisible { + tabsArray.append(TabModel(label: "Home", icon: "house.fill", view: .home)) + } if Defaults[.dynamicShelf] { tabsArray.append(TabModel(label: "Shelf", icon: "tray.fill", view: .shelf)) @@ -77,7 +99,9 @@ struct TabSelectionView: View { ) } } - + DispatchQueue.main.async { + ensureValidSelection(with: tabsArray) + } return tabsArray } var body: some View { @@ -121,6 +145,13 @@ struct TabSelectionView: View { extensionNotchExperienceManager.activeExperiences.filter { $0.descriptor.tab != nil } } + private var homeTabVisible: Bool { + if enableMinimalisticUI { + return true + } + return showStandardMediaControls || showCalendar || showMirror + } + private func isSelected(_ tab: TabModel) -> Bool { if tab.view == .extensionExperience { return coordinator.currentView == .extensionExperience @@ -128,6 +159,20 @@ struct TabSelectionView: View { } return coordinator.currentView == tab.view } + + private func ensureValidSelection(with tabs: [TabModel]) { + guard !tabs.isEmpty else { return } + if tabs.contains(where: { isSelected($0) }) { + return + } + guard let first = tabs.first else { return } + if first.view == .extensionExperience { + coordinator.selectedExtensionExperienceID = first.experienceID + } else { + coordinator.selectedExtensionExperienceID = nil + } + coordinator.currentView = first.view + } } #Preview { diff --git a/DynamicIsland/components/TestView.swift b/DynamicIsland/components/TestView.swift index f7ffce2..572af66 100644 --- a/DynamicIsland/components/TestView.swift +++ b/DynamicIsland/components/TestView.swift @@ -1,9 +1,24 @@ -// -// TestView.swift -// DynamicIsland -// -// Created by Richard Kunkli on 14/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Timer/TimerControlOverlay.swift b/DynamicIsland/components/Timer/TimerControlOverlay.swift index c65a4b8..396df2d 100644 --- a/DynamicIsland/components/Timer/TimerControlOverlay.swift +++ b/DynamicIsland/components/Timer/TimerControlOverlay.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI struct TimerControlOverlay: View { diff --git a/DynamicIsland/components/Timer/TimerIconAnimation.swift b/DynamicIsland/components/Timer/TimerIconAnimation.swift index 9eb6bd8..4e7cbcc 100644 --- a/DynamicIsland/components/Timer/TimerIconAnimation.swift +++ b/DynamicIsland/components/Timer/TimerIconAnimation.swift @@ -1,9 +1,20 @@ -// -// TimerIconAnimation.swift -// DynamicIsland -// -// Created by Ebullioscopic on 2025-01-13. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Timer/TimerLiveActivity.swift b/DynamicIsland/components/Timer/TimerLiveActivity.swift index dc8462d..88a5a51 100644 --- a/DynamicIsland/components/Timer/TimerLiveActivity.swift +++ b/DynamicIsland/components/Timer/TimerLiveActivity.swift @@ -1,9 +1,20 @@ -// -// TimerLiveActivity.swift -// DynamicIsland -// -// Created by Ebullioscopic on 2025-01-13. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Timer/TimerPopover.swift b/DynamicIsland/components/Timer/TimerPopover.swift index a3888e7..7b27eff 100644 --- a/DynamicIsland/components/Timer/TimerPopover.swift +++ b/DynamicIsland/components/Timer/TimerPopover.swift @@ -1,9 +1,20 @@ -// -// TimerPopover.swift -// DynamicIsland -// -// Created by GitHub Copilot on 2025-11-01. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults diff --git a/DynamicIsland/components/Tips/TipStore.swift b/DynamicIsland/components/Tips/TipStore.swift index 355159a..31fc985 100644 --- a/DynamicIsland/components/Tips/TipStore.swift +++ b/DynamicIsland/components/Tips/TipStore.swift @@ -1,9 +1,24 @@ -// -// TipStore.swift -// DynamicIsland -// -// Created by Richard Kunkli on 15/09/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import TipKit diff --git a/DynamicIsland/components/UI/FocusIndicator.swift b/DynamicIsland/components/UI/FocusIndicator.swift index 0430cb9..ddfe8d5 100644 --- a/DynamicIsland/components/UI/FocusIndicator.swift +++ b/DynamicIsland/components/UI/FocusIndicator.swift @@ -1,9 +1,20 @@ -// -// FocusIndicator.swift -// DynamicIsland -// -// Small purple moon badge shown while Focus mode is active. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/UI/RecordingIndicator.swift b/DynamicIsland/components/UI/RecordingIndicator.swift index 9b3edaa..af4640d 100644 --- a/DynamicIsland/components/UI/RecordingIndicator.swift +++ b/DynamicIsland/components/UI/RecordingIndicator.swift @@ -1,9 +1,20 @@ -// -// RecordingIndicator.swift -// DynamicIsland -// -// Created for screen recording detection feature -// Displays a red pulsing dot when screen recording is active +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/components/Webcam/WebcamView.swift b/DynamicIsland/components/Webcam/WebcamView.swift index ca1d821..097cee8 100644 --- a/DynamicIsland/components/Webcam/WebcamView.swift +++ b/DynamicIsland/components/Webcam/WebcamView.swift @@ -1,9 +1,24 @@ -// -// WebcamView.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 19/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AVFoundation import Defaults diff --git a/DynamicIsland/components/WhatsNewView.swift b/DynamicIsland/components/WhatsNewView.swift index 6da6f55..6e2ecb0 100644 --- a/DynamicIsland/components/WhatsNewView.swift +++ b/DynamicIsland/components/WhatsNewView.swift @@ -1,9 +1,24 @@ -// -// WhatsNewView.swift -// DynamicIsland -// -// Created by Richard Kunkli on 09/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/enums/TimerDisplayMode.swift b/DynamicIsland/enums/TimerDisplayMode.swift index 3f75951..00835dd 100644 --- a/DynamicIsland/enums/TimerDisplayMode.swift +++ b/DynamicIsland/enums/TimerDisplayMode.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Defaults public enum TimerDisplayMode: String, CaseIterable, Defaults.Serializable, Identifiable { diff --git a/DynamicIsland/enums/generic.swift b/DynamicIsland/enums/generic.swift index c3ffeb7..7f7110f 100644 --- a/DynamicIsland/enums/generic.swift +++ b/DynamicIsland/enums/generic.swift @@ -1,9 +1,24 @@ -// -// generic.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 04/08/24. -// Modified by Hariharan Mudaliar +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Defaults diff --git a/DynamicIsland/extensions/ActionBar.swift b/DynamicIsland/extensions/ActionBar.swift index fd72957..3e87e57 100644 --- a/DynamicIsland/extensions/ActionBar.swift +++ b/DynamicIsland/extensions/ActionBar.swift @@ -1,9 +1,24 @@ -// -// ActionBar.swift -// DynamicIsland -// -// Created by Richard Kunkli on 15/09/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/extensions/AlbumArtFlipModifier.swift b/DynamicIsland/extensions/AlbumArtFlipModifier.swift index 8ccc299..9553cde 100644 --- a/DynamicIsland/extensions/AlbumArtFlipModifier.swift +++ b/DynamicIsland/extensions/AlbumArtFlipModifier.swift @@ -1 +1,18 @@ -// Deprecated placeholder: albumArtFlip modifier now lives alongside MusicManager. +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + diff --git a/DynamicIsland/extensions/BundleInfos.swift b/DynamicIsland/extensions/BundleInfos.swift index 9d6471a..941c048 100644 --- a/DynamicIsland/extensions/BundleInfos.swift +++ b/DynamicIsland/extensions/BundleInfos.swift @@ -1,9 +1,24 @@ -// -// BundleInfos.swift -// DynamicIsland -// -// Created by Richard Kunkli on 08/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/extensions/Button+Bouncing.swift b/DynamicIsland/extensions/Button+Bouncing.swift index f435f93..6346cb7 100644 --- a/DynamicIsland/extensions/Button+Bouncing.swift +++ b/DynamicIsland/extensions/Button+Bouncing.swift @@ -1,9 +1,25 @@ -// -// Button+Bouncing.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 19/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import Defaults diff --git a/DynamicIsland/extensions/Color+AccentColor.swift b/DynamicIsland/extensions/Color+AccentColor.swift index aba982a..d4840c2 100644 --- a/DynamicIsland/extensions/Color+AccentColor.swift +++ b/DynamicIsland/extensions/Color+AccentColor.swift @@ -1,3 +1,25 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #if os(macOS) import SwiftUI import Defaults diff --git a/DynamicIsland/extensions/ConditionalModifier.swift b/DynamicIsland/extensions/ConditionalModifier.swift index 3d676f2..f947058 100644 --- a/DynamicIsland/extensions/ConditionalModifier.swift +++ b/DynamicIsland/extensions/ConditionalModifier.swift @@ -1,9 +1,24 @@ -// -// ConditionalModifier.swift -// DynamicIsland -// -// Created by Richard Kunkli on 20/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/extensions/DataTypes+Extensions.swift b/DynamicIsland/extensions/DataTypes+Extensions.swift index 8de5f9d..6f541c4 100644 --- a/DynamicIsland/extensions/DataTypes+Extensions.swift +++ b/DynamicIsland/extensions/DataTypes+Extensions.swift @@ -1,9 +1,24 @@ - // - // DataTypes+Extensions.swift - // DynamicIsland - // - // Created by Harsh Vardhan Goswami on 27/08/24. - // +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/extensions/Image+InternalSystemName.swift b/DynamicIsland/extensions/Image+InternalSystemName.swift index 1fccf44..345d622 100644 --- a/DynamicIsland/extensions/Image+InternalSystemName.swift +++ b/DynamicIsland/extensions/Image+InternalSystemName.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI @_silgen_name("$s7SwiftUI5ImageV19_internalSystemNameACSS_tcfC") diff --git a/DynamicIsland/extensions/KeyboardShortcutsHelper.swift b/DynamicIsland/extensions/KeyboardShortcutsHelper.swift index c1d2ee3..ded99ee 100644 --- a/DynamicIsland/extensions/KeyboardShortcutsHelper.swift +++ b/DynamicIsland/extensions/KeyboardShortcutsHelper.swift @@ -1,9 +1,24 @@ -// -// KeyboardShortcutsHelper.swift -// DynamicIsland -// -// Created by Richard Kunkli on 16/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import KeyboardShortcuts import SwiftUI diff --git a/DynamicIsland/extensions/MouseTracker.swift b/DynamicIsland/extensions/MouseTracker.swift index 798b18f..f64ee07 100644 --- a/DynamicIsland/extensions/MouseTracker.swift +++ b/DynamicIsland/extensions/MouseTracker.swift @@ -1,9 +1,24 @@ -// -// MouseTracker.swift -// DynamicIsland -// -// Created by Richard Kunkli on 12/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI diff --git a/DynamicIsland/extensions/NSImage+Extensions.swift b/DynamicIsland/extensions/NSImage+Extensions.swift index 0676dff..284398c 100644 --- a/DynamicIsland/extensions/NSImage+Extensions.swift +++ b/DynamicIsland/extensions/NSImage+Extensions.swift @@ -1,9 +1,24 @@ -// -// Image2Color.swift -// DynamicIsland -// -// Created by Richard Kunkli on 07/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AppKit diff --git a/DynamicIsland/extensions/NSItemProvider+LoadHelpers.swift b/DynamicIsland/extensions/NSItemProvider+LoadHelpers.swift index f2790bd..e0fd11b 100644 --- a/DynamicIsland/extensions/NSItemProvider+LoadHelpers.swift +++ b/DynamicIsland/extensions/NSItemProvider+LoadHelpers.swift @@ -1,9 +1,24 @@ -// -// NSItemProvider+LoadHelpers.swift -// DynamicIsland -// -// Ported shelf drop helpers from boringNotch. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Foundation diff --git a/DynamicIsland/extensions/NSMenu+AssociatedObject.swift b/DynamicIsland/extensions/NSMenu+AssociatedObject.swift index 85eef54..a8dbc2e 100644 --- a/DynamicIsland/extensions/NSMenu+AssociatedObject.swift +++ b/DynamicIsland/extensions/NSMenu+AssociatedObject.swift @@ -1,9 +1,24 @@ -// -// NSMenu+AssociatedObject.swift -// DynamicIsland -// -// Retains menu action targets using associated objects. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit diff --git a/DynamicIsland/extensions/PanGesture.swift b/DynamicIsland/extensions/PanGesture.swift index 7f0a1c6..9eafd5d 100644 --- a/DynamicIsland/extensions/PanGesture.swift +++ b/DynamicIsland/extensions/PanGesture.swift @@ -1,9 +1,24 @@ -// -// PanGesture.swift -// DynamicIsland -// -// Created by Richard Kunkli on 21/08/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/extensions/URL+SecurityScoped.swift b/DynamicIsland/extensions/URL+SecurityScoped.swift index 4e06498..d0a0b12 100644 --- a/DynamicIsland/extensions/URL+SecurityScoped.swift +++ b/DynamicIsland/extensions/URL+SecurityScoped.swift @@ -1,9 +1,24 @@ -// -// URL+SecurityScoped.swift -// DynamicIsland -// -// Ported from boringNotch shelf utilities. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import AppKit diff --git a/DynamicIsland/extensions/View+Parallax3D.swift b/DynamicIsland/extensions/View+Parallax3D.swift index a3dfcd4..81c2752 100644 --- a/DynamicIsland/extensions/View+Parallax3D.swift +++ b/DynamicIsland/extensions/View+Parallax3D.swift @@ -1,9 +1,20 @@ -// -// View+Parallax3D.swift -// DynamicIsland -// -// Created for 3D Parallax Effect -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AppKit diff --git a/DynamicIsland/helpers/AccessibilityPermissionStore.swift b/DynamicIsland/helpers/AccessibilityPermissionStore.swift index bfab87f..2b5bd80 100644 --- a/DynamicIsland/helpers/AccessibilityPermissionStore.swift +++ b/DynamicIsland/helpers/AccessibilityPermissionStore.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import Combine import AppKit diff --git a/DynamicIsland/helpers/AppIcons.swift b/DynamicIsland/helpers/AppIcons.swift index 5941fc0..6db4619 100644 --- a/DynamicIsland/helpers/AppIcons.swift +++ b/DynamicIsland/helpers/AppIcons.swift @@ -1,12 +1,28 @@ -// -// AppIcons.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 16/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AppKit +import Defaults struct AppIcons { @@ -58,3 +74,18 @@ func AppIconAsNSImage(for bundleID: String) -> NSImage? { return nil } +func applySelectedAppIcon() { + let customIcons = Defaults[.customAppIcons] + if let selectedID = Defaults[.selectedAppIconID], + let icon = customIcons.first(where: { $0.id.uuidString == selectedID }), + let image = NSImage(contentsOf: icon.fileURL) { + NSApp.applicationIconImage = image + return + } + + let fallbackName = Bundle.main.iconFileName ?? "AppIcon" + if let image = NSImage(named: fallbackName) { + NSApp.applicationIconImage = image + } +} + diff --git a/DynamicIsland/helpers/AppleScriptError.swift b/DynamicIsland/helpers/AppleScriptError.swift index b59cf1f..ebb5abd 100644 --- a/DynamicIsland/helpers/AppleScriptError.swift +++ b/DynamicIsland/helpers/AppleScriptError.swift @@ -1,10 +1,20 @@ -// -// AppleScriptError.swift -// DynamicIsland -// -// Adapted from TheBoringWorker-HUD -// Created by GitHub Copilot on 06/09/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/helpers/AppleScriptHelper.swift b/DynamicIsland/helpers/AppleScriptHelper.swift index 50312ed..64fbe5a 100644 --- a/DynamicIsland/helpers/AppleScriptHelper.swift +++ b/DynamicIsland/helpers/AppleScriptHelper.swift @@ -1,9 +1,24 @@ -// -// AppleScriptHelper.swift -// DynamicIsland -// -// Created by Alexander on 2025-03-29. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/helpers/AppleScriptRunner.swift b/DynamicIsland/helpers/AppleScriptRunner.swift index bf9d0b0..603c2c9 100644 --- a/DynamicIsland/helpers/AppleScriptRunner.swift +++ b/DynamicIsland/helpers/AppleScriptRunner.swift @@ -1,10 +1,24 @@ -// -// AppleScriptRunner.swift -// DynamicIsland -// -// Adapted from TheBoringWorker-HUD -// Created by GitHub Copilot on 06/09/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/helpers/AssociatedObject.swift b/DynamicIsland/helpers/AssociatedObject.swift index 3e96233..f69007c 100644 --- a/DynamicIsland/helpers/AssociatedObject.swift +++ b/DynamicIsland/helpers/AssociatedObject.swift @@ -1,9 +1,24 @@ -// -// AssociatedObject.swift -// DynamicIsland -// -// Helper for retaining objects via Objective-C associated storage. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import ObjectiveC diff --git a/DynamicIsland/helpers/AudioPlayer.swift b/DynamicIsland/helpers/AudioPlayer.swift index b9f4d10..1b0b56e 100644 --- a/DynamicIsland/helpers/AudioPlayer.swift +++ b/DynamicIsland/helpers/AudioPlayer.swift @@ -1,9 +1,24 @@ -// -// AudioPlayer.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 09/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import AppKit diff --git a/DynamicIsland/helpers/Clipboard+Content.swift b/DynamicIsland/helpers/Clipboard+Content.swift index 8b7d02e..c634e11 100644 --- a/DynamicIsland/helpers/Clipboard+Content.swift +++ b/DynamicIsland/helpers/Clipboard+Content.swift @@ -1,3 +1,25 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit func getAttributedString(content: Any, type: NSPasteboard.PasteboardType) -> NSAttributedString? { diff --git a/DynamicIsland/helpers/DisplayServicesDynamic.swift b/DynamicIsland/helpers/DisplayServicesDynamic.swift index ce42ccb..05a63b9 100644 --- a/DynamicIsland/helpers/DisplayServicesDynamic.swift +++ b/DynamicIsland/helpers/DisplayServicesDynamic.swift @@ -1,12 +1,20 @@ -// -// DisplayServicesDynamic.swift -// DynamicIsland -// -// Created by AI Assistant on 25/12/2025. -// -// Lightweight wrapper that resolves DisplayServices symbols at runtime so we -// can call the private brightness APIs without linking against the framework. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Darwin diff --git a/DynamicIsland/helpers/FullDiskAccessPermissionStore.swift b/DynamicIsland/helpers/FullDiskAccessPermissionStore.swift index 65a55f2..a891f1e 100644 --- a/DynamicIsland/helpers/FullDiskAccessPermissionStore.swift +++ b/DynamicIsland/helpers/FullDiskAccessPermissionStore.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import Combine import Foundation diff --git a/DynamicIsland/helpers/LiquidGlassBackground.swift b/DynamicIsland/helpers/LiquidGlassBackground.swift index f251b47..65cc214 100644 --- a/DynamicIsland/helpers/LiquidGlassBackground.swift +++ b/DynamicIsland/helpers/LiquidGlassBackground.swift @@ -1,7 +1,20 @@ -// LiquidGlassBackground.swift -// A SwiftUI wrapper around Apple’s private NSGlassEffectView. -// Provides easy access to every liquid‑glass variant (0–19). - +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AppKit diff --git a/DynamicIsland/helpers/MediaChecker.swift b/DynamicIsland/helpers/MediaChecker.swift index e2a5f4c..b290dd9 100644 --- a/DynamicIsland/helpers/MediaChecker.swift +++ b/DynamicIsland/helpers/MediaChecker.swift @@ -1,9 +1,24 @@ -// -// MediaChecker.swift -// DynamicIsland -// -// Created by Alexander on 2025-07-26. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/helpers/ScreenCaptureVisibilityManager.swift b/DynamicIsland/helpers/ScreenCaptureVisibilityManager.swift index 71993ca..79f088e 100644 --- a/DynamicIsland/helpers/ScreenCaptureVisibilityManager.swift +++ b/DynamicIsland/helpers/ScreenCaptureVisibilityManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import Combine import Defaults diff --git a/DynamicIsland/helpers/SensorError.swift b/DynamicIsland/helpers/SensorError.swift index 19a8972..0e172de 100644 --- a/DynamicIsland/helpers/SensorError.swift +++ b/DynamicIsland/helpers/SensorError.swift @@ -1,10 +1,20 @@ -// -// SensorError.swift -// DynamicIsland -// -// Adapted from TheBoringWorker-HUD -// Created by GitHub Copilot on 06/09/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/helpers/SensorMethod.swift b/DynamicIsland/helpers/SensorMethod.swift index ea149d1..9f9bb80 100644 --- a/DynamicIsland/helpers/SensorMethod.swift +++ b/DynamicIsland/helpers/SensorMethod.swift @@ -1,10 +1,20 @@ -// -// SensorMethod.swift -// DynamicIsland -// -// Adapted from TheBoringWorker-HUD -// Created by GitHub Copilot on 06/09/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/helpers/SystemHUDDebugger.swift b/DynamicIsland/helpers/SystemHUDDebugger.swift index bf93cd5..deb253e 100644 --- a/DynamicIsland/helpers/SystemHUDDebugger.swift +++ b/DynamicIsland/helpers/SystemHUDDebugger.swift @@ -1,10 +1,20 @@ -// -// SystemHUDDebugger.swift -// DynamicIsland -// -// Debug utility for System HUD functionality -// Created by GitHub Copilot on 06/09/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/managers/AudioRouteManager.swift b/DynamicIsland/managers/AudioRouteManager.swift index a481a2b..8de6249 100644 --- a/DynamicIsland/managers/AudioRouteManager.swift +++ b/DynamicIsland/managers/AudioRouteManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Combine import CoreAudio import Foundation diff --git a/DynamicIsland/managers/BatteryActivityManager.swift b/DynamicIsland/managers/BatteryActivityManager.swift index 17bc024..a70d807 100644 --- a/DynamicIsland/managers/BatteryActivityManager.swift +++ b/DynamicIsland/managers/BatteryActivityManager.swift @@ -1,3 +1,25 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import IOKit.ps diff --git a/DynamicIsland/managers/BluetoothAudioManager.swift b/DynamicIsland/managers/BluetoothAudioManager.swift index ffa8c3d..a7d3d30 100644 --- a/DynamicIsland/managers/BluetoothAudioManager.swift +++ b/DynamicIsland/managers/BluetoothAudioManager.swift @@ -1,10 +1,20 @@ -// -// BluetoothAudioManager.swift -// DynamicIsland -// -// Created for Bluetooth audio device connection detection and monitoring -// Detects when audio devices connect and displays HUD with battery status -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Combine diff --git a/DynamicIsland/managers/CalendarManager.swift b/DynamicIsland/managers/CalendarManager.swift index 0dd0e0b..5584461 100644 --- a/DynamicIsland/managers/CalendarManager.swift +++ b/DynamicIsland/managers/CalendarManager.swift @@ -1,9 +1,24 @@ -// -// CalendarManager.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 08/09/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Defaults import EventKit diff --git a/DynamicIsland/managers/CameraMonitor.swift b/DynamicIsland/managers/CameraMonitor.swift index d270c6c..9dc300e 100644 --- a/DynamicIsland/managers/CameraMonitor.swift +++ b/DynamicIsland/managers/CameraMonitor.swift @@ -1,10 +1,20 @@ -// -// CameraMonitor.swift -// DynamicIsland -// -// Created for camera privacy indicator feature -// Monitors system camera usage with CoreMediaIO private APIs + AVFoundation fallback -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import CoreMediaIO diff --git a/DynamicIsland/managers/CapsLockManager.swift b/DynamicIsland/managers/CapsLockManager.swift index 489d037..45d2820 100644 --- a/DynamicIsland/managers/CapsLockManager.swift +++ b/DynamicIsland/managers/CapsLockManager.swift @@ -1,10 +1,20 @@ -// -// CapsLockManager.swift -// DynamicIsland -// -// Created for Caps Lock indicator feature -// Monitors Caps Lock state and integrates with Dynamic Island -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Combine diff --git a/DynamicIsland/managers/CircularHUDWindowManager.swift b/DynamicIsland/managers/CircularHUDWindowManager.swift index f08fb85..2ee90dd 100644 --- a/DynamicIsland/managers/CircularHUDWindowManager.swift +++ b/DynamicIsland/managers/CircularHUDWindowManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #if os(macOS) import AppKit import SwiftUI diff --git a/DynamicIsland/managers/ClipboardManager.swift b/DynamicIsland/managers/ClipboardManager.swift index 949acd8..c6f7ba8 100644 --- a/DynamicIsland/managers/ClipboardManager.swift +++ b/DynamicIsland/managers/ClipboardManager.swift @@ -1,9 +1,20 @@ -// -// ClipboardManager.swift -// DynamicIsland -// -// Created by Ebullioscopic on 17/07/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/managers/ClipboardPanelManager.swift b/DynamicIsland/managers/ClipboardPanelManager.swift index be2a445..434d961 100644 --- a/DynamicIsland/managers/ClipboardPanelManager.swift +++ b/DynamicIsland/managers/ClipboardPanelManager.swift @@ -1,9 +1,20 @@ -// -// ClipboardPanelManager.swift -// DynamicIsland -// -// Created by Ebullioscopic on 12/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/managers/ClipboardWindowManager.swift b/DynamicIsland/managers/ClipboardWindowManager.swift index 727f663..492ff74 100644 --- a/DynamicIsland/managers/ClipboardWindowManager.swift +++ b/DynamicIsland/managers/ClipboardWindowManager.swift @@ -1,9 +1,20 @@ -// -// ClipboardWindowManager.swift -// DynamicIsland -// -// Created by Ebullioscopic on 12/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AppKit diff --git a/DynamicIsland/managers/ColorPickerManager.swift b/DynamicIsland/managers/ColorPickerManager.swift index 4157927..6e3711e 100644 --- a/DynamicIsland/managers/ColorPickerManager.swift +++ b/DynamicIsland/managers/ColorPickerManager.swift @@ -1,9 +1,20 @@ -// -// ColorPickerManager.swift -// DynamicIsland -// -// Created by Ebullioscopic on 14/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Cocoa diff --git a/DynamicIsland/managers/ColorPickerManager_Fixed.swift b/DynamicIsland/managers/ColorPickerManager_Fixed.swift index e69de29..9553cde 100644 --- a/DynamicIsland/managers/ColorPickerManager_Fixed.swift +++ b/DynamicIsland/managers/ColorPickerManager_Fixed.swift @@ -0,0 +1,18 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + diff --git a/DynamicIsland/managers/CustomOSDWindowManager.swift b/DynamicIsland/managers/CustomOSDWindowManager.swift index eb1e709..02d3120 100644 --- a/DynamicIsland/managers/CustomOSDWindowManager.swift +++ b/DynamicIsland/managers/CustomOSDWindowManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #if os(macOS) import AppKit import SwiftUI diff --git a/DynamicIsland/managers/DoNotDisturbManager.swift b/DynamicIsland/managers/DoNotDisturbManager.swift index 047d7fb..ee0b6d7 100644 --- a/DynamicIsland/managers/DoNotDisturbManager.swift +++ b/DynamicIsland/managers/DoNotDisturbManager.swift @@ -1,10 +1,20 @@ -// -// DoNotDisturbManager.swift -// DynamicIsland -// -// Replaces the legacy polling-based Focus detection with -// NSDistributedNotificationCenter-backed monitoring. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Combine diff --git a/DynamicIsland/managers/DownloadManager.swift b/DynamicIsland/managers/DownloadManager.swift index f205905..dd3d4cd 100644 --- a/DynamicIsland/managers/DownloadManager.swift +++ b/DynamicIsland/managers/DownloadManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import SwiftUI import Observation diff --git a/DynamicIsland/managers/Extensions/ExtensionActivityModels.swift b/DynamicIsland/managers/Extensions/ExtensionActivityModels.swift index cb53836..c21e39b 100644 --- a/DynamicIsland/managers/Extensions/ExtensionActivityModels.swift +++ b/DynamicIsland/managers/Extensions/ExtensionActivityModels.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import Defaults import AtollExtensionKit diff --git a/DynamicIsland/managers/Extensions/ExtensionAuthorizationManager.swift b/DynamicIsland/managers/Extensions/ExtensionAuthorizationManager.swift index 43faf6f..2c3501c 100644 --- a/DynamicIsland/managers/Extensions/ExtensionAuthorizationManager.swift +++ b/DynamicIsland/managers/Extensions/ExtensionAuthorizationManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import Defaults import AtollExtensionKit diff --git a/DynamicIsland/managers/Extensions/ExtensionDescriptorValidator.swift b/DynamicIsland/managers/Extensions/ExtensionDescriptorValidator.swift index 5ae58ed..27fd43e 100644 --- a/DynamicIsland/managers/Extensions/ExtensionDescriptorValidator.swift +++ b/DynamicIsland/managers/Extensions/ExtensionDescriptorValidator.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import AtollExtensionKit diff --git a/DynamicIsland/managers/Extensions/ExtensionEventBridge.swift b/DynamicIsland/managers/Extensions/ExtensionEventBridge.swift index 709a045..a10d19e 100644 --- a/DynamicIsland/managers/Extensions/ExtensionEventBridge.swift +++ b/DynamicIsland/managers/Extensions/ExtensionEventBridge.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation /// Bridges extension payload updates between Atoll processes (main app, helpers, XPC services). diff --git a/DynamicIsland/managers/Extensions/ExtensionLiveActivityManager.swift b/DynamicIsland/managers/Extensions/ExtensionLiveActivityManager.swift index 2fc4cd5..8f43953 100644 --- a/DynamicIsland/managers/Extensions/ExtensionLiveActivityManager.swift +++ b/DynamicIsland/managers/Extensions/ExtensionLiveActivityManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import Defaults import AtollExtensionKit diff --git a/DynamicIsland/managers/Extensions/ExtensionLockScreenWidgetManager.swift b/DynamicIsland/managers/Extensions/ExtensionLockScreenWidgetManager.swift index 200f99f..372669e 100644 --- a/DynamicIsland/managers/Extensions/ExtensionLockScreenWidgetManager.swift +++ b/DynamicIsland/managers/Extensions/ExtensionLockScreenWidgetManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import Defaults import AtollExtensionKit diff --git a/DynamicIsland/managers/Extensions/ExtensionLockScreenWidgetPresentationController.swift b/DynamicIsland/managers/Extensions/ExtensionLockScreenWidgetPresentationController.swift index 7d55d9e..5a4b6c1 100644 --- a/DynamicIsland/managers/Extensions/ExtensionLockScreenWidgetPresentationController.swift +++ b/DynamicIsland/managers/Extensions/ExtensionLockScreenWidgetPresentationController.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import Combine import Defaults diff --git a/DynamicIsland/managers/Extensions/ExtensionNotchExperienceManager.swift b/DynamicIsland/managers/Extensions/ExtensionNotchExperienceManager.swift index 932faf3..f4a7117 100644 --- a/DynamicIsland/managers/Extensions/ExtensionNotchExperienceManager.swift +++ b/DynamicIsland/managers/Extensions/ExtensionNotchExperienceManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import Defaults import AtollExtensionKit diff --git a/DynamicIsland/managers/IdleAnimationManager.swift b/DynamicIsland/managers/IdleAnimationManager.swift index 3a3583e..3bb02cc 100644 --- a/DynamicIsland/managers/IdleAnimationManager.swift +++ b/DynamicIsland/managers/IdleAnimationManager.swift @@ -1,10 +1,20 @@ -// -// IdleAnimationManager.swift -// DynamicIsland -// -// Created by AI Assistant on 11/10/2025. -// Manages custom idle animations (Lottie files) for the Atoll -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Defaults diff --git a/DynamicIsland/managers/ImageService.swift b/DynamicIsland/managers/ImageService.swift index 878e009..ecc91b7 100644 --- a/DynamicIsland/managers/ImageService.swift +++ b/DynamicIsland/managers/ImageService.swift @@ -1,9 +1,24 @@ -// -// ImageService.swift -// DynamicIsland -// -// Created by Alexander on 2025-09-13. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Defaults diff --git a/DynamicIsland/managers/KeyboardBrightnessSensor.swift b/DynamicIsland/managers/KeyboardBrightnessSensor.swift index ad40354..f655521 100644 --- a/DynamicIsland/managers/KeyboardBrightnessSensor.swift +++ b/DynamicIsland/managers/KeyboardBrightnessSensor.swift @@ -1,9 +1,20 @@ -// -// KeyboardBrightnessSensor.swift -// DynamicIsland -// -// Copied from TheBoringWorker-HUD `KeyboardManager.swift` and adapted for Atoll. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import IOKit diff --git a/DynamicIsland/managers/LockScreenDisplayContextProvider.swift b/DynamicIsland/managers/LockScreenDisplayContextProvider.swift index e181185..2047841 100644 --- a/DynamicIsland/managers/LockScreenDisplayContextProvider.swift +++ b/DynamicIsland/managers/LockScreenDisplayContextProvider.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import CoreGraphics diff --git a/DynamicIsland/managers/LockScreenLiveActivityWindowManager.swift b/DynamicIsland/managers/LockScreenLiveActivityWindowManager.swift index 3aacfc1..4a05c8b 100644 --- a/DynamicIsland/managers/LockScreenLiveActivityWindowManager.swift +++ b/DynamicIsland/managers/LockScreenLiveActivityWindowManager.swift @@ -1,9 +1,20 @@ -// -// LockScreenLiveActivityWindowManager.swift -// DynamicIsland -// -// Delegates the lock screen live activity layout to SkyLight so it remains visible when the display is locked. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Defaults diff --git a/DynamicIsland/managers/LockScreenManager.swift b/DynamicIsland/managers/LockScreenManager.swift index f578dae..e1c7a6e 100644 --- a/DynamicIsland/managers/LockScreenManager.swift +++ b/DynamicIsland/managers/LockScreenManager.swift @@ -1,10 +1,20 @@ -// -// LockScreenManager.swift -// DynamicIsland -// -// Created for lock screen detection feature -// Monitors system lock/unlock events and provides real-time status updates -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Combine diff --git a/DynamicIsland/managers/LockScreenPanelManager.swift b/DynamicIsland/managers/LockScreenPanelManager.swift index 349587a..3dbe0c8 100644 --- a/DynamicIsland/managers/LockScreenPanelManager.swift +++ b/DynamicIsland/managers/LockScreenPanelManager.swift @@ -1,9 +1,20 @@ -// -// LockScreenPanelManager.swift -// DynamicIsland -// -// Manages the lock screen music panel window. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AppKit diff --git a/DynamicIsland/managers/LockScreenReminderWidgetManager.swift b/DynamicIsland/managers/LockScreenReminderWidgetManager.swift index 4bc7a52..464e413 100644 --- a/DynamicIsland/managers/LockScreenReminderWidgetManager.swift +++ b/DynamicIsland/managers/LockScreenReminderWidgetManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import Combine import Defaults diff --git a/DynamicIsland/managers/LockScreenReminderWidgetPanelManager.swift b/DynamicIsland/managers/LockScreenReminderWidgetPanelManager.swift index db3d69c..b258c73 100644 --- a/DynamicIsland/managers/LockScreenReminderWidgetPanelManager.swift +++ b/DynamicIsland/managers/LockScreenReminderWidgetPanelManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import SwiftUI import SkyLightWindow diff --git a/DynamicIsland/managers/LockScreenTimerWidgetManager.swift b/DynamicIsland/managers/LockScreenTimerWidgetManager.swift index a91b0c8..937c73e 100644 --- a/DynamicIsland/managers/LockScreenTimerWidgetManager.swift +++ b/DynamicIsland/managers/LockScreenTimerWidgetManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import Combine import Defaults diff --git a/DynamicIsland/managers/LockScreenWeatherManager.swift b/DynamicIsland/managers/LockScreenWeatherManager.swift index 1a1287e..ec8d8d3 100644 --- a/DynamicIsland/managers/LockScreenWeatherManager.swift +++ b/DynamicIsland/managers/LockScreenWeatherManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import Defaults import CoreLocation diff --git a/DynamicIsland/managers/LockScreenWeatherPanelManager.swift b/DynamicIsland/managers/LockScreenWeatherPanelManager.swift index 7c38fcb..78f019b 100644 --- a/DynamicIsland/managers/LockScreenWeatherPanelManager.swift +++ b/DynamicIsland/managers/LockScreenWeatherPanelManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import SwiftUI import SkyLightWindow diff --git a/DynamicIsland/managers/MacBatteryManager.swift b/DynamicIsland/managers/MacBatteryManager.swift index fe8ee69..513feb1 100644 --- a/DynamicIsland/managers/MacBatteryManager.swift +++ b/DynamicIsland/managers/MacBatteryManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import IOKit.ps diff --git a/DynamicIsland/managers/MediaKeyInterceptor.swift b/DynamicIsland/managers/MediaKeyInterceptor.swift index d1020db..791fa74 100644 --- a/DynamicIsland/managers/MediaKeyInterceptor.swift +++ b/DynamicIsland/managers/MediaKeyInterceptor.swift @@ -1,3 +1,25 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import AppKit import CoreGraphics diff --git a/DynamicIsland/managers/MemoryUsageMonitor.swift b/DynamicIsland/managers/MemoryUsageMonitor.swift index 3b50bdb..34c9898 100644 --- a/DynamicIsland/managers/MemoryUsageMonitor.swift +++ b/DynamicIsland/managers/MemoryUsageMonitor.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import Foundation import Darwin diff --git a/DynamicIsland/managers/MicrophoneMonitor.swift b/DynamicIsland/managers/MicrophoneMonitor.swift index 62ab7af..386701b 100644 --- a/DynamicIsland/managers/MicrophoneMonitor.swift +++ b/DynamicIsland/managers/MicrophoneMonitor.swift @@ -1,10 +1,20 @@ -// -// MicrophoneMonitor.swift -// DynamicIsland -// -// Created for microphone privacy indicator feature -// Monitors system microphone usage with event-driven CoreAudio property listeners -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import CoreAudio diff --git a/DynamicIsland/managers/MusicControlWindowManager.swift b/DynamicIsland/managers/MusicControlWindowManager.swift index f72d59e..9789149 100644 --- a/DynamicIsland/managers/MusicControlWindowManager.swift +++ b/DynamicIsland/managers/MusicControlWindowManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #if os(macOS) import AppKit import SwiftUI diff --git a/DynamicIsland/managers/MusicManager.swift b/DynamicIsland/managers/MusicManager.swift index 241ac7c..418e01b 100644 --- a/DynamicIsland/managers/MusicManager.swift +++ b/DynamicIsland/managers/MusicManager.swift @@ -1,9 +1,25 @@ -// -// MusicManager.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 03/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import Combine import Defaults @@ -477,6 +493,11 @@ class MusicManager: ObservableObject { } private func updateSneakPeek() { + let standardControlsEnabled = Defaults[.showStandardMediaControls] + let minimalisticEnabled = Defaults[.enableMinimalisticUI] + + guard standardControlsEnabled || minimalisticEnabled else { return } + if isPlaying && Defaults[.enableSneakPeek] { if Defaults[.sneakPeekStyles] == .standard { coordinator.toggleSneakPeek(status: true, type: .music) diff --git a/DynamicIsland/managers/NotchSpaceManager.swift b/DynamicIsland/managers/NotchSpaceManager.swift index 4954a79..aa19db6 100644 --- a/DynamicIsland/managers/NotchSpaceManager.swift +++ b/DynamicIsland/managers/NotchSpaceManager.swift @@ -1,9 +1,24 @@ -// -// NotchSpaceManager.swift -// DynamicIsland -// -// Created by Alexander on 2024-10-27. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/managers/PrivacyIndicatorManager.swift b/DynamicIsland/managers/PrivacyIndicatorManager.swift index 0367481..c5a0dcc 100644 --- a/DynamicIsland/managers/PrivacyIndicatorManager.swift +++ b/DynamicIsland/managers/PrivacyIndicatorManager.swift @@ -1,10 +1,20 @@ -// -// PrivacyIndicatorManager.swift -// DynamicIsland -// -// Created for privacy indicator feature -// Coordinates camera, microphone, and screen recording indicators -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import SwiftUI diff --git a/DynamicIsland/managers/ReminderLiveActivityManager.swift b/DynamicIsland/managers/ReminderLiveActivityManager.swift index 47bf209..76d8b5e 100644 --- a/DynamicIsland/managers/ReminderLiveActivityManager.swift +++ b/DynamicIsland/managers/ReminderLiveActivityManager.swift @@ -1,9 +1,20 @@ -// -// ReminderLiveActivityManager.swift -// DynamicIsland -// -// Created by GitHub Copilot on 2025-11-12. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Combine import Defaults diff --git a/DynamicIsland/managers/ScreenAssistantManager.swift b/DynamicIsland/managers/ScreenAssistantManager.swift index 72c9c73..6577ba6 100644 --- a/DynamicIsland/managers/ScreenAssistantManager.swift +++ b/DynamicIsland/managers/ScreenAssistantManager.swift @@ -1,8 +1,20 @@ -// -// ScreenAssistantManager.swift -// DynamicIsland -// -// Created by Hariharan Mudaliar +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/managers/ScreenAssistantPanelManager.swift b/DynamicIsland/managers/ScreenAssistantPanelManager.swift index a48b2af..5e18565 100644 --- a/DynamicIsland/managers/ScreenAssistantPanelManager.swift +++ b/DynamicIsland/managers/ScreenAssistantPanelManager.swift @@ -1,8 +1,20 @@ -// -// ScreenAssistantPanelManager.swift -// DynamicIsland -// -// Created by Hariharan Mudaliar +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import SwiftUI diff --git a/DynamicIsland/managers/ScreenRecordingManager.swift b/DynamicIsland/managers/ScreenRecordingManager.swift index 22b5fb9..7411cb5 100644 --- a/DynamicIsland/managers/ScreenRecordingManager.swift +++ b/DynamicIsland/managers/ScreenRecordingManager.swift @@ -1,10 +1,20 @@ -// -// ScreenRecordingManager.swift -// DynamicIsland -// -// Created for screen recording detection feature -// Monitors system for active screen recording and provides real-time status updates -// Uses private CoreGraphics APIs for accurate, event-driven screen capture detection +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Combine diff --git a/DynamicIsland/managers/StatsManager.swift b/DynamicIsland/managers/StatsManager.swift index d59bfc4..8bcef43 100644 --- a/DynamicIsland/managers/StatsManager.swift +++ b/DynamicIsland/managers/StatsManager.swift @@ -1,9 +1,20 @@ -// -// StatsManager.swift -// DynamicIsland -// -// System performance monitoring for the Atoll Stats feature -// Created by Hariharan Mudaliar +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Combine diff --git a/DynamicIsland/managers/SystemChangesObserver.swift b/DynamicIsland/managers/SystemChangesObserver.swift index 3491dcf..e9d59fc 100644 --- a/DynamicIsland/managers/SystemChangesObserver.swift +++ b/DynamicIsland/managers/SystemChangesObserver.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import CoreGraphics import Defaults diff --git a/DynamicIsland/managers/SystemDisplayManager.swift b/DynamicIsland/managers/SystemDisplayManager.swift index ca327f6..94195f3 100644 --- a/DynamicIsland/managers/SystemDisplayManager.swift +++ b/DynamicIsland/managers/SystemDisplayManager.swift @@ -1,10 +1,20 @@ -// -// SystemDisplayManager.swift -// DynamicIsland -// -// Adapted from TheBoringWorker-HUD DisplayManager.swift -// Created by GitHub Copilot on 06/09/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Cocoa diff --git a/DynamicIsland/managers/SystemHUDManager.swift b/DynamicIsland/managers/SystemHUDManager.swift index 77c3f51..3591425 100644 --- a/DynamicIsland/managers/SystemHUDManager.swift +++ b/DynamicIsland/managers/SystemHUDManager.swift @@ -1,9 +1,20 @@ -// -// SystemHUDManager.swift -// DynamicIsland -// -// Created by GitHub Copilot on 06/09/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Defaults diff --git a/DynamicIsland/managers/SystemKeyObserver.swift b/DynamicIsland/managers/SystemKeyObserver.swift index c6e5a65..6cba1a0 100644 --- a/DynamicIsland/managers/SystemKeyObserver.swift +++ b/DynamicIsland/managers/SystemKeyObserver.swift @@ -1,14 +1,20 @@ -// -// SystemKeyObserver.swift -// DynamicIsland -// -// Adapted from TheBoringWorker-HUD KeyPressObserver.swift -// Created by GitHub Copilot on 06/09/25. -// -// ⚠️ DEPRECATED: This class is non-functional as it extends NSApplication -// but is never used as the main app class. Event monitoring has been moved -// to SystemChangesObserver using NSEvent.addGlobalMonitorForEvents. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Cocoa diff --git a/DynamicIsland/managers/SystemKeyboardBacklightController.swift b/DynamicIsland/managers/SystemKeyboardBacklightController.swift index 7163e01..1c4af94 100644 --- a/DynamicIsland/managers/SystemKeyboardBacklightController.swift +++ b/DynamicIsland/managers/SystemKeyboardBacklightController.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation extension Notification.Name { diff --git a/DynamicIsland/managers/SystemMediaControllers.swift b/DynamicIsland/managers/SystemMediaControllers.swift index dd605d0..d873e04 100644 --- a/DynamicIsland/managers/SystemMediaControllers.swift +++ b/DynamicIsland/managers/SystemMediaControllers.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import CoreAudio import CoreGraphics diff --git a/DynamicIsland/managers/SystemOSDManager.swift b/DynamicIsland/managers/SystemOSDManager.swift index 9a9cfe2..52e8fc8 100644 --- a/DynamicIsland/managers/SystemOSDManager.swift +++ b/DynamicIsland/managers/SystemOSDManager.swift @@ -1,10 +1,20 @@ -// -// SystemOSDManager.swift -// DynamicIsland -// -// Adapted from TheBoringWorker-HUD OSDUIManager.swift -// Created by GitHub Copilot on 06/09/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/managers/SystemTimerBridge.swift b/DynamicIsland/managers/SystemTimerBridge.swift index 99f8bb6..29cb381 100644 --- a/DynamicIsland/managers/SystemTimerBridge.swift +++ b/DynamicIsland/managers/SystemTimerBridge.swift @@ -1,9 +1,20 @@ -// -// SystemTimerBridge.swift -// DynamicIsland -// -// Mirrors the macOS Clock timer into the custom timer live activity. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import ApplicationServices diff --git a/DynamicIsland/managers/SystemVolumeManager.swift b/DynamicIsland/managers/SystemVolumeManager.swift index ee2a2bb..1f008b5 100644 --- a/DynamicIsland/managers/SystemVolumeManager.swift +++ b/DynamicIsland/managers/SystemVolumeManager.swift @@ -1,10 +1,20 @@ -// -// SystemVolumeManager.swift -// DynamicIsland -// -// Adapted from TheBoringWorker-HUD VolumeManager.swift -// Created by GitHub Copilot on 06/09/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/managers/TimerControlWindowManager.swift b/DynamicIsland/managers/TimerControlWindowManager.swift index 0803eb7..35193cb 100644 --- a/DynamicIsland/managers/TimerControlWindowManager.swift +++ b/DynamicIsland/managers/TimerControlWindowManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #if os(macOS) import AppKit import SwiftUI diff --git a/DynamicIsland/managers/TimerManager.swift b/DynamicIsland/managers/TimerManager.swift index 1855476..88fe387 100644 --- a/DynamicIsland/managers/TimerManager.swift +++ b/DynamicIsland/managers/TimerManager.swift @@ -1,9 +1,20 @@ -// -// TimerManager.swift -// DynamicIsland -// -// Timer management for the Atoll -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Combine diff --git a/DynamicIsland/managers/VerticalHUDWindowManager.swift b/DynamicIsland/managers/VerticalHUDWindowManager.swift index cdff521..6f1dd9d 100644 --- a/DynamicIsland/managers/VerticalHUDWindowManager.swift +++ b/DynamicIsland/managers/VerticalHUDWindowManager.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #if os(macOS) import AppKit import SwiftUI diff --git a/DynamicIsland/managers/WebcamManager.swift b/DynamicIsland/managers/WebcamManager.swift index ea4fc83..ea49666 100644 --- a/DynamicIsland/managers/WebcamManager.swift +++ b/DynamicIsland/managers/WebcamManager.swift @@ -1,9 +1,25 @@ -// -// WebcamManager.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 19/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AVFoundation import SwiftUI diff --git a/DynamicIsland/menu/StatusBarMenu.swift b/DynamicIsland/menu/StatusBarMenu.swift index 94b2715..27c16b4 100644 --- a/DynamicIsland/menu/StatusBarMenu.swift +++ b/DynamicIsland/menu/StatusBarMenu.swift @@ -1,3 +1,25 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Cocoa class StatusBarMenu: NSMenu { diff --git a/DynamicIsland/models/BatteryStatusViewModel.swift b/DynamicIsland/models/BatteryStatusViewModel.swift index 59cf53d..42d4ce3 100644 --- a/DynamicIsland/models/BatteryStatusViewModel.swift +++ b/DynamicIsland/models/BatteryStatusViewModel.swift @@ -1,3 +1,25 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Cocoa import Defaults import Foundation diff --git a/DynamicIsland/models/CPUMetrics.swift b/DynamicIsland/models/CPUMetrics.swift index 7f600f7..3cbddc9 100644 --- a/DynamicIsland/models/CPUMetrics.swift +++ b/DynamicIsland/models/CPUMetrics.swift @@ -1,11 +1,20 @@ -// -// CPUMetrics.swift -// DynamicIsland -// -// Lightweight CPU metric models derived from StatsManager sampling. -// -// Created by GitHub Copilot on 18/10/2025. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/models/CalendarModel.swift b/DynamicIsland/models/CalendarModel.swift index d396f0a..dd6e8b0 100644 --- a/DynamicIsland/models/CalendarModel.swift +++ b/DynamicIsland/models/CalendarModel.swift @@ -1,10 +1,24 @@ -// -// CalendarModel.swift -// Calendr -// -// Created by Paker on 31/12/20. -// Original source: https://github.com/pakerwreah/Calendr -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Cocoa diff --git a/DynamicIsland/models/Constants.swift b/DynamicIsland/models/Constants.swift index 1db0658..684b63c 100644 --- a/DynamicIsland/models/Constants.swift +++ b/DynamicIsland/models/Constants.swift @@ -1,9 +1,24 @@ -// -// Constants.swift -// DynamicIsland -// -// Created by Richard Kunkli on 2024. 10. 17.. -// Modified by Hariharan Mudaliar +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Defaults @@ -27,6 +42,32 @@ struct CustomVisualizer: Codable, Hashable, Equatable, Defaults.Serializable { var speed: CGFloat = 1.0 } +struct CustomAppIcon: Codable, Hashable, Equatable, Defaults.Serializable, Identifiable { + let id: UUID + var name: String + var fileName: String + var addedAt: Date + + init(id: UUID = UUID(), name: String, fileName: String, addedAt: Date = .now) { + self.id = id + self.name = name + self.fileName = fileName + self.addedAt = addedAt + } + + static let iconDirectory: URL = { + let base = FileManager.default.urls(for: .applicationSupportDirectory, in: .userDomainMask).first! + let dir = base.appendingPathComponent("DynamicIsland", isDirectory: true) + .appendingPathComponent("AppIcons", isDirectory: true) + try? FileManager.default.createDirectory(at: dir, withIntermediateDirectories: true) + return dir + }() + + var fileURL: URL { + Self.iconDirectory.appendingPathComponent(fileName) + } +} + // MARK: - Custom Idle Animation Models struct CustomIdleAnimation: Codable, Hashable, Equatable, Defaults.Serializable, Identifiable { let id: UUID @@ -656,6 +697,8 @@ extension Defaults.Keys { static let useMusicVisualizer = Key("useMusicVisualizer", default: true) static let customVisualizers = Key<[CustomVisualizer]>("customVisualizers", default: []) static let selectedVisualizer = Key("selectedVisualizer", default: nil) + static let customAppIcons = Key<[CustomAppIcon]>("customAppIcons", default: []) + static let selectedAppIconID = Key("selectedAppIconID", default: nil) // MARK: Gestures static let enableGestures = Key("enableGestures", default: true) @@ -683,6 +726,10 @@ extension Defaults.Keys { static let didMigrateMusicControlSlots = Key("didMigrateMusicControlSlots", default: false) static let musicSkipBehavior = Key("musicSkipBehavior", default: .track) static let musicControlWindowEnabled = Key("musicControlWindowEnabled", default: false) + static let showStandardMediaControls = Key("showStandardMediaControls", default: true) + static let cachedMusicLiveActivityPreference = Key("cachedMusicLiveActivityPreference", default: nil) + static let cachedLockScreenMediaWidgetPreference = Key("cachedLockScreenMediaWidgetPreference", default: nil) + static let cachedMusicControlWindowPreference = Key("cachedMusicControlWindowPreference", default: nil) // Enable lock screen media widget (shows the standalone panel when screen is locked) static let enableLockScreenMediaWidget = Key("enableLockScreenMediaWidget", default: true) static let enableLockScreenWeatherWidget = Key("enableLockScreenWeatherWidget", default: true) diff --git a/DynamicIsland/models/DynamicIslandViewModel.swift b/DynamicIsland/models/DynamicIslandViewModel.swift index bdf8bf0..c98c713 100644 --- a/DynamicIsland/models/DynamicIslandViewModel.swift +++ b/DynamicIsland/models/DynamicIslandViewModel.swift @@ -1,9 +1,20 @@ -// -// DynamicIslandViewModel.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 04/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Combine import Defaults diff --git a/DynamicIsland/models/EventModel.swift b/DynamicIsland/models/EventModel.swift index 267b913..fe42bd2 100644 --- a/DynamicIsland/models/EventModel.swift +++ b/DynamicIsland/models/EventModel.swift @@ -1,11 +1,24 @@ -// -// EventModel.swift -// Calendr -// -// Created by Paker on 24/12/20. -// Original source: https://github.com/pakerwreah/Calendr -// Modified by Alexander on 2025-05-18. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/models/LockScreenReminderWidgetSnapshot.swift b/DynamicIsland/models/LockScreenReminderWidgetSnapshot.swift index ca7f3e4..99f2ebc 100644 --- a/DynamicIsland/models/LockScreenReminderWidgetSnapshot.swift +++ b/DynamicIsland/models/LockScreenReminderWidgetSnapshot.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import SwiftUI import AppKit diff --git a/DynamicIsland/models/MusicControlButton.swift b/DynamicIsland/models/MusicControlButton.swift index 9a701ea..c4023a9 100644 --- a/DynamicIsland/models/MusicControlButton.swift +++ b/DynamicIsland/models/MusicControlButton.swift @@ -1,3 +1,25 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Defaults enum MusicControlButton: String, CaseIterable, Identifiable, Codable, Defaults.Serializable { diff --git a/DynamicIsland/models/PickedColor.swift b/DynamicIsland/models/PickedColor.swift index 4f1ed78..575d64d 100644 --- a/DynamicIsland/models/PickedColor.swift +++ b/DynamicIsland/models/PickedColor.swift @@ -1,9 +1,20 @@ -// -// PickedColor.swift -// DynamicIsland -// -// Created by Ebullioscopic on 14/08/25. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import Foundation diff --git a/DynamicIsland/models/PlaybackState.swift b/DynamicIsland/models/PlaybackState.swift index 76baee2..0eeea5c 100644 --- a/DynamicIsland/models/PlaybackState.swift +++ b/DynamicIsland/models/PlaybackState.swift @@ -1,9 +1,24 @@ -// -// PlaybackState.swift -// DynamicIsland -// -// Created by Alexander Greco on 2025-03-29. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/models/SharingStateManager.swift b/DynamicIsland/models/SharingStateManager.swift index 7d9ff54..659130d 100644 --- a/DynamicIsland/models/SharingStateManager.swift +++ b/DynamicIsland/models/SharingStateManager.swift @@ -1,9 +1,24 @@ -// -// SharingStateManager.swift -// boringNotch -// -// Created by Alexander on 2025-10-10. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit import Combine diff --git a/DynamicIsland/models/TimerPreset.swift b/DynamicIsland/models/TimerPreset.swift index e2630fb..b733459 100644 --- a/DynamicIsland/models/TimerPreset.swift +++ b/DynamicIsland/models/TimerPreset.swift @@ -1,9 +1,20 @@ -// -// TimerPreset.swift -// DynamicIsland -// -// Created by GitHub Copilot on 2025-11-01. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import SwiftUI import AppKit diff --git a/DynamicIsland/observers/FullscreenMediaDetection.swift b/DynamicIsland/observers/FullscreenMediaDetection.swift index 9ed38bf..1e9d8a6 100644 --- a/DynamicIsland/observers/FullscreenMediaDetection.swift +++ b/DynamicIsland/observers/FullscreenMediaDetection.swift @@ -1,9 +1,24 @@ -// -// FullscreenMediaDetection.swift -// DynamicIsland -// -// Created by Richard Kunkli on 06/09/2024. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Defaults import MacroVisionKit diff --git a/DynamicIsland/private/CGSSpace.swift b/DynamicIsland/private/CGSSpace.swift index 720d558..1ccc990 100644 --- a/DynamicIsland/private/CGSSpace.swift +++ b/DynamicIsland/private/CGSSpace.swift @@ -1,13 +1,24 @@ -// -// CGSSpace.swift -// DynamicIsland -// -// This Source Code Form is subject to the terms of the Mozilla Public -// License, v. 2.0. If a copy of the MPL was not distributed with this -// file, You can obtain one at http://mozilla.org/MPL/2.0/. -// -// Original source: https://github.com/avaidyam/Parrot/ -// Modified by Alexander Greco on 2024-10-27 +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import AppKit diff --git a/DynamicIsland/services/Extensions/ExtensionXPCService.swift b/DynamicIsland/services/Extensions/ExtensionXPCService.swift index 8bf8c24..7bc005b 100644 --- a/DynamicIsland/services/Extensions/ExtensionXPCService.swift +++ b/DynamicIsland/services/Extensions/ExtensionXPCService.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import Foundation import Defaults diff --git a/DynamicIsland/services/Extensions/ExtensionXPCServiceHost.swift b/DynamicIsland/services/Extensions/ExtensionXPCServiceHost.swift index f0d329b..a1c99f6 100644 --- a/DynamicIsland/services/Extensions/ExtensionXPCServiceHost.swift +++ b/DynamicIsland/services/Extensions/ExtensionXPCServiceHost.swift @@ -1,3 +1,21 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import AppKit import Foundation import AtollExtensionKit diff --git a/DynamicIsland/sizing/matters.swift b/DynamicIsland/sizing/matters.swift index fbfb05d..5987a3e 100644 --- a/DynamicIsland/sizing/matters.swift +++ b/DynamicIsland/sizing/matters.swift @@ -1,11 +1,24 @@ -// -// -// matters.swift -// DynamicIsland -// -// -// Created by Harsh Vardhan Goswami on 05/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Defaults import Foundation diff --git a/DynamicIsland/strings/constants.swift b/DynamicIsland/strings/constants.swift index 4c19750..ebe3f3f 100644 --- a/DynamicIsland/strings/constants.swift +++ b/DynamicIsland/strings/constants.swift @@ -1,9 +1,20 @@ -// -// constants.swift -// DynamicIsland -// -// Created by Harsh Vardhan Goswami on 04/08/24. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation diff --git a/DynamicIsland/utils/AppleHardwareInfo.swift b/DynamicIsland/utils/AppleHardwareInfo.swift index c098a6b..49a6190 100644 --- a/DynamicIsland/utils/AppleHardwareInfo.swift +++ b/DynamicIsland/utils/AppleHardwareInfo.swift @@ -1,9 +1,20 @@ -// -// AppleHardwareInfo.swift -// DynamicIsland -// -// Minimal system introspection helpers derived from the Stats project. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import IOKit diff --git a/DynamicIsland/utils/CPUSensorCollector.swift b/DynamicIsland/utils/CPUSensorCollector.swift index 427e8fb..dddd5ff 100644 --- a/DynamicIsland/utils/CPUSensorCollector.swift +++ b/DynamicIsland/utils/CPUSensorCollector.swift @@ -1,9 +1,20 @@ -// -// CPUSensorCollector.swift -// DynamicIsland -// -// Ports the Stats project's CPU temperature and frequency readers. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import IOKit diff --git a/DynamicIsland/utils/Environment+LockScreenReplica.swift b/DynamicIsland/utils/Environment+LockScreenReplica.swift index 7a6fb9f..9553cde 100644 --- a/DynamicIsland/utils/Environment+LockScreenReplica.swift +++ b/DynamicIsland/utils/Environment+LockScreenReplica.swift @@ -1 +1,18 @@ -// Deprecated: lockScreenReplica environment key now lives in ContentView.swift. +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + diff --git a/DynamicIsland/utils/IOKitHelpers.swift b/DynamicIsland/utils/IOKitHelpers.swift index 44694fe..67c2225 100644 --- a/DynamicIsland/utils/IOKitHelpers.swift +++ b/DynamicIsland/utils/IOKitHelpers.swift @@ -1,9 +1,20 @@ -// -// IOKitHelpers.swift -// DynamicIsland -// -// Helper utilities borrowed from the Stats project for working with IORegistry and CFData blobs. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import IOKit diff --git a/DynamicIsland/utils/IOReportBridging.swift b/DynamicIsland/utils/IOReportBridging.swift index 4f5421b..aadce46 100644 --- a/DynamicIsland/utils/IOReportBridging.swift +++ b/DynamicIsland/utils/IOReportBridging.swift @@ -1,10 +1,20 @@ -// -// IOReportBridging.swift -// DynamicIsland -// -// Lightweight runtime loader for private IOReport symbols used by the GPU/CPU collectors. -// Avoids static linking against the private framework by resolving symbols via dlopen/dlsym. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import Darwin diff --git a/DynamicIsland/utils/Logger.swift b/DynamicIsland/utils/Logger.swift index 27d6d9f..d110d80 100644 --- a/DynamicIsland/utils/Logger.swift +++ b/DynamicIsland/utils/Logger.swift @@ -1,3 +1,25 @@ +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * Originally from boring.notch project + * Modified and adapted for Atoll (DynamicIsland) + * See NOTICE for details. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + import Foundation import OSLog import SwiftUI diff --git a/DynamicIsland/utils/SMC.swift b/DynamicIsland/utils/SMC.swift index dc42e72..e5ee316 100644 --- a/DynamicIsland/utils/SMC.swift +++ b/DynamicIsland/utils/SMC.swift @@ -1,13 +1,20 @@ -// -// smc.swift -// SMC -// -// Created by Serhiy Mytrovtsiy on 25/05/2021. -// Using Swift 5.0. -// Running on macOS 10.15. -// -// Copyright © 2021 Serhiy Mytrovtsiy. All rights reserved. -// +/* + * Atoll (DynamicIsland) + * Copyright (C) 2024-2026 Atoll Contributors + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ import Foundation import IOKit diff --git a/NOTICE b/NOTICE new file mode 100644 index 0000000..0b9a27b --- /dev/null +++ b/NOTICE @@ -0,0 +1,7 @@ +Atoll (DynamicIsland) - NOTICE + +This product includes software derived from the boring.notch project, +modified and adapted for Atoll (DynamicIsland). The boring.notch project +is licensed under the GNU General Public License v3.0. + +See the LICENSE file for the full GPL v3 text. diff --git a/TRADEMARKS b/TRADEMARKS new file mode 100644 index 0000000..44d26dc --- /dev/null +++ b/TRADEMARKS @@ -0,0 +1,9 @@ +Atoll (DynamicIsland) - Trademarks + +Atoll and DynamicIsland are trademarks of their respective owners. +DynamicIsland is not associated with, endorsed by, or affiliated with Apple +or Apple's "Dynamic Island" product. There is no intent to cause confusion +or infringement; the product is explicitly marketed as Atoll. +All other trademarks, service marks, and logos appearing in this project +are the property of their respective owners and used for identification +purposes only.