# Adding a setting *Note:* settings are what types used to be in the old `OCP\Activity\IExtension` interface. In order to add a new setting to the personal page and make it possible to store events with this type, the `OCP\Activity\ISetting` interface needs to be implemented and registered in `appinfo/info.xml`. An example can be seen in the [comments app](https://github.com/nextcloud/server/blob/8105ba99297222b7db97b556a55f306c3f7cabc0/apps/comments/appinfo/info.xml#L18-L20) ```xml ... ... OCA\Comments\Activity\Setting ``` The `setting` value is the fully namespaced class name of the `ISetting` implementation. ## Identifier The identifier is also used as a HTML ID, therefor only lowercase a-z and underscores are allowed. **Note:** This must also match the value that is used in the `IEvent::setType()` of the event, otherwise the event will not be visible. ## Name The name **must** already be translated and should be a short and descriptive sentence. One or two important words can also be highlighted using the `` HTML tag, to allow easier recognition of the setting. ## Icon The icon **must** be an absolute URL. The chosen icon should be 32*32 pixels and when possible a SVG. ## Priority Priority should technically be a value between 0-100, where 0 means it's listed first and 100 last. 70 should be seen as a decent default value, while values lower then 10 should not be used. These are reserved for special settings of the activity app itself. ## Is default enabled stream / mail The two "is default enabled x" booleans specify whether the setting is enabled or disabled by default for the stream or mail. Once a user changed their setting, the default is not used for them anymore. Changing the default is therefore not "retro active". ## Can change stream / mail When the "can change x" boolean is set to `false`, users can not change this setting on the personal page. When both "can change x" booleans are false, the setting is not listed on the personal page at all.