<!--
{
  "documentType" : "article",
  "framework" : "ColorSync",
  "identifier" : "/documentation/ColorSync/color-devices",
  "metadataVersion" : "0.1.0",
  "role" : "collectionGroup",
  "title" : "Color devices"
}
-->

# Color devices

Manage the color profiles assigned to displays, printers, scanners, and cameras.

## Overview

ColorSync tracks the color devices attached to the system and the profiles assigned to each. Register
a device, enumerate its profiles, and read or set the factory and custom profiles that describe how it
reproduces color. Displays are a color device too: you can find a display’s profile from its display
ID and read its gamma and transfer tables. Device profiles are themselves [`ColorSyncProfile`](/documentation/ColorSync/ColorSyncProfile)
objects. See [Color profiles](/documentation/ColorSync/color-profiles).

## Topics

### Registering and enumerating devices

[`ColorSyncDeviceCopyDeviceInfo`](/documentation/ColorSync/ColorSyncDeviceCopyDeviceInfo(_:_:))

Copies information about a device, resolved for the current host and current user.

[`ColorSyncDeviceProfileIterateCallback`](/documentation/ColorSync/ColorSyncDeviceProfileIterateCallback)

A callback that ColorSync invokes for each device profile during iteration.

[`ColorSyncDeviceSetCustomProfiles`](/documentation/ColorSync/ColorSyncDeviceSetCustomProfiles(_:_:_:))

Sets custom profiles for a device in lieu of its factory profiles.

[`ColorSyncIterateDeviceProfiles`](/documentation/ColorSync/ColorSyncIterateDeviceProfiles(_:_:))

Iterates over the profiles registered for all devices, invoking a callback for each.

[`ColorSyncProfileCreateDeviceProfile`](/documentation/ColorSync/ColorSyncProfileCreateDeviceProfile(_:_:_:))

Creates a profile for a device registered with ColorSync.

[`ColorSyncRegisterDevice`](/documentation/ColorSync/ColorSyncRegisterDevice(_:_:_:))

Registers a device of the given class with ColorSync.

[`ColorSyncUnregisterDevice`](/documentation/ColorSync/ColorSyncUnregisterDevice(_:_:))

Unregisters a device of the given class and identifier.

### Identifying device classes

[`kColorSyncCameraDeviceClass`](/documentation/ColorSync/kColorSyncCameraDeviceClass)

The device class for a camera device.

[`kColorSyncDeviceClass`](/documentation/ColorSync/kColorSyncDeviceClass)

A key whose value is one of the device-class constants below.

[`kColorSyncDisplayDeviceClass`](/documentation/ColorSync/kColorSyncDisplayDeviceClass)

The device class for a display device.

[`kColorSyncPrinterDeviceClass`](/documentation/ColorSync/kColorSyncPrinterDeviceClass)

The device class for a printer device.

[`kColorSyncScannerDeviceClass`](/documentation/ColorSync/kColorSyncScannerDeviceClass)

The device class for a scanner device.

### Describing devices

[`kColorSyncDeviceID`](/documentation/ColorSync/kColorSyncDeviceID)

A key whose value is the `CFUUIDRef` identifying the device.

[`kColorSyncDeviceDescription`](/documentation/ColorSync/kColorSyncDeviceDescription)

A key whose value is the device’s localized name in the current locale.

[`kColorSyncDeviceDescriptions`](/documentation/ColorSync/kColorSyncDeviceDescriptions)

A key whose value is a `CFDictionary` of the device’s localized names.

[`kColorSyncDeviceModeDescription`](/documentation/ColorSync/kColorSyncDeviceModeDescription)

A key whose value is the device mode’s localized name in the current locale.

[`kColorSyncDeviceModeDescriptions`](/documentation/ColorSync/kColorSyncDeviceModeDescriptions)

A key whose value is a `CFDictionary` of the device mode’s localized names.

[`kColorSyncDeviceHostScope`](/documentation/ColorSync/kColorSyncDeviceHostScope)

A key specifying the host preference scope of a device; currently only `kCFPreferencesCurrentHost` is supported.

[`kColorSyncDeviceUserScope`](/documentation/ColorSync/kColorSyncDeviceUserScope)

A key specifying the user preference scope of a device; one of `kCFPreferencesCurrentUser` or `kCFPreferencesAnyUser`.

### Describing device profiles

[`kColorSyncDeviceDefaultProfileID`](/documentation/ColorSync/kColorSyncDeviceDefaultProfileID)

A key whose value is the ProfileID of the device’s default profile.

