]> git.r.bdr.sh - rbdr/captura/blobdiff - Captura.xcodeproj/project.pbxproj
Attempt more AppleScript support
[rbdr/captura] / Captura.xcodeproj / project.pbxproj
index 95ecff08ce16dc5e93b5980c6a66974efc49d70f..35a5e104261396746ce5ad012111f0e1924954fd 100644 (file)
@@ -7,14 +7,36 @@
        objects = {
 
 /* Begin PBXBuildFile section */
        objects = {
 
 /* Begin PBXBuildFile section */
+               B5278B172A71528F009F6462 /* HelpPopoverViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B162A71528F009F6462 /* HelpPopoverViewController.swift */; };
+               B5278B1F2A71BD9B009F6462 /* OutputSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B1E2A71BD9B009F6462 /* OutputSettings.swift */; };
+               B5278B212A71BFC3009F6462 /* OutputFormatSetting.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B202A71BFC3009F6462 /* OutputFormatSetting.swift */; };
+               B5278B232A71C140009F6462 /* PreferencesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B222A71C140009F6462 /* PreferencesWindow.swift */; };
+               B5278B252A71CA80009F6462 /* AdvancedSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B242A71CA80009F6462 /* AdvancedSettings.swift */; };
+               B5278B282A739871009F6462 /* CGImage+resize.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B272A739871009F6462 /* CGImage+resize.swift */; };
+               B5278B2A2A73992D009F6462 /* GifRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B292A73992D009F6462 /* GifRenderer.swift */; };
+               B5278B2C2A739B3A009F6462 /* CapturaFile.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B2B2A739B3A009F6462 /* CapturaFile.swift */; };
+               B5278B312A73AEAE009F6462 /* CVImageBuffer+cgImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B302A73AEAE009F6462 /* CVImageBuffer+cgImage.swift */; };
+               B5278B362A73B3AA009F6462 /* CapturaCaptureSession.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B352A73B3AA009F6462 /* CapturaCaptureSession.swift */; };
+               B5278B382A73D1EE009F6462 /* CapturaSettings.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B372A73D1EE009F6462 /* CapturaSettings.swift */; };
+               B5278B3E2A74420F009F6462 /* Captura.xcdatamodeld in Sources */ = {isa = PBXBuildFile; fileRef = B5278B3C2A74420F009F6462 /* Captura.xcdatamodeld */; };
+               B5278B402A744297009F6462 /* Persistence.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B3F2A744297009F6462 /* Persistence.swift */; };
+               B5278B422A779CDB009F6462 /* BackendResponse.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B412A779CDB009F6462 /* BackendResponse.swift */; };
+               B5278B452A77D924009F6462 /* CaptureSessionConfiguration.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B442A77D924009F6462 /* CaptureSessionConfiguration.swift */; };
+               B5278B472A77E8D7009F6462 /* CapturaURLDecoder.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B462A77E8D7009F6462 /* CapturaURLDecoder.swift */; };
+               B5278B4B2A7995AA009F6462 /* CloudStorage in Frameworks */ = {isa = PBXBuildFile; productRef = B5278B4A2A7995AA009F6462 /* CloudStorage */; };
+               B5278B4E2A799AA3009F6462 /* GetRemoteCaptures.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5278B4D2A799AA3009F6462 /* GetRemoteCaptures.swift */; };
+               B55403E72A79A08C004BCBAB /* CapturaShortcutsProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = B55403E62A79A08C004BCBAB /* CapturaShortcutsProvider.swift */; };
+               B55403EA2A79A434004BCBAB /* ScriptedPreferences.swift in Sources */ = {isa = PBXBuildFile; fileRef = B55403E92A79A434004BCBAB /* ScriptedPreferences.swift */; };
+               B55403EB2A7A2AD2004BCBAB /* Captura.sdef in Resources */ = {isa = PBXBuildFile; fileRef = B5278B482A781B78009F6462 /* Captura.sdef */; };
+               B55403ED2A7A388B004BCBAB /* RecordCommand.swift in Sources */ = {isa = PBXBuildFile; fileRef = B55403EC2A7A388B004BCBAB /* RecordCommand.swift */; };
                B55DDFCC2A6F0253001A5E76 /* Notification+AppEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = B55DDFCB2A6F0253001A5E76 /* Notification+AppEvents.swift */; };
                B55DDFCE2A6F069D001A5E76 /* RecordingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B55DDFCD2A6F069D001A5E76 /* RecordingWindow.swift */; };
                B56C70CD2A6EFDF4009B97EB /* CaptureState.swift in Sources */ = {isa = PBXBuildFile; fileRef = B56C70CC2A6EFDF4009B97EB /* CaptureState.swift */; };
                B5F915522A6EF80D007ECE8E /* CapturaApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F915512A6EF80D007ECE8E /* CapturaApp.swift */; };
                B55DDFCC2A6F0253001A5E76 /* Notification+AppEvents.swift in Sources */ = {isa = PBXBuildFile; fileRef = B55DDFCB2A6F0253001A5E76 /* Notification+AppEvents.swift */; };
                B55DDFCE2A6F069D001A5E76 /* RecordingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B55DDFCD2A6F069D001A5E76 /* RecordingWindow.swift */; };
                B56C70CD2A6EFDF4009B97EB /* CaptureState.swift in Sources */ = {isa = PBXBuildFile; fileRef = B56C70CC2A6EFDF4009B97EB /* CaptureState.swift */; };
                B5F915522A6EF80D007ECE8E /* CapturaApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F915512A6EF80D007ECE8E /* CapturaApp.swift */; };
