# Icon Packs

## Start

If you don't have an icon pack yet, we suggest starting with an icon pack template like [Blueprint](https://github.com/jahirfiquitiva/Blueprint). This will save you a lot of time and ensure that your icon pack is compatible with Smart Launcher.

Alternatively, you can follow one of the many tutorials available online. Then, just check to have these lines in your app manifest to ensure that Smart Launcher recognizes your icon pack.

```xml
<activity android:name="<...>" android:exported="true">
    <intent-filter>
        <action android:name="org.adw.launcher.THEMES" />
        <category android:name="android.intent.category.DEFAULT" />
    </intent-filter>
</activity>
```

## Advanced features

If your icon pack supports any of the advanced features listed below, they must be declared in your app manifest.

**For each feature, you need to add an additional "category" tag.**&#x20;

Here's an example:

```xml
<activity android:name="<...>" android:exported="true">
    <intent-filter>
        <action android:name="org.adw.launcher.THEMES" />
        <category android:name="android.intent.category.DEFAULT" />
        <category android:name="INSERT HERE FEATURE TAG" />
    </intent-filter>
</activity>
```

***

### Declare Material You support

**`org.icontheme.CHANGES_WITH_MATERIAL_YOU_COLORS`**

Enable this flag if icons in your icon pack reference [Material Colors](https://medium.com/@xch3dx/using-material-you-in-your-app-15ec982eecb4).&#x20;

| With the flag                                                                                                                                                                                                                                                                                                                                            | Without the flag                                                                                                                                                                                                                                                                                                                |
| -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p><img src="https://2951925047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LbhTQpvrCNT3tTFB_3o%2Fuploads%2FTH96eWcOrk2RCG3JdxWl%2FScreenshot_20230721_122529%201.png?alt=media&#x26;token=3c3d8688-b7fd-47f4-8f9b-e8b59bd4b8bb" alt=""><br>When the wallpaper is changed, the icons will automatically update their color.</p> | <p><img src="https://2951925047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LbhTQpvrCNT3tTFB_3o%2Fuploads%2FDbApfiMNgLGcH6616eU3%2FScreenshot_20230721_122625%201.png?alt=media&#x26;token=144ae80e-1c65-4b49-8102-84b32b8c273c" alt=""><br>Your icons won't update when the wallpaper is changed.</p> |

**Note:** Enabling this flag does not automatically change the color of your icons based on the wallpape&#x72;**.** Instead, it informs the launcher about your theme's capability to take advantage of material colors. Misusing this flag may lead to significant performance issues, causing frequent icon refreshes without a valid reason.

#### Summary:

✅ Include this flag if Smart Launcher should reload the icon pack when the system palette changes.\
❌ Don't include it if your icon pack wouldn't benefit from it, as it would only waste resources.

***

### Specify custom Material Colors

By default, Smart Launcher tints monochrome icons using the same colors used by Pixel Launcher.

However, if you want Smart Launcher to use different colors you can instruct it to do so by declaring these two colors in your `res/values` file.

**Note:** These colors will be also used to tint fallback icons

```xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
   ...
   <color name="org.icontheme.icon_background_color">@color/my_background_color</color>
   <color name="org.icontheme.icon_color">@color/my_foreground_color</color>
   ...
</resources>
```

| When you define the colors                                                                                                                                                                                                                                                                                        | When you DON'T define the colors                                                                                                                                                                                                                                                                                                                                           |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| <p><img src="https://2951925047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LbhTQpvrCNT3tTFB_3o%2Fuploads%2FYvkoTjETjkkkfDDGIWsj%2Fimage.png?alt=media&#x26;token=26e5b045-975b-4930-becb-0eef144eca5d" alt=""><br><br>All the icons will be tinted using the colors you choose.<br></p> | <p><img src="https://2951925047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LbhTQpvrCNT3tTFB_3o%2Fuploads%2FZCZpcEkKGO3AKUbQzMDO%2Fimage.png?alt=media&#x26;token=c5dc2aa1-20ba-4c66-a085-30d1882de6fe" alt=""><br><br>Smart Launcher will pick the colors. If they don't match with colors in your icons, fallback icons may look different.</p> |

#### Summary:

✅ Specify the colors if you are using custom colors in your icons.\
✅ Don't specify the colors if you are ok with the launcher picking the colors for you.

***

### **Fallback to Themed icons**

**`org.icontheme.FALLBACK_TO_THEMED_ICON`**

Enable this flag to instruct the launcher to use [Themed Icons](https://proandroiddev.com/android-13-implementing-themed-icons-into-your-app-e7002f2c4e04) for the icons not covered by your icon pack.

| With the flag                                                                                                                                                                                                                                                                                                                                                                        | Without the flag                                                                                                                                                                                                                                                                                                                                                                           |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| <p><img src="https://2951925047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LbhTQpvrCNT3tTFB_3o%2Fuploads%2F7JgxS6aNhLlAFZEm2BUU%2FScreenshot_20230721_123155%20(1).png?alt=media&#x26;token=889d0546-7177-43e4-bbaf-57e477b9bd08" alt="" data-size="original"><br>Apps whose icons are not included in your icon pack will be skinned as Themed icons.</p> | <p><img src="https://2951925047-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LbhTQpvrCNT3tTFB_3o%2Fuploads%2F1WxNjiuJ25L83G5iJG2z%2FScreenshot_20230721_123323%20(1).png?alt=media&#x26;token=45431db9-d1ee-4856-b5e1-490366fddfbb" alt="" data-size="original"><br>Apps whose icons are not included in your icon pack will retain their original appearance.</p> |

We recommend enabling this flag only if your icons have a visual appearance that complements Android 13 Themed Icons when mixed together.

**Please note:** In order for this to work, you must not provide in your theme any mask, back, overlay, scalefactor or icon shader.

**Summary:**

✅ Include this flag, unless you really believe unskinned icons looks better than the ones automatically created by Smart Launcher.

***

## Ask our help

If your icon pack doesn't behave as you would expect, contact us at <dev-support@smartlauncher.net>. if your theme is not free, remember to include some promo codes.

This will allow the team to test your theme and ensure future versions of Smart Launcher won't break it. Also, we may feature some of the icon packs that work well with Smart Launcher on our social channels.&#x20;

###


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.smartlauncher.net/work-with-smart-launcher/icon-packs.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
