diff --git a/Sources/tart/Commands/Run.swift b/Sources/tart/Commands/Run.swift index 33d3d50..44a2b2a 100644 --- a/Sources/tart/Commands/Run.swift +++ b/Sources/tart/Commands/Run.swift @@ -92,7 +92,7 @@ struct Run: AsyncParsableCommand { @Flag(help: ArgumentHelp( "Disable clipboard sharing between host and guest.", - discussion: "Only works with Linux-based guest operating systems.")) + discussion: "Clipboard sharing requires spice-vdagent package on Linux and https://github.com/cirruslabs/tart-guest-agent on macOS.")) var noClipboard: Bool = false #if arch(arm64) diff --git a/Sources/tart/VM.swift b/Sources/tart/VM.swift index e66d38b..159b6ae 100644 --- a/Sources/tart/VM.swift +++ b/Sources/tart/VM.swift @@ -358,11 +358,13 @@ class VM: NSObject, VZVirtualMachineDelegate, ObservableObject { } // Clipboard sharing via Spice agent - if clipboard && vmConfig.os == .linux { + if clipboard { let spiceAgentConsoleDevice = VZVirtioConsoleDeviceConfiguration() let spiceAgentPort = VZVirtioConsolePortConfiguration() spiceAgentPort.name = VZSpiceAgentPortAttachment.spiceAgentPortName - spiceAgentPort.attachment = VZSpiceAgentPortAttachment() + let spiceAgentPortAttachment = VZSpiceAgentPortAttachment() + spiceAgentPortAttachment.sharesClipboard = true + spiceAgentPort.attachment = spiceAgentPortAttachment spiceAgentConsoleDevice.ports[0] = spiceAgentPort configuration.consoleDevices.append(spiceAgentConsoleDevice) }