-               B5F915542A6EF80D007ECE8E /* PreferencesWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F915532A6EF80D007ECE8E /* PreferencesWindow.swift */; };
+               B5F915542A6EF80D007ECE8E /* PreferencesScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F915532A6EF80D007ECE8E /* PreferencesScreen.swift */; };
                B5F915562A6EF80E007ECE8E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B5F915552A6EF80E007ECE8E /* Assets.xcassets */; };
                B5F915592A6EF80E007ECE8E /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B5F915582A6EF80E007ECE8E /* Preview Assets.xcassets */; };
                B5F915562A6EF80E007ECE8E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B5F915552A6EF80E007ECE8E /* Assets.xcassets */; };
                B5F915592A6EF80E007ECE8E /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = B5F915582A6EF80E007ECE8E /* Preview Assets.xcassets */; };
-               B5F9155B2A6EF80E007ECE8E /* Item.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F9155A2A6EF80E007ECE8E /* Item.swift */; };
+               B5F9155B2A6EF80E007ECE8E /* CapturaRemoteFile+name.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F9155A2A6EF80E007ECE8E /* CapturaRemoteFile+name.swift */; };
                B5F915662A6EF80E007ECE8E /* CapturaTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F915652A6EF80E007ECE8E /* CapturaTests.swift */; };
                B5F915702A6EF80E007ECE8E /* CapturaUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F9156F2A6EF80E007ECE8E /* CapturaUITests.swift */; };
                B5F915722A6EF80E007ECE8E /* CapturaUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F915712A6EF80E007ECE8E /* CapturaUITestsLaunchTests.swift */; };
                B5F915662A6EF80E007ECE8E /* CapturaTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F915652A6EF80E007ECE8E /* CapturaTests.swift */; };
                B5F915702A6EF80E007ECE8E /* CapturaUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F9156F2A6EF80E007ECE8E /* CapturaUITests.swift */; };
                B5F915722A6EF80E007ECE8E /* CapturaUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5F915712A6EF80E007ECE8E /* CapturaUITestsLaunchTests.swift */; };
 /* End PBXContainerItemProxy section */
 
 /* Begin PBXFileReference section */
 /* End PBXContainerItemProxy section */
 
 /* Begin PBXFileReference section */
