Spaces & Mission Control
functionSLSCopyManagedDisplaySpacescprobed
The full space layout: one entry per managed display, each with
Display Identifier, Current Space and a Spaces array. This is how you enumerate virtual desktops and find which one is active on each display.Swift
typealias CopyManagedDisplaySpaces = @convention(c) (Int32) -> Unmanaged<CFArray>?
let displays = unsafeBitCast(dlsym(lib, "SLSCopyManagedDisplaySpaces")!,
to: CopyManagedDisplaySpaces.self)(cid)?.takeRetainedValue() as? [[String: Any]]
for d in displays ?? [] {
let uuid = d["Display Identifier"] as? String
let spaces = (d["Spaces"] as? [[String: Any]])?.count ?? 0
}CFArrayRef SLSCopyManagedDisplaySpaces(int cid);
also exported by CoreGraphics as
CGSCopyManagedDisplaySpacesNo published signature
| symbol | kind | CoreGraphics name |
|---|---|---|
| SLDisplayCopyColorSpace | function | |
| SLPixelAccessGetColorSpace | function | |
| SLSAddWindowsToSpaces | function | CGSAddWindowsToSpaces |
| SLSCopyDisplayColorSpace | function | CGSCopyDisplayColorSpace |
| SLSCopyManagedDisplayForSpace | function | CGSCopyManagedDisplayForSpace |
| SLSCopySpaces | function | CGSCopySpaces |
| SLSCopySpacesForWindows | function | CGSCopySpacesForWindows |
| SLSCopySurfaceColorSpace | function | CGSCopySurfaceColorSpace |
| SLSCopyWindowColorSpace | function | CGSCopyWindowColorSpace |
| SLSCopyWindowsWithOptionsAndTagsAndSpaceOptions | function | |
| SLSDeviceCopyColorSpace | function | CGSDeviceCopyColorSpace |
| SLSEnsureSpaceSwitchToActiveProcess | function | |
| SLSGetActiveSpace | function | CGSGetActiveSpace |
| SLSGetMenuAppearanceThemeOnSpace | function | |
| SLSGetSpaceBindings | function | |
| SLSGetSpaceManagementMode | function | CGSGetSpaceManagementMode |
| SLSGetSpaceNeedsSafeAperture | function | |
| SLSGetSpacePermittedResizeDirections | function | CGSGetSpacePermittedResizeDirections |
| SLSGetTileSpaceDividerDirections | function | |
| SLSGetWindowWorkspace | function | CGSGetWindowWorkspace |
| SLSGetWindowWorkspaceIgnoringVisibility | function | CGSGetWindowWorkspaceIgnoringVisibility |
| SLSGetWorkspace | function | CGSGetWorkspace |
| SLSGetWorkspaceWindowCountWithOptionsAndTags | function | CGSGetWorkspaceWindowCountWithOptionsAndTags |
| SLSGetWorkspaceWindowGroup | function | CGSGetWorkspaceWindowGroup |
| SLSGetWorkspaceWindowListWithOptionsAndTags | function | CGSGetWorkspaceWindowListWithOptionsAndTags |
| SLSHWCaptureProcessWindowsInSpaceIncludeDesktop | function | |
| SLSHWCaptureSpace | function | CGSHWCaptureSpace |
| SLSHideSpaces | function | CGSHideSpaces |
| SLSManagedDisplayCurrentSpaceAllowsWindow | function | CGSManagedDisplayCurrentSpaceAllowsWindow |
| SLSManagedDisplayGetCurrentSpace | function | CGSManagedDisplayGetCurrentSpace |
| SLSManagedDisplayIteratorCopyManagedSpaces | function | |
| SLSManagedDisplaySetCurrentSpace | function | CGSManagedDisplaySetCurrentSpace |
| SLSMoveManagedSpaceToDisplayIndex | function | CGSMoveManagedSpaceToDisplayIndex |
| SLSMoveWindowsToManagedSpace | function | CGSMoveWindowsToManagedSpace |
| SLSMoveWorkspaceWindowList | function | CGSMoveWorkspaceWindowList |
| SLSMoveWorkspaceWindowListWithOptions | function | CGSMoveWorkspaceWindowListWithOptions |
| SLSPackagesAddWindowToDraggingSpace | function | CGSPackagesAddWindowToDraggingSpace |
| SLSPackagesAssignDraggedWindowToDestinationSpace | function | CGSPackagesAssignDraggedWindowToDestinationSpace |
| SLSPackagesCopyWorkspaceIdentifierForWorkspace | function | CGSPackagesCopyWorkspaceIdentifierForWorkspace |
| SLSPackagesGetWorkspaceForWorkspaceIdentifier | function | CGSPackagesGetWorkspaceForWorkspaceIdentifier |
| SLSPackagesRemoveWindowFromDraggingSpace | function | CGSPackagesRemoveWindowFromDraggingSpace |
| SLSPersistenceSaveSpaceConfiguration | function | CGSPersistenceSaveSpaceConfiguration |
| SLSProcessAssignToAllSpaces | function | CGSProcessAssignToAllSpaces |
| SLSProcessAssignToSpace | function | CGSProcessAssignToSpace |
| SLSReassociateWindowsSpacesByGeometry | function | CGSReassociateWindowsSpacesByGeometry |
| SLSRegisterColorSpaceFromICCData | function | |
| SLSRemoteContextAddNativeSpaceTrackingRegion | function | |
| SLSRemoveWindowsFromSpaces | function | CGSRemoveWindowsFromSpaces |
| SLSSetDefaultSpace | function | CGSSetDefaultSpace |
| SLSSetDisplayColorSpace | function | CGSSetDisplayColorSpace |
| SLSSetDisplayColorSpaceAndTransfer | function | CGSSetDisplayColorSpaceAndTransfer |
| SLSSetSpaceManagementMode | function | CGSSetSpaceManagementMode |
| SLSSetSurfaceColorSpace | function | CGSSetSurfaceColorSpace |
| SLSSetWindowColorSpace | function | CGSSetWindowColorSpace |
| SLSSetWindowDidOrderInOnNonCurrentManagedSpacesOnlyNotificationBlock | function | CGSSetWindowDidOrderInOnNonCurrentManagedSpacesOnlyNotificationBlock |
| SLSSetWindowDidOrderOutOnNonCurrentManagedSpacesNotificationBlock | function | CGSSetWindowDidOrderOutOnNonCurrentManagedSpacesNotificationBlock |
| SLSSetWindowListWorkspace | function | CGSSetWindowListWorkspace |
| SLSSetWindowPrefersCurrentSpace | function | |
| SLSShowSpaces | function | CGSShowSpaces |
| SLSSpaceAddOwner | function | CGSSpaceAddOwner |
| SLSSpaceAddWindowsAndRemoveFromSpaces | function | CGSSpaceAddWindowsAndRemoveFromSpaces |
| SLSSpaceCanCreateTile | function | CGSSpaceCanCreateTile |
| SLSSpaceClientDrivenMoveSpacersToPoint | function | CGSSpaceClientDrivenMoveSpacersToPoint |
| SLSSpaceClientDrivenMoveSpacersToPointFenced | function | |
| SLSSpaceCopyManagedShape | function | CGSSpaceCopyManagedShape |
| SLSSpaceCopyName | function | CGSSpaceCopyName |
| SLSSpaceCopyOwners | function | CGSSpaceCopyOwners |
| SLSSpaceCopyShape | function | CGSSpaceCopyShape |
| SLSSpaceCopyTileSpaces | function | CGSSpaceCopyTileSpaces |
| SLSSpaceCopyValues | function | CGSSpaceCopyValues |
| SLSSpaceCreate | function | CGSSpaceCreate |
| SLSSpaceCreateTile | function | CGSSpaceCreateTile |
| SLSSpaceDestroy | function | CGSSpaceDestroy |
| SLSSpaceFinishedResizeForRect | function | CGSSpaceFinishedResizeForRect |
| SLSSpaceGetAbsoluteLevel | function | CGSSpaceGetAbsoluteLevel |
| SLSSpaceGetAlpha | function | |
| SLSSpaceGetCompatID | function | CGSSpaceGetCompatID |
| SLSSpaceGetInterTileSpacing | function | CGSSpaceGetInterTileSpacing |
| SLSSpaceGetRect | function | CGSSpaceGetRect |
| SLSSpaceGetSizeForProposedTile | function | CGSSpaceGetSizeForProposedTile |
| SLSSpaceGetSpacersAtPoint | function | CGSSpaceGetSpacersAtPoint |
| SLSSpaceGetTransform | function | CGSSpaceGetTransform |
| SLSSpaceGetType | function | CGSSpaceGetType |
| SLSSpaceIteratorAdvance | function | |
| SLSSpaceIteratorGetAbsoluteLevel | function | |
| SLSSpaceIteratorGetAttributes | function | |
| SLSSpaceIteratorGetCount | function | |
| SLSSpaceIteratorGetParentSpaceID | function | |
| SLSSpaceIteratorGetSpaceID | function | |
| SLSSpaceIteratorGetType | function | |
| SLSSpaceIteratorGetTypeID | function | |
| SLSSpaceMoveSpacersToPoint | function | CGSSpaceMoveSpacersToPoint |
| SLSSpacePreferCurrentDisplay | function | CGSSpacePreferCurrentDisplay |
| SLSSpaceRemoveOwner | function | CGSSpaceRemoveOwner |
| SLSSpaceRemoveValuesForKeys | function | CGSSpaceRemoveValuesForKeys |
| SLSSpaceSetAbsoluteLevel | function | CGSSpaceSetAbsoluteLevel |
| SLSSpaceSetAlpha | function | |
| SLSSpaceSetCompatID | function | CGSSpaceSetCompatID |
| SLSSpaceSetEdgeReservation | function | CGSSpaceSetEdgeReservation |
| SLSSpaceSetFrontPSN | function | CGSSpaceSetFrontPSN |
| SLSSpaceSetInterTileSpacing | function | CGSSpaceSetInterTileSpacing |
| SLSSpaceSetName | function | CGSSpaceSetName |
| SLSSpaceSetOrderingWeight | function | |
| SLSSpaceSetOwners | function | CGSSpaceSetOwners |
| SLSSpaceSetRelativeLevel | function | CGSSpaceSetRelativeLevel |
| SLSSpaceSetShape | function | CGSSpaceSetShape |
| SLSSpaceSetTransform | function | CGSSpaceSetTransform |
| SLSSpaceSetType | function | CGSSpaceSetType |
| SLSSpaceSetValues | function | CGSSpaceSetValues |
| SLSSpaceTileMoveToSpaceAtIndex | function | CGSSpaceTileMoveToSpaceAtIndex |
| SLSSpaceWithName | function | CGSSpaceWithName |
| SLSTileEvictionRecordGetManagedSpaceID | function | CGSTileEvictionRecordGetManagedSpaceID |
| SLSTileOwnerChangeRecordGetManagedSpaceID | function | CGSTileOwnerChangeRecordGetManagedSpaceID |
| SLSTileSpaceMoveSpacersForSize | function | |
| SLSTileSpaceMoveSpacersForSizeFenced | function | |
| SLSTileSpaceReplaceWithSnapshotWindow | function | |
| SLSTileSpaceResizeRecordGetParentSpaceID | function | CGSTileSpaceResizeRecordGetParentSpaceID |
| SLSTileSpaceResizeRecordGetSpaceID | function | CGSTileSpaceResizeRecordGetSpaceID |
| SLSTileSpaceResizeRecordIsLiveResizing | function | CGSTileSpaceResizeRecordIsLiveResizing |
| SLSTileSpaceSetDividerWindow | function | |
| SLSTileSpaceTakeOwnership | function | |
| SLSTransactionAddWindowToSpace | function | |
| SLSTransactionAddWindowToSpaceAndRemoveFromSpaces | function | |
| SLSTransactionAddWindowsToSpacesAndRemoveFromSpaces | function | |
| SLSTransactionBatchReassociateWindowsToSpace | function | |
| SLSTransactionDestroySpace | function | |
| SLSTransactionEnsureSpaceSwitchToActiveProcess | function | |
| SLSTransactionHideSpace | function | |
| SLSTransactionMoveManagedSpaceToDisplayAfterSpace | function | |
| SLSTransactionMoveWindowsToManagedSpace | function | |
| SLSTransactionRemoveWindowFromSpace | function | |
| SLSTransactionRemoveWindowFromSpaces | function | |
| SLSTransactionRequestSwitchToSpaceForWindow | function | |
| SLSTransactionSetManagedDisplayCurrentSpace | function | |
| SLSTransactionSetSafeApertureSpaceReveal | function | |
| SLSTransactionSetSpaceAbsoluteLevel | function | |
| SLSTransactionSetSpaceAlpha | function | |
| SLSTransactionSetSpaceOrderingWeight | function | |
| SLSTransactionSetSpaceReveal | function | |
| SLSTransactionSetSpaceShape | function | |
| SLSTransactionSetSpaceTransform | function | |
| SLSTransactionSetSurfaceColorSpace | function | |
| SLSTransactionSetSystemSuppressOnAllWorkspaces | function | |
| SLSTransactionSetWindowPrefersCurrentSpace | function | |
| SLSTransactionShowSpace | function | |
| SLSTransactionSpaceFinishedResizeForRect | function | |
| SLSTransactionSpaceTileMoveToSpaceAtIndex | function | |
| SLSTransactionWillSwitchSpaces | function | |
| SLSWillSwitchSpaces | function | CGSWillSwitchSpaces |
| SLSWindowGetBestSpace | function | |
| SLSWindowIsOnCurrentSpace | function | |
| SLSWindowIteratorCopySpaces | function | |
| SLSWindowIteratorGetMatchingSpaceID | function | |
| SLSWindowIteratorGetSpaceAttributes | function | |
| SLSWindowIteratorGetSpaceCount | function | |
| SLSWindowIteratorGetSpaceTypeMask | function | |
| SLSWindowIteratorIsInSpace | function | |
| SLSWindowQueryKeySpaceListOptions | data | |
| SLSWindowQueryKeySpaces | data | |
| SLSWindowQueryKeyWorkspaceWindowListOptions | data | |
| SLSWindowQueryResultCopySpaces | function | |
| SLSWindowQueryResultGetSpaceCount | function | |
| kSLContentStreamColorSpaceKey | data | |
| kSLSHMDDisplayQueueOptionColorSpace | data | |
| kSLSScreenshotColorSpaceHDRKey | data | |
| kSLSScreenshotColorSpaceSDRKey | data | |
| kSLSSpaceAbsoluteLevelAssessmentMode | data | |
| kSLSSpaceAbsoluteLevelBootProgress | data | |
| kSLSSpaceAbsoluteLevelDefault | data | |
| kSLSSpaceAbsoluteLevelPrivacyIndicator | data | |
| kSLSSpaceAbsoluteLevelSecurityAgent | data | |
| kSLSSpaceAbsoluteLevelSetupAssistant | data | |
| kSLSSpaceAbsoluteLevelVoiceOver | data | |
| kSLSUserAccessibilityReportSpaceAbsoluteLevelKey | data | |
| kSLSUserAccessibilityReportSpaceAlphaKey | data | |
| kSLSUserAccessibilityReportSpaceIDKey | data | |
| kSLSUserAccessibilityReportSpaceIsOrderedInKey | data | |
| kSLSUserAccessibilityReportSpaceNameKey | data | |
| kSLSUserAccessibilityReportSpaceShapeKey | data | |
| kSLSUserAccessibilityReportSpaceTransformKey | data | |
| kSLSUserAccessibilityReportSpaceTypeKey | data | |
| kSLSUserAccessibilityReportSpaceWindowIDsKey | data | |
| kSLSUserAccessibilityReportSpacesKey | data | |
| kSLSUserAccessibilityReportWindowSpaceIDsKey | data |