From 7e447472f83def3c23a4c97072186b4e2fcc7157 Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Sun, 30 Sep 2018 13:21:01 +0200 Subject: [PATCH 1/2] Add Finder to list of applications --- Resources/Info.plist | 2 +- Sources/Applications/ApplicationsLogicController.swift | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Resources/Info.plist b/Resources/Info.plist index a900c34..7ecc47c 100644 --- a/Resources/Info.plist +++ b/Resources/Info.plist @@ -17,7 +17,7 @@ CFBundlePackageType APPL CFBundleShortVersionString - 0.2.0 + 0.2.1 CFBundleVersion 1 LSMinimumSystemVersion diff --git a/Sources/Applications/ApplicationsLogicController.swift b/Sources/Applications/ApplicationsLogicController.swift index 1a60b86..709b3d7 100644 --- a/Sources/Applications/ApplicationsLogicController.swift +++ b/Sources/Applications/ApplicationsLogicController.swift @@ -14,11 +14,11 @@ class ApplicationsLogicController { in: .localDomainMask, appropriateFor: nil, create: false) - let urls = try FileManager.default.contentsOfDirectory(at: applicationDirectory, + var urls = try FileManager.default.contentsOfDirectory(at: applicationDirectory, includingPropertiesForKeys: nil, options: .skipsHiddenFiles) - let sortedUrls = urls.sorted(by: { $0.absoluteString.lowercased() < $1.absoluteString.lowercased() } ) - let applications = try processApplications(sortedUrls, at: applicationDirectory) + urls.append(URL(string: "file:///System/Library/CoreServices/Finder.app")!) + let applications = try processApplications(urls, at: applicationDirectory) handler(.list(applications)) } catch {} } @@ -91,7 +91,7 @@ class ApplicationsLogicController { appearance: resolvedPlist.appearance()) applications.append(app) } - return applications + return applications.sorted(by: { $0.name.lowercased() < $1.name.lowercased() }) } } From e37ca1873c047010072f82970d41c8c5edaefc2c Mon Sep 17 00:00:00 2001 From: Christoffer Winterkvist Date: Sun, 30 Sep 2018 13:26:09 +0200 Subject: [PATCH 2/2] Make relaunch exception for CoreServices apps --- Sources/Applications/ApplicationsLogicController.swift | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/Sources/Applications/ApplicationsLogicController.swift b/Sources/Applications/ApplicationsLogicController.swift index 709b3d7..f33459c 100644 --- a/Sources/Applications/ApplicationsLogicController.swift +++ b/Sources/Applications/ApplicationsLogicController.swift @@ -31,7 +31,7 @@ class ApplicationsLogicController { do { let shell = Shell() let applicationIsRunning = !NSRunningApplication.runningApplications(withBundleIdentifier: application.bundleIdentifier).isEmpty - if applicationIsRunning { + if applicationIsRunning && !application.url.path.contains("CoreServices") { do { let script = """ tell application "\(application.name)" to quit @@ -42,8 +42,10 @@ class ApplicationsLogicController { try shell.execute(command: "defaults write \(application.bundleIdentifier) NSRequiresAquaSystemAppearance -bool \(newSetting)") - if applicationIsRunning { + if applicationIsRunning && !application.url.path.contains("CoreServices") { NSWorkspace.shared.launchApplication(application.name) + } else { + try shell.execute(command: "killall", arguments: ["-9", "\(application.name)"]) } DispatchQueue.main.async { [weak self] in