<!--
{
  "availability" : [
    "iOS: 27.0.0 -",
    "iPadOS: 27.0.0 -",
    "macCatalyst: -",
    "macOS: 27.0.0 -",
    "visionOS: 27.0.0 -"
  ],
  "documentType" : "symbol",
  "framework" : "GameController",
  "identifier" : "/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu",
  "metadataVersion" : "0.1.0",
  "role" : "Class",
  "symbol" : {
    "kind" : "Class",
    "modules" : [
      "Game Controller"
    ],
    "preciseIdentifier" : "s:14GameController37GCControllerHomeButtonSettingsManagerC"
  },
  "title" : "GCControllerHomeButtonSettingsManager"
}
-->

# GCControllerHomeButtonSettingsManager

Access the game controller system Home button settings.

```
class GCControllerHomeButtonSettingsManager
```

## Overview

macOS, iOS, and visionOS allow the user to assign an action that launches a
chosen application to a long press of the Home button (the logo button on
PlayStation and Xbox controllers).  The \c GCControllerHomeButtonSettingsManager
class allows your application to partially inspect the user’s currently
configured action, and to open the system game controller settings screen
where the user can modify the action.

Performing operations on `GCControllerHomeButtonSettingsManager` is only
permitted while a game controller is connected.

## Topics

### Initializers

[`init()`](/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu/init())

[`init(isolated any Actor)`](/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu/init(_:))

### Instance Properties

[`var controllerHomeButtonInAppAction: (action: GCControllerHomeButtonSettingsManager.InAppAction, customized: GCControllerHomeButtonSettingsManager.SettingCustomizationStatus)`](/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu/controllerHomeButtonInAppAction)

Get the current controller Home button in-app action setting.

[`var controllerHomeButtonSystemAction: (action: GCControllerHomeButtonSettingsManager.SystemAction, customized: GCControllerHomeButtonSettingsManager.SettingCustomizationStatus)`](/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu/controllerHomeButtonSystemAction)

Get the current controller Home button system action setting.

[`var settingsUpdates: some AsyncSequence<(), Never>`](/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu/settingsUpdates)

The asynchronous sequence of update notifications for the Home button
settings.

### Instance Methods

[`func openControllerHomeButtonSettings(for: GCControllerHomeButtonSettingsManager.SettingsCustomizationActivity) throws`](/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu/openControllerHomeButtonSettings(for:))

Opens the Settings app to the screen in game controller settings where
the user can change the controller shortcut action.

### Type Aliases

[`typealias InAppAction`](/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu/InAppAction)

[`typealias SettingCustomizationStatus`](/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu/SettingCustomizationStatus)

[`typealias SettingsCustomizationActivity`](/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu/SettingsCustomizationActivity)

[`typealias SystemAction`](/documentation/GameController/GCControllerHomeButtonSettingsManager-258mu/SystemAction)

---

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)