# IShortcutManager

> Represents a manager that configures a particular instance of the shortcuts system.

## Definition

* **Type:** Interface
* **Namespace:** [UnityEditor.ShortcutManagement](/engine/6000.5/script-reference/unityeditor/shortcutmanagement.md)
* **Assembly:** UnityEditor.CoreModule

```csharp
public interface IShortcutManager
```

## Remarks

The manager maintains a list of *available* profiles which can be retrieved with GetAvailableProfiles. Some of the methods require the passed profile ID to be available at the time it is called. Creating a new profile with [IShortcutManager.CreateProfile](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/createprofile.md) makes it available and deleting a profile with [IShortcutManager.DeleteProfile](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/deleteprofile.md) makes it not available anymore.

It also maintains a reference to the *active* profile ([IShortcutManager.activeProfileId](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/activeprofileid.md)) which determines the active bindings based on the shortcut overrides of the active profile. [IShortcutManager.RebindShortcut](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/rebindshortcut.md) and [IShortcutManager.ClearShortcutOverride](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/clearshortcutoverride.md) requires the active profile to not be *read-only* (i.e. [IShortcutManager.IsProfileReadOnly](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/isprofilereadonly.md) returns `false` for [IShortcutManager.activeProfileId](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/activeprofileid.md)) since these two methods modify the active profile.

Finally, it maintains a list of available shortcuts which can be retrieved with GetAvailableShortcuts. All methods that take a shortcut ID require that the shortcut is avaliable.

## Properties

| Property                                                                                                              | Description                                          |
| --------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------- |
| [activeProfileId](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/activeprofileid.md) | Gets or sets the ID of the currently active profile. |

## Methods

| Method                                                                                                                                | Description                                                                                |
| ------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| [ClearShortcutOverride](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/clearshortcutoverride.md)     | Clears the binding for shortcut with given shortcut ID from the active profile.            |
| [CreateProfile](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/createprofile.md)                     | Creates a new profile with the given profile ID.                                           |
| [DeleteProfile](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/deleteprofile.md)                     | Deletes profile with the given profile ID.                                                 |
| [GetAvailableProfileIds](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/getavailableprofileids.md)   | Returns an enumeration of all of avaliable profile IDs.                                    |
| [GetAvailableShortcutIds](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/getavailableshortcutids.md) | Returns an enumeration of all available shortcut IDs.                                      |
| [GetShortcutBinding](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/getshortcutbinding.md)           | Returns the active binding for the given shortcut ID.                                      |
| [IsProfileIdValid](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/isprofileidvalid.md)               | Checks that the profile ID is valid.                                                       |
| [IsProfileReadOnly](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/isprofilereadonly.md)             | Is the profile for the given profile ID *read-only*?                                       |
| [IsShortcutOverridden](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/isshortcutoverridden.md)       | Does the active profile override the binding for the given shortcut ID?                    |
| [RebindShortcut](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/rebindshortcut.md)                   | Rebinds the shortcut for the given shortcut ID to the given binding in the active profile. |
| [RenameProfile](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/renameprofile.md)                     | Renames the ID of a profile.                                                               |

## Events

| Member                                                                                                                              | Description                                                       |
| ----------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------- |
| [activeProfileChanged](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/activeprofilechanged.md)     | Raised when the ID of the active profile is changed.              |
| [shortcutBindingChanged](/engine/6000.5/script-reference/unityeditor/shortcutmanagement/ishortcutmanager/shortcutbindingchanged.md) | Raised when shortcut overrides are changed on the active profile. |
