mirror of
https://github.com/FBukovina/Atoll.git
synced 2026-10-27 15:14:33 +00:00
Merge pull request #132 from Ebullioscopic/feature/onboarding
Update: Onboarding
This commit is contained in:
commit
fb0f964aa5
19 changed files with 76 additions and 75 deletions
|
|
@ -412,16 +412,16 @@
|
|||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
|
||||
INFOPLIST_KEY_LSUIElement = YES;
|
||||
INFOPLIST_KEY_MetalCaptureEnabled = YES;
|
||||
INFOPLIST_KEY_NSAppleEventsUsageDescription = "Dynamic Island uses AppleScripts to control Spotify and Apple Music";
|
||||
INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Dynamic Island needs Bluetooth access to detect when audio devices connect and display their battery status in the HUD.";
|
||||
INFOPLIST_KEY_NSAppleEventsUsageDescription = "Atoll uses AppleScripts to control Spotify and Apple Music";
|
||||
INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Atoll needs Bluetooth access to detect when audio devices connect and display their battery status in the HUD.";
|
||||
INFOPLIST_KEY_NSCalendarsFullAccessUsageDescription = "Show calender events inside the notch";
|
||||
INFOPLIST_KEY_NSCalendarsUsageDescription = "Need for Calendar Mode";
|
||||
INFOPLIST_KEY_NSCameraUsageDescription = "We need your camera for Mirror mode";
|
||||
INFOPLIST_KEY_NSDesktopFolderUsageDescription = "Dynamic Island needs access to save screenshots to your desktop.";
|
||||
INFOPLIST_KEY_NSDocumentsFolderUsageDescription = "Dynamic Island needs access to save and read AI assistant files.";
|
||||
INFOPLIST_KEY_NSDesktopFolderUsageDescription = "Atoll needs access to save screenshots to your desktop.";
|
||||
INFOPLIST_KEY_NSDocumentsFolderUsageDescription = "Atoll needs access to save and read AI assistant files.";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||
INFOPLIST_KEY_NSLocationUsageDescription = "Dynamic Island uses your location to display accurate lock screen weather.";
|
||||
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Dynamic Island uses your location to display accurate lock screen weather.";
|
||||
INFOPLIST_KEY_NSLocationUsageDescription = "Atoll uses your location to display accurate lock screen weather.";
|
||||
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Atoll uses your location to display accurate lock screen weather.";
|
||||
INFOPLIST_KEY_NSRemindersUsageDescription = "Atoll needs Reminders access to show your reminders";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
|
@ -481,16 +481,16 @@
|
|||
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
|
||||
INFOPLIST_KEY_LSUIElement = YES;
|
||||
INFOPLIST_KEY_MetalCaptureEnabled = YES;
|
||||
INFOPLIST_KEY_NSAppleEventsUsageDescription = "Dynamic Island uses AppleScripts to control Spotify and Apple Music";
|
||||
INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Dynamic Island needs Bluetooth access to detect when audio devices connect and display their battery status in the HUD.";
|
||||
INFOPLIST_KEY_NSAppleEventsUsageDescription = "Atoll uses AppleScripts to control Spotify and Apple Music";
|
||||
INFOPLIST_KEY_NSBluetoothAlwaysUsageDescription = "Atoll needs Bluetooth access to detect when audio devices connect and display their battery status in the HUD.";
|
||||
INFOPLIST_KEY_NSCalendarsFullAccessUsageDescription = "Show calender events inside the notch";
|
||||
INFOPLIST_KEY_NSCalendarsUsageDescription = "Need for Calendar Mode";
|
||||
INFOPLIST_KEY_NSCameraUsageDescription = "We need your camera for Mirror mode";
|
||||
INFOPLIST_KEY_NSDesktopFolderUsageDescription = "Dynamic Island needs access to save screenshots to your desktop.";
|
||||
INFOPLIST_KEY_NSDocumentsFolderUsageDescription = "Dynamic Island needs access to save and read AI assistant files.";
|
||||
INFOPLIST_KEY_NSDesktopFolderUsageDescription = "Atoll needs access to save screenshots to your desktop.";
|
||||
INFOPLIST_KEY_NSDocumentsFolderUsageDescription = "Atoll needs access to save and read AI assistant files.";
|
||||
INFOPLIST_KEY_NSHumanReadableCopyright = "";
|
||||
INFOPLIST_KEY_NSLocationUsageDescription = "Dynamic Island uses your location to display accurate lock screen weather.";
|
||||
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Dynamic Island uses your location to display accurate lock screen weather.";
|
||||
INFOPLIST_KEY_NSLocationUsageDescription = "Atoll uses your location to display accurate lock screen weather.";
|
||||
INFOPLIST_KEY_NSLocationWhenInUseUsageDescription = "Atoll uses your location to display accurate lock screen weather.";
|
||||
INFOPLIST_KEY_NSRemindersUsageDescription = "Atoll needs Reminders access to show your reminders";
|
||||
LD_RUNPATH_SEARCH_PATHS = (
|
||||
"$(inherited)",
|
||||
|
|
|
|||
|
|
@ -41,7 +41,7 @@ struct DynamicNotchApp: App {
|
|||
}
|
||||
CheckForUpdatesView(updater: updaterController.updater)
|
||||
Divider()
|
||||
Button("Restart Dynamic Island") {
|
||||
Button("Restart Atoll") {
|
||||
guard let bundleIdentifier = Bundle.main.bundleIdentifier else { return }
|
||||
|
||||
let workspace = NSWorkspace.shared
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
<true/>
|
||||
</dict>
|
||||
<key>NSScreenCaptureUsageDescription</key>
|
||||
<string>Dynamic Island needs screen recording permission to capture screenshots for the AI assistant feature.</string>
|
||||
<string>Atoll needs screen recording permission to capture screenshots for the AI assistant feature.</string>
|
||||
<key>SUEnableDownloaderService</key>
|
||||
<true/>
|
||||
<key>SUEnableInstallerLauncherService</key>
|
||||
|
|
|
|||
|
|
@ -3904,12 +3904,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Blue dashed box shows actual size in Dynamic Island" : {
|
||||
"Blue dashed box shows actual size in Atoll" : {
|
||||
"localizations" : {
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "La boîte bleue en pointillés affiche la taille actuelle dans la Dynamic Island"
|
||||
"value" : "La boîte bleue en pointillés affiche la taille actuelle dans la Atoll"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -4969,20 +4969,20 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Choose animation to display when Dynamic Island is idle. Tap to select, hold to delete custom animations." : {
|
||||
"Choose animation to display when Atoll is idle. Tap to select, hold to delete custom animations." : {
|
||||
"comment" : "A footer label under the section that lists their idle animations.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"de" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Wählen Sie die Animation aus, die angezeigt werden soll, wenn Dynamic Island im Leerlauf ist. Tippen Sie zum Auswählen und halten Sie zum Löschen benutzerdefinierter Animationen gedrückt."
|
||||
"value" : "Wählen Sie die Animation aus, die angezeigt werden soll, wenn Atoll im Leerlauf ist. Tippen Sie zum Auswählen und halten Sie zum Löschen benutzerdefinierter Animationen gedrückt."
|
||||
}
|
||||
},
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Choisir une animation à afficher lorsque la Dynamic Island est inactive. Touchez pour sélectionner, maintenez pour supprimer."
|
||||
"value" : "Choisir une animation à afficher lorsque la Atoll est inactive. Touchez pour sélectionner, maintenez pour supprimer."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -5754,7 +5754,7 @@
|
|||
"comment" : "A footer for the \"Timer Widget\" section in the Lock Screen Settings view.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Controls whether Dynamic Island mirrors lock/unlock events with its own live activity and audible chimes." : {
|
||||
"Controls whether Atoll mirrors lock/unlock events with its own live activity and audible chimes." : {
|
||||
"comment" : "A footer for the \"Live Activity & Feedback\" section in the Lock Screen Settings.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
|
|
@ -7302,12 +7302,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Dynamic Island" : {
|
||||
"Atoll" : {
|
||||
"localizations" : {
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Dynamic Island"
|
||||
"value" : "Atoll"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -7570,12 +7570,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Enable built-in system monitoring to replace macOS HUD notifications with Dynamic Island displays." : {
|
||||
"Enable built-in system monitoring to replace macOS HUD notifications with Atoll displays." : {
|
||||
"localizations" : {
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Activez le système de suivi intégré pour remplacer les notifications macOS avec celles de Dynamic Island."
|
||||
"value" : "Activez le système de suivi intégré pour remplacer les notifications macOS avec celles de Atoll."
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -15260,7 +15260,7 @@
|
|||
}
|
||||
},
|
||||
"Recording Detected" : {
|
||||
"comment" : "A text description of a red dot displayed in the Dynamic Island header when screen recording is active.",
|
||||
"comment" : "A text description of a red dot displayed in the Atoll header when screen recording is active.",
|
||||
"isCommentAutoGenerated" : true,
|
||||
"localizations" : {
|
||||
"fr" : {
|
||||
|
|
@ -15495,7 +15495,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Replaces system HUD notifications with Dynamic Island displays." : {
|
||||
"Replaces system HUD notifications with Atoll displays." : {
|
||||
|
||||
},
|
||||
"Request Access" : {
|
||||
|
|
@ -15638,12 +15638,12 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Restart Dynamic Island" : {
|
||||
"Restart Atoll" : {
|
||||
"localizations" : {
|
||||
"fr" : {
|
||||
"stringUnit" : {
|
||||
"state" : "translated",
|
||||
"value" : "Relancer Dynamic Island"
|
||||
"value" : "Relancer Atoll"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -18794,7 +18794,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"Toggle the Dynamic Island open or closed from anywhere." : {
|
||||
"Toggle the Atoll open or closed from anywhere." : {
|
||||
|
||||
},
|
||||
"Total · %@" : {
|
||||
|
|
@ -20109,7 +20109,7 @@
|
|||
"When enabled, stats monitoring stops a few seconds after the notch closes." : {
|
||||
|
||||
},
|
||||
"When enabled, the Dynamic Island will expand horizontally to match the animation size" : {
|
||||
"When enabled, the Atoll will expand horizontally to match the animation size" : {
|
||||
|
||||
},
|
||||
"When enabled, the Stats tab will display real-time system performance graphs. This feature requires system permissions and may use additional battery." : {
|
||||
|
|
@ -20125,7 +20125,7 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"With %lld graphs enabled, the Dynamic Island will expand horizontally to accommodate all graphs in a single row." : {
|
||||
"With %lld graphs enabled, the Atoll will expand horizontally to accommodate all graphs in a single row." : {
|
||||
|
||||
},
|
||||
"Write" : {
|
||||
|
|
|
|||
|
|
@ -547,7 +547,7 @@
|
|||
"Drop files here" : {
|
||||
|
||||
},
|
||||
"Dynamic Island" : {
|
||||
"Atoll" : {
|
||||
|
||||
},
|
||||
"dynamic.island" : {
|
||||
|
|
@ -568,7 +568,7 @@
|
|||
"Enable Built-in System HUD" : {
|
||||
|
||||
},
|
||||
"Enable built-in system monitoring to replace macOS HUD notifications with Dynamic Island displays." : {
|
||||
"Enable built-in system monitoring to replace macOS HUD notifications with Atoll displays." : {
|
||||
|
||||
},
|
||||
"Enable colored spectrograms" : {
|
||||
|
|
@ -609,7 +609,7 @@
|
|||
"Enable music live activity" : {
|
||||
|
||||
},
|
||||
"Enable or disable the timer functionality in the Dynamic Island. The live activity toggle controls whether timer progress is shown in the expanded view." : {
|
||||
"Enable or disable the timer functionality in the Atoll. The live activity toggle controls whether timer progress is shown in the expanded view." : {
|
||||
|
||||
},
|
||||
"Enable screen color picking functionality. Use Cmd+Shift+P to quickly access the color picker." : {
|
||||
|
|
@ -1176,7 +1176,7 @@
|
|||
|
||||
},
|
||||
"Recording Detected" : {
|
||||
"comment" : "A text description of a red dot displayed in the Dynamic Island header when screen recording is active.",
|
||||
"comment" : "A text description of a red dot displayed in the Atoll header when screen recording is active.",
|
||||
"isCommentAutoGenerated" : true
|
||||
},
|
||||
"Recording Status" : {
|
||||
|
|
@ -1199,7 +1199,7 @@
|
|||
"Remember last tab" : {
|
||||
|
||||
},
|
||||
"Replaces system HUD notifications with Dynamic Island displays." : {
|
||||
"Replaces system HUD notifications with Atoll displays." : {
|
||||
|
||||
},
|
||||
"Reset to Default" : {
|
||||
|
|
@ -1208,7 +1208,7 @@
|
|||
"Restart" : {
|
||||
|
||||
},
|
||||
"Restart Dynamic Island" : {
|
||||
"Restart Atoll" : {
|
||||
|
||||
},
|
||||
"Resume" : {
|
||||
|
|
@ -1439,7 +1439,7 @@
|
|||
"Stats feature is disabled" : {
|
||||
|
||||
},
|
||||
"Stats monitoring displays performance graphs in the Dynamic Island. The detailed panel (Cmd+Shift+S) shows Activity Monitor-style detailed graphs and metrics." : {
|
||||
"Stats monitoring displays performance graphs in the Atoll. The detailed panel (Cmd+Shift+S) shows Activity Monitor-style detailed graphs and metrics." : {
|
||||
|
||||
},
|
||||
"Stats panel is disabled" : {
|
||||
|
|
@ -1516,7 +1516,7 @@
|
|||
"Toggle Sneak Peek:" : {
|
||||
|
||||
},
|
||||
"Toggle the Dynamic Island open or closed from anywhere." : {
|
||||
"Toggle the Atoll open or closed from anywhere." : {
|
||||
|
||||
},
|
||||
"Top Processes by %@" : {
|
||||
|
|
@ -1595,7 +1595,7 @@
|
|||
"When enabled, the Stats tab will display real-time system performance graphs. This feature requires system permissions and may use additional battery." : {
|
||||
|
||||
},
|
||||
"With %lld graphs enabled, the Dynamic Island will expand horizontally to accommodate all graphs in a single row." : {
|
||||
"With %lld graphs enabled, the Atoll will expand horizontally to accommodate all graphs in a single row." : {
|
||||
|
||||
},
|
||||
"You" : {
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// NotchTimerView.swift
|
||||
// DynamicIsland
|
||||
//
|
||||
// Timer tab interface for the Dynamic Island
|
||||
// Timer tab interface for the Atoll
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ struct OnboardingView: View {
|
|||
PermissionRequestView(
|
||||
icon: Image(systemName: "camera.fill"),
|
||||
title: "Enable Camera Access",
|
||||
description: "Dynamic Island includes a mirror feature that lets you quickly check your appearance using your camera, right from the notch. Camera access is required only to show this live preview. You can turn the mirror feature on or off at any time in the app.",
|
||||
description: "Atoll includes a mirror feature that lets you quickly check your appearance using your camera, right from the notch. Camera access is required only to show this live preview. You can turn the mirror feature on or off at any time in the app.",
|
||||
privacyNote: "Your camera is never used without your consent, and nothing is recorded or stored.",
|
||||
onAllow: {
|
||||
Task {
|
||||
|
|
@ -61,7 +61,7 @@ struct OnboardingView: View {
|
|||
PermissionRequestView(
|
||||
icon: Image(systemName: "calendar"),
|
||||
title: "Enable Calendar Access",
|
||||
description: "Dynamic Island can show all your upcoming events in one place. Access to your calendar is needed to display your schedule.",
|
||||
description: "Atoll can show all your upcoming events in one place. Access to your calendar is needed to display your schedule.",
|
||||
privacyNote: "Your calendar data is only used to show your events and is never shared.",
|
||||
onAllow: {
|
||||
Task {
|
||||
|
|
|
|||
|
|
@ -227,6 +227,7 @@ func applyProfileSettings(_ profiles: Set<String>) {
|
|||
Defaults[.enableTimerFeature] = true
|
||||
Defaults[.inlineHUD] = false
|
||||
Defaults[.enableScreenAssistant] = false
|
||||
Defaults[.enableLyrics] = false
|
||||
}
|
||||
|
||||
// Student Profile Settings
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ struct WelcomeView: View {
|
|||
.aspectRatio(contentMode: .fit)
|
||||
.frame(width: 100, height: 100)
|
||||
.padding(.bottom, 8)
|
||||
Text("Dynamic Island")
|
||||
Text("Atoll")
|
||||
.font(.system(.largeTitle, design: .default))
|
||||
.fontWeight(.semibold)
|
||||
Text("Welcome")
|
||||
|
|
|
|||
|
|
@ -355,7 +355,7 @@ struct AnimationEditorView: View {
|
|||
VStack(alignment: .leading, spacing: 4) {
|
||||
Text("Expand Notch with Animation")
|
||||
.font(.body)
|
||||
Text("When enabled, the Dynamic Island will expand horizontally to match the animation size")
|
||||
Text("When enabled, the Atoll will expand horizontally to match the animation size")
|
||||
.font(.caption)
|
||||
.foregroundStyle(.secondary)
|
||||
}
|
||||
|
|
@ -443,7 +443,7 @@ struct AnimationEditorView: View {
|
|||
HStack(spacing: 4) {
|
||||
Image(systemName: "info.circle")
|
||||
.foregroundStyle(.secondary)
|
||||
Text("Blue dashed box shows actual size in Dynamic Island")
|
||||
Text("Blue dashed box shows actual size in Atoll")
|
||||
.font(.caption)
|
||||
.foregroundStyle(.secondary)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -125,7 +125,7 @@ struct IdleAnimationsSettingsSection: View {
|
|||
}
|
||||
} footer: {
|
||||
if showNotHumanFace {
|
||||
Text("Choose animation to display when Dynamic Island is idle. Tap to select, hold to delete custom animations.")
|
||||
Text("Choose animation to display when Atoll is idle. Tap to select, hold to delete custom animations.")
|
||||
}
|
||||
}
|
||||
.fileImporter(
|
||||
|
|
|
|||
|
|
@ -536,7 +536,7 @@ struct SettingsView: View {
|
|||
SettingsSearchEntry(tab: .general, title: "Show on all displays", keywords: ["multi-display", "external monitor"], highlightID: SettingsTab.general.highlightID(for: "Show on all displays")),
|
||||
SettingsSearchEntry(tab: .general, title: "Show on a specific display", keywords: ["preferred screen", "display picker"], highlightID: SettingsTab.general.highlightID(for: "Show on a specific display")),
|
||||
SettingsSearchEntry(tab: .general, title: "Automatically switch displays", keywords: ["auto switch", "displays"], highlightID: SettingsTab.general.highlightID(for: "Automatically switch displays")),
|
||||
SettingsSearchEntry(tab: .general, title: "Hide Dynamic Island during screenshots & recordings", keywords: ["privacy", "screenshot", "recording"], highlightID: SettingsTab.general.highlightID(for: "Hide Dynamic Island during screenshots & recordings")),
|
||||
SettingsSearchEntry(tab: .general, title: "Hide Atoll during screenshots & recordings", keywords: ["privacy", "screenshot", "recording"], highlightID: SettingsTab.general.highlightID(for: "Hide Atoll during screenshots & recordings")),
|
||||
SettingsSearchEntry(tab: .general, title: "Enable Screen Recording Detection", keywords: ["screen recording", "indicator"], highlightID: SettingsTab.general.highlightID(for: "Enable Screen Recording Detection")),
|
||||
SettingsSearchEntry(tab: .general, title: "Show Recording Indicator", keywords: ["recording indicator", "red dot"], highlightID: SettingsTab.general.highlightID(for: "Show Recording Indicator")),
|
||||
SettingsSearchEntry(tab: .general, title: "Enable Focus Detection", keywords: ["focus", "do not disturb", "dnd"], highlightID: SettingsTab.general.highlightID(for: "Enable Focus Detection")),
|
||||
|
|
@ -839,8 +839,8 @@ struct GeneralSettings: View {
|
|||
}
|
||||
.disabled(showOnAllDisplays)
|
||||
.settingsHighlight(id: highlightID("Automatically switch displays"))
|
||||
Defaults.Toggle("Hide Dynamic Island during screenshots & recordings", key: .hideDynamicIslandFromScreenCapture)
|
||||
.settingsHighlight(id: highlightID("Hide Dynamic Island during screenshots & recordings"))
|
||||
Defaults.Toggle("Hide Atoll during screenshots & recordings", key: .hideDynamicIslandFromScreenCapture)
|
||||
.settingsHighlight(id: highlightID("Hide Atoll during screenshots & recordings"))
|
||||
} header: {
|
||||
Text("System features")
|
||||
}
|
||||
|
|
@ -1243,7 +1243,7 @@ struct HUD: View {
|
|||
} header: {
|
||||
Text("General")
|
||||
} footer: {
|
||||
Text("Replaces system HUD notifications with Dynamic Island displays.")
|
||||
Text("Replaces system HUD notifications with Atoll displays.")
|
||||
.foregroundStyle(.secondary)
|
||||
.font(.caption)
|
||||
}
|
||||
|
|
@ -1280,7 +1280,7 @@ struct HUD: View {
|
|||
.foregroundStyle(.secondary)
|
||||
.font(.caption)
|
||||
} else {
|
||||
Text("Enable built-in system monitoring to replace macOS HUD notifications with Dynamic Island displays.")
|
||||
Text("Enable built-in system monitoring to replace macOS HUD notifications with Atoll displays.")
|
||||
.foregroundStyle(.secondary)
|
||||
.font(.caption)
|
||||
}
|
||||
|
|
@ -2414,7 +2414,7 @@ struct LockScreenSettings: View {
|
|||
} header: {
|
||||
Text("Live Activity & Feedback")
|
||||
} footer: {
|
||||
Text("Controls whether Dynamic Island mirrors lock/unlock events with its own live activity and audible chimes.")
|
||||
Text("Controls whether Atoll mirrors lock/unlock events with its own live activity and audible chimes.")
|
||||
}
|
||||
|
||||
Section {
|
||||
|
|
@ -3003,7 +3003,7 @@ struct Shortcuts: View {
|
|||
} header: {
|
||||
Text("Navigation")
|
||||
} footer: {
|
||||
Text("Toggle the Dynamic Island open or closed from anywhere.")
|
||||
Text("Toggle the Atoll open or closed from anywhere.")
|
||||
.multilineTextAlignment(.trailing)
|
||||
.foregroundStyle(.secondary)
|
||||
.font(.caption)
|
||||
|
|
@ -3777,7 +3777,7 @@ struct StatsSettings: View {
|
|||
Text("Graph Visibility")
|
||||
} footer: {
|
||||
if enabledGraphsCount >= 4 {
|
||||
Text("With \(enabledGraphsCount) graphs enabled, the Dynamic Island will expand horizontally to accommodate all graphs in a single row.")
|
||||
Text("With \(enabledGraphsCount) graphs enabled, the Atoll will expand horizontally to accommodate all graphs in a single row.")
|
||||
.multilineTextAlignment(.trailing)
|
||||
.foregroundStyle(.secondary)
|
||||
.font(.caption)
|
||||
|
|
|
|||
|
|
@ -39,7 +39,7 @@ class SettingsWindowController: NSWindowController {
|
|||
private func setupWindow() {
|
||||
guard let window = window else { return }
|
||||
|
||||
window.title = "Dynamic Island Settings"
|
||||
window.title = "Atoll Settings"
|
||||
window.titlebarAppearsTransparent = false
|
||||
window.titleVisibility = .visible
|
||||
window.toolbarStyle = .unified
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
// DynamicIsland
|
||||
//
|
||||
// Created by AI Assistant on 11/10/2025.
|
||||
// Manages custom idle animations (Lottie files) for the Dynamic Island
|
||||
// Manages custom idle animations (Lottie files) for the Atoll
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
|
|
|||
|
|
@ -111,7 +111,7 @@ class LockScreenManager: ObservableObject {
|
|||
LockScreenTimerWidgetManager.shared.handleLockStateChange(isLocked: true)
|
||||
TimerControlWindowManager.shared.hide(animated: false)
|
||||
|
||||
// THEN trigger lock icon in Dynamic Island (only if enabled in settings)
|
||||
// THEN trigger lock icon in Atoll (only if enabled in settings)
|
||||
if Defaults[.enableLockScreenLiveActivity] {
|
||||
print("[\(timestamp())] LockScreenManager: 🔴 Starting lock icon live activity")
|
||||
coordinator.toggleExpandingView(status: true, type: .lockScreen)
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// StatsManager.swift
|
||||
// DynamicIsland
|
||||
//
|
||||
// System performance monitoring for the Dynamic Island Stats feature
|
||||
// System performance monitoring for the Atoll Stats feature
|
||||
// Created by Hariharan Mudaliar
|
||||
|
||||
import Foundation
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
// TimerManager.swift
|
||||
// DynamicIsland
|
||||
//
|
||||
// Timer management for the Dynamic Island
|
||||
// Timer management for the Atoll
|
||||
//
|
||||
|
||||
import Foundation
|
||||
|
|
|
|||
|
|
@ -418,7 +418,7 @@ extension Defaults.Keys {
|
|||
static let selectedIdleAnimation = Key<CustomIdleAnimation?>("selectedIdleAnimation", default: nil)
|
||||
static let animationTransformOverrides = Key<[String: AnimationTransformConfig]>("animationTransformOverrides", default: [:])
|
||||
static let tileShowLabels = Key<Bool>("tileShowLabels", default: false)
|
||||
static let showCalendar = Key<Bool>("showCalendar", default: false)
|
||||
static let showCalendar = Key<Bool>("showCalendar", default: true)
|
||||
static let hideCompletedReminders = Key<Bool>("hideCompletedReminders", default: true)
|
||||
static let hideAllDayEvents = Key<Bool>("hideAllDayEvents", default: false)
|
||||
static let sliderColor = Key<SliderColorEnum>(
|
||||
|
|
@ -441,7 +441,7 @@ extension Defaults.Keys {
|
|||
static let sneakPeekStyles = Key<SneakPeekStyle>("sneakPeekStyles", default: .standard)
|
||||
static let enableFullscreenMediaDetection = Key<Bool>("enableFullscreenMediaDetection", default: true)
|
||||
static let waitInterval = Key<Double>("waitInterval", default: 3)
|
||||
static let showShuffleAndRepeat = Key<Bool>("showShuffleAndRepeat", default: false)
|
||||
static let showShuffleAndRepeat = Key<Bool>("showShuffleAndRepeat", default: true)
|
||||
static let showMediaOutputControl = Key<Bool>("showMediaOutputControl", default: false)
|
||||
static let musicAuxLeftControl = Key<MusicAuxiliaryControl>("musicAuxLeftControl", default: .shuffle)
|
||||
static let musicAuxRightControl = Key<MusicAuxiliaryControl>("musicAuxRightControl", default: .repeatMode)
|
||||
|
|
@ -459,10 +459,10 @@ extension Defaults.Keys {
|
|||
static let lockScreenWeatherShowsChargingPercentage = Key<Bool>("lockScreenWeatherShowsChargingPercentage", default: true)
|
||||
static let lockScreenWeatherShowsBluetooth = Key<Bool>("lockScreenWeatherShowsBluetooth", default: true)
|
||||
static let lockScreenWeatherShowsBatteryGauge = Key<Bool>("lockScreenWeatherShowsBatteryGauge", default: true)
|
||||
static let lockScreenWeatherBatteryUsesLaptopSymbol = Key<Bool>("lockScreenWeatherBatteryUsesLaptopSymbol", default: false)
|
||||
static let lockScreenWeatherBatteryUsesLaptopSymbol = Key<Bool>("lockScreenWeatherBatteryUsesLaptopSymbol", default: true)
|
||||
static let lockScreenWeatherWidgetStyle = Key<LockScreenWeatherWidgetStyle>("lockScreenWeatherWidgetStyle", default: .circular)
|
||||
static let lockScreenWeatherTemperatureUnit = Key<LockScreenWeatherTemperatureUnit>("lockScreenWeatherTemperatureUnit", default: .celsius)
|
||||
static let lockScreenWeatherShowsAQI = Key<Bool>("lockScreenWeatherShowsAQI", default: false)
|
||||
static let lockScreenWeatherShowsAQI = Key<Bool>("lockScreenWeatherShowsAQI", default: true)
|
||||
static let lockScreenWeatherAQIScale = Key<LockScreenWeatherAirQualityScale>("lockScreenWeatherAQIScale", default: .us)
|
||||
static let lockScreenWeatherUsesGaugeTint = Key<Bool>("lockScreenWeatherUsesGaugeTint", default: false)
|
||||
static let lockScreenWeatherProviderSource = Key<LockScreenWeatherProviderSource>("lockScreenWeatherProviderSource", default: .openMeteo)
|
||||
|
|
@ -471,9 +471,9 @@ extension Defaults.Keys {
|
|||
static let lockScreenTimerVerticalOffset = Key<Double>("lockScreenTimerVerticalOffset", default: 0)
|
||||
static let lockScreenGlassStyle = Key<LockScreenGlassStyle>("lockScreenGlassStyle", default: .liquid)
|
||||
static let lockScreenShowAppIcon = Key<Bool>("lockScreenShowAppIcon", default: false)
|
||||
static let lockScreenPanelShowsBorder = Key<Bool>("lockScreenPanelShowsBorder", default: true)
|
||||
static let lockScreenPanelShowsBorder = Key<Bool>("lockScreenPanelShowsBorder", default: false)
|
||||
static let lockScreenPanelUsesBlur = Key<Bool>("lockScreenPanelUsesBlur", default: true)
|
||||
static let lockScreenTimerWidgetUsesBlur = Key<Bool>("lockScreenTimerWidgetUsesBlur", default: true)
|
||||
static let lockScreenTimerWidgetUsesBlur = Key<Bool>("lockScreenTimerWidgetUsesBlur", default: false)
|
||||
static let lockScreenReminderChipStyle = Key<LockScreenReminderChipStyle>("lockScreenReminderChipStyle", default: .eventColor)
|
||||
|
||||
// MARK: Battery
|
||||
|
|
@ -489,13 +489,13 @@ extension Defaults.Keys {
|
|||
static let selectedDownloadIconStyle = Key<DownloadIconStyle>("selectedDownloadIconStyle", default: DownloadIconStyle.onlyAppIcon)
|
||||
|
||||
// MARK: HUD
|
||||
static let inlineHUD = Key<Bool>("inlineHUD", default: false)
|
||||
static let inlineHUD = Key<Bool>("inlineHUD", default: true)
|
||||
static let progressBarStyle = Key<ProgressBarStyle>("progressBarStyle", default: .hierarchical)
|
||||
// Legacy support - keeping for backward compatibility
|
||||
static let enableGradient = Key<Bool>("enableGradient", default: false)
|
||||
static let systemEventIndicatorShadow = Key<Bool>("systemEventIndicatorShadow", default: false)
|
||||
static let systemEventIndicatorUseAccent = Key<Bool>("systemEventIndicatorUseAccent", default: false)
|
||||
static let showProgressPercentages = Key<Bool>("showProgressPercentages", default: false)
|
||||
static let showProgressPercentages = Key<Bool>("showProgressPercentages", default: true)
|
||||
|
||||
// MARK: Shelf
|
||||
static let dynamicShelf = Key<Bool>("dynamicShelf", default: true)
|
||||
|
|
@ -518,11 +518,11 @@ extension Defaults.Keys {
|
|||
// MARK: Bluetooth Audio Devices
|
||||
static let showBluetoothDeviceConnections = Key<Bool>("showBluetoothDeviceConnections", default: true)
|
||||
static let useColorCodedBatteryDisplay = Key<Bool>("useColorCodedBatteryDisplay", default: true)
|
||||
static let useColorCodedVolumeDisplay = Key<Bool>("useColorCodedVolumeDisplay", default: false)
|
||||
static let useColorCodedVolumeDisplay = Key<Bool>("useColorCodedVolumeDisplay", default: true)
|
||||
static let useSmoothColorGradient = Key<Bool>("useSmoothColorGradient", default: true)
|
||||
static let useCircularBluetoothBatteryIndicator = Key<Bool>("useCircularBluetoothBatteryIndicator", default: true)
|
||||
static let showBluetoothBatteryPercentageText = Key<Bool>("showBluetoothBatteryPercentageText", default: true)
|
||||
static let showBluetoothDeviceNameMarquee = Key<Bool>("showBluetoothDeviceNameMarquee", default: true)
|
||||
static let showBluetoothBatteryPercentageText = Key<Bool>("showBluetoothBatteryPercentageText", default: false)
|
||||
static let showBluetoothDeviceNameMarquee = Key<Bool>("showBluetoothDeviceNameMarquee", default: false)
|
||||
|
||||
// MARK: Stats Feature
|
||||
static let enableStatsFeature = Key<Bool>("enableStatsFeature", default: false)
|
||||
|
|
@ -541,7 +541,7 @@ extension Defaults.Keys {
|
|||
static let timerIconColorMode = Key<TimerIconColorMode>("timerIconColorMode", default: .adaptive)
|
||||
static let timerSolidColor = Key<Color>("timerSolidColor", default: .blue)
|
||||
static let timerShowsCountdown = Key<Bool>("timerShowsCountdown", default: true)
|
||||
static let timerShowsLabel = Key<Bool>("timerShowsLabel", default: true)
|
||||
static let timerShowsLabel = Key<Bool>("timerShowsLabel", default: false)
|
||||
static let timerShowsProgress = Key<Bool>("timerShowsProgress", default: true)
|
||||
static let timerProgressStyle = Key<TimerProgressStyle>("timerProgressStyle", default: .bar)
|
||||
static let mirrorSystemTimer = Key<Bool>("mirrorSystemTimer", default: true)
|
||||
|
|
@ -550,7 +550,7 @@ extension Defaults.Keys {
|
|||
static let enableReminderLiveActivity = Key<Bool>("enableReminderLiveActivity", default: true)
|
||||
static let reminderPresentationStyle = Key<ReminderPresentationStyle>("reminderPresentationStyle", default: .ringCountdown)
|
||||
static let reminderLeadTime = Key<Int>("reminderLeadTime", default: 5)
|
||||
static let reminderSneakPeekDuration = Key<Double>("reminderSneakPeekDuration", default: 10)
|
||||
static let reminderSneakPeekDuration = Key<Double>("reminderSneakPeekDuration", default: 5)
|
||||
static let timerControlWindowEnabled = Key<Bool>("timerControlWindowEnabled", default: true)
|
||||
|
||||
// MARK: ColorPicker Feature
|
||||
|
|
@ -581,7 +581,7 @@ extension Defaults.Keys {
|
|||
static let enableShortcuts = Key<Bool>("enableShortcuts", default: true)
|
||||
|
||||
// MARK: System HUD Feature
|
||||
static let enableSystemHUD = Key<Bool>("enableSystemHUD", default: false)
|
||||
static let enableSystemHUD = Key<Bool>("enableSystemHUD", default: true)
|
||||
static let enableVolumeHUD = Key<Bool>("enableVolumeHUD", default: true)
|
||||
static let enableBrightnessHUD = Key<Bool>("enableBrightnessHUD", default: true)
|
||||
static let enableKeyboardBacklightHUD = Key<Bool>("enableKeyboardBacklightHUD", default: true)
|
||||
|
|
|
|||
|
|
@ -15,7 +15,7 @@
|
|||
<h2>Initial Beta Release</h2>
|
||||
<ul>
|
||||
<li>First beta release of DynamicIsland</li>
|
||||
<li>Dynamic Island interface for macOS</li>
|
||||
<li>Atoll interface for macOS</li>
|
||||
<li>Music playback controls</li>
|
||||
<li>Battery status monitoring</li>
|
||||
<li>Timer functionality</li>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue