From 537d6bfcac9cd6a5daf85b044f0e7e44bce1226c Mon Sep 17 00:00:00 2001 From: ruslanjabari Date: Thu, 28 Dec 2023 18:48:19 -0800 Subject: [PATCH 1/2] feat: added option to launch Rem on boot --- rem.xcodeproj/project.pbxproj | 17 +++++++++++++++++ rem/SettingsManager.swift | 2 ++ 2 files changed, 19 insertions(+) diff --git a/rem.xcodeproj/project.pbxproj b/rem.xcodeproj/project.pbxproj index 5d44abe..05bbc07 100644 --- a/rem.xcodeproj/project.pbxproj +++ b/rem.xcodeproj/project.pbxproj @@ -8,6 +8,7 @@ /* Begin PBXBuildFile section */ 102CA4C82B3E240C00C3DA2E /* SQLite.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 96E66BC32B2F5745006E1E97 /* SQLite.framework */; }; + 102CA4DF2B3E691F00C3DA2E /* LaunchAtLogin in Frameworks */ = {isa = PBXBuildFile; productRef = 102CA4DE2B3E691F00C3DA2E /* LaunchAtLogin */; }; 961C95DA2B2E19B30093F228 /* remApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 961C95D92B2E19B30093F228 /* remApp.swift */; }; 961C95DC2B2E19B30093F228 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 961C95DB2B2E19B30093F228 /* ContentView.swift */; }; 961C95E12B2E19B40093F228 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 961C95E02B2E19B40093F228 /* Preview Assets.xcassets */; }; @@ -201,6 +202,7 @@ isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = ( + 102CA4DF2B3E691F00C3DA2E /* LaunchAtLogin in Frameworks */, 102CA4C82B3E240C00C3DA2E /* SQLite.framework in Frameworks */, 969F3EFF2B3A8C4D0085787B /* HotKey in Frameworks */, ); @@ -357,6 +359,7 @@ name = rem; packageProductDependencies = ( 969F3EFE2B3A8C4D0085787B /* HotKey */, + 102CA4DE2B3E691F00C3DA2E /* LaunchAtLogin */, ); productName = rem; productReference = 961C95D62B2E19B30093F228 /* rem.app */; @@ -432,6 +435,7 @@ mainGroup = 961C95CD2B2E19B30093F228; packageReferences = ( 969F3EFD2B3A8C4D0085787B /* XCRemoteSwiftPackageReference "HotKey" */, + 102CA4DD2B3E691F00C3DA2E /* XCRemoteSwiftPackageReference "LaunchAtLogin-Modern" */, ); productRefGroup = 961C95D72B2E19B30093F228 /* Products */; projectDirPath = ""; @@ -947,6 +951,14 @@ /* End XCConfigurationList section */ /* Begin XCRemoteSwiftPackageReference section */ + 102CA4DD2B3E691F00C3DA2E /* XCRemoteSwiftPackageReference "LaunchAtLogin-Modern" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/sindresorhus/LaunchAtLogin-Modern"; + requirement = { + branch = main; + kind = branch; + }; + }; 969F3EFD2B3A8C4D0085787B /* XCRemoteSwiftPackageReference "HotKey" */ = { isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/soffes/HotKey"; @@ -958,6 +970,11 @@ /* End XCRemoteSwiftPackageReference section */ /* Begin XCSwiftPackageProductDependency section */ + 102CA4DE2B3E691F00C3DA2E /* LaunchAtLogin */ = { + isa = XCSwiftPackageProductDependency; + package = 102CA4DD2B3E691F00C3DA2E /* XCRemoteSwiftPackageReference "LaunchAtLogin-Modern" */; + productName = LaunchAtLogin; + }; 969F3EFE2B3A8C4D0085787B /* HotKey */ = { isa = XCSwiftPackageProductDependency; package = 969F3EFD2B3A8C4D0085787B /* XCRemoteSwiftPackageReference "HotKey" */; diff --git a/rem/SettingsManager.swift b/rem/SettingsManager.swift index 71d11f8..5bcb0c3 100644 --- a/rem/SettingsManager.swift +++ b/rem/SettingsManager.swift @@ -7,6 +7,7 @@ import Foundation import SwiftUI +import LaunchAtLogin // The settings structure struct AppSettings: Codable { @@ -48,6 +49,7 @@ struct SettingsView: View { Form { Toggle("Remember everything copied to clipboard", isOn: $settingsManager.settings.saveEverythingCopiedToClipboard) .onChange(of: settingsManager.settings.saveEverythingCopiedToClipboard) { settingsManager.saveSettings() } + LaunchAtLogin.Toggle("Launch at login 🦄") } } .padding() From 7be79c65b4fc1d9add6bf8181190d9d7887bb6d6 Mon Sep 17 00:00:00 2001 From: Jason McGhee Date: Sun, 3 Mar 2024 13:32:05 -0800 Subject: [PATCH 2/2] fix to work with our settings manager --- rem/SettingsManager.swift | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rem/SettingsManager.swift b/rem/SettingsManager.swift index 53a1e3b..4a9c744 100644 --- a/rem/SettingsManager.swift +++ b/rem/SettingsManager.swift @@ -15,6 +15,7 @@ struct AppSettings: Codable { var enableCmdScrollShortcut: Bool var onlyOCRFrontmostWindow: Bool = true var fastOCR: Bool = true + var startRememberingOnStartup: Bool = false } // The settings manager handles saving and loading the settings @@ -50,6 +51,11 @@ struct SettingsView: View { .font(.title) .padding(.bottom) Form { + Toggle("Launch rem and start remembering on startup", isOn: $settingsManager.settings.startRememberingOnStartup) + .onChange(of: settingsManager.settings.startRememberingOnStartup) { value in + LaunchAtLogin.isEnabled = value + settingsManager.saveSettings() + } Toggle("Remember everything copied to clipboard", isOn: $settingsManager.settings.saveEverythingCopiedToClipboard) .onChange(of: settingsManager.settings.saveEverythingCopiedToClipboard) { _ in settingsManager.saveSettings() } Toggle("Allow opening / closing timeline with CMD + Scroll", isOn: $settingsManager.settings.enableCmdScrollShortcut) @@ -58,7 +64,6 @@ struct SettingsView: View { .onChange(of: settingsManager.settings.onlyOCRFrontmostWindow) { _ in settingsManager.saveSettings() } Toggle("Use faster, but lower accuracy OCR (more efficient)", isOn: $settingsManager.settings.fastOCR) .onChange(of: settingsManager.settings.fastOCR) { _ in settingsManager.saveSettings() } - LaunchAtLogin.Toggle("Launch at login 🦄") } } .padding()