[`kColorSyncDeviceProfileID`](/documentation/ColorSync/kColorSyncDeviceProfileID)

A key in the device-profile-info dictionary whose value is the profile’s ProfileID.

[`kColorSyncDeviceProfileURL`](/documentation/ColorSync/kColorSyncDeviceProfileURL)

A key whose value is the `CFURLRef` of a device profile.

[`kColorSyncDeviceProfileIsCurrent`](/documentation/ColorSync/kColorSyncDeviceProfileIsCurrent)

A key in the device-profile-info dictionary whose value indicates whether the profile is the current profile.

[`kColorSyncDeviceProfileIsDefault`](/documentation/ColorSync/kColorSyncDeviceProfileIsDefault)

A key in the device-profile-info dictionary whose value indicates whether the profile is the default profile.

[`kColorSyncDeviceProfileIsFactory`](/documentation/ColorSync/kColorSyncDeviceProfileIsFactory)

A key in the device-profile-info dictionary whose value indicates whether the profile is a factory profile.

[`kColorSyncProfileHostScope`](/documentation/ColorSync/kColorSyncProfileHostScope)

A key specifying the host preference scope of a profile; currently only `kCFPreferencesCurrentHost` is supported.

[`kColorSyncProfileUserScope`](/documentation/ColorSync/kColorSyncProfileUserScope)

A key specifying the user preference scope of a profile; one of `kCFPreferencesCurrentUser` or `kCFPreferencesAnyUser`.

### Accessing custom and factory profiles

[`kColorSyncCustomProfiles`](/documentation/ColorSync/kColorSyncCustomProfiles)

A key whose value is a `CFDictionary` describing the device’s custom profiles.

[`kColorSyncFactoryProfiles`](/documentation/ColorSync/kColorSyncFactoryProfiles)

A key whose value is a `CFDictionary` describing the device’s factory profiles.

[`kColorSyncDoNotSubstituteProfiles`](/documentation/ColorSync/kColorSyncDoNotSubstituteProfiles)

An option that, when set to `kCFBooleanTrue`, skips substituting a matching system-provided profile.

### Observing device notifications

[`kColorSyncDeviceProfilesNotification`](/documentation/ColorSync/kColorSyncDeviceProfilesNotification)

A notification that ColorSync posts when a device’s profiles change.

[`kColorSyncDeviceRegisteredNotification`](/documentation/ColorSync/kColorSyncDeviceRegisteredNotification)

A notification that ColorSync posts when a device is registered.

[`kColorSyncDeviceUnregisteredNotification`](/documentation/ColorSync/kColorSyncDeviceUnregisteredNotification)

A notification that ColorSync posts when a device is unregistered.

[`kColorSyncDisplayDeviceProfilesNotification`](/documentation/ColorSync/kColorSyncDisplayDeviceProfilesNotification)

A notification that ColorSync posts when a display device’s profiles change.

[`kColorSyncRegistrationUpdateWindowServer`](/documentation/ColorSync/kColorSyncRegistrationUpdateWindowServer)

A notification concerning the window server’s device registration.

### Reading display gamma and profiles

[`ColorSyncProfileCreateWithDisplayID`](/documentation/ColorSync/ColorSyncProfileCreateWithDisplayID(_:))

Creates a profile for the specified display.

[`ColorSyncProfileEstimateGammaWithDisplayID`](/documentation/ColorSync/ColorSyncProfileEstimateGammaWithDisplayID(_:_:))

Estimates the gamma of the profile for the specified display.

[`ColorSyncProfileGetDisplayTransferFormulaFromVCGT`](/documentation/ColorSync/ColorSyncProfileGetDisplayTransferFormulaFromVCGT(_:_:_:_:_:_:_:_:_:_:))

Converts the profile’s `vcgt` tag to formula components used by `CGSetDisplayTransferByFormula`.

[`ColorSyncProfileCreateDisplayTransferTablesFromVCGT`](/documentation/ColorSync/ColorSyncProfileCreateDisplayTransferTablesFromVCGT(_:_:))

Creates display transfer tables from the profile’s `vcgt` tag.

### Converting display identifiers

[`CGDisplayCreateUUIDFromDisplayID`](/documentation/ColorSync/CGDisplayCreateUUIDFromDisplayID(_:))

[`CGDisplayGetDisplayIDFromUUID`](/documentation/ColorSync/CGDisplayGetDisplayIDFromUUID(_:))



---

Copyright &copy; 2026 Apple Inc. All rights reserved. | [Terms of Use](https://www.apple.com/legal/internet-services/terms/site.html) | [Privacy Policy](https://www.apple.com/privacy/privacy-policy)