Rename app from Snipping Tool to SnipMC
Changes bundle ID, URL scheme, display name, project name, and all user-facing references. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -11,7 +11,7 @@ final class AboutWindowController: NSWindowController, NSWindowDelegate {
|
||||
backing: .buffered,
|
||||
defer: false
|
||||
)
|
||||
window.title = "Snipping Tool"
|
||||
window.title = "SnipMC"
|
||||
window.isReleasedWhenClosed = false
|
||||
window.center()
|
||||
self.init(window: window)
|
||||
@@ -62,7 +62,7 @@ struct AboutTab: View {
|
||||
.frame(width: 80, height: 80)
|
||||
}
|
||||
|
||||
Text("Snipping Tool")
|
||||
Text("SnipMC")
|
||||
.font(.title.bold())
|
||||
|
||||
Text("Version \(version) (\(build))")
|
||||
@@ -95,7 +95,7 @@ struct HelpTab: View {
|
||||
helpSection("Aufnahme-Modi") {
|
||||
helpRow("Ganzer Bildschirm", "Nimmt den gesamten Bildschirm auf")
|
||||
helpRow("Fenster", "Klicke auf ein Fenster, um es aufzunehmen")
|
||||
helpRow("Bereich", "Ziehe einen Rahmen um den gewünschten Bereich")
|
||||
helpRow("Bereich", "Ziehe einen Rahmen um den gew\u{00fc}nschten Bereich")
|
||||
}
|
||||
|
||||
helpSection("Bildeditor") {
|
||||
@@ -103,31 +103,31 @@ struct HelpTab: View {
|
||||
helpRow("Rechteck", "Rahmen um einen Bereich zeichnen")
|
||||
helpRow("Ellipse", "Kreis oder Oval zeichnen")
|
||||
helpRow("Text", "Klicke auf eine Stelle und tippe Text ein")
|
||||
helpRow("\u{2318}Z / \u{2318}\u{21e7}Z", "Rückgängig / Wiederholen")
|
||||
helpRow("\u{232b} / Entf", "Ausgewählte Annotation löschen")
|
||||
helpRow("\u{2318}Z / \u{2318}\u{21e7}Z", "R\u{00fc}ckg\u{00e4}ngig / Wiederholen")
|
||||
helpRow("\u{232b} / Entf", "Ausgew\u{00e4}hlte Annotation l\u{00f6}schen")
|
||||
}
|
||||
|
||||
helpSection("URL-Schema") {
|
||||
Text("Zum Auslösen per Logitech Options+, Kurzbefehle, Stream Deck o.\u{202f}ä.")
|
||||
Text("Zum Ausl\u{00f6}sen per Logitech Options+, Kurzb efehle, Stream Deck o.\u{202f}\u{00e4}.")
|
||||
.font(.callout)
|
||||
.foregroundStyle(.secondary)
|
||||
.padding(.bottom, 4)
|
||||
urlRow("snippingtool://fullscreen", "Vollbild-Screenshot")
|
||||
urlRow("snippingtool://window", "Fenster-Screenshot")
|
||||
urlRow("snippingtool://region", "Bereich-Screenshot")
|
||||
urlRow("snippingtool://region?edit=true", "Bereich + Editor")
|
||||
urlRow("snippingtool://fullscreen?edit=true", "Vollbild + Editor")
|
||||
urlRow("snippingtool://edit", "Bild aus Datei bearbeiten")
|
||||
urlRow("snippingtool://editlast", "Letzten Screenshot bearbeiten")
|
||||
urlRow("snippingtool://clipboard", "Zwischenablage bearbeiten")
|
||||
urlRow("snipmc://fullscreen", "Vollbild-Screenshot")
|
||||
urlRow("snipmc://window", "Fenster-Screenshot")
|
||||
urlRow("snipmc://region", "Bereich-Screenshot")
|
||||
urlRow("snipmc://region?edit=true", "Bereich + Editor")
|
||||
urlRow("snipmc://fullscreen?edit=true", "Vollbild + Editor")
|
||||
urlRow("snipmc://edit", "Bild aus Datei bearbeiten")
|
||||
urlRow("snipmc://editlast", "Letzten Screenshot bearbeiten")
|
||||
urlRow("snipmc://clipboard", "Zwischenablage bearbeiten")
|
||||
}
|
||||
|
||||
helpSection("Einrichtung in Logitech Options+") {
|
||||
VStack(alignment: .leading, spacing: 4) {
|
||||
Text("1. Logi Options+ öffnen und Gerät wählen")
|
||||
Text("2. Taste zuweisen: Aktion = URL öffnen")
|
||||
Text("1. Logi Options+ \u{00f6}ffnen und Ger\u{00e4}t w\u{00e4}hlen")
|
||||
Text("2. Taste zuweisen: Aktion = URL \u{00f6}ffnen")
|
||||
Text("3. URL eintragen, z.\u{202f}B.:")
|
||||
Text(" snippingtool://region?edit=true")
|
||||
Text(" snipmc://region?edit=true")
|
||||
.font(.system(.body, design: .monospaced))
|
||||
.foregroundStyle(.secondary)
|
||||
}
|
||||
@@ -137,8 +137,8 @@ struct HelpTab: View {
|
||||
helpSection("Hinweise") {
|
||||
VStack(alignment: .leading, spacing: 4) {
|
||||
Text("\u{2022} Berechtigung Bildschirmaufnahme erforderlich (Systemeinstellungen \u{2192} Datenschutz & Sicherheit)")
|
||||
Text("\u{2022} Speicherort: ~/Bilder/Screenshots (änderbar in Einstellungen)")
|
||||
Text("\u{2022} Tastenkürzel frei konfigurierbar in den Einstellungen")
|
||||
Text("\u{2022} Speicherort: ~/Bilder/Screenshots (\u{00e4}nderbar in Einstellungen)")
|
||||
Text("\u{2022} Tastenk\u{00fc}rzel frei konfigurierbar in den Einstellungen")
|
||||
}
|
||||
.font(.callout)
|
||||
}
|
||||
|
||||
@@ -97,13 +97,8 @@ final class AppCoordinator: ObservableObject {
|
||||
|
||||
// MARK: - External triggers (URL scheme)
|
||||
|
||||
/// Handles `snippingtool://<mode>` URLs so external tools (Logitech
|
||||
/// Options, Shortcuts, Stream Deck, `open` from the command line, …)
|
||||
/// can trigger a specific capture mode instead of just launching the app.
|
||||
/// Accepts the mode either as the host (`snippingtool://region`) or as
|
||||
/// a query item (`snippingtool://capture?mode=region`).
|
||||
func handle(url: URL) {
|
||||
guard url.scheme?.caseInsensitiveCompare("snippingtool") == .orderedSame else { return }
|
||||
guard url.scheme?.caseInsensitiveCompare("snipmc") == .orderedSame else { return }
|
||||
|
||||
let components = URLComponents(url: url, resolvingAgainstBaseURL: false)
|
||||
let queryItems = components?.queryItems ?? []
|
||||
@@ -141,7 +136,7 @@ final class AppCoordinator: ObservableObject {
|
||||
mode = .region
|
||||
default:
|
||||
mode = nil
|
||||
NSLog("SnippingTool: unrecognized URL trigger \(url.absoluteString)")
|
||||
NSLog("SnipMC: unrecognized URL trigger \(url.absoluteString)")
|
||||
}
|
||||
|
||||
if let mode {
|
||||
@@ -180,7 +175,7 @@ final class AppCoordinator: ObservableObject {
|
||||
do {
|
||||
try process.run()
|
||||
} catch {
|
||||
NSLog("SnippingTool: failed to launch screencapture: \(error)")
|
||||
NSLog("SnipMC: failed to launch screencapture: \(error)")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -266,7 +261,7 @@ final class AppCoordinator: ObservableObject {
|
||||
do {
|
||||
try data.write(to: url, options: .atomic)
|
||||
} catch {
|
||||
NSLog("SnippingTool: failed to save annotated image: \(error)")
|
||||
NSLog("SnipMC: failed to save annotated image: \(error)")
|
||||
}
|
||||
|
||||
if outputAction.copiesToClipboard {
|
||||
|
||||
@@ -31,7 +31,7 @@ struct MenuBarContentView: View {
|
||||
}
|
||||
.keyboardShortcut(",")
|
||||
|
||||
Button("Über Snipping Tool…") {
|
||||
Button("Über SnipMC…") {
|
||||
AboutWindowController.shared.show()
|
||||
}
|
||||
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
import SwiftUI
|
||||
|
||||
@main
|
||||
struct SnippingToolApp: App {
|
||||
struct SnipMCApp: App {
|
||||
@NSApplicationDelegateAdaptor(AppDelegate.self) private var appDelegate
|
||||
|
||||
var body: some Scene {
|
||||
MenuBarExtra("Snipping Tool", systemImage: "camera.viewfinder") {
|
||||
MenuBarExtra("SnipMC", systemImage: "camera.viewfinder") {
|
||||
MenuBarContentView()
|
||||
.environmentObject(appDelegate.coordinator)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user