+               B5278B162A71528F009F6462 /* HelpPopoverViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HelpPopoverViewController.swift; sourceTree = "<group>"; };
+               B5278B1E2A71BD9B009F6462 /* OutputSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutputSettings.swift; sourceTree = "<group>"; };
+               B5278B202A71BFC3009F6462 /* OutputFormatSetting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = OutputFormatSetting.swift; sourceTree = "<group>"; };
+               B5278B222A71C140009F6462 /* PreferencesWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesWindow.swift; sourceTree = "<group>"; };
+               B5278B242A71CA80009F6462 /* AdvancedSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AdvancedSettings.swift; sourceTree = "<group>"; };
+               B5278B272A739871009F6462 /* CGImage+resize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CGImage+resize.swift"; sourceTree = "<group>"; };
+               B5278B292A73992D009F6462 /* GifRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GifRenderer.swift; sourceTree = "<group>"; };
+               B5278B2B2A739B3A009F6462 /* CapturaFile.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapturaFile.swift; sourceTree = "<group>"; };
+               B5278B302A73AEAE009F6462 /* CVImageBuffer+cgImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CVImageBuffer+cgImage.swift"; sourceTree = "<group>"; };
+               B5278B352A73B3AA009F6462 /* CapturaCaptureSession.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapturaCaptureSession.swift; sourceTree = "<group>"; };
+               B5278B372A73D1EE009F6462 /* CapturaSettings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapturaSettings.swift; sourceTree = "<group>"; };
+               B5278B3D2A74420F009F6462 /* CapturaRemoteFile.xcdatamodel */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcdatamodel; path = CapturaRemoteFile.xcdatamodel; sourceTree = "<group>"; };
+               B5278B3F2A744297009F6462 /* Persistence.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Persistence.swift; sourceTree = "<group>"; };
+               B5278B412A779CDB009F6462 /* BackendResponse.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackendResponse.swift; sourceTree = "<group>"; };
+               B5278B432A77B43A009F6462 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = Info.plist; sourceTree = "<group>"; };
+               B5278B442A77D924009F6462 /* CaptureSessionConfiguration.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CaptureSessionConfiguration.swift; sourceTree = "<group>"; };
+               B5278B462A77E8D7009F6462 /* CapturaURLDecoder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapturaURLDecoder.swift; sourceTree = "<group>"; };
+               B5278B482A781B78009F6462 /* Captura.sdef */ = {isa = PBXFileReference; lastKnownFileType = text; path = Captura.sdef; sourceTree = "<group>"; };
+               B5278B4D2A799AA3009F6462 /* GetRemoteCaptures.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetRemoteCaptures.swift; sourceTree = "<group>"; };
+               B55403E62A79A08C004BCBAB /* CapturaShortcutsProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapturaShortcutsProvider.swift; sourceTree = "<group>"; };
+               B55403E92A79A434004BCBAB /* ScriptedPreferences.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ScriptedPreferences.swift; sourceTree = "<group>"; };
+               B55403EC2A7A388B004BCBAB /* RecordCommand.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordCommand.swift; sourceTree = "<group>"; };
                B55DDFCB2A6F0253001A5E76 /* Notification+AppEvents.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Notification+AppEvents.swift"; sourceTree = "<group>"; };
                B55DDFCD2A6F069D001A5E76 /* RecordingWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordingWindow.swift; sourceTree = "<group>"; };
                B56C70CC2A6EFDF4009B97EB /* CaptureState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CaptureState.swift; sourceTree = "<group>"; };
                B5F9154E2A6EF80D007ECE8E /* Captura.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Captura.app; sourceTree = BUILT_PRODUCTS_DIR; };
                B5F915512A6EF80D007ECE8E /* CapturaApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapturaApp.swift; sourceTree = "<group>"; };
                B55DDFCB2A6F0253001A5E76 /* Notification+AppEvents.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Notification+AppEvents.swift"; sourceTree = "<group>"; };
                B55DDFCD2A6F069D001A5E76 /* RecordingWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RecordingWindow.swift; sourceTree = "<group>"; };
                B56C70CC2A6EFDF4009B97EB /* CaptureState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CaptureState.swift; sourceTree = "<group>"; };
                B5F9154E2A6EF80D007ECE8E /* Captura.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Captura.app; sourceTree = BUILT_PRODUCTS_DIR; };
                B5F915512A6EF80D007ECE8E /* CapturaApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapturaApp.swift; sourceTree = "<group>"; };
-               B5F915532A6EF80D007ECE8E /* PreferencesWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesWindow.swift; sourceTree = "<group>"; };
+               B5F915532A6EF80D007ECE8E /* PreferencesScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreferencesScreen.swift; sourceTree = "<group>"; };
                B5F915552A6EF80E007ECE8E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
                B5F915582A6EF80E007ECE8E /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
                B5F915552A6EF80E007ECE8E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
                B5F915582A6EF80E007ECE8E /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
-               B5F9155A2A6EF80E007ECE8E /* Item.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Item.swift; sourceTree = "<group>"; };
+               B5F9155A2A6EF80E007ECE8E /* CapturaRemoteFile+name.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "CapturaRemoteFile+name.swift"; sourceTree = "<group>"; };
                B5F9155C2A6EF80E007ECE8E /* Captura.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Captura.entitlements; sourceTree = "<group>"; };
                B5F915612A6EF80E007ECE8E /* CapturaTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CapturaTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
                B5F915652A6EF80E007ECE8E /* CapturaTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapturaTests.swift; sourceTree = "<group>"; };
                B5F9155C2A6EF80E007ECE8E /* Captura.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Captura.entitlements; sourceTree = "<group>"; };
                B5F915612A6EF80E007ECE8E /* CapturaTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CapturaTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
                B5F915652A6EF80E007ECE8E /* CapturaTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CapturaTests.swift; sourceTree = "<group>"; };
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                        isa = PBXFrameworksBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
+                               B5278B4B2A7995AA009F6462 /* CloudStorage in Frameworks */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
 /* End PBXFrameworksBuildPhase section */
 
 /* Begin PBXGroup section */
+               B5278B182A71BD10009F6462 /* Presentation */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B5278B1D2A71BD8A009F6462 /* Settings */,
+                               B5278B1B2A71BD2E009F6462 /* Popovers */,
+                               B5278B1A2A71BD1F009F6462 /* Windows */,
+                               B5278B192A71BD1A009F6462 /* Screens */,
+                       );
+                       path = Presentation;
+                       sourceTree = "<group>";
+               };
+               B5278B192A71BD1A009F6462 /* Screens */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B5F915532A6EF80D007ECE8E /* PreferencesScreen.swift */,
+                       );
+                       path = Screens;
+                       sourceTree = "<group>";
+               };
+               B5278B1A2A71BD1F009F6462 /* Windows */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B55DDFCD2A6F069D001A5E76 /* RecordingWindow.swift */,
+                               B5278B222A71C140009F6462 /* PreferencesWindow.swift */,
+                       );
+                       path = Windows;
+                       sourceTree = "<group>";
+               };
+               B5278B1B2A71BD2E009F6462 /* Popovers */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B5278B162A71528F009F6462 /* HelpPopoverViewController.swift */,
+                       );
+                       path = Popovers;
+                       sourceTree = "<group>";
+               };
+               B5278B1C2A71BD3C009F6462 /* Data */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B5278B202A71BFC3009F6462 /* OutputFormatSetting.swift */,
+                               B5278B292A73992D009F6462 /* GifRenderer.swift */,
+                               B5278B2B2A739B3A009F6462 /* CapturaFile.swift */,
+                               B5F9155A2A6EF80E007ECE8E /* CapturaRemoteFile+name.swift */,
+                               B5278B372A73D1EE009F6462 /* CapturaSettings.swift */,
+                               B5278B3C2A74420F009F6462 /* Captura.xcdatamodeld */,
+                               B5278B3F2A744297009F6462 /* Persistence.swift */,
+                               B5278B412A779CDB009F6462 /* BackendResponse.swift */,
+                               B5278B462A77E8D7009F6462 /* CapturaURLDecoder.swift */,
+                       );
+                       path = Data;
+                       sourceTree = "<group>";
+               };
+               B5278B1D2A71BD8A009F6462 /* Settings */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B5278B1E2A71BD9B009F6462 /* OutputSettings.swift */,
+                               B5278B242A71CA80009F6462 /* AdvancedSettings.swift */,
+                       );
+                       path = Settings;
+                       sourceTree = "<group>";
+               };
+               B5278B262A739862009F6462 /* Core Extensions */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B55DDFCB2A6F0253001A5E76 /* Notification+AppEvents.swift */,
+                               B5278B272A739871009F6462 /* CGImage+resize.swift */,
+                               B5278B302A73AEAE009F6462 /* CVImageBuffer+cgImage.swift */,
+                       );
+                       path = "Core Extensions";
+                       sourceTree = "<group>";
+               };
+               B5278B322A73AFEC009F6462 /* Domain */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B56C70CC2A6EFDF4009B97EB /* CaptureState.swift */,
+                               B5278B352A73B3AA009F6462 /* CapturaCaptureSession.swift */,
+                               B5278B442A77D924009F6462 /* CaptureSessionConfiguration.swift */,
+                       );
+                       path = Domain;
+                       sourceTree = "<group>";
+               };
+               B5278B4C2A799A90009F6462 /* Intents */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B5278B4D2A799AA3009F6462 /* GetRemoteCaptures.swift */,
+                               B55403E62A79A08C004BCBAB /* CapturaShortcutsProvider.swift */,
+                       );
+                       path = Intents;
+                       sourceTree = "<group>";
+               };
+               B55403E82A79A3D5004BCBAB /* Scripting */ = {
+                       isa = PBXGroup;
+                       children = (
+                               B5278B482A781B78009F6462 /* Captura.sdef */,
+                               B55403E92A79A434004BCBAB /* ScriptedPreferences.swift */,
+                               B55403EC2A7A388B004BCBAB /* RecordCommand.swift */,
+                       );
+                       path = Scripting;
+                       sourceTree = "<group>";
+               };
                B5F915452A6EF80D007ECE8E = {
                        isa = PBXGroup;
                        children = (
                B5F915452A6EF80D007ECE8E = {
                        isa = PBXGroup;
                        children = (
                B5F915502A6EF80D007ECE8E /* Captura */ = {
                        isa = PBXGroup;
                        children = (
                B5F915502A6EF80D007ECE8E /* Captura */ = {
                        isa = PBXGroup;
                        children = (
+                               B55403E82A79A3D5004BCBAB /* Scripting */,
+                               B5278B4C2A799A90009F6462 /* Intents */,
+                               B5278B432A77B43A009F6462 /* Info.plist */,
                                B5F915512A6EF80D007ECE8E /* CapturaApp.swift */,
                                B5F915512A6EF80D007ECE8E /* CapturaApp.swift */,
-                               B5F915532A6EF80D007ECE8E /* PreferencesWindow.swift */,
+                               B5278B262A739862009F6462 /* Core Extensions */,
+                               B5278B1C2A71BD3C009F6462 /* Data */,
+                               B5278B322A73AFEC009F6462 /* Domain */,
+                               B5278B182A71BD10009F6462 /* Presentation */,
                                B5F915552A6EF80E007ECE8E /* Assets.xcassets */,
                                B5F915552A6EF80E007ECE8E /* Assets.xcassets */,
-                               B5F9155A2A6EF80E007ECE8E /* Item.swift */,
                                B5F9155C2A6EF80E007ECE8E /* Captura.entitlements */,
                                B5F915572A6EF80E007ECE8E /* Preview Content */,
                                B5F9155C2A6EF80E007ECE8E /* Captura.entitlements */,
                                B5F915572A6EF80E007ECE8E /* Preview Content */,
-                               B56C70CC2A6EFDF4009B97EB /* CaptureState.swift */,
-                               B55DDFCB2A6F0253001A5E76 /* Notification+AppEvents.swift */,
-                               B55DDFCD2A6F069D001A5E76 /* RecordingWindow.swift */,
                        );
                        path = Captura;
                        sourceTree = "<group>";
                        );
                        path = Captura;
                        sourceTree = "<group>";
                        dependencies = (
                        );
                        name = Captura;
                        dependencies = (
                        );
                        name = Captura;
+                       packageProductDependencies = (
+                               B5278B4A2A7995AA009F6462 /* CloudStorage */,
+                       );
                        productName = Captura;
                        productReference = B5F9154E2A6EF80D007ECE8E /* Captura.app */;
                        productType = "com.apple.product-type.application";
                        productName = Captura;
                        productReference = B5F9154E2A6EF80D007ECE8E /* Captura.app */;
                        productType = "com.apple.product-type.application";
                                Base,
                        );
                        mainGroup = B5F915452A6EF80D007ECE8E;
                                Base,
                        );
                        mainGroup = B5F915452A6EF80D007ECE8E;
+                       packageReferences = (
+                               B5278B492A7995AA009F6462 /* XCRemoteSwiftPackageReference "CloudStorage" */,
+                       );
                        productRefGroup = B5F9154F2A6EF80D007ECE8E /* Products */;
                        projectDirPath = "";
                        projectRoot = "";
                        productRefGroup = B5F9154F2A6EF80D007ECE8E /* Products */;
                        projectDirPath = "";
                        projectRoot = "";
                        files = (
                                B5F915592A6EF80E007ECE8E /* Preview Assets.xcassets in Resources */,
                                B5F915562A6EF80E007ECE8E /* Assets.xcassets in Resources */,
                        files = (
                                B5F915592A6EF80E007ECE8E /* Preview Assets.xcassets in Resources */,
                                B5F915562A6EF80E007ECE8E /* Assets.xcassets in Resources */,
+                               B55403EB2A7A2AD2004BCBAB /* Captura.sdef in Resources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
                        isa = PBXSourcesBuildPhase;
                        buildActionMask = 2147483647;
                        files = (
-                               B5F915542A6EF80D007ECE8E /* PreferencesWindow.swift in Sources */,
+                               B5F915542A6EF80D007ECE8E /* PreferencesScreen.swift in Sources */,
+                               B5278B382A73D1EE009F6462 /* CapturaSettings.swift in Sources */,
+                               B5278B282A739871009F6462 /* CGImage+resize.swift in Sources */,
+                               B5278B422A779CDB009F6462 /* BackendResponse.swift in Sources */,
+                               B5278B4E2A799AA3009F6462 /* GetRemoteCaptures.swift in Sources */,
+                               B5278B452A77D924009F6462 /* CaptureSessionConfiguration.swift in Sources */,
+                               B5278B2C2A739B3A009F6462 /* CapturaFile.swift in Sources */,
+                               B55403E72A79A08C004BCBAB /* CapturaShortcutsProvider.swift in Sources */,
+                               B5278B1F2A71BD9B009F6462 /* OutputSettings.swift in Sources */,
+                               B5278B2A2A73992D009F6462 /* GifRenderer.swift in Sources */,
+                               B5278B212A71BFC3009F6462 /* OutputFormatSetting.swift in Sources */,
                                B55DDFCE2A6F069D001A5E76 /* RecordingWindow.swift in Sources */,
                                B55DDFCE2A6F069D001A5E76 /* RecordingWindow.swift in Sources */,
+                               B55403ED2A7A388B004BCBAB /* RecordCommand.swift in Sources */,
+                               B5278B402A744297009F6462 /* Persistence.swift in Sources */,
                                B55DDFCC2A6F0253001A5E76 /* Notification+AppEvents.swift in Sources */,
                                B55DDFCC2A6F0253001A5E76 /* Notification+AppEvents.swift in Sources */,
-                               B5F9155B2A6EF80E007ECE8E /* Item.swift in Sources */,
+                               B5F9155B2A6EF80E007ECE8E /* CapturaRemoteFile+name.swift in Sources */,
+                               B5278B232A71C140009F6462 /* PreferencesWindow.swift in Sources */,
+                               B5278B172A71528F009F6462 /* HelpPopoverViewController.swift in Sources */,
                                B56C70CD2A6EFDF4009B97EB /* CaptureState.swift in Sources */,
                                B56C70CD2A6EFDF4009B97EB /* CaptureState.swift in Sources */,
+                               B5278B312A73AEAE009F6462 /* CVImageBuffer+cgImage.swift in Sources */,
+                               B5278B252A71CA80009F6462 /* AdvancedSettings.swift in Sources */,
+                               B5278B362A73B3AA009F6462 /* CapturaCaptureSession.swift in Sources */,
+                               B5278B3E2A74420F009F6462 /* Captura.xcdatamodeld in Sources */,
+                               B55403EA2A79A434004BCBAB /* ScriptedPreferences.swift in Sources */,
                                B5F915522A6EF80D007ECE8E /* CapturaApp.swift in Sources */,
                                B5F915522A6EF80D007ECE8E /* CapturaApp.swift in Sources */,
+                               B5278B472A77E8D7009F6462 /* CapturaURLDecoder.swift in Sources */,
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                        );
                        runOnlyForDeploymentPostprocessing = 0;
                };
                                GCC_WARN_UNUSED_FUNCTION = YES;
                                GCC_WARN_UNUSED_VARIABLE = YES;
                                LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
                                GCC_WARN_UNUSED_FUNCTION = YES;
                                GCC_WARN_UNUSED_VARIABLE = YES;
                                LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
-                               MACOSX_DEPLOYMENT_TARGET = 14.0;
+                               MACOSX_DEPLOYMENT_TARGET = 12.0;
                                MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
                                MTL_FAST_MATH = YES;
                                ONLY_ACTIVE_ARCH = YES;
                                MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
                                MTL_FAST_MATH = YES;
                                ONLY_ACTIVE_ARCH = YES;
                                GCC_WARN_UNUSED_FUNCTION = YES;
                                GCC_WARN_UNUSED_VARIABLE = YES;
                                LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
                                GCC_WARN_UNUSED_FUNCTION = YES;
                                GCC_WARN_UNUSED_VARIABLE = YES;
                                LOCALIZATION_PREFERS_STRING_CATALOGS = YES;
-                               MACOSX_DEPLOYMENT_TARGET = 14.0;
+                               MACOSX_DEPLOYMENT_TARGET = 12.0;
                                MTL_ENABLE_DEBUG_INFO = NO;
                                MTL_FAST_MATH = YES;
                                SDKROOT = macosx;
                                MTL_ENABLE_DEBUG_INFO = NO;
                                MTL_FAST_MATH = YES;
                                SDKROOT = macosx;
                                ENABLE_HARDENED_RUNTIME = YES;
                                ENABLE_PREVIEWS = YES;
                                GENERATE_INFOPLIST_FILE = YES;
                                ENABLE_HARDENED_RUNTIME = YES;
                                ENABLE_PREVIEWS = YES;
                                GENERATE_INFOPLIST_FILE = YES;
+                               INFOPLIST_FILE = Captura/Info.plist;
+                               INFOPLIST_KEY_LSUIElement = YES;
                                INFOPLIST_KEY_NSHumanReadableCopyright = "";
                                LD_RUNPATH_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "@executable_path/../Frameworks",
                                );
                                INFOPLIST_KEY_NSHumanReadableCopyright = "";
                                LD_RUNPATH_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "@executable_path/../Frameworks",
                                );
+                               MACOSX_DEPLOYMENT_TARGET = 13.0;
                                MARKETING_VERSION = 1.0;
                                PRODUCT_BUNDLE_IDENTIFIER = pizza.unlimited.Captura;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                MARKETING_VERSION = 1.0;
                                PRODUCT_BUNDLE_IDENTIFIER = pizza.unlimited.Captura;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                ENABLE_HARDENED_RUNTIME = YES;
                                ENABLE_PREVIEWS = YES;
                                GENERATE_INFOPLIST_FILE = YES;
                                ENABLE_HARDENED_RUNTIME = YES;
                                ENABLE_PREVIEWS = YES;
                                GENERATE_INFOPLIST_FILE = YES;
+                               INFOPLIST_FILE = Captura/Info.plist;
+                               INFOPLIST_KEY_LSUIElement = YES;
                                INFOPLIST_KEY_NSHumanReadableCopyright = "";
                                LD_RUNPATH_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "@executable_path/../Frameworks",
                                );
                                INFOPLIST_KEY_NSHumanReadableCopyright = "";
                                LD_RUNPATH_SEARCH_PATHS = (
                                        "$(inherited)",
                                        "@executable_path/../Frameworks",
                                );
+                               MACOSX_DEPLOYMENT_TARGET = 13.0;
                                MARKETING_VERSION = 1.0;
                                PRODUCT_BUNDLE_IDENTIFIER = pizza.unlimited.Captura;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                                MARKETING_VERSION = 1.0;
                                PRODUCT_BUNDLE_IDENTIFIER = pizza.unlimited.Captura;
                                PRODUCT_NAME = "$(TARGET_NAME)";
                        defaultConfigurationName = Release;
                };
 /* End XCConfigurationList section */
                        defaultConfigurationName = Release;
                };
 /* End XCConfigurationList section */
+
+/* Begin XCRemoteSwiftPackageReference section */
+               B5278B492A7995AA009F6462 /* XCRemoteSwiftPackageReference "CloudStorage" */ = {
+                       isa = XCRemoteSwiftPackageReference;
+                       repositoryURL = "https://github.com/nonstrict-hq/CloudStorage";
+                       requirement = {
+                               kind = upToNextMajorVersion;
+                               minimumVersion = 0.4.0;
+                       };
+               };
+/* End XCRemoteSwiftPackageReference section */
+
+/* Begin XCSwiftPackageProductDependency section */
+               B5278B4A2A7995AA009F6462 /* CloudStorage */ = {
+                       isa = XCSwiftPackageProductDependency;
+                       package = B5278B492A7995AA009F6462 /* XCRemoteSwiftPackageReference "CloudStorage" */;
+                       productName = CloudStorage;
+               };
+/* End XCSwiftPackageProductDependency section */
+
+/* Begin XCVersionGroup section */
+               B5278B3C2A74420F009F6462 /* Captura.xcdatamodeld */ = {
+                       isa = XCVersionGroup;
+                       children = (
+                               B5278B3D2A74420F009F6462 /* CapturaRemoteFile.xcdatamodel */,
+                       );
+                       currentVersion = B5278B3D2A74420F009F6462 /* CapturaRemoteFile.xcdatamodel */;
+                       path = Captura.xcdatamodeld;
+                       sourceTree = "<group>";
+                       versionGroupType = wrapper.xcdatamodel;
+               };
+/* End XCVersionGroup section */
        };
        rootObject = B5F915462A6EF80D007ECE8E /* Project object */;
 }
        };
        rootObject = B5F915462A6EF80D007ECE8E /* Project object */;
 }